<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Terminal Root</title>
    <description>A little much about C++, Game Development, Programming and Web
</description>
    <link>https://terminalroot.com/</link>
    <atom:link href="https://terminalroot.com/feed.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Fri, 24 Jul 2026 21:34:00 +0000</pubDate>
    <lastBuildDate>Fri, 24 Jul 2026 21:34:00 +0000</lastBuildDate>
    <generator>Jekyll v3.10.0</generator>
    
      <item>
        <title>Query JSON, CSV, and TSV Files Using SQL in the Terminal</title>
        <description>&lt;p&gt;&lt;img src=&quot;/assets/img/go/qo.jpg&quot; alt=&quot;Query JSON, CSV, and TSV Files Using SQL in the Terminal&quot; title=&quot;🔳 Say goodbye to awk, Python scripts, or importing data into a database.&quot; /&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;qo&lt;/strong&gt; is a command-line tool written in &lt;a href=&quot;https://terminalroot.com/tags#go&quot;&gt;Go&lt;/a&gt; that allows you to run &lt;a href=&quot;https://terminalroot.com/tags#sql&quot;&gt;SQL&lt;/a&gt; queries on structured data. It features an interactive &lt;a href=&quot;https://terminalroot.com/tags#tui&quot;&gt;TUI (Terminal User Interface)&lt;/a&gt; where you write your query and see results in real time, and it also works seamlessly in &lt;a href=&quot;https://terminalroot.com/tags#unix&quot;&gt;Unix&lt;/a&gt; pipelines.&lt;/p&gt;

&lt;p&gt;Its main features include:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Query &lt;a href=&quot;https://terminalroot.com/tags#json&quot;&gt;JSON&lt;/a&gt;, &lt;a href=&quot;https://terminalroot.com/tags#csv&quot;&gt;CSV&lt;/a&gt;, and TSV files.&lt;/li&gt;
  &lt;li&gt;Uses SQL syntax based on &lt;a href=&quot;https://terminalroot.com/tags#sqlite&quot;&gt;SQLite&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Interactive interface for quickly testing queries.&lt;/li&gt;
  &lt;li&gt;Works in pipelines (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;stdin&lt;/code&gt; → &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;stdout&lt;/code&gt;).&lt;/li&gt;
  &lt;li&gt;Open-source project written in Go under the MIT license.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;installation&quot;&gt;Installation&lt;/h2&gt;

&lt;p&gt;Using &lt;a href=&quot;https://terminalroot.com/tags#brew&quot;&gt;brew&lt;/a&gt;:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;brew &lt;span class=&quot;nb&quot;&gt;install &lt;/span&gt;qo&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Using Go itself:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;go &lt;span class=&quot;nb&quot;&gt;install &lt;/span&gt;github.com/kiki-ki/go-qo/cmd/qo@latest&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;You can also compile the project directly from the source code available on GitHub.&lt;/p&gt;

&lt;h2 id=&quot;basic-usage&quot;&gt;Basic Usage&lt;/h2&gt;

&lt;p&gt;Imagine a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;users.json&lt;/code&gt; file containing a list of users.&lt;/p&gt;

&lt;p&gt;You can open the interactive interface:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;qo users.json&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Or run a query directly:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;qo users.json &lt;span class=&quot;s2&quot;&gt;&quot;SELECT name, age FROM data WHERE age &amp;gt;= 18&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Since the tool works well with pipelines, you can also do:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;nb&quot;&gt;cat &lt;/span&gt;users.json | qo&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;The SQL syntax makes operations like these easy:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;SELECT&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;WHERE&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ORDER BY&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;GROUP BY&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;JOIN&lt;/code&gt; (when applicable to the data)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This makes exploring files much more intuitive for those already familiar with SQL.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;For more information, visit the &lt;a href=&quot;https://github.com/kiki-ki/go-qo&quot;&gt;repository&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Fri, 24 Jul 2026 18:32:04 +0000</pubDate>
        <link>https://terminalroot.com/query-json-csv-and-tsv-files-using-sql-in-the-terminal/</link>
        <guid isPermaLink="true">https://terminalroot.com/query-json-csv-and-tsv-files-using-sql-in-the-terminal/</guid>
        
        <category>go</category>
        
        <category>tui</category>
        
        <category>sql</category>
        
        <category>commands</category>
        
        <category>terminal</category>
        
        
      </item>
    
      <item>
        <title>TUIOS: A Terminal Window Manager</title>
        <description>&lt;p&gt;&lt;img src=&quot;/assets/img/terminal/tuios.jpg&quot; alt=&quot;TUIOS: A Terminal Window Manager&quot; title=&quot;🔳 Written in Go.&quot; /&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;TUIOS&lt;/strong&gt; is a &lt;strong&gt;&lt;a href=&quot;https://terminalroot.com/tags#terminal&quot;&gt;terminal&lt;/a&gt; multiplexer and window manager&lt;/strong&gt; that allows you to create multiple terminals and organize them in side-by-side layouts (BSP tiling).&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;installation&quot;&gt;Installation&lt;/h2&gt;
&lt;p&gt;The project offers several installation methods:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Homebrew&lt;/strong&gt;&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;brew &lt;span class=&quot;nb&quot;&gt;install &lt;/span&gt;tuios&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;&lt;strong&gt;Go&lt;/strong&gt;&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;go &lt;span class=&quot;nb&quot;&gt;install &lt;/span&gt;github.com/Gaurav-Gosain/tuios/cmd/tuios@latest&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;&lt;strong&gt;Installation script&lt;/strong&gt;&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;curl &lt;span class=&quot;nt&quot;&gt;-fsSL&lt;/span&gt; https://raw.githubusercontent.com/Gaurav-Gosain/tuios/main/install.sh | bash&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;There are also pre-built binaries available for download and an official Docker image. The main requirement is to use a modern terminal with True Color support, with Ghostty, Kitty, and WezTerm being some of the recommended options.&lt;/p&gt;

