summaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
authorIgor Soarez <igor@soarez.org>2026-10-17 11:07:32 +0100
committerIgor Soarez <igor@soarez.org>2026-10-17 11:07:32 +0100
commit95056eacdff97a710129bbb29e707ab83f5faa72 (patch)
treeef8fe50947e506859bc0190bd777c50f2f666453 /config
parentc0771c839df57a627ceb21bd398752ba2b1ed3f1 (diff)
theme-gen: derive tmux and ghostty colours for any theme
`theme --set <mode> <name>` needs a tmux conf and a ghostty colour file that alacritty-format themes do not provide, so such a name fell back to the generic dark/light tmux colours and left ghostty unchanged, exiting 0. bin/theme-gen reads a theme in alacritty .toml format (by alacritty-theme checkout name or path) or Ghostty's bundled `palette = N=#hex` format, and writes config/tmux/colors/<name>.conf and config/ghostty/colors/<name>, plus config/alacritty/colors/<name>.toml for a ghostty-format source. Generated with it: sonokai, solarized_osaka_night, kanagawabones and dracula_plus_high_contrast, with nvim stand-ins for the three that have no nvim port installed. Parsed keys go through eval, so only plain section.key names and hex values are accepted: a theme file could otherwise run commands. From dot request 20261017-110255-work-laptop-48c22c.
Diffstat (limited to 'config')
-rw-r--r--config/alacritty/colors/dracula_plus_high_contrast.toml24
-rw-r--r--config/alacritty/colors/kanagawabones.toml24
-rw-r--r--config/alacritty/colors/solarized_osaka_night.toml30
-rw-r--r--config/ghostty/colors/dracula_plus_high_contrast21
-rw-r--r--config/ghostty/colors/kanagawabones21
-rw-r--r--config/ghostty/colors/solarized_osaka_night21
-rw-r--r--config/ghostty/colors/sonokai21
-rw-r--r--config/nvim/colors/dracula_plus_high_contrast.lua6
-rw-r--r--config/nvim/colors/kanagawabones.lua5
-rw-r--r--config/nvim/colors/solarized_osaka_night.lua5
-rw-r--r--config/tmux/colors/dracula_plus_high_contrast.conf6
-rw-r--r--config/tmux/colors/kanagawabones.conf6
-rw-r--r--config/tmux/colors/solarized_osaka_night.conf6
-rw-r--r--config/tmux/colors/sonokai.conf6
14 files changed, 202 insertions, 0 deletions
diff --git a/config/alacritty/colors/dracula_plus_high_contrast.toml b/config/alacritty/colors/dracula_plus_high_contrast.toml
new file mode 100644
index 0000000..6eaa8ec
--- /dev/null
+++ b/config/alacritty/colors/dracula_plus_high_contrast.toml
@@ -0,0 +1,24 @@
+# dracula_plus_high_contrast (generated by theme-gen from /Applications/Ghostty.app/Contents/Resources/ghostty/themes/Dracula+ High Contrast)
+[colors.primary]
+background = "#14141a"
+foreground = "#f8f8f2"
+
+[colors.normal]
+black = "#9ba0b4"
+red = "#ff7676"
+green = "#50fa7b"
+yellow = "#ffcb6b"
+blue = "#82aaff"
+magenta = "#c792ea"
+cyan = "#8be9fd"
+white = "#f8f8f2"
+
+[colors.bright]
+black = "#9ba1b5"
+red = "#ff8a8a"
+green = "#69ff94"
+yellow = "#ffd98a"
+blue = "#d6acff"
+magenta = "#ff92df"
+cyan = "#a4ffff"
+white = "#ffffff"
diff --git a/config/alacritty/colors/kanagawabones.toml b/config/alacritty/colors/kanagawabones.toml
new file mode 100644
index 0000000..93e6eaa
--- /dev/null
+++ b/config/alacritty/colors/kanagawabones.toml
@@ -0,0 +1,24 @@
+# kanagawabones (generated by theme-gen from /Applications/Ghostty.app/Contents/Resources/ghostty/themes/Kanagawabones)
+[colors.primary]
+background = "#1f1f28"
+foreground = "#ddd8bb"
+
+[colors.normal]
+black = "#1f1f28"
+red = "#e46a78"
+green = "#98bc6d"
+yellow = "#e5c283"
+blue = "#7eb3c9"
+magenta = "#957fb8"
+cyan = "#7eb3c9"
+white = "#ddd8bb"
+
+[colors.bright]
+black = "#49495e"
+red = "#ec818c"
+green = "#9ec967"
+yellow = "#f1c982"
+blue = "#7bc2df"
+magenta = "#a98fd2"
+cyan = "#7bc2df"
+white = "#a8a48d"
diff --git a/config/alacritty/colors/solarized_osaka_night.toml b/config/alacritty/colors/solarized_osaka_night.toml
new file mode 100644
index 0000000..11a1fbc
--- /dev/null
+++ b/config/alacritty/colors/solarized_osaka_night.toml
@@ -0,0 +1,30 @@
+# Solarized Osaka Night (dark variant) -- copied from ~/src/alacritty/alacritty-theme/themes/solarized_osaka.toml
+# Colors (Solarized Osaka)
+# Source https://github.com/craftzdog/solarized-osaka.nvim
+
+# Default colors
+[colors.primary]
+background = '#001a1d'
+foreground = '#839496'
+
+# Normal colors
+[colors.normal]
+black = '#073642'
+red = '#dc322f'
+green = '#859900'
+yellow = '#b58900'
+blue = '#268bd2'
+magenta = '#d33682'
+cyan = '#2aa198'
+white = '#eee8d5'
+
+# Bright colors
+[colors.bright]
+black = '#4c4c4c'
+red = '#cb4b16'
+green = '#586e75'
+yellow = '#657b83'
+blue = '#839496'
+magenta = '#6c71c4'
+cyan = '#93a1a1'
+white = '#fdf6e3'
diff --git a/config/ghostty/colors/dracula_plus_high_contrast b/config/ghostty/colors/dracula_plus_high_contrast
new file mode 100644
index 0000000..4f74f86
--- /dev/null
+++ b/config/ghostty/colors/dracula_plus_high_contrast
@@ -0,0 +1,21 @@
+# dracula_plus_high_contrast color scheme (generated by theme-gen from /Applications/Ghostty.app/Contents/Resources/ghostty/themes/Dracula+ High Contrast)
+
+background = #14141a
+foreground = #f8f8f2
+
+palette = 0=#9ba0b4
+palette = 1=#ff7676
+palette = 2=#50fa7b
+palette = 3=#ffcb6b
+palette = 4=#82aaff
+palette = 5=#c792ea
+palette = 6=#8be9fd
+palette = 7=#f8f8f2
+palette = 8=#9ba1b5
+palette = 9=#ff8a8a
+palette = 10=#69ff94
+palette = 11=#ffd98a
+palette = 12=#d6acff
+palette = 13=#ff92df
+palette = 14=#a4ffff
+palette = 15=#ffffff
diff --git a/config/ghostty/colors/kanagawabones b/config/ghostty/colors/kanagawabones
new file mode 100644
index 0000000..bd1a43b
--- /dev/null
+++ b/config/ghostty/colors/kanagawabones
@@ -0,0 +1,21 @@
+# kanagawabones color scheme (generated by theme-gen from /Applications/Ghostty.app/Contents/Resources/ghostty/themes/Kanagawabones)
+
+background = #1f1f28
+foreground = #ddd8bb
+
+palette = 0=#1f1f28
+palette = 1=#e46a78
+palette = 2=#98bc6d
+palette = 3=#e5c283
+palette = 4=#7eb3c9
+palette = 5=#957fb8
+palette = 6=#7eb3c9
+palette = 7=#ddd8bb
+palette = 8=#49495e
+palette = 9=#ec818c
+palette = 10=#9ec967
+palette = 11=#f1c982
+palette = 12=#7bc2df
+palette = 13=#a98fd2
+palette = 14=#7bc2df
+palette = 15=#a8a48d
diff --git a/config/ghostty/colors/solarized_osaka_night b/config/ghostty/colors/solarized_osaka_night
new file mode 100644
index 0000000..851f8eb
--- /dev/null
+++ b/config/ghostty/colors/solarized_osaka_night
@@ -0,0 +1,21 @@
+# solarized_osaka_night color scheme (generated by theme-gen from config/alacritty/colors/solarized_osaka_night.toml)
+
+background = #001a1d
+foreground = #839496
+
+palette = 0=#073642
+palette = 1=#dc322f
+palette = 2=#859900
+palette = 3=#b58900
+palette = 4=#268bd2
+palette = 5=#d33682
+palette = 6=#2aa198
+palette = 7=#eee8d5
+palette = 8=#4c4c4c
+palette = 9=#cb4b16
+palette = 10=#586e75
+palette = 11=#657b83
+palette = 12=#839496
+palette = 13=#6c71c4
+palette = 14=#93a1a1
+palette = 15=#fdf6e3
diff --git a/config/ghostty/colors/sonokai b/config/ghostty/colors/sonokai
new file mode 100644
index 0000000..9cb18c6
--- /dev/null
+++ b/config/ghostty/colors/sonokai
@@ -0,0 +1,21 @@
+# sonokai color scheme (generated by theme-gen from /Users/sz/src/alacritty/alacritty-theme/themes/sonokai.toml)
+
+background = #2c2e34
+foreground = #e2e2e3
+
+palette = 0=#181819
+palette = 1=#fc5d7c
+palette = 2=#9ed072
+palette = 3=#e7c664
+palette = 4=#76cce0
+palette = 5=#b39df3
+palette = 6=#f39660
+palette = 7=#e2e2e3
+palette = 8=#7f8490
+palette = 9=#fc5d7c
+palette = 10=#9ed072
+palette = 11=#e7c664
+palette = 12=#76cce0
+palette = 13=#b39df3
+palette = 14=#f39660
+palette = 15=#e2e2e3
diff --git a/config/nvim/colors/dracula_plus_high_contrast.lua b/config/nvim/colors/dracula_plus_high_contrast.lua
new file mode 100644
index 0000000..1248e2d
--- /dev/null
+++ b/config/nvim/colors/dracula_plus_high_contrast.lua
@@ -0,0 +1,6 @@
+-- Stand-in for "Dracula+ High Contrast" (selected via bin/theme): no dracula
+-- nvim port is installed yet, so use the closest installed dark theme rather
+-- than have `colorscheme dracula+ high contrast` error at startup. Swap when
+-- a port is added.
+vim.opt.background = "dark"
+vim.cmd("colorscheme onedark")
diff --git a/config/nvim/colors/kanagawabones.lua b/config/nvim/colors/kanagawabones.lua
new file mode 100644
index 0000000..58da269
--- /dev/null
+++ b/config/nvim/colors/kanagawabones.lua
@@ -0,0 +1,5 @@
+-- Stand-in for "Kanagawabones" (selected via bin/theme): no bones nvim port
+-- is installed yet, so use the closest installed dark theme rather than have
+-- `colorscheme kanagawabones` error at startup. Swap when a port is added.
+vim.opt.background = "dark"
+vim.cmd("colorscheme onedark")
diff --git a/config/nvim/colors/solarized_osaka_night.lua b/config/nvim/colors/solarized_osaka_night.lua
new file mode 100644
index 0000000..9eb6b01
--- /dev/null
+++ b/config/nvim/colors/solarized_osaka_night.lua
@@ -0,0 +1,5 @@
+-- Stand-in for "Solarized Osaka Night" (selected via bin/theme): no osaka
+-- nvim port is installed, so use Solarized dark -- same family, wrong accent
+-- colors. Swap when a port is added.
+vim.opt.background = "dark"
+vim.cmd("colorscheme solarized")
diff --git a/config/tmux/colors/dracula_plus_high_contrast.conf b/config/tmux/colors/dracula_plus_high_contrast.conf
new file mode 100644
index 0000000..e4360a8
--- /dev/null
+++ b/config/tmux/colors/dracula_plus_high_contrast.conf
@@ -0,0 +1,6 @@
+# dracula_plus_high_contrast (generated by theme-gen from /Applications/Ghostty.app/Contents/Resources/ghostty/themes/Dracula+ High Contrast)
+set -g status-style fg=#f8f8f2,bg=default
+set -g message-style fg=#14141a,bg=#f8f8f2,fill=#f8f8f2
+set -g pane-border-style fg=#9ba1b5
+set -g pane-active-border-style fg=#82aaff
+set -g window-status-current-style fg=#f8f8f2
diff --git a/config/tmux/colors/kanagawabones.conf b/config/tmux/colors/kanagawabones.conf
new file mode 100644
index 0000000..08bd912
--- /dev/null
+++ b/config/tmux/colors/kanagawabones.conf
@@ -0,0 +1,6 @@
+# kanagawabones (generated by theme-gen from /Applications/Ghostty.app/Contents/Resources/ghostty/themes/Kanagawabones)
+set -g status-style fg=#ddd8bb,bg=default
+set -g message-style fg=#1f1f28,bg=#ddd8bb,fill=#ddd8bb
+set -g pane-border-style fg=#49495e
+set -g pane-active-border-style fg=#7eb3c9
+set -g window-status-current-style fg=#ddd8bb
diff --git a/config/tmux/colors/solarized_osaka_night.conf b/config/tmux/colors/solarized_osaka_night.conf
new file mode 100644
index 0000000..456537a
--- /dev/null
+++ b/config/tmux/colors/solarized_osaka_night.conf
@@ -0,0 +1,6 @@
+# solarized_osaka_night (generated by theme-gen from config/alacritty/colors/solarized_osaka_night.toml)
+set -g status-style fg=#839496,bg=default
+set -g message-style fg=#001a1d,bg=#839496,fill=#839496
+set -g pane-border-style fg=#4c4c4c
+set -g pane-active-border-style fg=#268bd2
+set -g window-status-current-style fg=#839496
diff --git a/config/tmux/colors/sonokai.conf b/config/tmux/colors/sonokai.conf
new file mode 100644
index 0000000..2d71aba
--- /dev/null
+++ b/config/tmux/colors/sonokai.conf
@@ -0,0 +1,6 @@
+# sonokai (generated by theme-gen from /Users/sz/src/alacritty/alacritty-theme/themes/sonokai.toml)
+set -g status-style fg=#e2e2e3,bg=default
+set -g message-style fg=#2c2e34,bg=#e2e2e3,fill=#e2e2e3
+set -g pane-border-style fg=#7f8490
+set -g pane-active-border-style fg=#76cce0
+set -g window-status-current-style fg=#e2e2e3