@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.
Files changed (585) hide show
  1. package/README.md +252 -42
  2. package/bin/ttheme.js +7053 -514
  3. package/dist/alacritty/config/dekomori.toml +8 -0
  4. package/dist/alacritty/config/geto.toml +8 -0
  5. package/dist/alacritty/config/gojo.toml +8 -0
  6. package/dist/alacritty/config/kumin.toml +8 -0
  7. package/dist/alacritty/config/megumi.toml +8 -0
  8. package/dist/alacritty/config/nanami.toml +8 -0
  9. package/dist/alacritty/config/nobara.toml +8 -0
  10. package/dist/alacritty/config/rikka.toml +8 -0
  11. package/dist/alacritty/config/shinka.toml +8 -0
  12. package/dist/alacritty/config/sukuna.toml +8 -0
  13. package/dist/alacritty/config/yuji.toml +8 -0
  14. package/dist/alacritty/config/yuuta.toml +8 -0
  15. package/dist/alacritty/themes/alma.toml +21 -21
  16. package/dist/alacritty/themes/anko.toml +22 -22
  17. package/dist/alacritty/themes/asuka.toml +22 -22
  18. package/dist/alacritty/themes/azusa.toml +22 -22
  19. package/dist/alacritty/themes/battler.toml +22 -22
  20. package/dist/alacritty/themes/beatrice.toml +22 -22
  21. package/dist/alacritty/themes/bernkastel.toml +21 -21
  22. package/dist/alacritty/themes/bocchi.toml +22 -22
  23. package/dist/alacritty/themes/cirno.toml +23 -23
  24. package/dist/alacritty/themes/david.toml +21 -21
  25. package/dist/alacritty/themes/dekomori.toml +34 -0
  26. package/dist/alacritty/themes/determination.toml +23 -23
  27. package/dist/alacritty/themes/dorothy.toml +22 -22
  28. package/dist/alacritty/themes/eva01.toml +22 -22
  29. package/dist/alacritty/themes/flandre.toml +22 -22
  30. package/dist/alacritty/themes/fox.toml +22 -22
  31. package/dist/alacritty/themes/geto.toml +34 -0
  32. package/dist/alacritty/themes/glitch.toml +23 -23
  33. package/dist/alacritty/themes/gojo.toml +34 -0
  34. package/dist/alacritty/themes/hinamizawa.toml +22 -22
  35. package/dist/alacritty/themes/hitagi.toml +22 -22
  36. package/dist/alacritty/themes/homura.toml +23 -23
  37. package/dist/alacritty/themes/jill.toml +22 -22
  38. package/dist/alacritty/themes/joker.toml +22 -22
  39. package/dist/alacritty/themes/jupiter.toml +22 -22
  40. package/dist/alacritty/themes/kagami.toml +23 -23
  41. package/dist/alacritty/themes/kaito.toml +23 -23
  42. package/dist/alacritty/themes/kaworu.toml +22 -22
  43. package/dist/alacritty/themes/kita.toml +22 -22
  44. package/dist/alacritty/themes/konata.toml +23 -23
  45. package/dist/alacritty/themes/kou.toml +23 -23
  46. package/dist/alacritty/themes/kumin.toml +34 -0
  47. package/dist/alacritty/themes/kumori.toml +23 -23
  48. package/dist/alacritty/themes/kurisu.toml +21 -21
  49. package/dist/alacritty/themes/kyoko.toml +22 -22
  50. package/dist/alacritty/themes/kyubey.toml +22 -22
  51. package/dist/alacritty/themes/lain.toml +22 -22
  52. package/dist/alacritty/themes/lambdadelta.toml +22 -22
  53. package/dist/alacritty/themes/len.toml +23 -23
  54. package/dist/alacritty/themes/lucy.toml +21 -21
  55. package/dist/alacritty/themes/luka.toml +22 -22
  56. package/dist/alacritty/themes/madoka.toml +21 -21
  57. package/dist/alacritty/themes/magi.toml +21 -21
  58. package/dist/alacritty/themes/mami.toml +23 -23
  59. package/dist/alacritty/themes/marisa.toml +23 -23
  60. package/dist/alacritty/themes/mars.toml +22 -22
  61. package/dist/alacritty/themes/mayuri.toml +22 -22
  62. package/dist/alacritty/themes/megumi.toml +34 -0
  63. package/dist/alacritty/themes/meiko.toml +23 -23
  64. package/dist/alacritty/themes/mercury.toml +21 -21
  65. package/dist/alacritty/themes/mettaton.toml +23 -23
  66. package/dist/alacritty/themes/miku.toml +22 -22
  67. package/dist/alacritty/themes/mio.toml +21 -21
  68. package/dist/alacritty/themes/mion.toml +22 -22
  69. package/dist/alacritty/themes/misato.toml +22 -22
  70. package/dist/alacritty/themes/miyuki.toml +23 -23
  71. package/dist/alacritty/themes/monika.toml +23 -23
  72. package/dist/alacritty/themes/moon.toml +21 -21
  73. package/dist/alacritty/themes/mugi.toml +21 -21
  74. package/dist/alacritty/themes/nadeko.toml +21 -21
  75. package/dist/alacritty/themes/nagisa.toml +21 -21
  76. package/dist/alacritty/themes/nanami.toml +34 -0
  77. package/dist/alacritty/themes/natsuki.toml +22 -22
  78. package/dist/alacritty/themes/nazuna.toml +22 -22
  79. package/dist/alacritty/themes/neutral.toml +20 -20
  80. package/dist/alacritty/themes/nightcity.toml +23 -23
  81. package/dist/alacritty/themes/nijika.toml +21 -21
  82. package/dist/alacritty/themes/nobara.toml +34 -0
  83. package/dist/alacritty/themes/oracle.toml +21 -21
  84. package/dist/alacritty/themes/panther.toml +22 -22
  85. package/dist/alacritty/themes/papyrus.toml +23 -23
  86. package/dist/alacritty/themes/patchouli.toml +22 -22
  87. package/dist/alacritty/themes/queen.toml +22 -22
  88. package/dist/alacritty/themes/rebecca.toml +22 -22
  89. package/dist/alacritty/themes/rei.toml +21 -21
  90. package/dist/alacritty/themes/reimu.toml +21 -21
  91. package/dist/alacritty/themes/rena.toml +22 -22
  92. package/dist/alacritty/themes/rika.toml +22 -22
  93. package/dist/alacritty/themes/rikka.toml +34 -0
  94. package/dist/alacritty/themes/rin.toml +23 -23
  95. package/dist/alacritty/themes/ritsu.toml +22 -22
  96. package/dist/alacritty/themes/rokkenjima.toml +21 -21
  97. package/dist/alacritty/themes/ryo.toml +22 -22
  98. package/dist/alacritty/themes/sans.toml +22 -22
  99. package/dist/alacritty/themes/satoko.toml +22 -22
  100. package/dist/alacritty/themes/sayaka.toml +22 -22
  101. package/dist/alacritty/themes/sayori.toml +23 -23
  102. package/dist/alacritty/themes/sei.toml +22 -22
  103. package/dist/alacritty/themes/seri.toml +22 -22
  104. package/dist/alacritty/themes/shinka.toml +34 -0
  105. package/dist/alacritty/themes/shinobu.toml +21 -21
  106. package/dist/alacritty/themes/skull.toml +22 -22
  107. package/dist/alacritty/themes/stella.toml +22 -22
  108. package/dist/alacritty/themes/sukuna.toml +34 -0
  109. package/dist/alacritty/themes/suzuha.toml +21 -21
  110. package/dist/alacritty/themes/toriel.toml +23 -23
  111. package/dist/alacritty/themes/tsubasa.toml +22 -22
  112. package/dist/alacritty/themes/tsukasa.toml +23 -23
  113. package/dist/alacritty/themes/undyne.toml +23 -23
  114. package/dist/alacritty/themes/valhalla.toml +22 -22
  115. package/dist/alacritty/themes/velvet.toml +22 -22
  116. package/dist/alacritty/themes/venus.toml +19 -19
  117. package/dist/alacritty/themes/yofukashi.toml +21 -21
  118. package/dist/alacritty/themes/youmu.toml +23 -23
  119. package/dist/alacritty/themes/yui.toml +22 -22
  120. package/dist/alacritty/themes/yuji.toml +34 -0
  121. package/dist/alacritty/themes/yuri.toml +23 -23
  122. package/dist/alacritty/themes/yuuta.toml +34 -0
  123. package/dist/ghostty/themes/alma +21 -21
  124. package/dist/ghostty/themes/anko +23 -23
  125. package/dist/ghostty/themes/asuka +23 -23
  126. package/dist/ghostty/themes/azusa +23 -23
  127. package/dist/ghostty/themes/battler +23 -23
  128. package/dist/ghostty/themes/beatrice +23 -23
  129. package/dist/ghostty/themes/bernkastel +21 -21
  130. package/dist/ghostty/themes/bocchi +23 -23
  131. package/dist/ghostty/themes/cirno +24 -24
  132. package/dist/ghostty/themes/david +21 -21
  133. package/dist/ghostty/themes/dekomori +29 -0
  134. package/dist/ghostty/themes/determination +24 -24
  135. package/dist/ghostty/themes/dorothy +23 -23
  136. package/dist/ghostty/themes/eva01 +23 -23
  137. package/dist/ghostty/themes/flandre +23 -23
  138. package/dist/ghostty/themes/fox +23 -23
  139. package/dist/ghostty/themes/geto +29 -0
  140. package/dist/ghostty/themes/glitch +24 -24
  141. package/dist/ghostty/themes/gojo +29 -0
  142. package/dist/ghostty/themes/hinamizawa +23 -23
  143. package/dist/ghostty/themes/hitagi +23 -23
  144. package/dist/ghostty/themes/homura +24 -24
  145. package/dist/ghostty/themes/jill +23 -23
  146. package/dist/ghostty/themes/joker +23 -23
  147. package/dist/ghostty/themes/jupiter +23 -23
  148. package/dist/ghostty/themes/kagami +24 -24
  149. package/dist/ghostty/themes/kaito +24 -24
  150. package/dist/ghostty/themes/kaworu +23 -23
  151. package/dist/ghostty/themes/kita +23 -23
  152. package/dist/ghostty/themes/konata +24 -24
  153. package/dist/ghostty/themes/kou +24 -24
  154. package/dist/ghostty/themes/kumin +29 -0
  155. package/dist/ghostty/themes/kumori +23 -23
  156. package/dist/ghostty/themes/kurisu +21 -21
  157. package/dist/ghostty/themes/kyoko +23 -23
  158. package/dist/ghostty/themes/kyubey +23 -23
  159. package/dist/ghostty/themes/lain +23 -23
  160. package/dist/ghostty/themes/lambdadelta +23 -23
  161. package/dist/ghostty/themes/len +24 -24
  162. package/dist/ghostty/themes/lucy +21 -21
  163. package/dist/ghostty/themes/luka +22 -22
  164. package/dist/ghostty/themes/madoka +21 -21
  165. package/dist/ghostty/themes/magi +21 -21
  166. package/dist/ghostty/themes/mami +24 -24
  167. package/dist/ghostty/themes/marisa +24 -24
  168. package/dist/ghostty/themes/mars +23 -23
  169. package/dist/ghostty/themes/mayuri +23 -23
  170. package/dist/ghostty/themes/megumi +29 -0
  171. package/dist/ghostty/themes/meiko +24 -24
  172. package/dist/ghostty/themes/mercury +21 -21
  173. package/dist/ghostty/themes/mettaton +24 -24
  174. package/dist/ghostty/themes/miku +22 -22
  175. package/dist/ghostty/themes/mio +21 -21
  176. package/dist/ghostty/themes/mion +23 -23
  177. package/dist/ghostty/themes/misato +23 -23
  178. package/dist/ghostty/themes/miyuki +24 -24
  179. package/dist/ghostty/themes/monika +24 -24
  180. package/dist/ghostty/themes/moon +21 -21
  181. package/dist/ghostty/themes/mugi +21 -21
  182. package/dist/ghostty/themes/nadeko +21 -21
  183. package/dist/ghostty/themes/nagisa +21 -21
  184. package/dist/ghostty/themes/nanami +29 -0
  185. package/dist/ghostty/themes/natsuki +22 -22
  186. package/dist/ghostty/themes/nazuna +23 -23
  187. package/dist/ghostty/themes/neutral +22 -22
  188. package/dist/ghostty/themes/nightcity +24 -24
  189. package/dist/ghostty/themes/nijika +21 -21
  190. package/dist/ghostty/themes/nobara +29 -0
  191. package/dist/ghostty/themes/oracle +21 -21
  192. package/dist/ghostty/themes/panther +23 -23
  193. package/dist/ghostty/themes/papyrus +24 -24
  194. package/dist/ghostty/themes/patchouli +23 -23
  195. package/dist/ghostty/themes/queen +23 -23
  196. package/dist/ghostty/themes/rebecca +23 -23
  197. package/dist/ghostty/themes/rei +21 -21
  198. package/dist/ghostty/themes/reimu +22 -22
  199. package/dist/ghostty/themes/rena +23 -23
  200. package/dist/ghostty/themes/rika +23 -23
  201. package/dist/ghostty/themes/rikka +29 -0
  202. package/dist/ghostty/themes/rin +24 -24
  203. package/dist/ghostty/themes/ritsu +23 -23
  204. package/dist/ghostty/themes/rokkenjima +21 -21
  205. package/dist/ghostty/themes/ryo +23 -23
  206. package/dist/ghostty/themes/sans +22 -22
  207. package/dist/ghostty/themes/satoko +23 -23
  208. package/dist/ghostty/themes/sayaka +23 -23
  209. package/dist/ghostty/themes/sayori +24 -24
  210. package/dist/ghostty/themes/sei +23 -23
  211. package/dist/ghostty/themes/seri +22 -22
  212. package/dist/ghostty/themes/shinka +29 -0
  213. package/dist/ghostty/themes/shinobu +21 -21
  214. package/dist/ghostty/themes/skull +23 -23
  215. package/dist/ghostty/themes/stella +23 -23
  216. package/dist/ghostty/themes/sukuna +29 -0
  217. package/dist/ghostty/themes/suzuha +21 -21
  218. package/dist/ghostty/themes/toriel +24 -24
  219. package/dist/ghostty/themes/tsubasa +23 -23
  220. package/dist/ghostty/themes/tsukasa +24 -24
  221. package/dist/ghostty/themes/undyne +24 -24
  222. package/dist/ghostty/themes/valhalla +23 -23
  223. package/dist/ghostty/themes/velvet +23 -23
  224. package/dist/ghostty/themes/venus +19 -19
  225. package/dist/ghostty/themes/yofukashi +21 -21
  226. package/dist/ghostty/themes/youmu +24 -24
  227. package/dist/ghostty/themes/yui +23 -23
  228. package/dist/ghostty/themes/yuji +29 -0
  229. package/dist/ghostty/themes/yuri +24 -24
  230. package/dist/ghostty/themes/yuuta +29 -0
  231. package/dist/iterm2/alma.itermcolors +65 -65
  232. package/dist/iterm2/anko.itermcolors +68 -68
  233. package/dist/iterm2/asuka.itermcolors +68 -68
  234. package/dist/iterm2/azusa.itermcolors +68 -68
  235. package/dist/iterm2/battler.itermcolors +65 -65
  236. package/dist/iterm2/beatrice.itermcolors +69 -69
  237. package/dist/iterm2/bernkastel.itermcolors +64 -64
  238. package/dist/iterm2/bocchi.itermcolors +69 -69
  239. package/dist/iterm2/cirno.itermcolors +69 -69
  240. package/dist/iterm2/david.itermcolors +61 -61
  241. package/dist/iterm2/dekomori.itermcolors +305 -0
  242. package/dist/iterm2/determination.itermcolors +63 -63
  243. package/dist/iterm2/dorothy.itermcolors +63 -63
  244. package/dist/iterm2/eva01.itermcolors +66 -66
  245. package/dist/iterm2/flandre.itermcolors +65 -65
  246. package/dist/iterm2/fox.itermcolors +68 -68
  247. package/dist/iterm2/geto.itermcolors +305 -0
  248. package/dist/iterm2/glitch.itermcolors +64 -64
  249. package/dist/iterm2/gojo.itermcolors +305 -0
  250. package/dist/iterm2/hinamizawa.itermcolors +65 -65
  251. package/dist/iterm2/hitagi.itermcolors +68 -68
  252. package/dist/iterm2/homura.itermcolors +65 -65
  253. package/dist/iterm2/jill.itermcolors +67 -67
  254. package/dist/iterm2/joker.itermcolors +65 -65
  255. package/dist/iterm2/jupiter.itermcolors +66 -66
  256. package/dist/iterm2/kagami.itermcolors +69 -69
  257. package/dist/iterm2/kaito.itermcolors +67 -67
  258. package/dist/iterm2/kaworu.itermcolors +68 -68
  259. package/dist/iterm2/kita.itermcolors +66 -66
  260. package/dist/iterm2/konata.itermcolors +69 -69
  261. package/dist/iterm2/kou.itermcolors +66 -66
  262. package/dist/iterm2/kumin.itermcolors +305 -0
  263. package/dist/iterm2/kumori.itermcolors +63 -63
  264. package/dist/iterm2/kurisu.itermcolors +64 -64
  265. package/dist/iterm2/kyoko.itermcolors +68 -68
  266. package/dist/iterm2/kyubey.itermcolors +69 -69
  267. package/dist/iterm2/lain.itermcolors +67 -67
  268. package/dist/iterm2/lambdadelta.itermcolors +64 -64
  269. package/dist/iterm2/len.itermcolors +68 -68
  270. package/dist/iterm2/lucy.itermcolors +66 -66
  271. package/dist/iterm2/luka.itermcolors +66 -66
  272. package/dist/iterm2/madoka.itermcolors +61 -61
  273. package/dist/iterm2/magi.itermcolors +66 -66
  274. package/dist/iterm2/mami.itermcolors +66 -66
  275. package/dist/iterm2/marisa.itermcolors +65 -65
  276. package/dist/iterm2/mars.itermcolors +68 -68
  277. package/dist/iterm2/mayuri.itermcolors +67 -67
  278. package/dist/iterm2/megumi.itermcolors +305 -0
  279. package/dist/iterm2/meiko.itermcolors +66 -66
  280. package/dist/iterm2/mercury.itermcolors +66 -66
  281. package/dist/iterm2/mettaton.itermcolors +68 -68
  282. package/dist/iterm2/miku.itermcolors +64 -64
  283. package/dist/iterm2/mio.itermcolors +66 -66
  284. package/dist/iterm2/mion.itermcolors +68 -68
  285. package/dist/iterm2/misato.itermcolors +63 -63
  286. package/dist/iterm2/miyuki.itermcolors +66 -66
  287. package/dist/iterm2/monika.itermcolors +68 -68
  288. package/dist/iterm2/moon.itermcolors +63 -63
  289. package/dist/iterm2/mugi.itermcolors +64 -64
  290. package/dist/iterm2/nadeko.itermcolors +60 -60
  291. package/dist/iterm2/nagisa.itermcolors +63 -63
  292. package/dist/iterm2/nanami.itermcolors +305 -0
  293. package/dist/iterm2/natsuki.itermcolors +62 -62
  294. package/dist/iterm2/nazuna.itermcolors +69 -69
  295. package/dist/iterm2/neutral.itermcolors +62 -62
  296. package/dist/iterm2/nightcity.itermcolors +63 -63
  297. package/dist/iterm2/nijika.itermcolors +60 -60
  298. package/dist/iterm2/nobara.itermcolors +305 -0
  299. package/dist/iterm2/oracle.itermcolors +64 -64
  300. package/dist/iterm2/panther.itermcolors +69 -69
  301. package/dist/iterm2/papyrus.itermcolors +67 -67
  302. package/dist/iterm2/patchouli.itermcolors +69 -69
  303. package/dist/iterm2/queen.itermcolors +63 -63
  304. package/dist/iterm2/rebecca.itermcolors +61 -61
  305. package/dist/iterm2/rei.itermcolors +63 -63
  306. package/dist/iterm2/reimu.itermcolors +66 -66
  307. package/dist/iterm2/rena.itermcolors +65 -65
  308. package/dist/iterm2/rika.itermcolors +65 -65
  309. package/dist/iterm2/rikka.itermcolors +305 -0
  310. package/dist/iterm2/rin.itermcolors +61 -61
  311. package/dist/iterm2/ritsu.itermcolors +67 -67
  312. package/dist/iterm2/rokkenjima.itermcolors +65 -65
  313. package/dist/iterm2/ryo.itermcolors +69 -69
  314. package/dist/iterm2/sans.itermcolors +63 -63
  315. package/dist/iterm2/satoko.itermcolors +69 -69
  316. package/dist/iterm2/sayaka.itermcolors +69 -69
  317. package/dist/iterm2/sayori.itermcolors +60 -60
  318. package/dist/iterm2/sei.itermcolors +63 -63
  319. package/dist/iterm2/seri.itermcolors +65 -65
  320. package/dist/iterm2/shinka.itermcolors +305 -0
  321. package/dist/iterm2/shinobu.itermcolors +63 -63
  322. package/dist/iterm2/skull.itermcolors +62 -62
  323. package/dist/iterm2/stella.itermcolors +62 -62
  324. package/dist/iterm2/sukuna.itermcolors +305 -0
  325. package/dist/iterm2/suzuha.itermcolors +64 -64
  326. package/dist/iterm2/toriel.itermcolors +63 -63
  327. package/dist/iterm2/tsubasa.itermcolors +69 -69
  328. package/dist/iterm2/tsukasa.itermcolors +66 -66
  329. package/dist/iterm2/undyne.itermcolors +69 -69
  330. package/dist/iterm2/valhalla.itermcolors +68 -68
  331. package/dist/iterm2/velvet.itermcolors +67 -67
  332. package/dist/iterm2/venus.itermcolors +57 -57
  333. package/dist/iterm2/yofukashi.itermcolors +64 -64
  334. package/dist/iterm2/youmu.itermcolors +69 -69
  335. package/dist/iterm2/yui.itermcolors +67 -67
  336. package/dist/iterm2/yuji.itermcolors +305 -0
  337. package/dist/iterm2/yuri.itermcolors +65 -65
  338. package/dist/iterm2/yuuta.itermcolors +305 -0
  339. package/dist/kitty/config/dekomori.conf +4 -0
  340. package/dist/kitty/config/geto.conf +4 -0
  341. package/dist/kitty/config/gojo.conf +4 -0
  342. package/dist/kitty/config/kumin.conf +4 -0
  343. package/dist/kitty/config/megumi.conf +4 -0
  344. package/dist/kitty/config/nanami.conf +4 -0
  345. package/dist/kitty/config/nobara.conf +4 -0
  346. package/dist/kitty/config/rikka.conf +4 -0
  347. package/dist/kitty/config/shinka.conf +4 -0
  348. package/dist/kitty/config/sukuna.conf +4 -0
  349. package/dist/kitty/config/yuji.conf +4 -0
  350. package/dist/kitty/config/yuuta.conf +4 -0
  351. package/dist/kitty/themes/alma.conf +21 -21
  352. package/dist/kitty/themes/anko.conf +22 -22
  353. package/dist/kitty/themes/asuka.conf +22 -22
  354. package/dist/kitty/themes/azusa.conf +22 -22
  355. package/dist/kitty/themes/battler.conf +22 -22
  356. package/dist/kitty/themes/beatrice.conf +22 -22
  357. package/dist/kitty/themes/bernkastel.conf +21 -21
  358. package/dist/kitty/themes/bocchi.conf +22 -22
  359. package/dist/kitty/themes/cirno.conf +23 -23
  360. package/dist/kitty/themes/david.conf +21 -21
  361. package/dist/kitty/themes/dekomori.conf +24 -0
  362. package/dist/kitty/themes/determination.conf +23 -23
  363. package/dist/kitty/themes/dorothy.conf +22 -22
  364. package/dist/kitty/themes/eva01.conf +22 -22
  365. package/dist/kitty/themes/flandre.conf +22 -22
  366. package/dist/kitty/themes/fox.conf +22 -22
  367. package/dist/kitty/themes/geto.conf +24 -0
  368. package/dist/kitty/themes/glitch.conf +23 -23
  369. package/dist/kitty/themes/gojo.conf +24 -0
  370. package/dist/kitty/themes/hinamizawa.conf +22 -22
  371. package/dist/kitty/themes/hitagi.conf +22 -22
  372. package/dist/kitty/themes/homura.conf +23 -23
  373. package/dist/kitty/themes/jill.conf +22 -22
  374. package/dist/kitty/themes/joker.conf +22 -22
  375. package/dist/kitty/themes/jupiter.conf +22 -22
  376. package/dist/kitty/themes/kagami.conf +23 -23
  377. package/dist/kitty/themes/kaito.conf +23 -23
  378. package/dist/kitty/themes/kaworu.conf +22 -22
  379. package/dist/kitty/themes/kita.conf +22 -22
  380. package/dist/kitty/themes/konata.conf +23 -23
  381. package/dist/kitty/themes/kou.conf +23 -23
  382. package/dist/kitty/themes/kumin.conf +24 -0
  383. package/dist/kitty/themes/kumori.conf +23 -23
  384. package/dist/kitty/themes/kurisu.conf +21 -21
  385. package/dist/kitty/themes/kyoko.conf +22 -22
  386. package/dist/kitty/themes/kyubey.conf +22 -22
  387. package/dist/kitty/themes/lain.conf +22 -22
  388. package/dist/kitty/themes/lambdadelta.conf +22 -22
  389. package/dist/kitty/themes/len.conf +23 -23
  390. package/dist/kitty/themes/lucy.conf +21 -21
  391. package/dist/kitty/themes/luka.conf +22 -22
  392. package/dist/kitty/themes/madoka.conf +21 -21
  393. package/dist/kitty/themes/magi.conf +21 -21
  394. package/dist/kitty/themes/mami.conf +23 -23
  395. package/dist/kitty/themes/marisa.conf +23 -23
  396. package/dist/kitty/themes/mars.conf +22 -22
  397. package/dist/kitty/themes/mayuri.conf +22 -22
  398. package/dist/kitty/themes/megumi.conf +24 -0
  399. package/dist/kitty/themes/meiko.conf +23 -23
  400. package/dist/kitty/themes/mercury.conf +21 -21
  401. package/dist/kitty/themes/mettaton.conf +23 -23
  402. package/dist/kitty/themes/miku.conf +22 -22
  403. package/dist/kitty/themes/mio.conf +21 -21
  404. package/dist/kitty/themes/mion.conf +22 -22
  405. package/dist/kitty/themes/misato.conf +22 -22
  406. package/dist/kitty/themes/miyuki.conf +23 -23
  407. package/dist/kitty/themes/monika.conf +23 -23
  408. package/dist/kitty/themes/moon.conf +21 -21
  409. package/dist/kitty/themes/mugi.conf +21 -21
  410. package/dist/kitty/themes/nadeko.conf +21 -21
  411. package/dist/kitty/themes/nagisa.conf +21 -21
  412. package/dist/kitty/themes/nanami.conf +24 -0
  413. package/dist/kitty/themes/natsuki.conf +22 -22
  414. package/dist/kitty/themes/nazuna.conf +22 -22
  415. package/dist/kitty/themes/neutral.conf +20 -20
  416. package/dist/kitty/themes/nightcity.conf +23 -23
  417. package/dist/kitty/themes/nijika.conf +21 -21
  418. package/dist/kitty/themes/nobara.conf +24 -0
  419. package/dist/kitty/themes/oracle.conf +21 -21
  420. package/dist/kitty/themes/panther.conf +22 -22
  421. package/dist/kitty/themes/papyrus.conf +23 -23
  422. package/dist/kitty/themes/patchouli.conf +22 -22
  423. package/dist/kitty/themes/queen.conf +22 -22
  424. package/dist/kitty/themes/rebecca.conf +22 -22
  425. package/dist/kitty/themes/rei.conf +21 -21
  426. package/dist/kitty/themes/reimu.conf +21 -21
  427. package/dist/kitty/themes/rena.conf +22 -22
  428. package/dist/kitty/themes/rika.conf +22 -22
  429. package/dist/kitty/themes/rikka.conf +24 -0
  430. package/dist/kitty/themes/rin.conf +23 -23
  431. package/dist/kitty/themes/ritsu.conf +22 -22
  432. package/dist/kitty/themes/rokkenjima.conf +21 -21
  433. package/dist/kitty/themes/ryo.conf +22 -22
  434. package/dist/kitty/themes/sans.conf +22 -22
  435. package/dist/kitty/themes/satoko.conf +22 -22
  436. package/dist/kitty/themes/sayaka.conf +22 -22
  437. package/dist/kitty/themes/sayori.conf +23 -23
  438. package/dist/kitty/themes/sei.conf +22 -22
  439. package/dist/kitty/themes/seri.conf +22 -22
  440. package/dist/kitty/themes/shinka.conf +24 -0
  441. package/dist/kitty/themes/shinobu.conf +21 -21
  442. package/dist/kitty/themes/skull.conf +22 -22
  443. package/dist/kitty/themes/stella.conf +22 -22
  444. package/dist/kitty/themes/sukuna.conf +24 -0
  445. package/dist/kitty/themes/suzuha.conf +21 -21
  446. package/dist/kitty/themes/toriel.conf +23 -23
  447. package/dist/kitty/themes/tsubasa.conf +22 -22
  448. package/dist/kitty/themes/tsukasa.conf +23 -23
  449. package/dist/kitty/themes/undyne.conf +23 -23
  450. package/dist/kitty/themes/valhalla.conf +22 -22
  451. package/dist/kitty/themes/velvet.conf +22 -22
  452. package/dist/kitty/themes/venus.conf +19 -19
  453. package/dist/kitty/themes/yofukashi.conf +21 -21
  454. package/dist/kitty/themes/youmu.conf +23 -23
  455. package/dist/kitty/themes/yui.conf +22 -22
  456. package/dist/kitty/themes/yuji.conf +24 -0
  457. package/dist/kitty/themes/yuri.conf +23 -23
  458. package/dist/kitty/themes/yuuta.conf +24 -0
  459. package/dist/manifest.json +5139 -0
  460. package/dist/shell/palettes.zsh +297 -113
  461. package/dist/wezterm/colors/alma.toml +7 -7
  462. package/dist/wezterm/colors/anko.toml +9 -9
  463. package/dist/wezterm/colors/asuka.toml +9 -9
  464. package/dist/wezterm/colors/azusa.toml +9 -9
  465. package/dist/wezterm/colors/battler.toml +9 -9
  466. package/dist/wezterm/colors/beatrice.toml +9 -9
  467. package/dist/wezterm/colors/bernkastel.toml +7 -7
  468. package/dist/wezterm/colors/bocchi.toml +9 -9
  469. package/dist/wezterm/colors/cirno.toml +10 -10
  470. package/dist/wezterm/colors/david.toml +7 -7
  471. package/dist/wezterm/colors/dekomori.toml +15 -0
  472. package/dist/wezterm/colors/determination.toml +9 -9
  473. package/dist/wezterm/colors/dorothy.toml +9 -9
  474. package/dist/wezterm/colors/eva01.toml +9 -9
  475. package/dist/wezterm/colors/flandre.toml +9 -9
  476. package/dist/wezterm/colors/fox.toml +9 -9
  477. package/dist/wezterm/colors/geto.toml +15 -0
  478. package/dist/wezterm/colors/glitch.toml +9 -9
  479. package/dist/wezterm/colors/gojo.toml +15 -0
  480. package/dist/wezterm/colors/hinamizawa.toml +9 -9
  481. package/dist/wezterm/colors/hitagi.toml +9 -9
  482. package/dist/wezterm/colors/homura.toml +10 -10
  483. package/dist/wezterm/colors/jill.toml +9 -9
  484. package/dist/wezterm/colors/joker.toml +9 -9
  485. package/dist/wezterm/colors/jupiter.toml +9 -9
  486. package/dist/wezterm/colors/kagami.toml +10 -10
  487. package/dist/wezterm/colors/kaito.toml +9 -9
  488. package/dist/wezterm/colors/kaworu.toml +9 -9
  489. package/dist/wezterm/colors/kita.toml +9 -9
  490. package/dist/wezterm/colors/konata.toml +10 -10
  491. package/dist/wezterm/colors/kou.toml +10 -10
  492. package/dist/wezterm/colors/kumin.toml +15 -0
  493. package/dist/wezterm/colors/kumori.toml +8 -8
  494. package/dist/wezterm/colors/kurisu.toml +7 -7
  495. package/dist/wezterm/colors/kyoko.toml +9 -9
  496. package/dist/wezterm/colors/kyubey.toml +9 -9
  497. package/dist/wezterm/colors/lain.toml +9 -9
  498. package/dist/wezterm/colors/lambdadelta.toml +9 -9
  499. package/dist/wezterm/colors/len.toml +9 -9
  500. package/dist/wezterm/colors/lucy.toml +7 -7
  501. package/dist/wezterm/colors/luka.toml +7 -7
  502. package/dist/wezterm/colors/madoka.toml +7 -7
  503. package/dist/wezterm/colors/magi.toml +7 -7
  504. package/dist/wezterm/colors/mami.toml +10 -10
  505. package/dist/wezterm/colors/marisa.toml +10 -10
  506. package/dist/wezterm/colors/mars.toml +9 -9
  507. package/dist/wezterm/colors/mayuri.toml +9 -9
  508. package/dist/wezterm/colors/megumi.toml +15 -0
  509. package/dist/wezterm/colors/meiko.toml +9 -9
  510. package/dist/wezterm/colors/mercury.toml +7 -7
  511. package/dist/wezterm/colors/mettaton.toml +9 -9
  512. package/dist/wezterm/colors/miku.toml +7 -7
  513. package/dist/wezterm/colors/mio.toml +7 -7
  514. package/dist/wezterm/colors/mion.toml +9 -9
  515. package/dist/wezterm/colors/misato.toml +9 -9
  516. package/dist/wezterm/colors/miyuki.toml +10 -10
  517. package/dist/wezterm/colors/monika.toml +9 -9
  518. package/dist/wezterm/colors/moon.toml +7 -7
  519. package/dist/wezterm/colors/mugi.toml +7 -7
  520. package/dist/wezterm/colors/nadeko.toml +7 -7
  521. package/dist/wezterm/colors/nagisa.toml +7 -7
  522. package/dist/wezterm/colors/nanami.toml +15 -0
  523. package/dist/wezterm/colors/natsuki.toml +7 -7
  524. package/dist/wezterm/colors/nazuna.toml +9 -9
  525. package/dist/wezterm/colors/neutral.toml +7 -7
  526. package/dist/wezterm/colors/nightcity.toml +10 -10
  527. package/dist/wezterm/colors/nijika.toml +7 -7
  528. package/dist/wezterm/colors/nobara.toml +15 -0
  529. package/dist/wezterm/colors/oracle.toml +7 -7
  530. package/dist/wezterm/colors/panther.toml +9 -9
  531. package/dist/wezterm/colors/papyrus.toml +9 -9
  532. package/dist/wezterm/colors/patchouli.toml +9 -9
  533. package/dist/wezterm/colors/queen.toml +9 -9
  534. package/dist/wezterm/colors/rebecca.toml +9 -9
  535. package/dist/wezterm/colors/rei.toml +7 -7
  536. package/dist/wezterm/colors/reimu.toml +9 -9
  537. package/dist/wezterm/colors/rena.toml +9 -9
  538. package/dist/wezterm/colors/rika.toml +9 -9
  539. package/dist/wezterm/colors/rikka.toml +15 -0
  540. package/dist/wezterm/colors/rin.toml +9 -9
  541. package/dist/wezterm/colors/ritsu.toml +9 -9
  542. package/dist/wezterm/colors/rokkenjima.toml +7 -7
  543. package/dist/wezterm/colors/ryo.toml +9 -9
  544. package/dist/wezterm/colors/sans.toml +7 -7
  545. package/dist/wezterm/colors/satoko.toml +9 -9
  546. package/dist/wezterm/colors/sayaka.toml +9 -9
  547. package/dist/wezterm/colors/sayori.toml +9 -9
  548. package/dist/wezterm/colors/sei.toml +9 -9
  549. package/dist/wezterm/colors/seri.toml +8 -8
  550. package/dist/wezterm/colors/shinka.toml +15 -0
  551. package/dist/wezterm/colors/shinobu.toml +7 -7
  552. package/dist/wezterm/colors/skull.toml +9 -9
  553. package/dist/wezterm/colors/stella.toml +9 -9
  554. package/dist/wezterm/colors/sukuna.toml +15 -0
  555. package/dist/wezterm/colors/suzuha.toml +7 -7
  556. package/dist/wezterm/colors/toriel.toml +9 -9
  557. package/dist/wezterm/colors/tsubasa.toml +9 -9
  558. package/dist/wezterm/colors/tsukasa.toml +10 -10
  559. package/dist/wezterm/colors/undyne.toml +9 -9
  560. package/dist/wezterm/colors/valhalla.toml +9 -9
  561. package/dist/wezterm/colors/velvet.toml +9 -9
  562. package/dist/wezterm/colors/venus.toml +6 -6
  563. package/dist/wezterm/colors/yofukashi.toml +7 -7
  564. package/dist/wezterm/colors/youmu.toml +10 -10
  565. package/dist/wezterm/colors/yui.toml +9 -9
  566. package/dist/wezterm/colors/yuji.toml +15 -0
  567. package/dist/wezterm/colors/yuri.toml +9 -9
  568. package/dist/wezterm/colors/yuuta.toml +15 -0
  569. package/dist/wezterm/config/dekomori.lua +10 -0
  570. package/dist/wezterm/config/geto.lua +10 -0
  571. package/dist/wezterm/config/gojo.lua +10 -0
  572. package/dist/wezterm/config/kumin.lua +10 -0
  573. package/dist/wezterm/config/megumi.lua +10 -0
  574. package/dist/wezterm/config/nanami.lua +10 -0
  575. package/dist/wezterm/config/nobara.lua +10 -0
  576. package/dist/wezterm/config/rikka.lua +10 -0
  577. package/dist/wezterm/config/shinka.lua +10 -0
  578. package/dist/wezterm/config/sukuna.lua +10 -0
  579. package/dist/wezterm/config/yuji.lua +10 -0
  580. package/dist/wezterm/config/yuuta.lua +10 -0
  581. package/package.json +7 -1
  582. package/shell/adapters/_osc.zsh +34 -5
  583. package/shell/adapters/ghostty.zsh +509 -0
  584. package/shell/adapters/kitty.zsh +4 -3
  585. 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