&lt;h2 id=&quot;basic-usage&quot;&gt;Basic Usage&lt;/h2&gt;

&lt;p&gt;After installing, simply start TUIOS:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;tuios&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Some useful shortcuts:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;n&lt;/code&gt; → creates a new terminal.&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Ctrl + P&lt;/code&gt; → opens the command palette.&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Esc&lt;/code&gt; → returns to window management mode.&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;z&lt;/code&gt; → maximizes/restores the current panel.&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Ctrl + B&lt;/code&gt; → prefix key for advanced commands.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can also create persistent sessions:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;tuios new my-session
tuios attach my-session&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;This way, you can close the terminal and resume exactly where you left off later.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://github.com/Gaurav-Gosain/tuios/raw/main/assets/demo.gif&quot; alt=&quot;TUIOS gif&quot; /&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;For more information, visit the &lt;strong&gt;repository:&lt;/strong&gt; &lt;a href=&quot;https://github.com/Gaurav-Gosain/tuios&quot;&gt;https://github.com/Gaurav-Gosain/tuios&lt;/a&gt;&lt;/p&gt;
</description>
        <pubDate>Tue, 21 Jul 2026 20:11:18 +0000</pubDate>
        <link>https://terminalroot.com/tuios-a-terminal-window-manager/</link>
        <guid isPermaLink="true">https://terminalroot.com/tuios-a-terminal-window-manager/</guid>
        
        <category>terminal</category>
        
        <category>tui</category>
        
        <category>wm</category>
        
        <category>go</category>
        
        
      </item>
    
      <item>
        <title>SkiftOS: A Modern Operating System written in C++ from scratch</title>
        <description>&lt;p&gt;&lt;img src=&quot;/assets/img/cpp/skiftos.jpg&quot; alt=&quot;SkiftOS: A Modern Operating System written in C++ from scratch&quot; title=&quot;🔳 Its main goal is not to compete with Windows or Linux, but to serve as a modern platform for operating system experimentation.&quot; /&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;SkiftOS&lt;/strong&gt; is an open source operating system developed practically from scratch, without relying on a &lt;a href=&quot;https://terminalroot.com/tags#gnulinux&quot;&gt;Linux kernel&lt;/a&gt; or &lt;a href=&quot;https://terminalroot.com/tags#bsd&quot;&gt;BSD&lt;/a&gt;.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;strong&gt;Warning:&lt;/strong&gt; the developer himself states that the project is still in its early stages and &lt;strong&gt;should not be used as a primary operating system or in production&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Developed primarily in &lt;strong&gt;C++20&lt;/strong&gt;, it aims to combine:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;simplicity;&lt;/li&gt;
  &lt;li&gt;modularity;&lt;/li&gt;
  &lt;li&gt;modern design;&lt;/li&gt;
  &lt;li&gt;clean APIs;&lt;/li&gt;
  &lt;li&gt;integrated graphical interface.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Unlike many &lt;em&gt;hobby OS&lt;/em&gt; that focus only on the kernel, SkiftOS has practically its own entire stack:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Bootloader&lt;/li&gt;
  &lt;li&gt;Microkernel&lt;/li&gt;
  &lt;li&gt;Graphics framework&lt;/li&gt;
  &lt;li&gt;Standard library&lt;/li&gt;
  &lt;li&gt;UI toolkit&lt;/li&gt;
  &lt;li&gt;Desktop Environment&lt;/li&gt;
  &lt;li&gt;Native applications&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All developed specifically for the system.&lt;/p&gt;

&lt;p&gt;Main components:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Hjert: The system’s microkernel.&lt;/li&gt;
  &lt;li&gt;Karm: The project’s base library.&lt;/li&gt;
  &lt;li&gt;KarmUI: Reactive graphics framework inspired by modern technologies.&lt;/li&gt;
  &lt;li&gt;Hideo: The graphical environment (Desktop Environment).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Technologies used:&lt;/p&gt;

&lt;p&gt;The project makes use of several modern technologies:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://terminalroot.com/tags#cpp&quot;&gt;C++20&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://terminalroot.com/tags#clang&quot;&gt;LLVM/Clang&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://terminalroot.com/tags#ninja&quot;&gt;Ninja&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://terminalroot.com/tags#asm&quot;&gt;NASM&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://terminalroot.com/tags#python&quot;&gt;Python&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://terminalroot.com/tags#qemu&quot;&gt;QEMU&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;x86-64 architecture&lt;/li&gt;
  &lt;li&gt;microkernel&lt;/li&gt;
  &lt;li&gt;IPC&lt;/li&gt;
  &lt;li&gt;Capability-based Security&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;installation&quot;&gt;Installation&lt;/h2&gt;

&lt;p&gt;Currently the project does not have a traditional installer.&lt;/p&gt;

&lt;p&gt;The recommended way is to compile the system from source code.&lt;/p&gt;

&lt;p&gt;On Linux or macOS install:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Git&lt;/li&gt;
  &lt;li&gt;Clang (18+)&lt;/li&gt;
  &lt;li&gt;LLVM&lt;/li&gt;
  &lt;li&gt;Ninja&lt;/li&gt;
  &lt;li&gt;NASM&lt;/li&gt;
  &lt;li&gt;Python 3.11+&lt;/li&gt;
  &lt;li&gt;QEMU&lt;/li&gt;
  &lt;li&gt;SDL2&lt;/li&gt;
  &lt;li&gt;mtools&lt;/li&gt;
  &lt;li&gt;liburing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The official manual provides specific commands for &lt;a href=&quot;https://docs.skiftos.org/building.html&quot;&gt;Ubuntu and Arch Linux&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In short: clone the project&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;git clone https://codeberg.org/skift/os.git

