{"id":11,"date":"2026-07-23T08:50:10","date_gmt":"2026-07-23T06:50:10","guid":{"rendered":"https:\/\/linuxundich.de\/en\/?p=11"},"modified":"2026-10-03T16:58:36","modified_gmt":"2026-10-03T14:58:36","slug":"rutile-0-2-2-a-modern-alternative-to-tilix","status":"publish","type":"post","link":"https:\/\/linuxundich.de\/en\/gnu-linux\/rutile-0-2-2-a-modern-alternative-to-tilix\/","title":{"rendered":"Rutile 0.2.2 \u2013 A Modern Alternative to Tilix"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">For many years, <a href=\"https:\/\/github.com\/gnunn1\/tilix\">Tilix<\/a> has been one of those terminal programs <a href=\"https:\/\/linuxundich.de\/gnu-linux\/bug-jaeger-vs-terminal-entwickler-aus-terminix-wird-tilix\/\" data-type=\"post\" data-id=\"40376\">I keep installing again and again<\/a>. Being able to split the terminal area however I like and manage several shells at the same time has made my daily work a lot easier. Unfortunately, the project is hardly maintained anymore and is still based on GTK3 and VTE3.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That&#8217;s why <a href=\"https:\/\/github.com\/yatoub\/Rutile\">Rutile<\/a> is an interesting project to watch. The developers aren&#8217;t simply continuing Tilix. They are rebuilding the terminal emulator completely in Rust, while keeping the same way of working. The goal isn&#8217;t to reinvent anything, but to create a modern implementation that fits right into current GNOME systems with GTK4 and libadwaita.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">A proven concept on a modern foundation<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Many terminal emulators differ mainly in how they look or in a few minor extra features. Rutile takes a different approach. The goal is to carry over the way Tilix works as completely as possible and put it on a modern technical foundation. Existing users should feel at home right away.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ac177279e4ef&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ac177279e4ef\" class=\"wp-block-image wp-lightbox-container\"><img decoding=\"async\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/linuxundich.de\/wp-content\/uploads\/2026\/07\/rutile-01-1280x817.webp\" alt=\"The Rutile terminal emulator on GNOME on Arch Linux with several open terminals showing system information, file listings and CPU usage.\" style=\"width:100%\"\/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><figcaption class=\"wp-element-caption\">The buttons let you create new terminal panes horizontally or vertically. The controls deliberately follow the familiar Tilix concept.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The app uses GTK4, libadwaita and VTE4, so it benefits from current libraries of the <a href=\"https:\/\/linuxundich.de\/tag\/gnome\/\" data-type=\"post_tag\" data-id=\"1734\">GNOME desktop<\/a>. At the same time, the developers have chosen Rust as the programming language. In the long run, that promises a more maintainable codebase and makes it possible to build new features on a modern architecture.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Flexible terminal splitting<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Rutile takes its most important feature straight from Tilix. You can split the terminal window recursively, both horizontally and vertically, and every pane can be split again. That gives you flexibly nested workspaces, without the app being locked into a fixed grid or a particular window layout.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In everyday use, this way of working has plenty of advantages. On the left, for example, you can watch log files while several servers or containers are open on the right. You switch between the individual panes comfortably with the keyboard. That saves mouse movements and keeps things flowing when you&#8217;re working on more complex tasks.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Other terminals like <a href=\"https:\/\/ghostty.org\/\">Ghostty<\/a> offer this feature too, but you have to memorize key combinations for it. Alternatively, you can of course use a terminal multiplexer like <a href=\"https:\/\/github.com\/tmux\/tmux\/wiki\">tmux<\/a>. The same applies there, though. Even if it&#8217;s not a lot of key combinations: personally, I simply want buttons for this.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Multiple independent sessions<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Besides the freely splittable terminal panes, Rutile supports multiple separate sessions. Each session has its own window layout and its own working context. That way you can keep different projects or tasks neatly apart without having to open several program windows.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You switch between sessions either with a keyboard shortcut or through a sidebar. The sidebar shows small thumbnails of each working environment and is hidden by default. If you need it, just show it from the toolbar, and you&#8217;ll find it easier to keep track of things even with lots of open sessions.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Synchronized input<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">One feature I find especially handy is synchronized input. When you enable it, Rutile sends every keystroke to several terminal panes in a session at the same time. That saves a lot of time when you need to run identical commands on several servers or virtual machines.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ac177279eceb&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ac177279eceb\" class=\"wp-block-image wp-lightbox-container\"><img decoding=\"async\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/linuxundich.de\/wp-content\/uploads\/2026\/07\/rutile-02-1280x817.webp\" alt=\"Two terminal windows side by side showing Linux commands and file listings, with a dropdown menu in the left window offering options for splitting horizontally and vertically as well as synchronized input.\" style=\"width:100%\"\/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><figcaption class=\"wp-element-caption\">Synchronized input lets you run identical commands on several servers, containers, or virtual machines at the same time. You can exclude individual panes.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">You can exclude individual terminal panes from the shared input at any time. That way, specific systems can get different commands without you having to turn off synchronization completely. Still, a bit of caution is a good idea, because a faulty command will otherwise run on all connected systems at the same time, too.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Familiar Controls<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The keyboard shortcuts also follow the original closely. With <kbd>Ctrl<\/kbd>+<kbd>Shift<\/kbd>+<kbd>O<\/kbd> and <kbd>Ctrl<\/kbd>+<kbd>Shift<\/kbd>+<kbd>E<\/kbd> you split the window horizontally or vertically. <kbd>Ctrl<\/kbd>+<kbd>Shift<\/kbd>+<kbd>W<\/kbd> closes the active pane, while the arrow keys switch between the individual terminal panes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You open new sessions with <kbd>Ctrl<\/kbd>+<kbd>Shift<\/kbd>+<kbd>T<\/kbd>. To switch between existing sessions, press <kbd>Ctrl<\/kbd>+<kbd>Shift<\/kbd>+<kbd>Page Up<\/kbd> or <kbd>Page Down<\/kbd>. If you prefer working with the mouse, you can also reach the same functions through the toolbar or the context menu of each terminal pane.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Still in an early stage of development<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Rutile is still at the very beginning of its development. The first version deliberately focuses on the most important features. Things like a Quake mode, saving complete sessions, desktop notifications, or Nautilus integration are meant to come later, once the existing features work reliably.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ac17727a0bee&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ac17727a0bee\" class=\"wp-block-image size-large wp-lightbox-container\"><img decoding=\"async\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/linuxundich.de\/wp-content\/uploads\/2026\/07\/rutile-03-1280x817.webp\" alt=\"Screenshot of the Rutile terminal with an ASCII art logo and an open settings window showing the text 'Coming later' and hints at future theme variants.\" class=\"wp-image-45273\" style=\"width:100%\"\/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><figcaption class=\"wp-element-caption\">Many features are already there. According to the roadmap, though, some settings and convenience features won&#8217;t be added until later versions.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">I think this is a sensible approach. Instead of shipping as many features as possible early on, the project first concentrates on a stable core. Especially with tools that many users rely on every day, reliability and a consistent way of working matter more than a long feature list.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">What is really missing right now are translations. Some dialogs currently show up only in French. You also can&#8217;t change the terminal colors directly in the settings yet. The default color scheme makes programs like Midnight Commander hard to read in places. That said, the current version of Rutile was only released a few days ago, so I expect something will happen here soon.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Installation<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">On Arch Linux, Rutile is available in the AUR both as a source package and as a precompiled version. For Debian, Ubuntu, and Fedora, the developers provide ready-made DEB and RPM packages. You can also download a standalone binary, as long as the required GTK4 components are already installed. All the installation details are on the <a href=\"https:\/\/github.com\/yatoub\/Rutile#installation\" data-type=\"link\" data-id=\"https:\/\/github.com\/yatoub\/Rutile#installation\">project&#8217;s GitHub page<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you have been using Tilix for years and want to move to a modern GTK4 foundation, you should keep an eye on Rutile. A few features are still missing, but what I have seen of its development so far looks very promising. The project has a clear focus and could grow into a worthy successor to Tilix.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Rutile is a new terminal emulator for GNOME that brings Tilix&#8217;s proven way of working to GTK4, libadwaita, and Rust. The project is still in an early stage of development, but it already offers recursive terminal splits, multiple sessions, and synchronized input for getting real work done.<\/p>\n","protected":false},"author":2,"featured_media":10,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"lui_source_id":45269,"lui_source_hash":"8dd9387bb8bb00b554d0f1abe97c55ad6eb9b844502e2ed7b47b507912cf3768","lui_source_translated":"2026-10-03","lui_source_reviewed":true,"lui_via_url":"","lui_via_label":"","lui_source_url":"","lui_source_label":"","footnotes":""},"categories":[2],"tags":[],"class_list":["post-11","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-gnu-linux"],"_links":{"self":[{"href":"https:\/\/linuxundich.de\/en\/wp-json\/wp\/v2\/posts\/11","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/linuxundich.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/linuxundich.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/linuxundich.de\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/linuxundich.de\/en\/wp-json\/wp\/v2\/comments?post=11"}],"version-history":[{"count":1,"href":"https:\/\/linuxundich.de\/en\/wp-json\/wp\/v2\/posts\/11\/revisions"}],"predecessor-version":[{"id":48,"href":"https:\/\/linuxundich.de\/en\/wp-json\/wp\/v2\/posts\/11\/revisions\/48"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/linuxundich.de\/en\/wp-json\/wp\/v2\/media\/10"}],"wp:attachment":[{"href":"https:\/\/linuxundich.de\/en\/wp-json\/wp\/v2\/media?parent=11"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/linuxundich.de\/en\/wp-json\/wp\/v2\/categories?post=11"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/linuxundich.de\/en\/wp-json\/wp\/v2\/tags?post=11"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}