@kecan0406/ttheme 0.1.0 → 0.1.1

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 +248 -42
  2. package/bin/ttheme.js +9143 -2556
  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,16 @@ 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 detects your terminal, asks which ones to wire, places the zsh layer under
66
+ `~/.config/ttheme`, and edits your terminal config and `~/.zshrc` between
67
+ `# ttheme begin` / `# ttheme end` markers — everything outside the markers is
68
+ left alone. Running it again updates in place; `--yes` skips every prompt and
69
+ takes the defaults.
70
+
71
+ **`init` installs no palettes.** It sets the machinery up and then offers the
72
+ catalog a series at a time — `tab` marks a series, enter installs every palette
73
+ in it; `ttheme browse` opens the full catalog any time, to add or drop single
74
+ palettes.
67
75
 
68
76
  **WezTerm and iTerm2** — one archive per terminal in the
69
77
  [latest release](https://github.com/kecan0406/ttheme/releases/latest):
@@ -98,40 +106,222 @@ from the palette), and the font + shader — identical across themes — ship as
98
106
  one shared `ttheme.conf` you include once with `config-file`.
99
107
 
100
108
  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.
109
+ build` writes the same tree to `dist/`, `mise run sandbox` tries it in a
110
+ throwaway home, and `mise run bin:build && node bin/ttheme.js init` installs
111
+ it for real.
103
112
 
104
113
  ## Use
105
114
 
106
115
  ```
107
116
  ttheme list every palette, grouped, with previews
108
117
  ttheme homura pin this tab (a unique prefix works: ttheme ho)
109
- ttheme preview browse live — focus repaints the tab, enter keeps it
118
+ ttheme preview browse live — focus repaints the tab, enter keeps it (this tab or default)
110
119
  ttheme next advance this tab to the next palette
111
- ttheme current what this tab is using
120
+ ttheme pin pick a palette for this directory cd into it repaints, cd out restores
121
+ ttheme unpin drop the palette pinned to this directory
122
+ ttheme config edit settings in $EDITOR — they apply in new tabs
112
123
  ttheme help the list above, in your terminal
124
+
125
+ ttheme browse pick palettes from the catalog in a live picker
126
+ ttheme list the catalog, ● installed and ○ not (a query filters it)
127
+ ttheme add install palettes from the catalog
128
+ ttheme remove uninstall palettes
129
+ ttheme update refresh the catalog from the registry
113
130
  ```
114
131
 
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.
132
+ In `preview`, series and palettes are listed by name (`TTHEME_SORT=series`
133
+ keeps the order they were added), groups start folded with the cursor on the
134
+ current palette;
135
+ `↑`/`↓` move (the tab repaints as the focus lands on a palette), `←`/`→` fold
136
+ and unfold (so do enter and space on a series), page up/down and home/end
137
+ jump, typing filters by substring and underlines the match (ctrl-u clears it),
138
+ enter applies, and esc steps back — first out of the filter, then out of the
139
+ preview with the original colors restored. Each palette row carries its 16
140
+ colors, normal over bright. The last line lists only the keys that work right
141
+ there, names the mode when it is not plain browsing (`FILTER`, `TUNE`, `CONFIG`,
142
+ `APPLY`, `KEYS`) and pins where esc goes to the right; `?` shows all of them.
143
+ alt-c opens the settings below in place — `↑`/`↓` pick one, `←`/`→` change it
144
+ (the sort and the search hint animation change live), enter writes the changed
145
+ lines to `config.zsh`, esc puts every value back. From 76
146
+ columns on, a sample session sits against the right edge of the window — the
147
+ 16 colors, a prompt, git and test output, a selection — in the palette under
148
+ the cursor. The list and the sample widen with the window (the sample up to 64
149
+ columns) and the gap between them takes the rest; the tuning panel takes the
150
+ sample's place while open, and so does the key list once the sample is 48
151
+ columns wide.
152
+ Under Ghostty with `TTHEME_TAB_PALETTE=off`, enter asks **this tab** or
153
+ **default**: default records the palette as your startup palette (so a later
154
+ `add` or `remove` keeps it), rewrites `theme =` in the `# ttheme begin` block of
155
+ your Ghostty config and sends `SIGUSR2` to the Ghostty that owns the tab, so new tabs — and open tabs you have not
156
+ painted by hand — take the palette without a restart. Painting is per surface
157
+ otherwise: a new tab starts from the configured theme, not from what the last
158
+ tab was painted.
159
+
160
+ A palette can also bring a Ghostty background image. The block `init` writes
161
+ includes `~/.config/ttheme/backgrounds/<palette>.conf` for the configured
162
+ theme with an optional `config-file = ?…`, and choosing **default** points that
163
+ include at the new palette — so whatever Ghostty settings you put in that file
164
+ follow the default, and palettes without one show no image:
165
+
166
+ ```
167
+ # ~/.config/ttheme/backgrounds/kagami.conf
168
+ background-image = ~/.config/ttheme/backgrounds/kagami.png
169
+ background-image-fit = cover
170
+ background-image-opacity = 0.2
171
+ ```
120
172
 