&lt;span class=&quot;nb&quot;&gt;cd &lt;/span&gt;skift&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Set up the environment:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;./skift.sh tools setup&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Then check if everything was installed correctly:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;./skift.sh tools doctor&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Install dependencies:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;./skift.sh &lt;span class=&quot;nb&quot;&gt;install&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Build:&lt;/p&gt;

&lt;p&gt;To start the system in QEMU:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;./skift.sh boot&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;You can also run just the graphical shell:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;./skift.sh run &lt;span class=&quot;nt&quot;&gt;--release&lt;/span&gt; hideo-shell&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Or generate a disk image:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;./skift.sh dist &lt;span class=&quot;nt&quot;&gt;--format&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;hdd&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;usage&quot;&gt;Usage&lt;/h2&gt;

&lt;p&gt;After starting the virtual machine, the system loads its own graphical interface.&lt;/p&gt;

&lt;p&gt;Available features include:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;window manager;&lt;/li&gt;
  &lt;li&gt;terminal;&lt;/li&gt;
  &lt;li&gt;text editor;&lt;/li&gt;
  &lt;li&gt;image viewer;&lt;/li&gt;
  &lt;li&gt;native applications;&lt;/li&gt;
  &lt;li&gt;integrated desktop.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are still several limitations, as the project continues under active development.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;SkiftOS is one of the most interesting hobby OS projects today. Instead of just implementing a functional kernel, it aims to deliver a complete experience, including microkernel, standard library, graphics framework, desktop, and its own applications.&lt;/p&gt;

&lt;p&gt;For more information, visit the &lt;a href=&quot;https://codeberg.org/skift/os&quot;&gt;SkiftOS repository&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Mon, 20 Jul 2026 21:24:14 +0000</pubDate>
        <link>https://terminalroot.com/skiftos-a-modern-operating-system-written-in-cpp-from-scratch/</link>
        <guid isPermaLink="true">https://terminalroot.com/skiftos-a-modern-operating-system-written-in-cpp-from-scratch/</guid>
        
        <category>os</category>
        
        <category>cpp</category>
        
        
      </item>
    
      <item>
        <title>Meet this Open Source Launcher inspired by Raycast</title>
        <description>&lt;p&gt;&lt;img src=&quot;/assets/img/qt/vicinae.jpg&quot; alt=&quot;Meet this Open Source Launcher inspired by Raycast&quot; title=&quot;🔳 Written in C++ and Qt&quot; /&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;If you enjoy the Raycast experience but use Linux, you’ve probably already looked for a truly fast, modern, and extensible alternative. &lt;strong&gt;Vicinae&lt;/strong&gt; was created exactly with that goal in mind.&lt;/p&gt;

&lt;p&gt;Vicinae is a launcher written in &lt;a href=&quot;https://terminalroot.com.br/tags#cpp&quot;&gt;C++&lt;/a&gt; and &lt;a href=&quot;https://terminalroot.com/tags#qt&quot;&gt;Qt&lt;/a&gt;, offering native performance, low resource consumption, and compatibility with various extensions from the Raycast ecosystem available for &lt;a href=&quot;https://terminalroot.com/tags#gnulinux&quot;&gt;GNU/Linux&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Available features include:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Application search and launching&lt;/li&gt;
  &lt;li&gt;Clipboard history&lt;/li&gt;
  &lt;li&gt;File search&lt;/li&gt;
  &lt;li&gt;Built-in calculator&lt;/li&gt;
  &lt;li&gt;Emoji picker&lt;/li&gt;
  &lt;li&gt;Quick window switching&lt;/li&gt;
  &lt;li&gt;Volume control&lt;/li&gt;
  &lt;li&gt;Browser tab search&lt;/li&gt;
  &lt;li&gt;Text expansion (snippets)&lt;/li&gt;
  &lt;li&gt;Installed fonts navigation&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;installation&quot;&gt;Installation&lt;/h2&gt;
&lt;p&gt;There are several ways to install it.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;AppImage&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Download the AppImage from the project’s Releases page:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/vicinaehq/vicinae/releases&quot;&gt;Vicinae GitHub Releases&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then (example for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;x86_64&lt;/code&gt;):&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;nb&quot;&gt;chmod&lt;/span&gt; +x vicinae-vX.Y.Z.AppImage
./vicinae-vX.Y.Z.AppImage server&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;ul&gt;
  &lt;li&gt;If your system does not have FUSE support:&lt;/li&gt;
&lt;/ul&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;./vicinae-vX.Y.Z.AppImage &lt;span class=&quot;nt&quot;&gt;--appimage-extract&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;cd &lt;/span&gt;squashfs-root
./AppRun&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;ul&gt;
  &lt;li&gt;You can also download the file:&lt;/li&gt;
&lt;/ul&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;vicinae-linux-x86_64-vX.Y.Z.tar.gz&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Then:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;nb&quot;&gt;tar&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-xzf&lt;/span&gt; vicinae-linux-x86_64-vX.Y.Z.tar.gz&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Copy the executable to a directory in your &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;PATH&lt;/code&gt;, such as:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;~/.local/bin&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;usage&quot;&gt;Usage&lt;/h2&gt;

&lt;p&gt;After installation, the first step is to start the service:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;vicinae server&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;If an instance is already running:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;vicinae server &lt;span class=&quot;nt&quot;&gt;--replace&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Once the server is running, simply use the configured shortcut (or create one in your graphical environment) to open the interface.&lt;/p&gt;

&lt;p&gt;You can also control the launcher via the command line:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;vicinae open&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Close:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;vicinae close&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Toggle between open and closed:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;vicinae toggle&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h3 id=&quot;calculator&quot;&gt;Calculator&lt;/h3&gt;

