Ghostty
Ghostty is a terminal emulator available for Linux and macOS that aims for high performance and a wide feature-set.
Ghostty was first publicly released in December 2024, as version 1.0.0.
Installation
USE flags
USE flags for x11-terms/ghostty Fast, feature-rich, and cross-platform terminal emulator
+X
Add support for X11
+adwaita
Use gui-libs/libadwaita for better GNOME integration
man
Build and install man pages
nls
Add Native Language Support (using gettext - GNU locale utilities)
wayland
Enable dev-libs/wayland backend
Emerge
To save time building Zig, there is a precompiled binary package available in the Gentoo ebuild repository (using this package may be superfluous for some systems that use binary package host packages by default).
To avoid x11-terms/ghostty pulling in dev-lang/zig as a dependency, emerge dev-lang/zig-bin with the --oneshot option:
root #emerge --ask --oneshot dev-lang/zig-binInstall x11-terms/ghostty :
root #emerge --ask x11-terms/ghosttyConfiguration
Files
- $XDG_CONFIG_HOME/ghostty/config - main configuration file
- $HOME/.config/ghostty/config - main configuration file if the XDG_CONFIG_HOME environment variable does not exist
In this article, the Ghostty configuration directory will be listed as $XDG_CONFIG_HOME/ghostty/. If the XDG_CONFIG_HOME environment variable is not defined on a given system, replace this with $HOME/.config/ghostty/, as evidenced above. (In practice, both of these paths will often resolve to ~/.config/ghostty/.)
Choose themes
Ghostty has built-in themes that can be previewed using the +list-themes action:
user $ghostty +list-themesIn the theme preview interface, press ? to list available keybindings. The c key may be useful to copy the selected theme name to the clipboard.
Set the chosen theme by editing the Ghostty config file:
$XDG_CONFIG_HOME/ghostty/configtheme=tokyonight
Custom themes
Ghostty also supports custom themes. Themes must adhere to Ghostty's format and be placed in the $XDG_CONFIG_HOME/ghostty/themes/ directory.
Here is an example theme converted from Manjaro konsole Breath:
$XDG_CONFIG_HOME/ghostty/themes/Breathpalette=0=#1e2229 palette=1=#ed1515 palette=2=#448539 palette=3=#f67400 palette=4=#1d99f3 palette=5=#9b59b6 palette=6=#1abc9c palette=7=#fcfcfc palette=8=#7f8c8d palette=9=#c0392b palette=10=#55a649 palette=11=#fdbc4b palette=12=#3daee9 palette=13=#8e44ad palette=14=#16a085 palette=15=#ffffff background=#1e2229 foreground=#17a88b cursor-color=#17a88b selection-background=#17a88b selection-foreground=#1e2229
Once a custom theme file is added, edit the Ghostty config to use it:
$XDG_CONFIG_HOME/ghostty/configtheme=Breath
There is a tool to convert konsole themes to the Ghostty format: konsole2ghosttytheme.bash
Usage
Invocation
For a listing of invocation options:
user $ghostty --helpUsage: ghostty [+action] [options] Run the Ghostty terminal emulator or a specific helper action. If no `+action` is specified, run the Ghostty terminal emulator. All configuration keys are available as command line options. To specify a configuration key, use the `--<key>=<value>` syntax where key and value are the same format you'd put into a configuration file. For example, `--font-size=12` or `--font-family="Fira Code"`. To see a list of all available configuration options, please see the `src/config/Config.zig` file. A future update will allow seeing the list of configuration options from the command line. A special command line argument `-e <command>` can be used to run the specific command inside the terminal emulator. For example, `ghostty -e top` will run the `top` command inside the terminal. On macOS, launching the terminal emulator from the CLI is not supported and only actions are supported. Available actions: +version +help +list-fonts +list-keybinds +list-themes +list-colors +list-actions +show-config +validate-config +crash-report +show-face Specify `+<action> --help` to see the help for a specific action, where `<action>` is one of actions listed below.)
Querying current setup
Show config
Pass +show-config to Ghostty to display the current configuration:
user $ghostty +show-configfont-family = Cascadia Code NF font-family-bold = Cascadia Code NF font-family-italic = Cascadia Code NF font-family-bold-italic = Cascadia Code NF font-size = 11 command = /bin/zsh click-repeat-interval = 500 auto-update-channel = stable
List keybinds
Pass +list-keybinds to Ghostty to display the current keybinds:
user $ghostty +list-keybindssuper + ctrl + shift + up resize_split:up,10 super + ctrl + shift + equal equalize_splits super + ctrl + shift + left resize_split:left,10 super + ctrl + shift + down resize_split:down,10 super + ctrl + shift + right resize_split:right,10 ctrl + alt + shift + j write_scrollback_file:open super + ctrl + right_bracket goto_split:next super + ctrl + left_bracket goto_split:previous ctrl + alt + up goto_split:top ctrl + alt + left goto_split:left ctrl + alt + down goto_split:bottom ctrl + alt + right goto_split:right ctrl + shift + v paste_from_clipboard ctrl + shift + a select_all ctrl + shift + o new_split:right ctrl + shift + c copy_to_clipboard ctrl + shift + q quit ctrl + shift + n new_window ctrl + shift + page_down jump_to_prompt:1 ctrl + shift + comma reload_config ctrl + shift + left previous_tab ctrl + shift + w close_surface ctrl + shift + j write_scrollback_file:paste ctrl + shift + right next_tab ctrl + shift + page_up jump_to_prompt:-1 ctrl + shift + t new_tab ctrl + shift + tab previous_tab ctrl + shift + e new_split:down ctrl + shift + enter toggle_split_zoom ctrl + shift + i inspector:toggle alt + five goto_tab:5 alt + eight goto_tab:8 alt + three goto_tab:3 alt + nine goto_tab:9 alt + two goto_tab:2 alt + four goto_tab:4 alt + f4 close_window alt + one goto_tab:1 alt + six goto_tab:6 alt + seven goto_tab:7 ctrl + comma open_config ctrl + page_down next_tab ctrl + equal increase_font_size:1 ctrl + minus decrease_font_size:1 ctrl + zero reset_font_size ctrl + enter toggle_fullscreen ctrl + page_up previous_tab ctrl + tab next_tab ctrl + plus increase_font_size:1 shift + insert paste_from_selection shift + up adjust_selection:up shift + left adjust_selection:left shift + page_up scroll_page_up shift + end scroll_to_bottom shift + right adjust_selection:right shift + page_down scroll_page_down shift + down adjust_selection:down shift + home scroll_to_top
Troubleshooting
Title appears abrupt in system's window manager
If GTK's title appears abrupt in system's window manager, turn off the adwaita USE flag firstly:
/etc/portage/package.usex11-terms/ghostty -adwaita
Then disable the GTK title:
$XDG_CONFIG_HOME/ghostty/configgtk-titlebar=false
See also
- Terminal emulator — emulates a video terminal within another display architecture (e.g. in X).