catskull.net

Fun with Ghostty Shaders

Back when Ghostty released I played around with the entire config, including trying to get some shaders to work. iTerm2 has the ability to have an image background in your terminal and ghostty does not, at least not directly. I wanted to get a custom image with a shader but couldn’t get it working.

Well, today in the Bullpen Sam posted this link to a repo full of shaders so I decided to give them a go. Pretty soon I realized I should take a picture or video of these so other people don’t have to go through the pain.

I ended up finding a couple of combinations I really liked so I’ll highlight those at the top, then the rest is just each shader with a link to the repo. I recommend cloning the entire repo into ~/.config/ghostty/shaders and then you can specify your shaders in the order they will be applied.

~/.config/ghostty/config </>
custom-shader = ./shaders/tft.glsl
custom-shader = ./shaders/bettercrt.glsl
custom-shader = ./shaders/bloom.glsl

# only set this during testing, defaults to "true" which animates only active windows
# custom-shader-animation = always

drunkard+retro-terminal+bloom

glitchy+bettercrt+water+bloom

retro-terminal+tft

retro-terminal+tft

tft+bettercrt

tft+bettercrt

tft+retro-terminal+bloom

tft+retro-terminal+bloom


animated-gradient-shader↗

bettercrt↗

bettercrt

bloom↗

bloom

cineShader-Lava↗

crt↗

crt

cubes↗

dither↗

dither

drunkard↗

fireworks-rockets↗

fireworks↗

galaxy↗

gears-and-belts↗

glitchy↗

glow-rgbsplit-twitchy↗

gradient-background↗

gradient-background

in-game-crt↗

in-game-crt

inside-the-matrix↗

just-snow↗

matrix-hallway↗

negative↗

negative

posters↗

retro-terminal↗

retro-terminal

sin-interference↗

smoke-and-ghost↗

smoke-and-ghost

sparks-from-fire↗

spotlight↗

starfield-colors↗

starfield↗

tft↗

tft

underwater↗

water↗


Finally for all you young players at home here’s my full current daily ghostty config:

~/.config/ghostty/config </>
ont-family = TX-02
font-size = 19
font-thicken = true
theme = light:xcodelighthc,dark:xcodedarkhc
quick-terminal-animation-duration = 0
keybind = global:super+grave_accent=toggle_quick_terminal
cursor-style = block
shell-integration-features = no-cursor
cursor-style-blink = false
link-url = true
window-inherit-working-directory = true
window-inherit-font-size = true
window-theme = system
clipboard-trim-trailing-spaces = true
mouse-hide-while-typing = true
macos-titlebar-proxy-icon = hidden
macos-icon = custom-style
macos-icon-frame = plastic
macos-icon-ghost-color = FFFFFF
macos-icon-screen-color = 000000