&lt;p&gt;Type an expression:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;125 &lt;span class=&quot;k&quot;&gt;*&lt;/span&gt; 48&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;or&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;sqrt&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;144&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;The result appears immediately. Other features include: emoji, snippets, …&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;For more information, visit: &lt;a href=&quot;https://github.com/vicinaehq/vicinae&quot;&gt;the repository&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Fri, 17 Jul 2026 19:20:53 +0000</pubDate>
        <link>https://terminalroot.com/meet-this-open-source-launcher-inspired-by-raycast/</link>
        <guid isPermaLink="true">https://terminalroot.com/meet-this-open-source-launcher-inspired-by-raycast/</guid>
        
        <category>cpp</category>
        
        <category>qt</category>
        
        <category>gnulinux</category>
        
        
      </item>
    
      <item>
        <title>Meet This SSH Multi-Server Manager</title>
        <description>&lt;p&gt;&lt;img src=&quot;/assets/img/go/lazyssh.jpg&quot; alt=&quot;Meet This SSH Multi-Server Manager&quot; title=&quot;🔳 Written in Go.&quot; /&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;If you manage multiple servers via SSH, you should check out &lt;strong&gt;LazySSH&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It’s a &lt;a href=&quot;https://terminalroot.com/tags#terminal&quot;&gt;terminal&lt;/a&gt;-based (&lt;a href=&quot;https://terminalroot.com/tags#tui&quot;&gt;TUI&lt;/a&gt;) &lt;a href=&quot;https://terminalroot.com/tags#ssh&quot;&gt;SSH&lt;/a&gt; manager, inspired by tools like &lt;em&gt;lazydocker&lt;/em&gt; and &lt;em&gt;k9s&lt;/em&gt;, that makes it easy to navigate and manage entries in your &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;~/.ssh/config&lt;/code&gt; file.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Search by alias, IP, or tags&lt;/li&gt;
  &lt;li&gt;Pin favorite servers&lt;/li&gt;
  &lt;li&gt;Add, edit, and remove hosts directly from the interface&lt;/li&gt;
  &lt;li&gt;Ping to check availability&lt;/li&gt;
  &lt;li&gt;SSH connection with a single Enter&lt;/li&gt;
  &lt;li&gt;Sorting and filtering options&lt;/li&gt;
  &lt;li&gt;Preserves your &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;~/.ssh/config&lt;/code&gt; by creating automatic backups before making changes&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;installation&quot;&gt;Installation&lt;/h2&gt;

&lt;h3 id=&quot;homebrew-macos-and-linux&quot;&gt;Homebrew (macOS and Linux)&lt;/h3&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;brew &lt;span class=&quot;nb&quot;&gt;install &lt;/span&gt;lazyssh&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h3 id=&quot;building-with-go-linux-macos-and-windows&quot;&gt;Building with Go (Linux, macOS, and Windows)&lt;/h3&gt;
&lt;p&gt;If you already have Go installed:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;git clone https://github.com/adembc/lazyssh.git
&lt;span class=&quot;nb&quot;&gt;cd &lt;/span&gt;lazyssh
go build &lt;span class=&quot;nt&quot;&gt;-o&lt;/span&gt; lazyssh ./cmd&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Then, optionally, move the binary to a directory in your &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;PATH&lt;/code&gt;:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;nb&quot;&gt;sudo mv &lt;/span&gt;lazyssh /usr/local/bin/&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Or install it directly using:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;go &lt;span class=&quot;nb&quot;&gt;install &lt;/span&gt;github.com/Adembc/lazyssh/cmd@latest&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;usage&quot;&gt;Usage&lt;/h2&gt;

&lt;p&gt;After installation, just run:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;lazyssh&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;The program automatically reads the file:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-text&quot; data-lang=&quot;text&quot;&gt;~/.ssh/config&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;So all you need is to have your SSH hosts already configured as usual to start using it.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;For more information, visit: &lt;a href=&quot;https://github.com/adembc/lazyssh&quot;&gt;https://github.com/adembc/lazyssh&lt;/a&gt;&lt;/p&gt;
</description>
        <pubDate>Tue, 07 Jul 2026 10:30:32 +0000</pubDate>
        <link>https://terminalroot.com/meet-this-ssh-multi-server-manager/</link>
        <guid isPermaLink="true">https://terminalroot.com/meet-this-ssh-multi-server-manager/</guid>
        
        <category>go</category>
        
        <category>tui</category>
        
        <category>ssh</category>
        
        <category>terminal</category>
        
        
      </item>
    
      <item>
        <title>Easily Create Progress Bars in C</title>
        <description>&lt;p&gt;&lt;img src=&quot;/assets/img/c/c-progress-bar.jpg&quot; alt=&quot;Easily Create Progress Bars in C&quot; title=&quot;📊 A simple progress bar library for C.&quot; /&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;c_progress_bar&lt;/code&gt; is a library for &lt;a href=&quot;https://terminalroot.com.br/c&quot;&gt;C&lt;/a&gt; that helps you create:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Colorful progress bar&lt;/li&gt;
  &lt;li&gt;Estimated remaining time&lt;/li&gt;
  &lt;li&gt;Elapsed time tracking&lt;/li&gt;
  &lt;li&gt;Works with &lt;a href=&quot;https://terminalroot.com/how-to-compile-with-msvc-via-command-line/&quot;&gt;MSVC&lt;/a&gt;, &lt;a href=&quot;https://terminalroot.com/tags#clang&quot;&gt;Clang&lt;/a&gt;, and &lt;a href=&quot;https://terminalroot.com/tags#gcc&quot;&gt;GCC&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Written in C99 with minimal dependencies&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;installation&quot;&gt;Installation&lt;/h2&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;git clone https://github.com/c-modules/c_progress_bar