- Ninety-five palettes drawn from Vocaloid, Evangelion, Madoka Magica,
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
- and Touhou Project, built for **Ghostty, kitty, Alacritty, WezTerm and iTerm2**, plus a zsh
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 default.
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 detects your terminal, asks which ones to wire, places the palettes and the
63
- zsh layer under `~/.config/ttheme`, and edits your terminal config and `~/.zshrc`
64
- between `# ttheme begin` / `# ttheme end` markers everything outside the
65
- markers is left alone. Running it again updates in place; `--yes` skips every
66
- prompt and takes the defaults.
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/`, and `bun src/bin.ts init --link`
102
- symlinks the checkout into place so palette edits land live.
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 current what this tab is using
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`, groups start folded with the cursor on the current palette;
116
- `↑`/`↓` move (the tab repaints as the focus lands on a palette), `←`/`→` and
117
- space fold and unfold, page up/down and home/end jump, typing filters by
118
- substring (ctrl-u clears it), enter applies, and esc steps back first out
119
- of the filter, then out of the preview with the original colors restored.
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
- `preview`, `next`, `current` and `help` match exactly; every other first argument is read
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 `ttheme current` prints just the name — and `NO_COLOR`
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
- | Variable | Default | |
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` makes new tabs inherit the window's colors |
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 = "homura" # must match the filename
161
- group = "Madoka Magica"
162
- native = "魔法少女まどか☆マギカ" # optional, shown dim after the group
163
- order = 8 # position in the rotation
164
- ansi_source = "Monokai Pro Machine + Magica"
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 = "#1b1428"
168
- foreground = "#f2fffc"
169
- cursor = "#8b5cf6"
170
- selection_background = "#322447"
364
+ background = "#201516"
365
+ foreground = "#fbdbdd"
366
+ cursor = "#ffc1c6"
367
+ selection_background = "#553444"
171
368
  ansi = [ ... 16 colors ... ]
172
369
  ```
173
370
 
174
- `[font]` and `[ghostty]` are inherited from `themes/_defaults.toml` unless the
175
- theme overrides them. Then:
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 ninety-six currently pass unwaived — `magi` comes closest at 7.09:1, since
184
- amber on pure black is the whole point of the NERV CRT look. If a palette
185
- genuinely has to break a rule, waive it by name and say why; a waiver without a
186
- reason fails the test suite.
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 sets are adapted from published themes, credited per palette in
197
- `meta.ansi_source`. Shaders come from
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.