From 0b19dbf19ac79657aa74c68b7f0e32b2525184ae Mon Sep 17 00:00:00 2001 From: Mitchell Riedstra Date: Sun, 28 Dec 2025 13:24:48 -0500 Subject: Theme tweaks. Include ghostty retro shader. --- dotfiles/ghostty/config | 24 +++++++++++++++++++---- dotfiles/ghostty/retro.glsl | 45 +++++++++++++++++++++++++++++++++++++++++++ dotfiles/nvim/init.lua | 47 ++++++++++++++++++++++++++++++--------------- install.sh | 1 + 4 files changed, 98 insertions(+), 19 deletions(-) create mode 100644 dotfiles/ghostty/retro.glsl diff --git a/dotfiles/ghostty/config b/dotfiles/ghostty/config index 7dbb0d2..08663a6 100644 --- a/dotfiles/ghostty/config +++ b/dotfiles/ghostty/config @@ -1,13 +1,24 @@ # theme = "Gruvbox Light" theme = "Gruvbox Dark" # theme = "Nord" - +# theme = "3024 Night" +# theme = "CGA" +# theme = "Deep" +# theme = "IBM 5153 CGA (Black)" +# theme = "IRIX Console" +# theme = "IRIX Terminal" font-family = "IBM 3270" -# Linux +font-size = 14 + +# font-family = "IBM 3270 Condensed" +# font-size = 16 + +# font-family = "IBM Plex Mono" # font-size = 13 -# Mac -font-size = 14 + +# font-family = "Monofonto" +# font-size = 14 # window-theme = ghostty # gtk-titlebar = false @@ -16,3 +27,8 @@ gtk-wide-tabs = false cursor-style = block cursor-style-blink = false shell-integration-features = no-cursor +mouse-hide-while-typing = true + +# custom-shader = ~/.config/ghostty/retro.glsl +# Works well with: +# theme = "IBM 5153 CGA (Black)" diff --git a/dotfiles/ghostty/retro.glsl b/dotfiles/ghostty/retro.glsl new file mode 100644 index 0000000..e9c7ab9 --- /dev/null +++ b/dotfiles/ghostty/retro.glsl @@ -0,0 +1,45 @@ +// Original shader collected from: https://www.shadertoy.com/view/WsVSzV +// Licensed under Shadertoy's default since the original creator didn't provide any license. (CC BY NC SA 3.0) + +// float warp = 0.5; // Strong curve +// float warp = 0.0; // no curve +// float warp = 0.25; + +// float warp = 0.15; +// float scan = .1; // simulate darkness between scanlines + +float warp = 0.25; +float scan = .25; // simulate darkness between scanlines + +void mainImage(out vec4 fragColor, in vec2 fragCoord) +{ + // squared distance from center + vec2 uv = fragCoord / iResolution.xy; + vec2 dc = abs(0.5 - uv); + dc *= dc; + + // warp the fragment coordinates + uv.x -= 0.5; uv.x *= 1.0 + (dc.y * (0.3 * warp)); uv.x += 0.5; + uv.y -= 0.5; uv.y *= 1.0 + (dc.x * (0.4 * warp)); uv.y += 0.5; + + // sample inside boundaries, otherwise set to black + if (uv.y > 1.0 || uv.x < 0.0 || uv.x > 1.0 || uv.y < 0.0) + fragColor = vec4(0.0, 0.0, 0.0, 1.0); + else + { + // determine if we are drawing in a scanline + float apply = abs(sin(fragCoord.y) * 0.5 * scan); + + // sample the texture and apply a teal tint + vec3 color = texture(iChannel0, uv).rgb; + vec3 tint = vec3(1, 1, 1); // No tint + // vec3 tint = vec3(1.152, 0.864, 0.3); // Amber color + // vec3 tint = vec3(0.0, 0.8, 0.6); // teal color (slightly more green than blue) + // vec3 tint = vec3(0.8, 0.3, 1.4); // Lavender + // vec3 tint = vec3(0.3, 0.5, 1.3); // Blue + + // mix the sampled color with the teal tint based on scanline intensity + fragColor = vec4(mix(color * tint, vec3(0.0), apply), 1.0); + } +} + diff --git a/dotfiles/nvim/init.lua b/dotfiles/nvim/init.lua index 3186fe0..8770e83 100644 --- a/dotfiles/nvim/init.lua +++ b/dotfiles/nvim/init.lua @@ -1,8 +1,36 @@ +-- Quick ref for useful nvim things +-- :help netrw -- File listing, e.g. when you do `: e.` +-- :help fold -- Also, `set fdm?` + -- Configuration for nvim 0.12+ +-- To reset pack: +-- rm -rf ~/.config/nvim/nvim-pack-lock.json ~/.local/share/nvim/site/pack --- Themes +-- Nord vim.pack.add({'https://github.com/shaunsingh/nord.nvim'}) +-- vim.g.nord_contrast = true +-- vim.g.nord_borders = false +vim.g.nord_disable_background = true +vim.g.nord_italic = false +-- vim.g.nord_uniform_diff_background = true +vim.g.nord_bold = false +-- Load the colorscheme +require('nord').set() + +-- zenbones +-- vim.pack.add({'https://github.com/rktjmp/lush.nvim'}) +-- vim.pack.add({'https://github.com/zenbones-theme/zenbones.nvim'}) + vim.pack.add({'https://github.com/ellisonleao/gruvbox.nvim'}) +-- Gruvbox theme config +require("gruvbox").setup({ + transparent_mode = true +}) +-- vim.cmd('set background=light') +vim.cmd('colorscheme gruvbox') + +-- vim.pack.add({'https://github.com/metalelf0/black-metal-theme-neovim'}) +-- vim.cmd('colorscheme darkthrone') vim.pack.add({'https://github.com/nvim-treesitter/nvim-treesitter'}) @@ -52,23 +80,15 @@ vim.keymap.set('n', 'ps', function() end) -------------------------------------------------------------------------------- --------------------------------------------------------------------------------- --- Nord theme config --------------------------------------------------------------------------------- --- vim.g.nord_contrast = true --- vim.g.nord_borders = false -vim.g.nord_disable_background = true -vim.g.nord_italic = false --- vim.g.nord_uniform_diff_background = true -vim.g.nord_bold = false --- Load the colorscheme -require('nord').set() + -------------------------------------------------------------------------------- -- "Basic" nvim config: +vim.g.netrw_liststyle = 3 + vim.opt.nu = true vim.opt.rnu = true @@ -113,7 +133,6 @@ vim.opt.laststatus = 2 vim.cmd("set ea") vim.cmd("autocmd VimResized * wincmd =") - vim.diagnostic.config({ virtual_text = true, signs = true, @@ -122,7 +141,6 @@ vim.diagnostic.config({ severity_sort = true }) - -- For LSP, :help lsp-defaults can be useful to get the keybindings down -- clangd language server config... @@ -142,4 +160,3 @@ vim.lsp.config['gopls'] = { } vim.lsp.enable('gopls') -vim.cmd('colorscheme gruvbox') diff --git a/install.sh b/install.sh index 29b06cd..606e486 100755 --- a/install.sh +++ b/install.sh @@ -47,6 +47,7 @@ if ! [ -d "$_ghosttydir" ] ; then mkdir "$_ghosttydir" fi setLink -s "$(pwd)/dotfiles/ghostty/config" -d "$_ghosttydir/config" +setLink -s "$(pwd)/dotfiles/ghostty/retro.glsl" -d "$_ghosttydir/retro.glsl" if ! [ -d "$bindir" ] ; then mkdir "$bindir" ; fi for _f in bin/* ; do -- cgit v1.2.3