&lt;span class=&quot;nb&quot;&gt;cd &lt;/span&gt;c_progress_bar/
cmake &lt;span class=&quot;nb&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-B&lt;/span&gt; build
cmake &lt;span class=&quot;nt&quot;&gt;--build&lt;/span&gt; build/
&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;cmake &lt;span class=&quot;nb&quot;&gt;install &lt;/span&gt;build&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;simple-example&quot;&gt;Simple example&lt;/h2&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;c&quot;&gt;#include &amp;lt;stdint.h&amp;gt;&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;#include &amp;lt;stdio.h&amp;gt;&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;#include &amp;lt;stdlib.h&amp;gt;&lt;/span&gt;

&lt;span class=&quot;c&quot;&gt;#include &quot;c_progress_bar.h&quot;&lt;/span&gt;

&lt;span class=&quot;c&quot;&gt;#define N 1000000000&lt;/span&gt;

int main&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;void&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;
    double &lt;span class=&quot;nb&quot;&gt;sum&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; 0.0&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;

    // Setup progress bar
    CPB_Config config &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; cpb_get_default_config&lt;span class=&quot;o&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
    config.description &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;Processing&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;                // Default: &lt;span class=&quot;s2&quot;&gt;&quot;&quot;&lt;/span&gt;
    config.min_refresh_time &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; 0.1&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;                    // Minimum refresh &lt;span class=&quot;nb&quot;&gt;time &lt;/span&gt;&lt;span class=&quot;k&quot;&gt;in &lt;/span&gt;seconds. Default: 0.1.
    config.timer_remaining_time_recent_weight &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; 0.3&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;  // Weight &lt;span class=&quot;k&quot;&gt;for &lt;/span&gt;recent rate &lt;span class=&quot;k&quot;&gt;in &lt;/span&gt;remaining &lt;span class=&quot;nb&quot;&gt;time &lt;/span&gt;estimation. Range: &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;0, 1]. Default: 0.3.

    // You don&lt;span class=&quot;s1&quot;&gt;&apos;t need to modify anything for CPB_ProgressBar.
    // Just call cpb_init
    CPB_ProgressBar progress_bar;
    cpb_init(&amp;amp;progress_bar, 0, N, config);

    // Main loop
    cpb_start(&amp;amp;progress_bar);
    for (int64_t i = 0; i &amp;lt;= N; i++)
    {
        if (i % 1000 == 0)
        {
            cpb_update(&amp;amp;progress_bar, i);
        }

        sum += (i % 100) * 0.0001;
    }
    cpb_finish(&amp;amp;progress_bar);

    printf(&quot;Final result: %f\n&quot;, sum);

    return 0;
}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;hr /&gt;

&lt;p&gt;For more information, visit the &lt;a href=&quot;https://github.com/c-modules/c_progress_bar&quot;&gt;repository&lt;/a&gt;&lt;/p&gt;

</description>
        <pubDate>Sat, 09 May 2026 18:54:59 +0000</pubDate>
        <link>https://terminalroot.com/easily-create-progress-bars-in-c-language/</link>
        <guid isPermaLink="true">https://terminalroot.com/easily-create-progress-bars-in-c-language/</guid>
        
        <category>clanguage</category>
        
        <category>c</category>
        
        
      </item>
    
      <item>
        <title>Quickshell: Build Your Own Desktop on Linux</title>
        <description>&lt;p&gt;&lt;img src=&quot;/assets/img/qt/img-quick-shell-800.jpg&quot; alt=&quot;Quickshell: Build Your Own Desktop on Linux&quot; title=&quot;🔳 Instead of relying on ready-made solutions (Waybar, Polybar, ...), you create your own.&quot; /&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;Quickshell&lt;/strong&gt; is a modern toolkit built with &lt;a href=&quot;https://terminalroot.com/tags#cpp&quot;&gt;C++&lt;/a&gt; for creating desktop interface components — bars, widgets, lock screens, launchers, and even complete environments — using &lt;a href=&quot;https://terminalroot.com/tags#qt&quot;&gt;QtQuick + QML&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;It is not a “bar program”.&lt;/li&gt;
  &lt;li&gt;It is also not a complete, ready-made desktop.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is a &lt;strong&gt;foundation for building a custom desktop&lt;/strong&gt;, running alongside a compositor like Hyprland, Sway, or i3.&lt;/p&gt;

&lt;p&gt;In practice, it replaces several pieces:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;status bar&lt;/li&gt;
  &lt;li&gt;notifications&lt;/li&gt;
  &lt;li&gt;widgets&lt;/li&gt;
  &lt;li&gt;lockscreen&lt;/li&gt;
  &lt;li&gt;display manager&lt;/li&gt;
  &lt;li&gt;system controls&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;example&quot;&gt;Example&lt;/h2&gt;

&lt;p&gt;Quickshell uses:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;QtQuick (UI)&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;QML (configuration/programming)&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;Hot reload (save → instant update) ([Quickshell][2])&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Simple example (bar):&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-qml&quot; data-lang=&quot;qml&quot;&gt;&lt;span class=&quot;kt&quot;&gt;PanelWindow&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;kt&quot;&gt;anchors&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;nl&quot;&gt;top&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kc&quot;&gt;true&lt;/span&gt;
    &lt;span class=&quot;nl&quot;&gt;left&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kc&quot;&gt;true&lt;/span&gt;
    &lt;span class=&quot;nl&quot;&gt;right&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kc&quot;&gt;true&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;

  &lt;span class=&quot;nl&quot;&gt;implicitHeight&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;30&lt;/span&gt;

  &lt;span class=&quot;kt&quot;&gt;Text&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;nl&quot;&gt;anchors.centerIn&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;parent&lt;/span&gt;
    &lt;span class=&quot;nl&quot;&gt;text&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;hello world&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h3 id=&quot;native-integrations&quot;&gt;Native integrations:&lt;/h3&gt;