121
- `preview`, `next`, `current` and `help` match exactly; every other first argument is read
173
+ ttheme ships no images; they stay on your machine. A background is Ghostty
174
+ config, not an escape sequence, so it follows the default for every window
175
+ rather than the palette painted on one tab.
176
+
177
+ A palette with no background yet can find one: on it in `preview`, tab opens
178
+ **find**, which searches a booru for the palette's character tag
179
+ (`meta.booru`) and lays the results out as a grid of thumbnails. It starts on
180
+ safebooru; `p` moves to yande.re, then konachan, then back — the three share
181
+ one tag vocabulary, so the same tag works on each. The site you are on sits in
182
+ a colored badge at the top right, and again at the start of the line above a
183
+ picture you try on, next to the site the artwork itself came from when the post
184
+ records one (`pixiv.net`, `deviantart.com`). The grid starts
185
+ with **cutouts** — posts carrying the site's transparency tags
186
+ (`transparent_background` or `vector_trace` on safebooru, `transparent_png` on
187
+ yande.re, `transparent` or `vector` on konachan) whose PNG header says they have
188
+ an alpha channel; yande.re's `transparent_png` already means exactly that, so
189
+ its posts skip the header check, which its slow file server would drag out —
190
+ and the counter reads shown out of checked, `13/33`. Pictures by the uploader of the backgrounds you already have
191
+ in the same series come first and carry `≈`, so a series keeps one hand;
192
+ anything under 1600 px on its long edge shows its size in yellow. Enter tries
193
+ the picture on: ttheme downloads the original and paints the whole window with
194
+ it the way the installed background will look — tinted with the palette,
195
+ cropped with headroom above the face, at the opacity the contrast gate allows —
196
+ over a sample of shell output, with the share of transparent pixels next to its
197
+ size (`opaque` when there are none). `←`/`→` try the neighbours, enter installs,
198
+ and the preview carries on straight into the tuning panel below. Tab switches to
199
+ every post of the character, esc goes back. Only `safe` and `general` posts are
200
+ ever shown — yande.re and konachan are always asked for `rating:s`, whatever
201
+ else is searched — and downloads stay in `~/.cache/ttheme/<site>/`. ttheme keeps no
202
+ list of images — the tag is all it knows about a character.
203
+
204
+ An install writes `<palette>.png` (the tinted figure), `<palette>@fill-<focus>.png`
205
+ (the window-shaped crop), `<palette>.conf` and the untouched original under
206
+ `backgrounds/originals/`, and removes any earlier tuning of that palette. The
207
+ conf opens with where the picture came from —
208
+ `# from yande.re 214705 https://yande.re/post/show/214705` — and the tuning
209
+ panel shows it next to the palette's name.
210
+
211
+ `preview` shows the background of the palette under the cursor while you
212
+ browse: through the kitty graphics protocol it draws that palette's
213
+ `background-image` where Ghostty would place it, faded by
214
+ `background-image-opacity`, behind the list — or just its plain background when
215
+ it has no file. Only PNG images preview.
216
+
217
+ On a palette with a background, tab opens a panel that tunes it in place:
218
+ `↑`/`↓` pick size, position or opacity, and `←`/`→` change it (with shift, ten
219
+ steps at a time). Size walks 1% at a time, shown large in the middle of the
220
+ screen as it changes: 100% is the whole image fitted into the window
221
+ (`contain`), below that it shrinks to 20%, above it the image grows around the
222
+ face until it covers the window, and the top step is **fill** (`cover`). Fill
223
+ uses `<palette>@fill-<focus>.png` when it sits beside the image — a crop made
224
+ to fill the window, whose name carries the height of the face in percent, which
225
+ the sizes above 100% zoom around — and the image itself otherwise. Position
226
+ steps through the nine `background-image-position` anchors, or `1`–`9` jump to
227
+ one in reading order; opacity moves by 0.01. Space turns the palette's
228
+ background off and on, `=` returns it to its defaults, enter keeps the change
229
+ and esc puts back what the panel opened with. `f` in the panel opens find again
230
+ to replace the picture.
231
+
232
+ The palette's `.conf` holds those defaults; the preview only appends two
233
+ optional includes to it and keeps everything else in `<palette>.tune.conf` (the
234
+ tuning) and `<palette>.off.conf` (the off switch), which Ghostty loads after
235
+ the conf. Kept changes are written when the preview closes, by whichever key, and
236
+ Ghostty reloads when that palette is the default. Ghostty has no scale setting,
237
+ so every size but 100% and fill is baked into a copy beside the image and the
238
+ tuning points at it: below 100% onto a transparent canvas of the image's own
239
+ size (`kagami@60-bottom-right.png`, fitted with `contain`), above it onto one of
240
+ the window's size at the time (`kagami@130-center-2880x1800.png`, with
241
+ `cover`). Baking runs `sips`, so those sizes are offered on macOS only.
242
+
243
+ The preview draws inside the cell grid, and Ghostty's `window-padding` around
244
+ it keeps showing the configured background. While the cursor rests on the
245
+ configured palette and nothing has been tuned, the preview draws nothing and
246
+ lets that background show through whole. Once Ghostty supports kitty's relative
247
+ placements (merged after 1.3.1), the preview notices when it opens and hangs
248
+ its layers out over the padding instead, so every palette reaches the window
249
+ edge.
250
+
251
+ `pin` opens the same browser and, on enter, asks **this directory** or **and
252
+ below**; the answer lands in `~/.config/ttheme/pins`, one `path palette` per
253
+ line, where `path/**` covers everything below it (`~` works, and the file is
254
+ yours to edit). From then on a tab that `cd`s into a pinned path takes its
255
+ palette — symlinks resolve to the pinned directory — and `cd`ing out restores
256
+ what the tab had before, unless you painted it by hand in between, in which
257
+ case your pick stays. The nearest pinned ancestor wins, so a project can pin
258
+ one palette and a subfolder another. Open tabs pick up a changed pins file on
259
+ their next `cd`; `unpin` drops the pin on the current directory.
260
+
261
+ `preview`, `next`, `pin`, `unpin`, `config` and `help` match exactly; every other first argument is read
122
262
  as a palette name, where a unique prefix is enough. Mistyped names get a "did
