@kecan0406/ttheme 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +252 -42
- package/bin/ttheme.js +7053 -514
- package/dist/alacritty/config/dekomori.toml +8 -0
- package/dist/alacritty/config/geto.toml +8 -0
- package/dist/alacritty/config/gojo.toml +8 -0
- package/dist/alacritty/config/kumin.toml +8 -0
- package/dist/alacritty/config/megumi.toml +8 -0
- package/dist/alacritty/config/nanami.toml +8 -0
- package/dist/alacritty/config/nobara.toml +8 -0
- package/dist/alacritty/config/rikka.toml +8 -0
- package/dist/alacritty/config/shinka.toml +8 -0
- package/dist/alacritty/config/sukuna.toml +8 -0
- package/dist/alacritty/config/yuji.toml +8 -0
- package/dist/alacritty/config/yuuta.toml +8 -0
- package/dist/alacritty/themes/alma.toml +21 -21
- package/dist/alacritty/themes/anko.toml +22 -22
- package/dist/alacritty/themes/asuka.toml +22 -22
- package/dist/alacritty/themes/azusa.toml +22 -22
- package/dist/alacritty/themes/battler.toml +22 -22
- package/dist/alacritty/themes/beatrice.toml +22 -22
- package/dist/alacritty/themes/bernkastel.toml +21 -21
- package/dist/alacritty/themes/bocchi.toml +22 -22
- package/dist/alacritty/themes/cirno.toml +23 -23
- package/dist/alacritty/themes/david.toml +21 -21
- package/dist/alacritty/themes/dekomori.toml +34 -0
- package/dist/alacritty/themes/determination.toml +23 -23
- package/dist/alacritty/themes/dorothy.toml +22 -22
- package/dist/alacritty/themes/eva01.toml +22 -22
- package/dist/alacritty/themes/flandre.toml +22 -22
- package/dist/alacritty/themes/fox.toml +22 -22
- package/dist/alacritty/themes/geto.toml +34 -0
- package/dist/alacritty/themes/glitch.toml +23 -23
- package/dist/alacritty/themes/gojo.toml +34 -0
- package/dist/alacritty/themes/hinamizawa.toml +22 -22
- package/dist/alacritty/themes/hitagi.toml +22 -22
- package/dist/alacritty/themes/homura.toml +23 -23
- package/dist/alacritty/themes/jill.toml +22 -22
- package/dist/alacritty/themes/joker.toml +22 -22
- package/dist/alacritty/themes/jupiter.toml +22 -22
- package/dist/alacritty/themes/kagami.toml +23 -23
- package/dist/alacritty/themes/kaito.toml +23 -23
- package/dist/alacritty/themes/kaworu.toml +22 -22
- package/dist/alacritty/themes/kita.toml +22 -22
- package/dist/alacritty/themes/konata.toml +23 -23
- package/dist/alacritty/themes/kou.toml +23 -23
- package/dist/alacritty/themes/kumin.toml +34 -0
- package/dist/alacritty/themes/kumori.toml +23 -23
- package/dist/alacritty/themes/kurisu.toml +21 -21
- package/dist/alacritty/themes/kyoko.toml +22 -22
- package/dist/alacritty/themes/kyubey.toml +22 -22
- package/dist/alacritty/themes/lain.toml +22 -22
- package/dist/alacritty/themes/lambdadelta.toml +22 -22
- package/dist/alacritty/themes/len.toml +23 -23
- package/dist/alacritty/themes/lucy.toml +21 -21
- package/dist/alacritty/themes/luka.toml +22 -22
- package/dist/alacritty/themes/madoka.toml +21 -21
- package/dist/alacritty/themes/magi.toml +21 -21
- package/dist/alacritty/themes/mami.toml +23 -23
- package/dist/alacritty/themes/marisa.toml +23 -23
- package/dist/alacritty/themes/mars.toml +22 -22
- package/dist/alacritty/themes/mayuri.toml +22 -22
- package/dist/alacritty/themes/megumi.toml +34 -0
- package/dist/alacritty/themes/meiko.toml +23 -23
- package/dist/alacritty/themes/mercury.toml +21 -21
- package/dist/alacritty/themes/mettaton.toml +23 -23
- package/dist/alacritty/themes/miku.toml +22 -22
- package/dist/alacritty/themes/mio.toml +21 -21
- package/dist/alacritty/themes/mion.toml +22 -22
- package/dist/alacritty/themes/misato.toml +22 -22
- package/dist/alacritty/themes/miyuki.toml +23 -23
- package/dist/alacritty/themes/monika.toml +23 -23
- package/dist/alacritty/themes/moon.toml +21 -21
- package/dist/alacritty/themes/mugi.toml +21 -21
- package/dist/alacritty/themes/nadeko.toml +21 -21
- package/dist/alacritty/themes/nagisa.toml +21 -21
- package/dist/alacritty/themes/nanami.toml +34 -0
- package/dist/alacritty/themes/natsuki.toml +22 -22
- package/dist/alacritty/themes/nazuna.toml +22 -22
- package/dist/alacritty/themes/neutral.toml +20 -20
- package/dist/alacritty/themes/nightcity.toml +23 -23
- package/dist/alacritty/themes/nijika.toml +21 -21
- package/dist/alacritty/themes/nobara.toml +34 -0
- package/dist/alacritty/themes/oracle.toml +21 -21
- package/dist/alacritty/themes/panther.toml +22 -22
- package/dist/alacritty/themes/papyrus.toml +23 -23
- package/dist/alacritty/themes/patchouli.toml +22 -22
- package/dist/alacritty/themes/queen.toml +22 -22
- package/dist/alacritty/themes/rebecca.toml +22 -22
- package/dist/alacritty/themes/rei.toml +21 -21
- package/dist/alacritty/themes/reimu.toml +21 -21
- package/dist/alacritty/themes/rena.toml +22 -22
- package/dist/alacritty/themes/rika.toml +22 -22
- package/dist/alacritty/themes/rikka.toml +34 -0
- package/dist/alacritty/themes/rin.toml +23 -23
- package/dist/alacritty/themes/ritsu.toml +22 -22
- package/dist/alacritty/themes/rokkenjima.toml +21 -21
- package/dist/alacritty/themes/ryo.toml +22 -22
- package/dist/alacritty/themes/sans.toml +22 -22
- package/dist/alacritty/themes/satoko.toml +22 -22
- package/dist/alacritty/themes/sayaka.toml +22 -22
- package/dist/alacritty/themes/sayori.toml +23 -23
- package/dist/alacritty/themes/sei.toml +22 -22
- package/dist/alacritty/themes/seri.toml +22 -22
- package/dist/alacritty/themes/shinka.toml +34 -0
- package/dist/alacritty/themes/shinobu.toml +21 -21
- package/dist/alacritty/themes/skull.toml +22 -22
- package/dist/alacritty/themes/stella.toml +22 -22
- package/dist/alacritty/themes/sukuna.toml +34 -0
- package/dist/alacritty/themes/suzuha.toml +21 -21
- package/dist/alacritty/themes/toriel.toml +23 -23
- package/dist/alacritty/themes/tsubasa.toml +22 -22
- package/dist/alacritty/themes/tsukasa.toml +23 -23
- package/dist/alacritty/themes/undyne.toml +23 -23
- package/dist/alacritty/themes/valhalla.toml +22 -22
- package/dist/alacritty/themes/velvet.toml +22 -22
- package/dist/alacritty/themes/venus.toml +19 -19
- package/dist/alacritty/themes/yofukashi.toml +21 -21
- package/dist/alacritty/themes/youmu.toml +23 -23
- package/dist/alacritty/themes/yui.toml +22 -22
- package/dist/alacritty/themes/yuji.toml +34 -0
- package/dist/alacritty/themes/yuri.toml +23 -23
- package/dist/alacritty/themes/yuuta.toml +34 -0
- package/dist/ghostty/themes/alma +21 -21
- package/dist/ghostty/themes/anko +23 -23
- package/dist/ghostty/themes/asuka +23 -23
- package/dist/ghostty/themes/azusa +23 -23
- package/dist/ghostty/themes/battler +23 -23
- package/dist/ghostty/themes/beatrice +23 -23
- package/dist/ghostty/themes/bernkastel +21 -21
- package/dist/ghostty/themes/bocchi +23 -23
- package/dist/ghostty/themes/cirno +24 -24
- package/dist/ghostty/themes/david +21 -21
- package/dist/ghostty/themes/dekomori +29 -0
- package/dist/ghostty/themes/determination +24 -24
- package/dist/ghostty/themes/dorothy +23 -23
- package/dist/ghostty/themes/eva01 +23 -23
- package/dist/ghostty/themes/flandre +23 -23
- package/dist/ghostty/themes/fox +23 -23
- package/dist/ghostty/themes/geto +29 -0
- package/dist/ghostty/themes/glitch +24 -24
- package/dist/ghostty/themes/gojo +29 -0
- package/dist/ghostty/themes/hinamizawa +23 -23
- package/dist/ghostty/themes/hitagi +23 -23
- package/dist/ghostty/themes/homura +24 -24
- package/dist/ghostty/themes/jill +23 -23
- package/dist/ghostty/themes/joker +23 -23
- package/dist/ghostty/themes/jupiter +23 -23
- package/dist/ghostty/themes/kagami +24 -24
- package/dist/ghostty/themes/kaito +24 -24
- package/dist/ghostty/themes/kaworu +23 -23
- package/dist/ghostty/themes/kita +23 -23
- package/dist/ghostty/themes/konata +24 -24
- package/dist/ghostty/themes/kou +24 -24
- package/dist/ghostty/themes/kumin +29 -0
- package/dist/ghostty/themes/kumori +23 -23
- package/dist/ghostty/themes/kurisu +21 -21
- package/dist/ghostty/themes/kyoko +23 -23
- package/dist/ghostty/themes/kyubey +23 -23
- package/dist/ghostty/themes/lain +23 -23
- package/dist/ghostty/themes/lambdadelta +23 -23
- package/dist/ghostty/themes/len +24 -24
- package/dist/ghostty/themes/lucy +21 -21
- package/dist/ghostty/themes/luka +22 -22
- package/dist/ghostty/themes/madoka +21 -21
- package/dist/ghostty/themes/magi +21 -21
- package/dist/ghostty/themes/mami +24 -24
- package/dist/ghostty/themes/marisa +24 -24
- package/dist/ghostty/themes/mars +23 -23
- package/dist/ghostty/themes/mayuri +23 -23
- package/dist/ghostty/themes/megumi +29 -0
- package/dist/ghostty/themes/meiko +24 -24
- package/dist/ghostty/themes/mercury +21 -21
- package/dist/ghostty/themes/mettaton +24 -24
- package/dist/ghostty/themes/miku +22 -22
- package/dist/ghostty/themes/mio +21 -21
- package/dist/ghostty/themes/mion +23 -23
- package/dist/ghostty/themes/misato +23 -23
- package/dist/ghostty/themes/miyuki +24 -24
- package/dist/ghostty/themes/monika +24 -24
- package/dist/ghostty/themes/moon +21 -21
- package/dist/ghostty/themes/mugi +21 -21
- package/dist/ghostty/themes/nadeko +21 -21
- package/dist/ghostty/themes/nagisa +21 -21
- package/dist/ghostty/themes/nanami +29 -0
- package/dist/ghostty/themes/natsuki +22 -22
- package/dist/ghostty/themes/nazuna +23 -23
- package/dist/ghostty/themes/neutral +22 -22
- package/dist/ghostty/themes/nightcity +24 -24
- package/dist/ghostty/themes/nijika +21 -21
- package/dist/ghostty/themes/nobara +29 -0
- package/dist/ghostty/themes/oracle +21 -21
- package/dist/ghostty/themes/panther +23 -23
- package/dist/ghostty/themes/papyrus +24 -24
- package/dist/ghostty/themes/patchouli +23 -23
- package/dist/ghostty/themes/queen +23 -23
- package/dist/ghostty/themes/rebecca +23 -23
- package/dist/ghostty/themes/rei +21 -21
- package/dist/ghostty/themes/reimu +22 -22
- package/dist/ghostty/themes/rena +23 -23
- package/dist/ghostty/themes/rika +23 -23
- package/dist/ghostty/themes/rikka +29 -0
- package/dist/ghostty/themes/rin +24 -24
- package/dist/ghostty/themes/ritsu +23 -23
- package/dist/ghostty/themes/rokkenjima +21 -21
- package/dist/ghostty/themes/ryo +23 -23
- package/dist/ghostty/themes/sans +22 -22
- package/dist/ghostty/themes/satoko +23 -23
- package/dist/ghostty/themes/sayaka +23 -23
- package/dist/ghostty/themes/sayori +24 -24
- package/dist/ghostty/themes/sei +23 -23
- package/dist/ghostty/themes/seri +22 -22
- package/dist/ghostty/themes/shinka +29 -0
- package/dist/ghostty/themes/shinobu +21 -21
- package/dist/ghostty/themes/skull +23 -23
- package/dist/ghostty/themes/stella +23 -23
- package/dist/ghostty/themes/sukuna +29 -0
- package/dist/ghostty/themes/suzuha +21 -21
- package/dist/ghostty/themes/toriel +24 -24
- package/dist/ghostty/themes/tsubasa +23 -23
- package/dist/ghostty/themes/tsukasa +24 -24
- package/dist/ghostty/themes/undyne +24 -24
- package/dist/ghostty/themes/valhalla +23 -23
- package/dist/ghostty/themes/velvet +23 -23
- package/dist/ghostty/themes/venus +19 -19
- package/dist/ghostty/themes/yofukashi +21 -21
- package/dist/ghostty/themes/youmu +24 -24
- package/dist/ghostty/themes/yui +23 -23
- package/dist/ghostty/themes/yuji +29 -0
- package/dist/ghostty/themes/yuri +24 -24
- package/dist/ghostty/themes/yuuta +29 -0
- package/dist/iterm2/alma.itermcolors +65 -65
- package/dist/iterm2/anko.itermcolors +68 -68
- package/dist/iterm2/asuka.itermcolors +68 -68
- package/dist/iterm2/azusa.itermcolors +68 -68
- package/dist/iterm2/battler.itermcolors +65 -65
- package/dist/iterm2/beatrice.itermcolors +69 -69
- package/dist/iterm2/bernkastel.itermcolors +64 -64
- package/dist/iterm2/bocchi.itermcolors +69 -69
- package/dist/iterm2/cirno.itermcolors +69 -69
- package/dist/iterm2/david.itermcolors +61 -61
- package/dist/iterm2/dekomori.itermcolors +305 -0
- package/dist/iterm2/determination.itermcolors +63 -63
- package/dist/iterm2/dorothy.itermcolors +63 -63
- package/dist/iterm2/eva01.itermcolors +66 -66
- package/dist/iterm2/flandre.itermcolors +65 -65
- package/dist/iterm2/fox.itermcolors +68 -68
- package/dist/iterm2/geto.itermcolors +305 -0
- package/dist/iterm2/glitch.itermcolors +64 -64
- package/dist/iterm2/gojo.itermcolors +305 -0
- package/dist/iterm2/hinamizawa.itermcolors +65 -65
- package/dist/iterm2/hitagi.itermcolors +68 -68
- package/dist/iterm2/homura.itermcolors +65 -65
- package/dist/iterm2/jill.itermcolors +67 -67
- package/dist/iterm2/joker.itermcolors +65 -65
- package/dist/iterm2/jupiter.itermcolors +66 -66
- package/dist/iterm2/kagami.itermcolors +69 -69
- package/dist/iterm2/kaito.itermcolors +67 -67
- package/dist/iterm2/kaworu.itermcolors +68 -68
- package/dist/iterm2/kita.itermcolors +66 -66
- package/dist/iterm2/konata.itermcolors +69 -69
- package/dist/iterm2/kou.itermcolors +66 -66
- package/dist/iterm2/kumin.itermcolors +305 -0
- package/dist/iterm2/kumori.itermcolors +63 -63
- package/dist/iterm2/kurisu.itermcolors +64 -64
- package/dist/iterm2/kyoko.itermcolors +68 -68
- package/dist/iterm2/kyubey.itermcolors +69 -69
- package/dist/iterm2/lain.itermcolors +67 -67
- package/dist/iterm2/lambdadelta.itermcolors +64 -64
- package/dist/iterm2/len.itermcolors +68 -68
- package/dist/iterm2/lucy.itermcolors +66 -66
- package/dist/iterm2/luka.itermcolors +66 -66
- package/dist/iterm2/madoka.itermcolors +61 -61
- package/dist/iterm2/magi.itermcolors +66 -66
- package/dist/iterm2/mami.itermcolors +66 -66
- package/dist/iterm2/marisa.itermcolors +65 -65
- package/dist/iterm2/mars.itermcolors +68 -68
- package/dist/iterm2/mayuri.itermcolors +67 -67
- package/dist/iterm2/megumi.itermcolors +305 -0
- package/dist/iterm2/meiko.itermcolors +66 -66
- package/dist/iterm2/mercury.itermcolors +66 -66
- package/dist/iterm2/mettaton.itermcolors +68 -68
- package/dist/iterm2/miku.itermcolors +64 -64
- package/dist/iterm2/mio.itermcolors +66 -66
- package/dist/iterm2/mion.itermcolors +68 -68
- package/dist/iterm2/misato.itermcolors +63 -63
- package/dist/iterm2/miyuki.itermcolors +66 -66
- package/dist/iterm2/monika.itermcolors +68 -68
- package/dist/iterm2/moon.itermcolors +63 -63
- package/dist/iterm2/mugi.itermcolors +64 -64
- package/dist/iterm2/nadeko.itermcolors +60 -60
- package/dist/iterm2/nagisa.itermcolors +63 -63
- package/dist/iterm2/nanami.itermcolors +305 -0
- package/dist/iterm2/natsuki.itermcolors +62 -62
- package/dist/iterm2/nazuna.itermcolors +69 -69
- package/dist/iterm2/neutral.itermcolors +62 -62
- package/dist/iterm2/nightcity.itermcolors +63 -63
- package/dist/iterm2/nijika.itermcolors +60 -60
- package/dist/iterm2/nobara.itermcolors +305 -0
- package/dist/iterm2/oracle.itermcolors +64 -64
- package/dist/iterm2/panther.itermcolors +69 -69
- package/dist/iterm2/papyrus.itermcolors +67 -67
- package/dist/iterm2/patchouli.itermcolors +69 -69
- package/dist/iterm2/queen.itermcolors +63 -63
- package/dist/iterm2/rebecca.itermcolors +61 -61
- package/dist/iterm2/rei.itermcolors +63 -63
- package/dist/iterm2/reimu.itermcolors +66 -66
- package/dist/iterm2/rena.itermcolors +65 -65
- package/dist/iterm2/rika.itermcolors +65 -65
- package/dist/iterm2/rikka.itermcolors +305 -0
- package/dist/iterm2/rin.itermcolors +61 -61
- package/dist/iterm2/ritsu.itermcolors +67 -67
- package/dist/iterm2/rokkenjima.itermcolors +65 -65
- package/dist/iterm2/ryo.itermcolors +69 -69
- package/dist/iterm2/sans.itermcolors +63 -63
- package/dist/iterm2/satoko.itermcolors +69 -69
- package/dist/iterm2/sayaka.itermcolors +69 -69
- package/dist/iterm2/sayori.itermcolors +60 -60
- package/dist/iterm2/sei.itermcolors +63 -63
- package/dist/iterm2/seri.itermcolors +65 -65
- package/dist/iterm2/shinka.itermcolors +305 -0
- package/dist/iterm2/shinobu.itermcolors +63 -63
- package/dist/iterm2/skull.itermcolors +62 -62
- package/dist/iterm2/stella.itermcolors +62 -62
- package/dist/iterm2/sukuna.itermcolors +305 -0
- package/dist/iterm2/suzuha.itermcolors +64 -64
- package/dist/iterm2/toriel.itermcolors +63 -63
- package/dist/iterm2/tsubasa.itermcolors +69 -69
- package/dist/iterm2/tsukasa.itermcolors +66 -66
- package/dist/iterm2/undyne.itermcolors +69 -69
- package/dist/iterm2/valhalla.itermcolors +68 -68
- package/dist/iterm2/velvet.itermcolors +67 -67
- package/dist/iterm2/venus.itermcolors +57 -57
- package/dist/iterm2/yofukashi.itermcolors +64 -64
- package/dist/iterm2/youmu.itermcolors +69 -69
- package/dist/iterm2/yui.itermcolors +67 -67
- package/dist/iterm2/yuji.itermcolors +305 -0
- package/dist/iterm2/yuri.itermcolors +65 -65
- package/dist/iterm2/yuuta.itermcolors +305 -0
- package/dist/kitty/config/dekomori.conf +4 -0
- package/dist/kitty/config/geto.conf +4 -0
- package/dist/kitty/config/gojo.conf +4 -0
- package/dist/kitty/config/kumin.conf +4 -0
- package/dist/kitty/config/megumi.conf +4 -0
- package/dist/kitty/config/nanami.conf +4 -0
- package/dist/kitty/config/nobara.conf +4 -0
- package/dist/kitty/config/rikka.conf +4 -0
- package/dist/kitty/config/shinka.conf +4 -0
- package/dist/kitty/config/sukuna.conf +4 -0
- package/dist/kitty/config/yuji.conf +4 -0
- package/dist/kitty/config/yuuta.conf +4 -0
- package/dist/kitty/themes/alma.conf +21 -21
- package/dist/kitty/themes/anko.conf +22 -22
- package/dist/kitty/themes/asuka.conf +22 -22
- package/dist/kitty/themes/azusa.conf +22 -22
- package/dist/kitty/themes/battler.conf +22 -22
- package/dist/kitty/themes/beatrice.conf +22 -22
- package/dist/kitty/themes/bernkastel.conf +21 -21
- package/dist/kitty/themes/bocchi.conf +22 -22
- package/dist/kitty/themes/cirno.conf +23 -23
- package/dist/kitty/themes/david.conf +21 -21
- package/dist/kitty/themes/dekomori.conf +24 -0
- package/dist/kitty/themes/determination.conf +23 -23
- package/dist/kitty/themes/dorothy.conf +22 -22
- package/dist/kitty/themes/eva01.conf +22 -22
- package/dist/kitty/themes/flandre.conf +22 -22
- package/dist/kitty/themes/fox.conf +22 -22
- package/dist/kitty/themes/geto.conf +24 -0
- package/dist/kitty/themes/glitch.conf +23 -23
- package/dist/kitty/themes/gojo.conf +24 -0
- package/dist/kitty/themes/hinamizawa.conf +22 -22
- package/dist/kitty/themes/hitagi.conf +22 -22
- package/dist/kitty/themes/homura.conf +23 -23
- package/dist/kitty/themes/jill.conf +22 -22
- package/dist/kitty/themes/joker.conf +22 -22
- package/dist/kitty/themes/jupiter.conf +22 -22
- package/dist/kitty/themes/kagami.conf +23 -23
- package/dist/kitty/themes/kaito.conf +23 -23
- package/dist/kitty/themes/kaworu.conf +22 -22
- package/dist/kitty/themes/kita.conf +22 -22
- package/dist/kitty/themes/konata.conf +23 -23
- package/dist/kitty/themes/kou.conf +23 -23
- package/dist/kitty/themes/kumin.conf +24 -0
- package/dist/kitty/themes/kumori.conf +23 -23
- package/dist/kitty/themes/kurisu.conf +21 -21
- package/dist/kitty/themes/kyoko.conf +22 -22
- package/dist/kitty/themes/kyubey.conf +22 -22
- package/dist/kitty/themes/lain.conf +22 -22
- package/dist/kitty/themes/lambdadelta.conf +22 -22
- package/dist/kitty/themes/len.conf +23 -23
- package/dist/kitty/themes/lucy.conf +21 -21
- package/dist/kitty/themes/luka.conf +22 -22
- package/dist/kitty/themes/madoka.conf +21 -21
- package/dist/kitty/themes/magi.conf +21 -21
- package/dist/kitty/themes/mami.conf +23 -23
- package/dist/kitty/themes/marisa.conf +23 -23
- package/dist/kitty/themes/mars.conf +22 -22
- package/dist/kitty/themes/mayuri.conf +22 -22
- package/dist/kitty/themes/megumi.conf +24 -0
- package/dist/kitty/themes/meiko.conf +23 -23
- package/dist/kitty/themes/mercury.conf +21 -21
- package/dist/kitty/themes/mettaton.conf +23 -23
- package/dist/kitty/themes/miku.conf +22 -22
- package/dist/kitty/themes/mio.conf +21 -21
- package/dist/kitty/themes/mion.conf +22 -22
- package/dist/kitty/themes/misato.conf +22 -22
- package/dist/kitty/themes/miyuki.conf +23 -23
- package/dist/kitty/themes/monika.conf +23 -23
- package/dist/kitty/themes/moon.conf +21 -21
- package/dist/kitty/themes/mugi.conf +21 -21
- package/dist/kitty/themes/nadeko.conf +21 -21
- package/dist/kitty/themes/nagisa.conf +21 -21
- package/dist/kitty/themes/nanami.conf +24 -0
- package/dist/kitty/themes/natsuki.conf +22 -22
- package/dist/kitty/themes/nazuna.conf +22 -22
- package/dist/kitty/themes/neutral.conf +20 -20
- package/dist/kitty/themes/nightcity.conf +23 -23
- package/dist/kitty/themes/nijika.conf +21 -21
- package/dist/kitty/themes/nobara.conf +24 -0
- package/dist/kitty/themes/oracle.conf +21 -21
- package/dist/kitty/themes/panther.conf +22 -22
- package/dist/kitty/themes/papyrus.conf +23 -23
- package/dist/kitty/themes/patchouli.conf +22 -22
- package/dist/kitty/themes/queen.conf +22 -22
- package/dist/kitty/themes/rebecca.conf +22 -22
- package/dist/kitty/themes/rei.conf +21 -21
- package/dist/kitty/themes/reimu.conf +21 -21
- package/dist/kitty/themes/rena.conf +22 -22
- package/dist/kitty/themes/rika.conf +22 -22
- package/dist/kitty/themes/rikka.conf +24 -0
- package/dist/kitty/themes/rin.conf +23 -23
- package/dist/kitty/themes/ritsu.conf +22 -22
- package/dist/kitty/themes/rokkenjima.conf +21 -21
- package/dist/kitty/themes/ryo.conf +22 -22
- package/dist/kitty/themes/sans.conf +22 -22
- package/dist/kitty/themes/satoko.conf +22 -22
- package/dist/kitty/themes/sayaka.conf +22 -22
- package/dist/kitty/themes/sayori.conf +23 -23
- package/dist/kitty/themes/sei.conf +22 -22
- package/dist/kitty/themes/seri.conf +22 -22
- package/dist/kitty/themes/shinka.conf +24 -0
- package/dist/kitty/themes/shinobu.conf +21 -21
- package/dist/kitty/themes/skull.conf +22 -22
- package/dist/kitty/themes/stella.conf +22 -22
- package/dist/kitty/themes/sukuna.conf +24 -0
- package/dist/kitty/themes/suzuha.conf +21 -21
- package/dist/kitty/themes/toriel.conf +23 -23
- package/dist/kitty/themes/tsubasa.conf +22 -22
- package/dist/kitty/themes/tsukasa.conf +23 -23
- package/dist/kitty/themes/undyne.conf +23 -23
- package/dist/kitty/themes/valhalla.conf +22 -22
- package/dist/kitty/themes/velvet.conf +22 -22
- package/dist/kitty/themes/venus.conf +19 -19
- package/dist/kitty/themes/yofukashi.conf +21 -21
- package/dist/kitty/themes/youmu.conf +23 -23
- package/dist/kitty/themes/yui.conf +22 -22
- package/dist/kitty/themes/yuji.conf +24 -0
- package/dist/kitty/themes/yuri.conf +23 -23
- package/dist/kitty/themes/yuuta.conf +24 -0
- package/dist/manifest.json +5139 -0
- package/dist/shell/palettes.zsh +297 -113
- package/dist/wezterm/colors/alma.toml +7 -7
- package/dist/wezterm/colors/anko.toml +9 -9
- package/dist/wezterm/colors/asuka.toml +9 -9
- package/dist/wezterm/colors/azusa.toml +9 -9
- package/dist/wezterm/colors/battler.toml +9 -9
- package/dist/wezterm/colors/beatrice.toml +9 -9
- package/dist/wezterm/colors/bernkastel.toml +7 -7
- package/dist/wezterm/colors/bocchi.toml +9 -9
- package/dist/wezterm/colors/cirno.toml +10 -10
- package/dist/wezterm/colors/david.toml +7 -7
- package/dist/wezterm/colors/dekomori.toml +15 -0
- package/dist/wezterm/colors/determination.toml +9 -9
- package/dist/wezterm/colors/dorothy.toml +9 -9
- package/dist/wezterm/colors/eva01.toml +9 -9
- package/dist/wezterm/colors/flandre.toml +9 -9
- package/dist/wezterm/colors/fox.toml +9 -9
- package/dist/wezterm/colors/geto.toml +15 -0
- package/dist/wezterm/colors/glitch.toml +9 -9
- package/dist/wezterm/colors/gojo.toml +15 -0
- package/dist/wezterm/colors/hinamizawa.toml +9 -9
- package/dist/wezterm/colors/hitagi.toml +9 -9
- package/dist/wezterm/colors/homura.toml +10 -10
- package/dist/wezterm/colors/jill.toml +9 -9
- package/dist/wezterm/colors/joker.toml +9 -9
- package/dist/wezterm/colors/jupiter.toml +9 -9
- package/dist/wezterm/colors/kagami.toml +10 -10
- package/dist/wezterm/colors/kaito.toml +9 -9
- package/dist/wezterm/colors/kaworu.toml +9 -9
- package/dist/wezterm/colors/kita.toml +9 -9
- package/dist/wezterm/colors/konata.toml +10 -10
- package/dist/wezterm/colors/kou.toml +10 -10
- package/dist/wezterm/colors/kumin.toml +15 -0
- package/dist/wezterm/colors/kumori.toml +8 -8
- package/dist/wezterm/colors/kurisu.toml +7 -7
- package/dist/wezterm/colors/kyoko.toml +9 -9
- package/dist/wezterm/colors/kyubey.toml +9 -9
- package/dist/wezterm/colors/lain.toml +9 -9
- package/dist/wezterm/colors/lambdadelta.toml +9 -9
- package/dist/wezterm/colors/len.toml +9 -9
- package/dist/wezterm/colors/lucy.toml +7 -7
- package/dist/wezterm/colors/luka.toml +7 -7
- package/dist/wezterm/colors/madoka.toml +7 -7
- package/dist/wezterm/colors/magi.toml +7 -7
- package/dist/wezterm/colors/mami.toml +10 -10
- package/dist/wezterm/colors/marisa.toml +10 -10
- package/dist/wezterm/colors/mars.toml +9 -9
- package/dist/wezterm/colors/mayuri.toml +9 -9
- package/dist/wezterm/colors/megumi.toml +15 -0
- package/dist/wezterm/colors/meiko.toml +9 -9
- package/dist/wezterm/colors/mercury.toml +7 -7
- package/dist/wezterm/colors/mettaton.toml +9 -9
- package/dist/wezterm/colors/miku.toml +7 -7
- package/dist/wezterm/colors/mio.toml +7 -7
- package/dist/wezterm/colors/mion.toml +9 -9
- package/dist/wezterm/colors/misato.toml +9 -9
- package/dist/wezterm/colors/miyuki.toml +10 -10
- package/dist/wezterm/colors/monika.toml +9 -9
- package/dist/wezterm/colors/moon.toml +7 -7
- package/dist/wezterm/colors/mugi.toml +7 -7
- package/dist/wezterm/colors/nadeko.toml +7 -7
- package/dist/wezterm/colors/nagisa.toml +7 -7
- package/dist/wezterm/colors/nanami.toml +15 -0
- package/dist/wezterm/colors/natsuki.toml +7 -7
- package/dist/wezterm/colors/nazuna.toml +9 -9
- package/dist/wezterm/colors/neutral.toml +7 -7
- package/dist/wezterm/colors/nightcity.toml +10 -10
- package/dist/wezterm/colors/nijika.toml +7 -7
- package/dist/wezterm/colors/nobara.toml +15 -0
- package/dist/wezterm/colors/oracle.toml +7 -7
- package/dist/wezterm/colors/panther.toml +9 -9
- package/dist/wezterm/colors/papyrus.toml +9 -9
- package/dist/wezterm/colors/patchouli.toml +9 -9
- package/dist/wezterm/colors/queen.toml +9 -9
- package/dist/wezterm/colors/rebecca.toml +9 -9
- package/dist/wezterm/colors/rei.toml +7 -7
- package/dist/wezterm/colors/reimu.toml +9 -9
- package/dist/wezterm/colors/rena.toml +9 -9
- package/dist/wezterm/colors/rika.toml +9 -9
- package/dist/wezterm/colors/rikka.toml +15 -0
- package/dist/wezterm/colors/rin.toml +9 -9
- package/dist/wezterm/colors/ritsu.toml +9 -9
- package/dist/wezterm/colors/rokkenjima.toml +7 -7
- package/dist/wezterm/colors/ryo.toml +9 -9
- package/dist/wezterm/colors/sans.toml +7 -7
- package/dist/wezterm/colors/satoko.toml +9 -9
- package/dist/wezterm/colors/sayaka.toml +9 -9
- package/dist/wezterm/colors/sayori.toml +9 -9
- package/dist/wezterm/colors/sei.toml +9 -9
- package/dist/wezterm/colors/seri.toml +8 -8
- package/dist/wezterm/colors/shinka.toml +15 -0
- package/dist/wezterm/colors/shinobu.toml +7 -7
- package/dist/wezterm/colors/skull.toml +9 -9
- package/dist/wezterm/colors/stella.toml +9 -9
- package/dist/wezterm/colors/sukuna.toml +15 -0
- package/dist/wezterm/colors/suzuha.toml +7 -7
- package/dist/wezterm/colors/toriel.toml +9 -9
- package/dist/wezterm/colors/tsubasa.toml +9 -9
- package/dist/wezterm/colors/tsukasa.toml +10 -10
- package/dist/wezterm/colors/undyne.toml +9 -9
- package/dist/wezterm/colors/valhalla.toml +9 -9
- package/dist/wezterm/colors/velvet.toml +9 -9
- package/dist/wezterm/colors/venus.toml +6 -6
- package/dist/wezterm/colors/yofukashi.toml +7 -7
- package/dist/wezterm/colors/youmu.toml +10 -10
- package/dist/wezterm/colors/yui.toml +9 -9
- package/dist/wezterm/colors/yuji.toml +15 -0
- package/dist/wezterm/colors/yuri.toml +9 -9
- package/dist/wezterm/colors/yuuta.toml +15 -0
- package/dist/wezterm/config/dekomori.lua +10 -0
- package/dist/wezterm/config/geto.lua +10 -0
- package/dist/wezterm/config/gojo.lua +10 -0
- package/dist/wezterm/config/kumin.lua +10 -0
- package/dist/wezterm/config/megumi.lua +10 -0
- package/dist/wezterm/config/nanami.lua +10 -0
- package/dist/wezterm/config/nobara.lua +10 -0
- package/dist/wezterm/config/rikka.lua +10 -0
- package/dist/wezterm/config/shinka.lua +10 -0
- package/dist/wezterm/config/sukuna.lua +10 -0
- package/dist/wezterm/config/yuji.lua +10 -0
- package/dist/wezterm/config/yuuta.lua +10 -0
- package/package.json +7 -1
- package/shell/adapters/_osc.zsh +34 -5
- package/shell/adapters/ghostty.zsh +509 -0
- package/shell/adapters/kitty.zsh +4 -3
- package/shell/ttheme.zsh +1086 -204
package/README.md
CHANGED
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
Character terminal palettes — every new tab takes the next one.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
One hundred and eight palettes drawn from Vocaloid, Evangelion, Madoka Magica,
|
|
6
6
|
Steins;Gate, Lucky☆Star, Bocchi the Rock!, Monogatari, Sailor Moon, Serial
|
|
7
7
|
Experiments Lain, VA-11 Hall-A, Persona 5, Undertale, Call of the Night,
|
|
8
|
-
Higurashi, Doki Doki Literature Club, Umineko, K-On!, Cyberpunk: Edgerunners
|
|
9
|
-
|
|
10
|
-
layer that rotates through them as you open tabs.
|
|
8
|
+
Higurashi, Doki Doki Literature Club, Umineko, K-On!, Cyberpunk: Edgerunners,
|
|
9
|
+
Touhou Project, Chuunibyou and Jujutsu Kaisen, built for **Ghostty, kitty, Alacritty,
|
|
10
|
+
WezTerm and iTerm2**, plus a zsh layer that rotates through them as you open tabs.
|
|
11
11
|
|
|
12
12
|
Two things separate this from the usual color-scheme dump:
|
|
13
13
|
|
|
@@ -40,9 +40,12 @@ Two things separate this from the usual color-scheme dump:
|
|
|
40
40
|
| K-On! — けいおん! | `yui` `ritsu` `mio` `mugi` `azusa` |
|
|
41
41
|
| Cyberpunk: Edgerunners — サイバーパンク エッジランナーズ | `david` `lucy` `rebecca` `nightcity` |
|
|
42
42
|
| Touhou Project — 東方Project | `reimu` `marisa` `cirno` `youmu` `patchouli` `flandre` |
|
|
43
|
+
| Chuunibyou — 中二病でも恋がしたい! | `rikka` `yuuta` `shinka` `dekomori` `kumin` |
|
|
44
|
+
| Jujutsu Kaisen — 呪術廻戦 | `gojo` `yuji` `megumi` `nobara` `nanami` `geto` `sukuna` |
|
|
43
45
|
| — | `neutral` (default) |
|
|
44
46
|
|
|
45
|
-
`neutral` sits out of the rotation — it is the pre-shell
|
|
47
|
+
`neutral` sits out of the rotation and the listings — it is the pre-shell
|
|
48
|
+
default, still applyable as `ttheme neutral`.
|
|
46
49
|
|
|
47
50
|
Backgrounds and cursors are hand-tuned; the 16 ANSI colors are borrowed from
|
|
48
51
|
established themes (Nvim Dark, Nightfox, Oxocarbon, Selenized, Monokai Pro,
|
|
@@ -59,11 +62,17 @@ came from — `ttheme` prints it, and it is in the theme's TOML.
|
|
|
59
62
|
npx @kecan0406/ttheme@latest init
|
|
60
63
|
```
|
|
61
64
|
|
|
62
|
-
It
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
65
|
+
It asks which terminals to wire and which series to install — `space` marks
|
|
66
|
+
one, enter moves on, and `select all` takes the lot — then shows what it is
|
|
67
|
+
about to change and writes it all at once, so cancelling before that touches
|
|
68
|
+
nothing. It places the zsh layer under `~/.config/ttheme` and edits your
|
|
69
|
+
terminal config and `~/.zshrc` between `# ttheme begin` / `# ttheme end`
|
|
70
|
+
markers — everything outside the markers is left alone. It ends with a receipt,
|
|
71
|
+
paints the first palette onto the tab you ran it in and lists what to do next
|
|
72
|
+
(`exec zsh` for the `ttheme` command here, a terminal restart for new tabs).
|
|
73
|
+
Running it again updates in place; `--yes` skips every prompt and installs no
|
|
74
|
+
palettes — `ttheme browse` opens the full catalog any time, to add or drop
|
|
75
|
+
single palettes.
|
|
67
76
|
|
|
68
77
|
**WezTerm and iTerm2** — one archive per terminal in the
|
|
69
78
|
[latest release](https://github.com/kecan0406/ttheme/releases/latest):
|
|
@@ -98,40 +107,225 @@ from the palette), and the font + shader — identical across themes — ship as
|
|
|
98
107
|
one shared `ttheme.conf` you include once with `config-file`.
|
|
99
108
|
|
|
100
109
|
Building from a checkout works too: `mise install && bun install && mise run
|
|
101
|
-
build` writes the same tree to `dist/`,
|
|
102
|
-
|
|
110
|
+
build` writes the same tree to `dist/`, `mise run sandbox` tries it in a
|
|
111
|
+
throwaway home, and `mise run bin:build && node bin/ttheme.js init` installs
|
|
112
|
+
it for real.
|
|
103
113
|
|
|
104
114
|
## Use
|
|
105
115
|
|
|
106
116
|
```
|
|
107
117
|
ttheme list every palette, grouped, with previews
|
|
108
118
|
ttheme homura pin this tab (a unique prefix works: ttheme ho)
|
|
109
|
-
ttheme preview browse live — focus repaints the tab, enter keeps it
|
|
119
|
+
ttheme preview browse live — focus repaints the tab, enter keeps it (this tab or default)
|
|
110
120
|
ttheme next advance this tab to the next palette
|
|
111
|
-
ttheme
|
|
121
|
+
ttheme pin pick a palette for this directory — cd into it repaints, cd out restores
|
|
122
|
+
ttheme unpin drop the palette pinned to this directory
|
|
123
|
+
ttheme config edit settings in $EDITOR — they apply in new tabs
|
|
112
124
|
ttheme help the list above, in your terminal
|
|
125
|
+
|
|
126
|
+
ttheme browse pick palettes from the catalog in a live picker
|
|
127
|
+
ttheme list the catalog, ● installed and ○ not (a query filters it)
|
|
128
|
+
ttheme add install palettes from the catalog
|
|
129
|
+
ttheme remove uninstall palettes
|
|
130
|
+
ttheme update refresh the catalog from the registry
|
|
113
131
|
```
|
|
114
132
|
|
|
115
|
-
In `preview`,
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
133
|
+
In `preview`, series and palettes are listed by name (`TTHEME_SORT=series`
|
|
134
|
+
keeps the order they were added), groups start folded with the cursor on the
|
|
135
|
+
current palette;
|
|
136
|
+
`↑`/`↓` move (the tab repaints as the focus lands on a palette), `←`/`→` fold
|
|
137
|
+
and unfold (so do enter and space on a series), page up/down and home/end
|
|
138
|
+
jump, typing filters by substring and underlines the match (ctrl-u clears it),
|
|
139
|
+
enter applies, and esc steps back — first out of the filter, then out of the
|
|
140
|
+
preview with the original colors restored. Each palette row carries its 16
|
|
141
|
+
colors, normal over bright. The last line lists only the keys that work right
|
|
142
|
+
there, names the mode when it is not plain browsing (`FILTER`, `TUNE`, `CONFIG`,
|
|
143
|
+
`APPLY`, `KEYS`) and pins where esc goes to the right; `?` shows all of them.
|
|
144
|
+
alt-c opens the settings below in place — `↑`/`↓` pick one, `←`/`→` change it
|
|
145
|
+
(the sort and the search hint animation change live), enter writes the changed
|
|
146
|
+
lines to `config.zsh`, esc puts every value back. From 76
|
|
147
|
+
columns on, a sample session sits against the right edge of the window — the
|
|
148
|
+
16 colors, a prompt, git and test output, a selection — in the palette under
|
|
149
|
+
the cursor. The list and the sample widen with the window (the sample up to 64
|
|
150
|
+
columns) and the gap between them takes the rest; the tuning panel takes the
|
|
151
|
+
sample's place while open, and so does the key list once the sample is 48
|
|
152
|
+
columns wide.
|
|
153
|
+
Under Ghostty with `TTHEME_TAB_PALETTE=off`, enter asks **this tab** or
|
|
154
|
+
**default**: default records the palette as your startup palette (so a later
|
|
155
|
+
`add` or `remove` keeps it), rewrites `theme =` in the `# ttheme begin` block of
|
|
156
|
+
your Ghostty config and sends `SIGUSR2` to the Ghostty that owns the tab, so new tabs — and open tabs you have not
|
|
157
|
+
painted by hand — take the palette without a restart. Painting is per surface
|
|
158
|
+
otherwise: a new tab starts from the configured theme, not from what the last
|
|
159
|
+
tab was painted.
|
|
160
|
+
|
|
161
|
+
A palette can also bring a Ghostty background image. The block `init` writes
|
|
162
|
+
includes `~/.config/ttheme/backgrounds/<palette>.conf` for the configured
|
|
163
|
+
theme with an optional `config-file = ?…`, and choosing **default** points that
|
|
164
|
+
include at the new palette — so whatever Ghostty settings you put in that file
|
|
165
|
+
follow the default, and palettes without one show no image:
|
|
120
166
|
|
|
121
|
-
|
|
167
|
+
```
|
|
168
|
+
# ~/.config/ttheme/backgrounds/kagami.conf
|
|
169
|
+
background-image = ~/.config/ttheme/backgrounds/kagami.png
|
|
170
|
+
background-image-fit = cover
|
|
171
|
+
background-image-opacity = 0.2
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
ttheme ships no images; they stay on your machine. A background is Ghostty
|
|
175
|
+
config, not an escape sequence, so it follows the default for every window
|
|
176
|
+
rather than the palette painted on one tab.
|
|
177
|
+
|
|
178
|
+
A palette with no background yet can find one: on it in `preview`, tab opens
|
|
179
|
+
**find**, which searches a booru for the palette's character tag
|
|
180
|
+
(`meta.booru`) and lays the results out as a grid of thumbnails. It starts on
|
|
181
|
+
safebooru; `p` moves to yande.re, then konachan, then back — the three share
|
|
182
|
+
one tag vocabulary, so the same tag works on each. The site you are on sits in
|
|
183
|
+
a colored badge at the top right, and again at the start of the line above a
|
|
184
|
+
picture you try on, next to the site the artwork itself came from when the post
|
|
185
|
+
records one (`pixiv.net`, `deviantart.com`). The grid starts
|
|
186
|
+
with **cutouts** — posts carrying the site's transparency tags
|
|
187
|
+
(`transparent_background` or `vector_trace` on safebooru, `transparent_png` on
|
|
188
|
+
yande.re, `transparent` or `vector` on konachan) whose PNG header says they have
|
|
189
|
+
an alpha channel; yande.re's `transparent_png` already means exactly that, so
|
|
190
|
+
its posts skip the header check, which its slow file server would drag out —
|
|
191
|
+
and the counter reads shown out of checked, `13/33`. Pictures by the uploader of the backgrounds you already have
|
|
192
|
+
in the same series come first and carry `≈`, so a series keeps one hand;
|
|
193
|
+
anything under 1600 px on its long edge shows its size in yellow. Enter tries
|
|
194
|
+
the picture on: ttheme downloads the original and paints the whole window with
|
|
195
|
+
it the way the installed background will look — tinted with the palette,
|
|
196
|
+
cropped with headroom above the face, at the opacity the contrast gate allows —
|
|
197
|
+
over a sample of shell output, with the share of transparent pixels next to its
|
|
198
|
+
size (`opaque` when there are none). `←`/`→` try the neighbours, enter installs,
|
|
199
|
+
and the preview carries on straight into the tuning panel below. Tab switches to
|
|
200
|
+
every post of the character, esc goes back. Only `safe` and `general` posts are
|
|
201
|
+
ever shown — yande.re and konachan are always asked for `rating:s`, whatever
|
|
202
|
+
else is searched — and downloads stay in `~/.cache/ttheme/<site>/`. ttheme keeps no
|
|
203
|
+
list of images — the tag is all it knows about a character.
|
|
204
|
+
|
|
205
|
+
An install writes `<palette>.png` (the tinted figure), `<palette>@fill-<focus>.png`
|
|
206
|
+
(the window-shaped crop), `<palette>.conf` and the untouched original under
|
|
207
|
+
`backgrounds/originals/`, and removes any earlier tuning of that palette. The
|
|
208
|
+
conf opens with where the picture came from —
|
|
209
|
+
`# from yande.re 214705 https://yande.re/post/show/214705` — and the tuning
|
|
210
|
+
panel shows it next to the palette's name.
|
|
211
|
+
|
|
212
|
+
`preview` shows the background of the palette under the cursor while you
|
|
213
|
+
browse: through the kitty graphics protocol it draws that palette's
|
|
214
|
+
`background-image` where Ghostty would place it, faded by
|
|
215
|
+
`background-image-opacity`, behind the list — or just its plain background when
|
|
216
|
+
it has no file. Only PNG images preview.
|
|
217
|
+
|
|
218
|
+
On a palette with a background, tab opens a panel that tunes it in place:
|
|
219
|
+
`↑`/`↓` pick size, position or opacity, and `←`/`→` change it (with shift, ten
|
|
220
|
+
steps at a time). Size walks 1% at a time, shown large in the middle of the
|
|
221
|
+
screen as it changes: 100% is the whole image fitted into the window
|
|
222
|
+
(`contain`), below that it shrinks to 20%, above it the image grows around the
|
|
223
|
+
face until it covers the window, and the top step is **fill** (`cover`). Fill
|
|
224
|
+
uses `<palette>@fill-<focus>.png` when it sits beside the image — a crop made
|
|
225
|
+
to fill the window, whose name carries the height of the face in percent, which
|
|
226
|
+
the sizes above 100% zoom around — and the image itself otherwise. Position
|
|
227
|
+
steps through the nine `background-image-position` anchors, or `1`–`9` jump to
|
|
228
|
+
one in reading order; opacity moves by 0.01. Space turns the palette's
|
|
229
|
+
background off and on, `=` returns it to its defaults, enter keeps the change
|
|
230
|
+
and esc puts back what the panel opened with. `f` in the panel opens find again
|
|
231
|
+
to replace the picture.
|
|
232
|
+
|
|
233
|
+
The palette's `.conf` holds those defaults; the preview only appends two
|
|
234
|
+
optional includes to it and keeps everything else in `<palette>.tune.conf` (the
|
|
235
|
+
tuning) and `<palette>.off.conf` (the off switch), which Ghostty loads after
|
|
236
|
+
the conf. Kept changes are written when the preview closes, by whichever key, and
|
|
237
|
+
Ghostty reloads when that palette is the default. Ghostty has no scale setting,
|
|
238
|
+
so every size but 100% and fill is baked into a copy beside the image and the
|
|
239
|
+
tuning points at it: below 100% onto a transparent canvas of the image's own
|
|
240
|
+
size (`kagami@60-bottom-right.png`, fitted with `contain`), above it onto one of
|
|
241
|
+
the window's size at the time (`kagami@130-center-2880x1800.png`, with
|
|
242
|
+
`cover`). Baking runs `sips`, so those sizes are offered on macOS only.
|
|
243
|
+
|
|
244
|
+
The preview draws inside the cell grid, and Ghostty's `window-padding` around
|
|
245
|
+
it keeps showing the configured background. While the cursor rests on the
|
|
246
|
+
configured palette and nothing has been tuned, the preview draws nothing and
|
|
247
|
+
lets that background show through whole. Once Ghostty supports kitty's relative
|
|
248
|
+
placements (merged after 1.3.1), the preview notices when it opens and hangs
|
|
249
|
+
its layers out over the padding instead, so every palette reaches the window
|
|
250
|
+
edge.
|
|
251
|
+
|
|
252
|
+
`pin` opens the same browser and, on enter, asks **this directory** or **and
|
|
253
|
+
below**; the answer lands in `~/.config/ttheme/pins`, one `path palette` per
|
|
254
|
+
line, where `path/**` covers everything below it (`~` works, and the file is
|
|
255
|
+
yours to edit). From then on a tab that `cd`s into a pinned path takes its
|
|
256
|
+
palette — symlinks resolve to the pinned directory — and `cd`ing out restores
|
|
257
|
+
what the tab had before, unless you painted it by hand in between, in which
|
|
258
|
+
case your pick stays. The nearest pinned ancestor wins, so a project can pin
|
|
259
|
+
one palette and a subfolder another. Open tabs pick up a changed pins file on
|
|
260
|
+
their next `cd`; `unpin` drops the pin on the current directory.
|
|
261
|
+
|
|
262
|
+
`preview`, `next`, `pin`, `unpin`, `config` and `help` match exactly; every other first argument is read
|
|
122
263
|
as a palette name, where a unique prefix is enough. Mistyped names get a "did
|
|
123
264
|
you mean" suggestion instead of a wall of output. Piped output drops color and
|
|
124
|
-
turns tab-separated
|
|
125
|
-
is respected.
|
|
265
|
+
turns tab-separated, and `NO_COLOR` is respected.
|
|
126
266
|
|
|
127
267
|
New tabs take the next palette in group order, with the counter shared across
|
|
128
268
|
tabs — so opening four tabs walks you through four different characters rather
|
|
129
269
|
than rolling the same one twice.
|
|
130
270
|
|
|
131
|
-
|
|
271
|
+
Settings live in `~/.config/ttheme/config.zsh` — `init` seeds it with the
|
|
272
|
+
defaults and never overwrites a line you changed, `ttheme config` opens it in `$EDITOR` and alt-c in `preview` edits it in place. Each line is a plain zsh
|
|
273
|
+
`: ${VAR:=value}` assignment, so a variable exported before the layer loads
|
|
274
|
+
still wins:
|
|
275
|
+
|
|
276
|
+
| Setting | Default | |
|
|
132
277
|
|---|---|---|
|
|
133
|
-
| `TTHEME_TAB_PALETTE` | `seq` | `off`
|
|
278
|
+
| `TTHEME_TAB_PALETTE` | `seq` | `off` keeps new tabs on the terminal's configured theme (`preview` → default changes it) |
|
|
134
279
|
| `TTHEME_ANNOUNCE` | `1` | `0` silences the one-line notice under "Last login:" |
|
|
280
|
+
| `TTHEME_FX` | `typewriter` | search hint animation — `typewriter`, `decode` or `glitch` |
|
|
281
|
+
| `TTHEME_SORT` | `abc` | `series` lists series and palettes in the order they were added instead of by name — in `ttheme`, `preview` and, once exported, the `init` picker |
|
|
282
|
+
|
|
283
|
+
## The catalog
|
|
284
|
+
|
|
285
|
+
The catalog is not installed wholesale: `init` installs the series you pick, and
|
|
286
|
+
`init --yes` none at all. `ttheme browse` opens the catalog as a live picker —
|
|
287
|
+
groups fold and unfold, typing filters (a query has no spaces, `space` is the
|
|
288
|
+
pick key), the tab repaints as the cursor lands on a palette, `space` marks one
|
|
289
|
+
(a series from its header, everything shown from `select all`), and enter
|
|
290
|
+
installs exactly what is marked and removes what is not:
|
|
291
|
+
|
|
292
|
+
```
|
|
293
|
+
◆ catalog (4/107 · 2 picked)
|
|
294
|
+
│ ⌕ bo_
|
|
295
|
+
│ ○ select all (4)
|
|
296
|
+
│ ▾ Bocchi the Rock! (2/4) ぼっち・ざ・ろっく!
|
|
297
|
+
│ ▶ ● bocchi ● ▁▁▁▁▁▁ Sakura + Kessoku
|
|
298
|
+
│ ● kita ● ▁▁▁▁▁▁ Wild Cherry + Kessoku
|
|
299
|
+
│ ○ nijika ● ▁▁▁▁▁▁ Medallion
|
|
300
|
+
│ ○ ryo ● ▁▁▁▁▁▁ TokyoNight Storm
|
|
301
|
+
└ ↑↓ move · ←→ fold · space pick · type to filter · enter install · esc cancel
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
The counts stay honest: `4/107` is what the filter matched out of the catalog,
|
|
305
|
+
`2 picked` is the install set, and `(2/4)` on the series header is how many of
|
|
306
|
+
its shown palettes are in it. The dot and the bar are the palette's real cursor
|
|
307
|
+
and its ANSI colors.
|
|
308
|
+
|
|
309
|
+
The same four verbs work without the picker:
|
|
310
|
+
|
|
311
|
+
```sh
|
|
312
|
+
ttheme list jujutsu # what the catalog has, and what you already installed
|
|
313
|
+
ttheme add gojo geto # two more, written into your terminal configs
|
|
314
|
+
ttheme remove kyubey # and one fewer
|
|
315
|
+
ttheme update # new palettes, without an npm release
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
`browse`, `add` and `remove` rewrite `palettes.zsh`, each wired terminal's
|
|
319
|
+
`themes/` directory and the `theme =` line in its config, then the shell re-reads
|
|
320
|
+
them — the change is live in the tab you ran it in. The first palette you install
|
|
321
|
+
becomes the one new windows open with.
|
|
322
|
+
|
|
323
|
+
`update` refetches the catalog from the registry; every palette in it has already
|
|
324
|
+
passed the contrast gate in CI, and `add` checks the numbers again before it
|
|
325
|
+
writes anything.
|
|
326
|
+
|
|
327
|
+
Installed palettes are listed in `~/.config/ttheme/installed.json`, and the
|
|
328
|
+
catalog is cached in `~/.config/ttheme/catalog.json`.
|
|
135
329
|
|
|
136
330
|
## What each terminal can actually do
|
|
137
331
|
|
|
@@ -153,26 +347,30 @@ in its build.
|
|
|
153
347
|
|
|
154
348
|
## Adding a palette
|
|
155
349
|
|
|
156
|
-
One file — copy any of `themes/*.toml
|
|
350
|
+
One file — copy any of `themes/*.toml`. `CONTRIBUTING.md` has the rules for
|
|
351
|
+
sending one back; the short version is that this repository takes **color values
|
|
352
|
+
only and never images**:
|
|
157
353
|
|
|
158
354
|
```toml
|
|
159
355
|
[meta]
|
|
160
|
-
name = "
|
|
161
|
-
group = "Madoka Magica"
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
356
|
+
name = "madoka" # must match the filename
|
|
357
|
+
group = "Madoka Magica" # needs a [[group]] in themes/_groups.toml
|
|
358
|
+
order = 15 # position in the rotation
|
|
359
|
+
ansi_source = "Elegant + Magica" # what the harmonizer was fed
|
|
360
|
+
booru = "kaname_madoka" # safebooru character tag find searches
|
|
361
|
+
signature = ["cursor", "ansi1", "ansi3"] # the three slots the site draws as identity
|
|
165
362
|
|
|
166
363
|
[colors]
|
|
167
|
-
background = "#
|
|
168
|
-
foreground = "#
|
|
169
|
-
cursor = "#
|
|
170
|
-
selection_background = "#
|
|
364
|
+
background = "#201516"
|
|
365
|
+
foreground = "#fbdbdd"
|
|
366
|
+
cursor = "#ffc1c6"
|
|
367
|
+
selection_background = "#553444"
|
|
171
368
|
ansi = [ ... 16 colors ... ]
|
|
172
369
|
```
|
|
173
370
|
|
|
174
|
-
|
|
175
|
-
theme
|
|
371
|
+
The series title and its `native` reading live once in `themes/_groups.toml`,
|
|
372
|
+
never in a theme file. `[font]` and `[ghostty]` are inherited from
|
|
373
|
+
`themes/_defaults.toml` unless the theme overrides them. Then:
|
|
176
374
|
|
|
177
375
|
```sh
|
|
178
376
|
mise run build # regenerates dist/ for all five terminals — fails on bad contrast
|
|
@@ -180,10 +378,11 @@ mise run build --only kitty # just one terminal's subtree
|
|
|
180
378
|
mise run test
|
|
181
379
|
```
|
|
182
380
|
|
|
183
|
-
All
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
381
|
+
All one hundred and eight currently pass unwaived — `kyubey` runs tightest at
|
|
382
|
+
4.28:1 where accents need 3:1: it is the one light palette, so every accent has
|
|
383
|
+
to darken enough to hold against a near-white background. If a palette genuinely
|
|
384
|
+
has to break a rule, waive it by name and say why; a waiver without a reason
|
|
385
|
+
fails the test suite.
|
|
187
386
|
|
|
188
387
|
```toml
|
|
189
388
|
[contrast]
|
|
@@ -193,11 +392,22 @@ reason = "why this palette is the exception"
|
|
|
193
392
|
|
|
194
393
|
## Credits
|
|
195
394
|
|
|
196
|
-
ANSI
|
|
197
|
-
|
|
395
|
+
Base ANSI ramps come from
|
|
396
|
+
[mbadolato/iTerm2-Color-Schemes](https://github.com/mbadolato/iTerm2-Color-Schemes)
|
|
397
|
+
(MIT), whose notice keeps each individual scheme's copyright with its own
|
|
398
|
+
author. Two palettes are sourced directly instead: `miku` from
|
|
399
|
+
[vauxe/hatsune-miku-theme](https://github.com/vauxe/hatsune-miku-theme) (MIT)
|
|
400
|
+
and `magi` from [lotap/magi-theme](https://github.com/lotap/magi-theme) (MIT).
|
|
401
|
+
Every palette records its input in `meta.ansi_source`, and only that input's
|
|
402
|
+
hues survive: the harmonizer normalizes lightness and saturation away and
|
|
403
|
+
rotates each non-signature hue toward the palette's own seed, so no scheme is
|
|
404
|
+
reproduced here. Shaders come from
|
|
198
405
|
[sahaj-b/ghostty-cursor-shaders](https://github.com/sahaj-b/ghostty-cursor-shaders)
|
|
199
406
|
(MIT), see `ghostty/shaders/`.
|
|
200
407
|
|
|
201
408
|
Palettes are inspired by characters from the listed works; this project is
|
|
202
409
|
unaffiliated with and unendorsed by their rights holders. No character art,
|
|
203
410
|
audio or trademarked asset is redistributed here — only color values.
|
|
411
|
+
Terminal background images are downloaded from the booru you pick only when you
|
|
412
|
+
ask `find` for one, built on your own machine and written to
|
|
413
|
+
`~/.config/ttheme/backgrounds/`; none ship in this repository or on npm.
|