&lt;p&gt;One of its strengths is that it comes already integrated with the system:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Wayland + X11 (windowing)&lt;/li&gt;
  &lt;li&gt;Hyprland, i3, Sway (workspaces)&lt;/li&gt;
  &lt;li&gt;PipeWire (audio)&lt;/li&gt;
  &lt;li&gt;BlueZ (Bluetooth)&lt;/li&gt;
  &lt;li&gt;UPower (battery)&lt;/li&gt;
  &lt;li&gt;MPRIS (media players)&lt;/li&gt;
  &lt;li&gt;standard system tray&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This eliminates a lot of boilerplate.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;installation&quot;&gt;Installation&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;Arch Linux / EndeavourOS / Manjaro&lt;/li&gt;
&lt;/ul&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;yay &lt;span class=&quot;nt&quot;&gt;-S&lt;/span&gt; quickshell
&lt;span class=&quot;c&quot;&gt;### Or&lt;/span&gt;
paru &lt;span class=&quot;nt&quot;&gt;-S&lt;/span&gt; quickshell&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Or build from scratch on any system:&lt;/p&gt;

&lt;p&gt;Dependencies:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;apt &lt;span class=&quot;nb&quot;&gt;install &lt;/span&gt;cmake ninja-build qt6-base-dev qt6-declarative-dev &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
qt6-wayland wayland-protocols libpipewire-0.3-dev &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
libdbus-1-dev libxkbcommon-dev&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Clone:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;git clone https://github.com/quickshell-mirror/quickshell.git
&lt;span class=&quot;nb&quot;&gt;cd &lt;/span&gt;quickshell&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Build:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;cmake &lt;span class=&quot;nt&quot;&gt;-B&lt;/span&gt; build &lt;span class=&quot;nt&quot;&gt;-G&lt;/span&gt; Ninja
cmake &lt;span class=&quot;nt&quot;&gt;--build&lt;/span&gt; build&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Install:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;cmake &lt;span class=&quot;nt&quot;&gt;--install&lt;/span&gt; build&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Run:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;quickshell&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Configuration:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;~/.config/quickshell/main.qml&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Minimal example:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-qml&quot; data-lang=&quot;qml&quot;&gt;&lt;span class=&quot;k&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;QtQuick&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;Quickshell&lt;/span&gt;

&lt;span class=&quot;kt&quot;&gt;PanelWindow&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;nl&quot;&gt;anchors.top&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kc&quot;&gt;true&lt;/span&gt;
    &lt;span class=&quot;nl&quot;&gt;anchors.left&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kc&quot;&gt;true&lt;/span&gt;
    &lt;span class=&quot;nl&quot;&gt;anchors.right&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kc&quot;&gt;true&lt;/span&gt;
    &lt;span class=&quot;nl&quot;&gt;implicitHeight&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;30&lt;/span&gt;

    &lt;span class=&quot;kt&quot;&gt;Text&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;nl&quot;&gt;anchors.centerIn&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;parent&lt;/span&gt;
        &lt;span class=&quot;nl&quot;&gt;text&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;Quickshell is working&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;ul&gt;
  &lt;li&gt;Works best on &lt;strong&gt;Wayland&lt;/strong&gt; (Hyprland, Sway, etc.)&lt;/li&gt;
  &lt;li&gt;May be limited on X11&lt;/li&gt;
  &lt;li&gt;Still in development → bugs are normal&lt;/li&gt;
  &lt;li&gt;No config = blank screen&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;For more information, visit the &lt;a href=&quot;https://github.com/quickshell-mirror/quickshell&quot;&gt;repository&lt;/a&gt;.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;learn-qt&quot;&gt;&lt;a href=&quot;https://terminalroot.com.br/qt&quot;&gt;Learn Qt&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id=&quot;httpsterminalrootcombrqt&quot;&gt;&lt;a href=&quot;https://terminalroot.com.br/qt&quot;&gt;https://terminalroot.com.br/qt&lt;/a&gt;&lt;/h3&gt;
&lt;h2 id=&quot;complete-c-course&quot;&gt;&lt;a href=&quot;https://terminalroot.com.br/promo&quot;&gt;Complete C++ Course&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id=&quot;httpsterminalrootcombrpromo&quot;&gt;&lt;a href=&quot;https://terminalroot.com.br/promo&quot;&gt;https://terminalroot.com.br/promo&lt;/a&gt;&lt;/h3&gt;
</description>
        <pubDate>Wed, 06 May 2026 09:37:06 +0000</pubDate>
        <link>https://terminalroot.com/quickshell-build-your-own-desktop-on-linux/</link>
        <guid isPermaLink="true">https://terminalroot.com/quickshell-build-your-own-desktop-on-linux/</guid>
        
        <category>cpp</category>
        
        <category>qt</category>
        
        <category>gnulinux</category>
        
        
      </item>
    
      <item>
        <title>Meet this modern docking framework for JavaFX</title>
        <description>&lt;p&gt;&lt;img src=&quot;/assets/img/java/the-snapfx.png&quot; alt=&quot;Meet this modern docking framework for JavaFX&quot; title=&quot;☕ Build IDE-style layouts in JavaFX without limitations or workarounds.&quot; /&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;SnapFX&lt;/strong&gt; is a &lt;strong&gt;docking framework for JavaFX&lt;/strong&gt;, focused on creating flexible interfaces in the style of:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;IntelliJ / VS Code&lt;/li&gt;
  &lt;li&gt;IDEs in general&lt;/li&gt;
  &lt;li&gt;tools with multiple panels&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Lightweight and modern, designed for dynamic and organized layouts, without you having to reinvent drag &amp;amp; drop for windows.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;installation&quot;&gt;Installation&lt;/h2&gt;