123
263
  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.
264
+ turns tab-separated, and `NO_COLOR` is respected.
126
265
 
127
266
  New tabs take the next palette in group order, with the counter shared across
128
267
  tabs — so opening four tabs walks you through four different characters rather
129
268
  than rolling the same one twice.
130
269
 
131
- | Variable | Default | |
270
+ Settings live in `~/.config/ttheme/config.zsh` `init` seeds it from your
271
+ answers, `ttheme config` opens it in `$EDITOR` and alt-c in `preview` edits it in place. Each line is a plain zsh
272
+ `: ${VAR:=value}` assignment, so a variable exported before the layer loads
273
+ still wins:
274
+
275
+ | Setting | Default | |
132
276
  |---|---|---|
133
- | `TTHEME_TAB_PALETTE` | `seq` | `off` makes new tabs inherit the window's colors |
277
+ | `TTHEME_TAB_PALETTE` | `seq` | `off` keeps new tabs on the terminal's configured theme (`preview` → default changes it) |
134
278
  | `TTHEME_ANNOUNCE` | `1` | `0` silences the one-line notice under "Last login:" |
279
+ | `TTHEME_FX` | `typewriter` | search hint animation — `typewriter`, `decode` or `glitch` |
280
+ | `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 |
281
+
282
+ ## The catalog
283
+
284
+ A fresh install carries no palettes at all. `ttheme browse` opens the catalog as
285
+ a live picker — groups fold and unfold, typing filters, the tab repaints as the
286
+ cursor lands on a palette, `tab` marks one (or a whole series from its header),
287
+ and enter installs exactly what is marked and removes what is not:
288
+
289
+ ```
290
+ ◆ catalog (4/107 · 2 picked)
291
+ │ ⌕ bo_
292
+ │ ▾ Bocchi the Rock! (2/4) ぼっち・ざ・ろっく!
293
+ │ ▶ ● bocchi ● ▁▁▁▁▁▁ Sakura + Kessoku
294
+ │ ● kita ● ▁▁▁▁▁▁ Wild Cherry + Kessoku
295
+ │ ○ nijika ● ▁▁▁▁▁▁ Medallion
296
+ │ ○ ryo ● ▁▁▁▁▁▁ TokyoNight Storm
297
+ └ ↑↓ move · ←→ fold · tab pick · type to filter · enter install · esc cancel
298
+ ```
299
+
300
+ The counts stay honest: `4/107` is what the filter matched out of the catalog,
301
+ `2 picked` is the install set, and `(2/4)` on the series header is how many of
302
+ its shown palettes are in it. The dot and the bar are the palette's real cursor
303
+ and its ANSI colors.
304
+
305
+ The same four verbs work without the picker:
306
+
307
+ ```sh
308
+ ttheme list jujutsu # what the catalog has, and what you already installed
309
+ ttheme add gojo geto # two more, written into your terminal configs
310
+ ttheme remove kyubey # and one fewer
311
+ ttheme update # new palettes, without an npm release
312
+ ```
313
+
314
+ `browse`, `add` and `remove` rewrite `palettes.zsh`, each wired terminal's
315
+ `themes/` directory and the `theme =` line in its config, then the shell re-reads
316
+ them — the change is live in the tab you ran it in. The first palette you install
317
+ becomes the one new windows open with.
318
+
319
+ `update` refetches the catalog from the registry; every palette in it has already
320
+ passed the contrast gate in CI, and `add` checks the numbers again before it
321
+ writes anything.
322
+
323
+ Installed palettes are listed in `~/.config/ttheme/installed.json`, and the
324
+ catalog is cached in `~/.config/ttheme/catalog.json`.
135
325
 
136
326
  ## What each terminal can actually do
137
327
 
@@ -153,26 +343,30 @@ in its build.
153
343
 
154
344
  ## Adding a palette
155
345
 
156
- One file — copy any of `themes/*.toml`:
346
+ One file — copy any of `themes/*.toml`. `CONTRIBUTING.md` has the rules for
347
+ sending one back; the short version is that this repository takes **color values
348
+ only and never images**:
157
349
 
158
350
  ```toml
159
351
  [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"
352
+ name = "madoka" # must match the filename
353
+ group = "Madoka Magica" # needs a [[group]] in themes/_groups.toml
354
+ order = 15 # position in the rotation
355
+ ansi_source = "Elegant + Magica" # what the harmonizer was fed
356
+ booru = "kaname_madoka" # safebooru character tag find searches
357
+ signature = ["cursor", "ansi1", "ansi3"] # the three slots the site draws as identity
165
358
 
166
359
  [colors]
167
- background = "#1b1428"
168
- foreground = "#f2fffc"
169
- cursor = "#8b5cf6"
170
- selection_background = "#322447"
360
+ background = "#201516"
361
+ foreground = "#fbdbdd"
362
+ cursor = "#ffc1c6"
363
+ selection_background = "#553444"
171
364
  ansi = [ ... 16 colors ... ]
172
365
  ```
173
366
 
174
- `[font]` and `[ghostty]` are inherited from `themes/_defaults.toml` unless the
175
- theme overrides them. Then:
367
+ The series title and its `native` reading live once in `themes/_groups.toml`,
368
+ never in a theme file. `[font]` and `[ghostty]` are inherited from
369
+ `themes/_defaults.toml` unless the theme overrides them. Then:
176
370
 
177
371
  ```sh
178
372
  mise run build # regenerates dist/ for all five terminals — fails on bad contrast
@@ -180,10 +374,11 @@ mise run build --only kitty # just one terminal's subtree
180
374
  mise run test
181
375
  ```
182
376
 
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.
377
+ All one hundred and eight currently pass unwaived — `kyubey` runs tightest at
378
+ 4.28:1 where accents need 3:1: it is the one light palette, so every accent has
379
+ to darken enough to hold against a near-white background. If a palette genuinely
380
+ has to break a rule, waive it by name and say why; a waiver without a reason
381
+ fails the test suite.
187
382
 
188
383
  ```toml
189
384
  [contrast]
@@ -193,11 +388,22 @@ reason = "why this palette is the exception"
193
388
 
194
389
  ## Credits
195
390
 
196
- ANSI sets are adapted from published themes, credited per palette in
197
- `meta.ansi_source`. Shaders come from
391
+ Base ANSI ramps come from
392
+ [mbadolato/iTerm2-Color-Schemes](https://github.com/mbadolato/iTerm2-Color-Schemes)
393
+ (MIT), whose notice keeps each individual scheme's copyright with its own
394
+ author. Two palettes are sourced directly instead: `miku` from
395
+ [vauxe/hatsune-miku-theme](https://github.com/vauxe/hatsune-miku-theme) (MIT)
396
+ and `magi` from [lotap/magi-theme](https://github.com/lotap/magi-theme) (MIT).
397
+ Every palette records its input in `meta.ansi_source`, and only that input's
398
+ hues survive: the harmonizer normalizes lightness and saturation away and
399
+ rotates each non-signature hue toward the palette's own seed, so no scheme is
400
+ reproduced here. Shaders come from
198
401
  [sahaj-b/ghostty-cursor-shaders](https://github.com/sahaj-b/ghostty-cursor-shaders)
199
402
  (MIT), see `ghostty/shaders/`.
200
403
 
201
404
  Palettes are inspired by characters from the listed works; this project is
202
405
  unaffiliated with and unendorsed by their rights holders. No character art,
203
406
  audio or trademarked asset is redistributed here — only color values.
407
+ Terminal background images are downloaded from the booru you pick only when you
408
+ ask `find` for one, built on your own machine and written to
409
+ `~/.config/ttheme/backgrounds/`; none ship in this repository or on npm.