{"id":302,"date":"2026-10-28T09:37:14","date_gmt":"2026-10-28T08:37:14","guid":{"rendered":"https:\/\/linuxundich.de\/en\/?p=302"},"modified":"2026-10-28T09:37:14","modified_gmt":"2026-10-28T08:37:14","slug":"ghostty-1-4-linux-terminal","status":"publish","type":"post","link":"https:\/\/linuxundich.de\/en\/ghostty-1-4-linux-terminal\/","title":{"rendered":"Ghostty 1.4: Leaner Linux terminal with drag-and-drop splits"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">For a long time, <a href=\"https:\/\/gnunn1.github.io\/tilix-web\/\">Tilix<\/a> was my terminal on Linux. Splitting one window into several terminals without bothering with <a href=\"https:\/\/github.com\/tmux\/tmux\/wiki\">Tmux<\/a> or <a href=\"https:\/\/zellij.dev\/\">Zellij<\/a> is just nice. But Tilix depends on old libraries and has become a pain to build from the AUR on Arch Linux. Yes, it still works. But compiling gtkd, its binding to GTK 3, takes what feels like forever.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So I&#8217;m glad there&#8217;s <a href=\"https:\/\/ghostty.org\/\">Ghostty<\/a>, a modern terminal with tiling built on GTK 4 and libadwaita. On my machine, it has replaced Tilix, which I introduced back in 2016 under its old name <a href=\"https:\/\/linuxundich.de\/terminix-gtk3-terminal-mit-tiling-funktion-dragdrop-und-transparenz\/\">Terminix<\/a> (in German). I covered Ghostty in depth in the German magazine LinuxUser, issue 06\/2026. Now version 1.4 is out, and it brings quite a few changes that matter to Linux users in particular.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ae1e2111a120&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ae1e2111a120\" class=\"wp-block-image wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" height=\"720\" sizes=\"auto, (max-width: 781px) 100vw, 680px\" srcset=\"https:\/\/linuxundich.de\/wp-content\/uploads\/2026\/10\/01-ghostty-splits-640x360.webp 640w, https:\/\/linuxundich.de\/wp-content\/uploads\/2026\/10\/01-ghostty-splits-768x432.webp 768w, https:\/\/linuxundich.de\/wp-content\/uploads\/2026\/10\/01-ghostty-splits.webp 1280w\" width=\"1280\" 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\/10\/01-ghostty-splits.webp\" alt=\"Ghostty window on the GNOME desktop with four splits: Fastfetch, htop, a Git log and Midnight Commander\"\/><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\">Ghostty splits one window into as many terminals as you like, here with Fastfetch, htop, a Git log and Midnight Commander.<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">What is Ghostty?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If you haven&#8217;t come across Ghostty yet: the terminal comes from Mitchell Hashimoto, whom many of you will know as the founder of HashiCorp (Vagrant, Terraform). Ghostty aims to be fast and feature-rich while still feeling like a regular desktop app. On Linux, it uses GTK 4 for that and fits in nicely with GNOME. Ghostty is free software under the MIT license.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tabs, splits and an overview of all open tabs come built in. You open new splits with <code>Ctrl<\/code>+<code>Shift<\/code>+<code>O<\/code> to the right and with <code>Ctrl<\/code>+<code>Shift<\/code>+<code>E<\/code> below. What you won&#8217;t find is a menu bar with settings dialogs. You configure Ghostty in the text file <code>~\/.config\/ghostty\/config<\/code>. On top of that, programs running in Ghostty can show images right in the terminal, for example as a preview in a file manager.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Less memory for weaker machines<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ghostty 1.4 compresses the scrollback whenever nothing is happening in the terminal. According to the developers, it then needs 70 to 90 percent less memory. Most people won&#8217;t notice that in everyday use. But if you want to squeeze the most out of a weaker machine, or you work with huge files and output, you also need a terminal that goes easy on resources.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">At the same time, Ghostty now remembers more. The project raises the scrollback per terminal from 10 to 50 MB, so you can scroll back a lot further. When you scroll or search, Ghostty quietly decompresses the data again. Compression is available on 64-bit Linux and macOS. If you don&#8217;t want it, turn it off with <code>scrollback-compression = false<\/code>. By the way, Ghostty itself tells you what an option does.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ae1e2111a4bf&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ae1e2111a4bf\" class=\"wp-block-image wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" height=\"720\" sizes=\"auto, (max-width: 781px) 100vw, 680px\" srcset=\"https:\/\/linuxundich.de\/wp-content\/uploads\/2026\/10\/06-ghostty-explain-config-640x360.webp 640w, https:\/\/linuxundich.de\/wp-content\/uploads\/2026\/10\/06-ghostty-explain-config-768x432.webp 768w, https:\/\/linuxundich.de\/wp-content\/uploads\/2026\/10\/06-ghostty-explain-config.webp 1280w\" width=\"1280\" 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\/10\/06-ghostty-explain-config.webp\" alt=\"Ghostty shows the explanation of the scrollback-compression option in a pager, with the tab bar showing three tabs above it\"\/><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\">With ghostty +explain-config, Ghostty explains an option right in the terminal, here the new scrollback compression.<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Sharper text with fractional scaling<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If your monitor runs at 125 or 150 percent scaling, you&#8217;ll probably like the next change. Until now, text in Ghostty looked slightly blurry at those values. With 1.4, text and box-drawing characters are crisp there too. To get there, the project rewrote how Ghostty draws on Linux. Tearing, the kind you might see while scrolling, should be pretty much gone as well.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The rewrite comes at a price, though. Ghostty 1.4 needs at least GTK 4.18 and libadwaita 1.7, which is no problem on an up-to-date Arch Linux. Ubuntu 24.04 LTS, on the other hand, ships versions that are too old. If you&#8217;re still on that LTS, the developers recommend sticking with an older Ghostty release or using a Flatpak.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Moving splits with the mouse<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If you work with splits a lot, you&#8217;ll like this one: you can now rearrange splits with the mouse. Move the pointer to the top edge of a split, and a handle with three dots appears. Drag it onto another split, and a blue area shows where it will land. This works across tabs and windows, too. Running programs, output and the working directory move along with it.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ae1e2111a782&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ae1e2111a782\" class=\"wp-block-image wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" height=\"720\" sizes=\"auto, (max-width: 781px) 100vw, 680px\" srcset=\"https:\/\/linuxundich.de\/wp-content\/uploads\/2026\/10\/02-ghostty-split-verschieben-640x360.webp 640w, https:\/\/linuxundich.de\/wp-content\/uploads\/2026\/10\/02-ghostty-split-verschieben-768x432.webp 768w, https:\/\/linuxundich.de\/wp-content\/uploads\/2026\/10\/02-ghostty-split-verschieben.webp 1280w\" width=\"1280\" 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\/10\/02-ghostty-split-verschieben.webp\" alt=\"Ghostty while moving the htop split, the left half of the Git log split is highlighted in blue as the drop target\"\/><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\">When you drag a split by its handle over another one, a blue area shows where it will land once you let go.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">That way, you can move a running htop from the bottom to the left without restarting it. On Linux, though, you can only drop a split onto another split, not into a new tab or window of its own. Whole tabs, on the other hand, can be moved to a new window through the command palette. If the handle bothers you, hide it with <code>drag-handle = never<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Naming windows and a fully localized command palette<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">With several Ghostty windows open for different projects, it&#8217;s easy to lose track. That&#8217;s why you can now rename windows from the menu, say to &#8220;Blog&#8221; or &#8220;Server&#8221;. Leave the field in the dialog empty, and Ghostty goes back to the automatic title. The command palette is now fully translated as well. In my German setup, it shows every action in German and, where there is one, the matching shortcut.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ae1e2111a9ea&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ae1e2111a9ea\" class=\"wp-block-image wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" height=\"720\" sizes=\"auto, (max-width: 781px) 100vw, 680px\" srcset=\"https:\/\/linuxundich.de\/wp-content\/uploads\/2026\/10\/04-ghostty-fenstertitel-640x360.webp 640w, https:\/\/linuxundich.de\/wp-content\/uploads\/2026\/10\/04-ghostty-fenstertitel-768x432.webp 768w, https:\/\/linuxundich.de\/wp-content\/uploads\/2026\/10\/04-ghostty-fenstertitel.webp 1280w\" width=\"1280\" 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\/10\/04-ghostty-fenstertitel.webp\" alt=\"Ghostty with the Change Window Title (Fenstertitel \u00e4ndern) dialog over Yazi, the input field reads Hintergr\u00fcnde sichten\"\/><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\">From the menu, you give a Ghostty window a title of its own, here for a look through the GNOME wallpapers (German interface).<\/figcaption><\/figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ae1e2111ab6d&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ae1e2111ab6d\" class=\"wp-block-image wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" height=\"720\" sizes=\"auto, (max-width: 781px) 100vw, 680px\" srcset=\"https:\/\/linuxundich.de\/wp-content\/uploads\/2026\/10\/05-ghostty-befehlspalette-640x360.webp 640w, https:\/\/linuxundich.de\/wp-content\/uploads\/2026\/10\/05-ghostty-befehlspalette-768x432.webp 768w, https:\/\/linuxundich.de\/wp-content\/uploads\/2026\/10\/05-ghostty-befehlspalette.webp 1280w\" width=\"1280\" 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\/10\/05-ghostty-befehlspalette.webp\" alt=\"Ghostty's command palette with the search term tab, the highlighted entry is Move Tab to New Window (Tab in neues Fenster verschieben)\"\/><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 command palette is now fully translated and also lists the new action for moving a tab to its own window (German interface).<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Handy if you like a drop-down terminal in the style of Guake: the new command <code>ghostty +toggle-quick-terminal<\/code> shows and hides Ghostty&#8217;s quick terminal, for example from a shortcut of your own. That works on Plasma, Sway or Hyprland, but not on GNOME, which lacks the interface it needs. Also new: you can choose the screen the quick terminal appears on.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Images in the terminal and more speed<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Programs can show images in Ghostty through the <a href=\"https:\/\/sw.kovidgoyal.net\/kitty\/graphics-protocol\/\">Kitty graphics protocol<\/a>. With 1.4, Ghostty supports the protocol completely, including animated images, and loads large graphics noticeably faster. Terminal file managers such as <a href=\"https:\/\/yazi-rs.github.io\/\">Yazi<\/a> or <a href=\"https:\/\/linuxundich.de\/en\/tfm-a-modern-file-manager-for-the-terminal\/\">Tfm<\/a> benefit from this, since they show images right in their preview. That way you find the right photo without opening an image viewer first.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ae1e2111adb1&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ae1e2111adb1\" class=\"wp-block-image wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" height=\"720\" sizes=\"auto, (max-width: 781px) 100vw, 680px\" srcset=\"https:\/\/linuxundich.de\/wp-content\/uploads\/2026\/10\/03-ghostty-yazi-bildvorschau-640x360.webp 640w, https:\/\/linuxundich.de\/wp-content\/uploads\/2026\/10\/03-ghostty-yazi-bildvorschau-768x432.webp 768w, https:\/\/linuxundich.de\/wp-content\/uploads\/2026\/10\/03-ghostty-yazi-bildvorschau.webp 1280w\" width=\"1280\" 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\/10\/03-ghostty-yazi-bildvorschau.webp\" alt=\"Ghostty with the Yazi file manager in the folder \/usr\/share\/backgrounds\/gnome, on the right the preview of the wallpaper fold-l.jxl\"\/><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 Yazi file manager shows a preview of the GNOME wallpapers in Ghostty, made possible by the Kitty graphics protocol.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Ghostty has become faster elsewhere, too. According to the project&#8217;s measurements, the terminal processes plain text 5.7 times as fast as before. You&#8217;ll notice that when a build or a log writes lots of lines to the terminal. Resizing the window with a long scrollback is supposed to be up to six times quicker. Some of the other numbers in the release notes only apply to macOS, though.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">No more error messages over SSH<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If you log in to a server over SSH from Ghostty, you may know errors like &#8220;missing or unsuitable terminal: xterm-ghostty&#8221;. Programs like htop or nano then don&#8217;t work properly on the server, because the server doesn&#8217;t know Ghostty. New is the command <code>ghostty +ssh<\/code>, which hands the server the information it needs when necessary. If that fails, it falls back to a compatible setting.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ ghostty +ssh user@server<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">There&#8217;s also a security reason to update. Ghostty 1.4 fixes ten vulnerabilities. Among other things, crafted graphics commands could crash the terminal. On top of that, you could trick the paste protection, which is supposed to warn you before multi-line commands run by accident right away. Some of the vulnerabilities only affect macOS or Zsh as your shell, though.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Watch out for shortcuts and copying<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A few changes break old behavior. On Linux, <code>Ctrl<\/code>+<code>Shift<\/code>+<code>Page Up<\/code> and <code>Ctrl<\/code>+<code>Shift<\/code>+<code>Page Down<\/code> now move tabs. To jump to the previous or next prompt, use <code>Ctrl<\/code>+<code>Shift<\/code>+<code>Up<\/code> and <code>Ctrl<\/code>+<code>Shift<\/code>+<code>Down<\/code> instead. Programs running in the terminal no longer see these key combinations. If you need them there, remove the binding again with <code>unbind<\/code> in the configuration.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you&#8217;ve set Ghostty to copy selected text automatically, you should also take a look at your configuration. With <code>copy-on-select = clipboard<\/code>, the selection now only ends up in the regular clipboard. If you want to keep pasting it with the middle mouse button as before, change the value to <code>both<\/code>. What the middle mouse button pastes is set by <code>middle-click-action<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">libghostty: Ghostty is coming to other programs<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">In the <a href=\"https:\/\/news.ycombinator.com\/item?id=50261998\">discussion on Hacker News<\/a> about the release, Mitchell Hashimoto points to libghostty. The library contains Ghostty&#8217;s core, meaning everything that makes up a terminal on the inside. Other programs can use it instead of writing their own terminal. Hashimoto jokingly calls Ghostty itself &#8220;just a glorified tech demo for libghostty&#8221;.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For you, this means Ghostty&#8217;s technology is gradually showing up in other programs. The terminals in JetBrains&#8217; IDEs already run on it, and a switch is being discussed for Neovim. And a <a href=\"https:\/\/news.ycombinator.com\/item?id=50265788\">KDE developer is building a new terminal<\/a> based on libghostty that could eventually succeed Konsole. Version 1.0 of the library is expected in the next few months.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Installation<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">On Arch Linux, Ghostty is in the Extra repository, though at the time of writing still at version 1.3.1. Version 1.4 should follow there in the next few days. Besides the terminal itself, you should also install the shell integration and the terminfo. If you don&#8217;t want to wait, the AUR has the package <code>ghostty-nightly-bin<\/code>, which I also used for the screenshots in this article.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ sudo pacman -S ghostty ghostty-shell-integration ghostty-terminfo<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The project itself doesn&#8217;t provide ready-made packages for Linux; that&#8217;s left to the distributions. Ubuntu has shipped Ghostty in its official repositories since 26.04, though not always in the latest version. For Fedora, there&#8217;s a COPR repository, plus a Snap, an AppImage and a Debian package from the community. Ghostty&#8217;s <a href=\"https:\/\/ghostty.org\/docs\/install\/binary\">installation guide<\/a> gives you an overview.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">All in all, Ghostty 1.4 is a well-rounded update in my opinion. As someone who switched from Tilix, I&#8217;m glad to see a modern tiling terminal on a GTK base being developed so actively. If you&#8217;d rather stay closer to how Tilix works, take a look at <a href=\"https:\/\/linuxundich.de\/en\/rutile-0-2-2-a-modern-alternative-to-tilix\/\">Rutile<\/a> as well. You&#8217;ll find all changes in the <a href=\"https:\/\/ghostty.org\/docs\/install\/release-notes\/1-4-0\">release notes<\/a>. Which terminal do you use?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ghostty 1.4 compresses its scrollback and saves up to 90 percent memory. On Linux, text looks sharper, and you can now move splits with the mouse.<\/p>\n","protected":false},"author":2,"featured_media":306,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"lui_source_id":48562,"lui_source_hash":"4b4366e756820c36592e3997aae2038f1407f4adf4ce85221fcf2c08dfd9b6aa","lui_source_translated":"2026-10-28","lui_source_reviewed":true,"lui_via_url":"","lui_via_label":"","lui_source_url":"","lui_source_label":"","lui_inhalt_aktualisiert":"","lui_pin_until":"","lui_kopf":"","footnotes":""},"categories":[2],"tags":[48,111,10,31,65],"class_list":["post-302","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-gnu-linux","tag-arch-linux","tag-ghostty","tag-gnome","tag-gtk","tag-terminal"],"_links":{"self":[{"href":"https:\/\/linuxundich.de\/en\/wp-json\/wp\/v2\/posts\/302","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=302"}],"version-history":[{"count":2,"href":"https:\/\/linuxundich.de\/en\/wp-json\/wp\/v2\/posts\/302\/revisions"}],"predecessor-version":[{"id":305,"href":"https:\/\/linuxundich.de\/en\/wp-json\/wp\/v2\/posts\/302\/revisions\/305"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/linuxundich.de\/en\/wp-json\/wp\/v2\/media\/306"}],"wp:attachment":[{"href":"https:\/\/linuxundich.de\/en\/wp-json\/wp\/v2\/media?parent=302"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/linuxundich.de\/en\/wp-json\/wp\/v2\/categories?post=302"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/linuxundich.de\/en\/wp-json\/wp\/v2\/tags?post=302"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}