&lt;p&gt;Via &lt;a href=&quot;https://terminalroot.com.br/2023/05/como-utilizar-o-gradle.html&quot;&gt;Gradle&lt;/a&gt;&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;implementation&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;org.snapfx:snapfx-core:&amp;lt;version&amp;gt;&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Build:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;git clone https://github.com/Beowolve/SnapFX.git
./gradlew publishToMavenLocal&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Simple Example:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-java&quot; data-lang=&quot;java&quot;&gt;&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;org.snapfx.SnapFX&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;javafx.application.Application&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;javafx.scene.Scene&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;javafx.scene.control.TextArea&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;javafx.stage.Stage&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;kd&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;SimpleDemo&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;extends&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;Application&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;nd&quot;&gt;@Override&lt;/span&gt;
    &lt;span class=&quot;kd&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;start&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nc&quot;&gt;Stage&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;stage&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;nc&quot;&gt;SnapFX&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;snapFX&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;SnapFX&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;();&lt;/span&gt;

        &lt;span class=&quot;c1&quot;&gt;// Dock nodes&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;snapFX&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;dock&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;TextArea&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Editor 1&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;Editor&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;);&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;snapFX&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;dock&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;TextArea&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Console&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;Console&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;);&lt;/span&gt;

        &lt;span class=&quot;c1&quot;&gt;// Build layout&lt;/span&gt;
        &lt;span class=&quot;nc&quot;&gt;Scene&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;scene&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;Scene&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;snapFX&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;buildLayout&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(),&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;800&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;600&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;);&lt;/span&gt;

        &lt;span class=&quot;n&quot;&gt;stage&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;setScene&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;scene&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;);&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;snapFX&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;initialize&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;stage&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;);&lt;/span&gt;
        &lt;span class=&quot;c1&quot;&gt;// Optional: switch theme at runtime via named catalog entry&lt;/span&gt;
        &lt;span class=&quot;c1&quot;&gt;// snapFX.setThemeStylesheet(SnapFX.getAvailableThemeStylesheets().get(&quot;Dark&quot;));&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;stage&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;show&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;();&lt;/span&gt;
    &lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;hr /&gt;

&lt;p&gt;For more information, visit the &lt;a href=&quot;https://github.com/Beowolve/SnapFX&quot;&gt;repository&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Wed, 06 May 2026 09:03:00 +0000</pubDate>
        <link>https://terminalroot.com/meet-this-modern-docking-framework-for-javafx/</link>
        <guid isPermaLink="true">https://terminalroot.com/meet-this-modern-docking-framework-for-javafx/</guid>
        
        <category>java</category>
        
        
      </item>
    
      <item>
        <title>Route application traffic via command line</title>
        <description>&lt;p&gt;&lt;img src=&quot;/assets/img/go/tori-cli.jpg&quot; alt=&quot;Route application traffic via command line&quot; title=&quot;A tool designed for use with the Tor network.&quot; /&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;toricli.sh&lt;/strong&gt; is a tool written in &lt;a href=&quot;https://terminalroot.com/tags#go&quot;&gt;Go&lt;/a&gt;, focused on making it easy to route application traffic via the command line. The goal is to simplify the use of anonymization on Linux without relying on complex configurations.&lt;/p&gt;

&lt;p&gt;It falls into the same category as tools like &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;torsocks&lt;/code&gt;, but with a more direct and automated approach.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;installation&quot;&gt;Installation&lt;/h2&gt;
&lt;blockquote&gt;
  &lt;p&gt;For &lt;a href=&quot;https://terminalroot.com/tags#windows&quot;&gt;Windows&lt;/a&gt;, use &lt;a href=&quot;https://learn.microsoft.com/en-us/windows/wsl/install&quot;&gt;WSL&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;c&quot;&gt;# systemd&lt;/span&gt;
curl &lt;span class=&quot;nt&quot;&gt;-fsSL&lt;/span&gt; https://raw.githubusercontent.com/thobiasn/tori-cli/main/deploy/install.sh | &lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;sh

&lt;span class=&quot;c&quot;&gt;# Arch&lt;/span&gt;
yay &lt;span class=&quot;nt&quot;&gt;-S&lt;/span&gt; tori-cli-bin

