Blog
Catppuccin + Sway/i3 + Ghostty: dark, quiet, perfect
Catppuccin + Sway/i3 + Ghostty: dark, quiet, perfect🔗
I like my desktop the way I like a good editor: invisible until I need it. Catppuccin's dark palettes (Mocha/Macchiato), a tiling WM (Sway or i3), and Ghostty as my terminal hit that sweet spot where the UI stops shouting and lets me think.
Why the darker vibes🔗
Dark isn't "edgy"—it's calm. Catppuccin's low-saturation colors keep contrast gentle, accents tasteful, and eyestrain low during long sessions. When everything shares the same palette—bar, prompts, editor, browser—context switches feel frictionless. It's one room, not twelve.
Sway or i3, depending on the box🔗
- Keyboard first: predictable tiling + muscle-memory keybinds = flow.
- No chrome, no drama: windows are content, not decorations.
- A mental map: workspaces and splits give each task an address.
- Portable: one dotfiles repo runs everywhere.
Wayland box? I use Sway. Odd hardware or quick VM? i3. The workflow doesn't change—only the compositor.
Ghostty love🔗
Ghostty is the terminal I don't have to think about: fast startup, crisp text, and sane defaults. It disappears into the background—exactly what I want. Pair it with Catppuccin and a quiet prompt and it feels… finished.
Little touches that make it sing🔗
- One palette everywhere: terminal, editor, waybar/polybar, rofi/wofi, GTK/Qt, browser devtools.
- Muted borders, bright urgency: normal windows blend in; focused/urgent pop just enough.
- Sparse chrome: thin bars, small padding, no shadows.
- Consistent font stack: same mono across terminal/editor/status bar.
Copy-paste bits (trim to taste)🔗
Sway colors (Catppuccin-ish)🔗
# ~/.config/sway/config
set $base #1e1e2e
set $overlay #313244
set $text #cdd6f4
set $mauve #cba6f7
set $green #a6e3a1
set $red #f38ba8
set $yellow #f9e2af
output * bg $base solid_color
# Focused/Unfocused borders
client.focused $mauve $mauve $base $text
client.unfocused $overlay $overlay $base $text
client.urgent $red $red $base $base
client.placeholder $overlay $overlay $base $text
# Minimal borders
default_border pixel 2
titlebar_padding 2 6
i3 colors (same vibe)🔗
# ~/.config/i3/config
set_from_resource $base color0 #1e1e2e
set_from_resource $text color7 #cdd6f4
set $mauve #cba6f7
set $overlay #313244
set $red #f38ba8
client.focused $mauve $mauve $base $text
client.unfocused $overlay $overlay $base $text
client.urgent $red $red $base $base
new_window pixel 2
Ghostty config (dark, quiet, comfy)🔗
# ~/.config/ghostty/config
theme = "Catppuccin Mocha"
background-opacity = 0.98
window-padding-x = 10
window-padding-y = 8
font-family = "JetBrains Mono"
font-size = 12
cursor-style = "beam"
bold-is-bright = true
Waybar/Polybar hint🔗
Keep heights small (28–32px), use the same mono font as your editor/terminal, and reserve bright colors for only urgent states (battery low, failing service).
Why I keep this stack🔗
It's fast, predictable, and quiet. Catppuccin sets the mood, Sway/i3 gives me clean structure, and Ghostty is the silent workhorse. Nothing fights me. The UI fades, the work remains—that's the whole point.
AI-assisted writing
I draft and edit all articles myself, and I use AI as an assistant for outlining, phrasing, and cleanup. Curious how I use it—and where I draw the lines?