Skip to main content

Overview

Ghostty is a fast, modern terminal emulator used in the Kanagawa dotfiles. It features GPU acceleration, transparency, blur effects, and seamless theme integration.
Ghostty is the default terminal in the Hyprland setup and is launched with Super + T.

Configuration Location

~/.config/ghostty/
├── config                  # Main configuration
└── colors/                 # Theme color files
    └── colors              # Active theme colors

Main Configuration

The Ghostty configuration file (~/.config/ghostty/config) defines appearance, fonts, and behavior:
config-file = "colors/colors"

cursor-opacity = 1

background-opacity = 0.95
background-blur = true
window-padding-x = 2

font-family = CaskaydiaCove NFM
font-style = Regular
font-size = 13

keybind = shift+enter=text:\n
keybind = ctrl+r=reload_config

confirm-close-surface = false

Visual Settings

Transparency and Blur

background-opacity = 0.95
background-blur = true
Ghostty uses 95% opacity with background blur for a modern, aesthetic look that integrates with the Hyprland compositor.

Cursor Configuration

cursor-opacity = 1
Fully opaque cursor for better visibility.

Window Padding

window-padding-x = 2
Minimal horizontal padding (2 pixels) for a clean look.

Background Blur

Blurred background for depth perception

Transparency

95% opacity blends with desktop

Theme Integration

Ghostty integrates with the Kanagawa theme system:
config-file = "colors/colors"

How Theme Switching Works

1

Theme Selection

User runs the theme selector script (Super + Shift + Enter)
2

Color Generation

Script generates Ghostty-compatible color file in ~/.config/ghostty/colors/colors
3

Reload

Ghostty automatically reloads configuration with new colors

Color File Format

The colors/colors file contains terminal color definitions:
# Example color configuration
foreground = #d3c6aa
background = #2d353b

# Normal colors
palette = 0=#475258
palette = 1=#e67e80
palette = 2=#a7c080
palette = 3=#dbbc7f
palette = 4=#7fbbb3
palette = 5=#d699b6
palette = 6=#83c092
palette = 7=#d3c6aa

# Bright colors
palette = 8=#859289
palette = 9=#e67e80
palette = 10=#a7c080
palette = 11=#dbbc7f
palette = 12=#7fbbb3
palette = 13=#d699b6
palette = 14=#83c092
palette = 15=#d3c6aa
These colors are automatically generated based on your selected theme and should not be manually edited.

Launching Ghostty

From Hyprland

# In keybindings.conf
$terminal = env GTK_IM_MODULE=simple ghostty
bind = $mainMod, T, exec, $terminal
Keybinding: Super + T

Environment Variables

Ghostty is launched with GTK_IM_MODULE=simple to ensure proper input method handling.

Performance Features

GPU Acceleration

Hardware-accelerated rendering for smooth performance

Fast Startup

Near-instant launch times

Low Latency

Minimal input lag for responsive typing

Efficient Blur

Optimized background blur effects

Configuration Tips

Change the font-size value in the config:
font-size = 14  # Larger
font-size = 12  # Smaller
Press Ctrl+R after saving to reload the configuration.
Adjust background-opacity for different transparency levels:
background-opacity = 1.0   # Fully opaque
background-opacity = 0.90  # More transparent
background-opacity = 0.80  # Very transparent
Values range from 0.0 (fully transparent) to 1.0 (fully opaque).
Replace font-family with any installed Nerd Font:
font-family = JetBrainsMono NFM
font-family = FiraCode NFM
font-family = Hack NFM
Ensure the font is installed on your system.
Set background-blur to false for better performance on older hardware:
background-blur = false

Comparison with Other Terminals

FeatureGhosttyKittyAlacrittyWezterm
GPU Acceleration
Background Blur
Config Reload
Ligatures
True Color
Ghostty’s native background blur support sets it apart from other terminal emulators.

Troubleshooting

Ensure your compositor (Hyprland) supports blur effects and that background-blur = true is set in the config.
Make sure you’re using a Nerd Font variant (NFM). Install from nerdfonts.com.
Press Ctrl+R to reload the configuration, or restart Ghostty completely.
The GTK_IM_MODULE=simple environment variable should resolve most input method problems. If issues persist, try different input method configurations.

Next Steps

Shell Configuration

Configure Zsh and Oh My Zsh

Theme Switching

Learn how to switch themes

Build docs developers (and LLMs) love