&lt;span class=&quot;c&quot;&gt;# macOS&lt;/span&gt;
curl &lt;span class=&quot;nt&quot;&gt;-fsSL&lt;/span&gt; https://raw.githubusercontent.com/thobiasn/tori-cli/main/deploy/install.sh | sh &lt;span class=&quot;nt&quot;&gt;-s&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;--&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;--client&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Docker:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;docker run &lt;span class=&quot;nt&quot;&gt;-d&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;--name&lt;/span&gt; tori &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;--restart&lt;/span&gt; unless-stopped &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;--pid&lt;/span&gt; host &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;-v&lt;/span&gt; /var/run/docker.sock:/var/run/docker.sock:ro &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;-v&lt;/span&gt; /proc:/host/proc:ro &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;-v&lt;/span&gt; /sys:/host/sys:ro &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;-v&lt;/span&gt; /run/tori:/run/tori &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;-v&lt;/span&gt; tori-data:/var/lib/tori &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;-v&lt;/span&gt; ./config.toml:/etc/tori/config.toml:ro &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
  ghcr.io/thobiasn/tori-cli:latest&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h2 id=&quot;usage-example&quot;&gt;Usage example&lt;/h2&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;toricli curl example.com&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;And the traffic is anonymized.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;For more information, visit: &lt;a href=&quot;https://toricli.sh/&quot;&gt;https://toricli.sh/&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Wed, 15 Apr 2026 22:03:23 +0000</pubDate>
        <link>https://terminalroot.com/route-application-traffic-via-command-line/</link>
        <guid isPermaLink="true">https://terminalroot.com/route-application-traffic-via-command-line/</guid>
        
        <category>network</category>
        
        <category>go</category>
        
        <category>terminal</category>
        
        
      </item>
    
      <item>
        <title>Pyrite64, a Modern Engine for Nintendo 64</title>
        <description>&lt;p&gt;&lt;img src=&quot;/assets/img/gamedev/pyrite64.jpg&quot; alt=&quot;Pyrite64, a Modern Engine for Nintendo 64&quot; title=&quot;Despite having &apos;Py&apos; in its name, this engine uses C++ or C for development (scripting).&quot; /&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;Pyrite64&lt;/strong&gt; is an open-source engine + visual editor for creating &lt;strong&gt;native 3D Nintendo 64 games&lt;/strong&gt; — not “N64-style”, but games that actually run on original hardware or accurate emulators. For development (scripting) with &lt;a href=&quot;https://terminalroot.com/tags#cpp&quot;&gt;C++&lt;/a&gt; or &lt;a href=&quot;https://terminalroot.com/tags#clanguage&quot;&gt;C&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What’s the idea?&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Replace the old workflow (confusing SDKs + broken toolchains)&lt;/li&gt;
  &lt;li&gt;Bring something closer to Unity/Godot, but focused on the N64&lt;/li&gt;
  &lt;li&gt;Generate real ROMs compatible with the console&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Features:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Visual editor with scene management&lt;/li&gt;
  &lt;li&gt;Model import (GLTF / Blender + Fast64)&lt;/li&gt;
  &lt;li&gt;Node graph (basic visual scripting)&lt;/li&gt;
  &lt;li&gt;Runtime engine (rendering, collision, audio, etc.)&lt;/li&gt;
  &lt;li&gt;HDR + bloom adapted for N64&lt;/li&gt;
  &lt;li&gt;Asset manager with automatic cleanup ([AlternativeTo][2])&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;installation&quot;&gt;Installation&lt;/h2&gt;

&lt;h3 id=&quot;windows&quot;&gt;&lt;a href=&quot;https://terminalroot.com/tags#windows&quot;&gt;Windows&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The project itself automates almost everything.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Download the release (or clone the repo)&lt;/li&gt;
  &lt;li&gt;Run the editor&lt;/li&gt;
  &lt;li&gt;It automatically installs everything:&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&quot;gnulinux&quot;&gt;&lt;a href=&quot;https://terminalroot.com/tags#gnulinux&quot;&gt;GNU/Linux&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;Dependencies:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://terminalroot.com/tags#gcc&quot;&gt;GCC&lt;/a&gt;/&lt;a href=&quot;https://terminalroot.com/tags#llvm&quot;&gt;Clang&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://terminalroot.com/tags#cmake&quot;&gt;CMake&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Basic &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;build&lt;/code&gt; libs&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;libdragon&lt;/code&gt; toolchain&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then just clone, compile, and install&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;git clone https://github.com/HailToDodongo/pyrite64
&lt;span class=&quot;nb&quot;&gt;cd &lt;/span&gt;pyrite64
&lt;span class=&quot;nb&quot;&gt;mkdir &lt;/span&gt;build &lt;span class=&quot;o&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;cd &lt;/span&gt;build
cmake ..
make
&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;make &lt;span class=&quot;nb&quot;&gt;install&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;getting-started&quot;&gt;Getting Started&lt;/h2&gt;

&lt;ol&gt;
  &lt;li&gt;Create a project&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Inside the editor:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;New Project&lt;/li&gt;
  &lt;li&gt;Set name + folder&lt;/li&gt;
  &lt;li&gt;It creates the structure with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;project.p64proj&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;ol&gt;
  &lt;li&gt;Configure toolchain + emulator&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;File:&lt;/p&gt;

&lt;div class=&quot;language-json highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;err&quot;&gt;project.p&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;64&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;proj&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Important fields:&lt;/p&gt;

&lt;div class=&quot;language-json highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nl&quot;&gt;&quot;pathEmu&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;ares&quot;&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;pathN64Inst&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;/path/to/toolchain&quot;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pathEmu&lt;/code&gt; → emulator command&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pathN64Inst&lt;/code&gt; → toolchain root ([Instagit][3])&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;ol&gt;
  &lt;li&gt;Import assets&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Typical workflow:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Model in Blender&lt;/li&gt;
  &lt;li&gt;Export GLTF&lt;/li&gt;
  &lt;li&gt;Import into the editor&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
  &lt;li&gt;Build the scene&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
  &lt;li&gt;Add objects&lt;/li&gt;
  &lt;li&gt;Adjust transforms&lt;/li&gt;
  &lt;li&gt;Define materials&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;ol&gt;
  &lt;li&gt;Game logic&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Two options:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Node graph (visual)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://terminalroot.com/tags#cpp&quot;&gt;C++&lt;/a&gt; (more control)&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
  &lt;li&gt;Build and run&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
  &lt;li&gt;“Run” button&lt;/li&gt;
  &lt;li&gt;Generates ROM&lt;/li&gt;
  &lt;li&gt;Opens automatically in the emulator&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;For more information, visit the &lt;a href=&quot;https://hailtododongo.github.io/pyrite64/docs/faq.html#do-i-need-to-know-programming&quot;&gt;official website with FAQ&lt;/a&gt;.&lt;/p&gt;

</description>
        <pubDate>Sun, 12 Apr 2026 22:11:56 +0000</pubDate>
        <link>https://terminalroot.com/pyrite64-a-modern-engine-for-nintendo-64/</link>
        <guid isPermaLink="true">https://terminalroot.com/pyrite64-a-modern-engine-for-nintendo-64/</guid>
        
        <category>gamedev</category>
        
        <category>cpp</category>
        
        <category>clanguage</category>
        
        
      </item>
    
  </channel>
</rss>
