@kecan0406/ttheme 1.2.20 → 1.2.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +36 -35
- package/bin/ttheme.js +242 -234
- package/bin/ttheme.js.map +1 -1
- package/dist/manifest.json +151 -151
- package/package.json +1 -1
- package/shell/preview.zsh +31 -29
- package/shell/ttheme.zsh +24 -16
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<p align="center">
|
|
6
6
|
<a href="https://www.npmjs.com/package/@kecan0406/ttheme"><img src="https://img.shields.io/npm/v/@kecan0406/ttheme?style=flat-square" alt="npm version"></a>
|
|
7
7
|
<a href="https://github.com/kecan0406/ttheme/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/kecan0406/ttheme/ci.yml?branch=main&style=flat-square&label=ci" alt="CI status"></a>
|
|
8
|
-
<a href="https://ttheme.vercel.app/"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fkecan0406.github.io%2Fttheme%2Fmanifest.json&query=%24.palettes.length&label=palettes&style=flat-square&color=c796c8" alt="palettes
|
|
8
|
+
<a href="https://ttheme.vercel.app/"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fkecan0406.github.io%2Fttheme%2Fmanifest.json&query=%24.palettes.length&label=palettes&style=flat-square&color=c796c8" alt="official palettes"></a>
|
|
9
9
|
<a href="LICENSE"><img src="https://img.shields.io/npm/l/@kecan0406/ttheme?style=flat-square" alt="MIT license"></a>
|
|
10
10
|
</p>
|
|
11
11
|
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
|
|
26
26
|
- **Colors from the character.** Every palette keeps the three colors that
|
|
27
27
|
identify its character and borrows its ANSI ramp from an established scheme,
|
|
28
|
-
harmonized so
|
|
28
|
+
harmonized so every official palette reads alike.
|
|
29
29
|
- **Every palette passes an accessibility gate.** Body text at 7:1 against the
|
|
30
30
|
background (WCAG AAA), every meaningful ANSI color at 3:1, and each accent stays
|
|
31
31
|
in its role — red reads as an error, green as success. The build fails if a
|
|
@@ -42,7 +42,7 @@ npx @kecan0406/ttheme@latest init
|
|
|
42
42
|
|
|
43
43
|
It needs Node 22 or newer and zsh, which macOS ships — bash and fish get the
|
|
44
44
|
`ttheme` command too, run through zsh. It asks which terminals to wire and which
|
|
45
|
-
|
|
45
|
+
catalogs to install, shows every file it is about to change, and writes nothing
|
|
46
46
|
until you confirm. Then:
|
|
47
47
|
|
|
48
48
|
```sh
|
|
@@ -74,33 +74,33 @@ a checkout are in [docs/install.md](docs/install.md).
|
|
|
74
74
|
## Palettes
|
|
75
75
|
|
|
76
76
|
<p align="center">
|
|
77
|
-
<a href="https://ttheme.vercel.app/"><img src="https://kecan0406.github.io/ttheme/readme/
|
|
77
|
+
<a href="https://ttheme.vercel.app/"><img src="https://kecan0406.github.io/ttheme/readme/catalogs.svg" alt="One card per catalog, drawn in its lead palette" width="856"></a>
|
|
78
78
|
</p>
|
|
79
79
|
|
|
80
80
|
<details>
|
|
81
81
|
<summary><b>Every palette</b></summary>
|
|
82
82
|
<br>
|
|
83
|
-
<img src="https://kecan0406.github.io/ttheme/readme/palettes.svg" alt="Every palette
|
|
83
|
+
<img src="https://kecan0406.github.io/ttheme/readme/palettes.svg" alt="Every official palette, grouped by catalog" width="856">
|
|
84
84
|
</details>
|
|
85
85
|
|
|
86
|
-
Both images are drawn from the
|
|
87
|
-
Browse offers. `init` installs the
|
|
86
|
+
Both images are drawn from the official marketplace as it ships, so they always
|
|
87
|
+
match what Browse offers. `init` installs the catalogs you pick; Browse, the second tab of
|
|
88
88
|
`ttheme`, adds or drops single palettes any time, and a merged palette reaches everyone
|
|
89
89
|
with the next release — `ttheme update` brings it, and ttheme says when one is
|
|
90
90
|
out.
|
|
91
91
|
|
|
92
|
-
###
|
|
92
|
+
### Marketplaces
|
|
93
93
|
|
|
94
|
-
Anyone can publish palettes from a GitHub repository. A
|
|
95
|
-
`<owner>@<name>` — its repository's owner and the name its `ttheme-
|
|
96
|
-
sits below the
|
|
94
|
+
Anyone can publish palettes from a GitHub repository. A marketplace is named
|
|
95
|
+
`<owner>@<name>` — its repository's owner and the name its `ttheme-marketplace.toml` gives — and
|
|
96
|
+
sits below the official catalogs in Preview and Browse, past a line, with
|
|
97
97
|
the folders under its `palettes/` as catalogs:
|
|
98
98
|
|
|
99
99
|
```
|
|
100
100
|
▾ Evangelion
|
|
101
101
|
rei
|
|
102
102
|
asuka
|
|
103
|
-
──
|
|
103
|
+
── Marketplaces ─────
|
|
104
104
|
▾ alice@pastel
|
|
105
105
|
▾ night
|
|
106
106
|
dusk
|
|
@@ -109,32 +109,32 @@ the folders under its `palettes/` as catalogs:
|
|
|
109
109
|
```
|
|
110
110
|
|
|
111
111
|
```sh
|
|
112
|
-
ttheme add dusk --
|
|
113
|
-
ttheme
|
|
114
|
-
ttheme
|
|
112
|
+
ttheme add dusk --marketplace alice/ttheme-pastel # add alice's marketplace and install from it
|
|
113
|
+
ttheme marketplace add alice/ttheme-pastel#v1 # or add it alone, pinned to a tag
|
|
114
|
+
ttheme # shift+tab to Browse: marketplaces are rows there — add, remove, auto-update
|
|
115
115
|
```
|
|
116
116
|
|
|
117
|
-
Browse handles
|
|
117
|
+
Browse handles marketplaces the way it handles palettes: in the same list it
|
|
118
118
|
adds one by repository or folder, finds the public ones on GitHub, marks one for
|
|
119
119
|
removal and switches its auto-update, and enter applies all of it with the
|
|
120
|
-
palettes you picked. The official
|
|
120
|
+
palettes you picked. The official marketplace comes with ttheme and updates with it;
|
|
121
121
|
a repository asks when you add it whether its list updates on its own, and a
|
|
122
122
|
palette you installed from it keeps its colors until you take its update —
|
|
123
|
-
`ctrl+r` on a palette marked `↑` in Browse. Nobody reviews a
|
|
123
|
+
`ctrl+r` on a palette marked `↑` in Browse. Nobody reviews a marketplace. Its
|
|
124
124
|
palettes are colors and post numbers, never code, and the contrast gate's
|
|
125
|
-
numbers are shown for them but never enforced — only the official
|
|
126
|
-
held to the gate. `ttheme update` updates ttheme and refreshes every
|
|
125
|
+
numbers are shown for them but never enforced — only the official marketplace is
|
|
126
|
+
held to the gate. `ttheme update` updates ttheme and refreshes every marketplace now; `ttheme marketplace
|
|
127
127
|
remove alice@pastel` drops one, and the palettes you installed from it keep
|
|
128
|
-
working. The official
|
|
129
|
-
page](https://ttheme.vercel.app/
|
|
128
|
+
working. The official palettes are a marketplace too (`official`). [The marketplaces
|
|
129
|
+
page](https://ttheme.vercel.app/marketplace) lists the public ones.
|
|
130
130
|
|
|
131
131
|
### Your own palettes
|
|
132
132
|
|
|
133
133
|
`ttheme new rei` opens the palette editor on a blank palette: a few seeds grow
|
|
134
134
|
twenty colors that pass the contrast gate, then each one is tuned in OKLCH while
|
|
135
|
-
a mock terminal beside them shows the result. It makes `<you>@<
|
|
136
|
-
GitHub handle and a
|
|
137
|
-
`~/.config/ttheme/
|
|
135
|
+
a mock terminal beside them shows the result. It makes `<you>@<marketplace>/rei`, named after your
|
|
136
|
+
GitHub handle and a marketplace name the first `new` asks for, in
|
|
137
|
+
`~/.config/ttheme/marketplace/<marketplace>`, and installs it; `--from rei` starts from
|
|
138
138
|
rei's colors instead. `ttheme edit rei` opens the same editor — on any palette,
|
|
139
139
|
the official ones included: one that is not yours keeps your changes as a tone
|
|
140
140
|
over its own colors, and `R` then `s` in the editor puts them back. `ttheme check
|
|
@@ -142,17 +142,18 @@ over its own colors, and `R` then `s` in the editor puts them back. `ttheme chec
|
|
|
142
142
|
yours). Left without a palette, `edit`, `check` and `share` ask to use the one
|
|
143
143
|
the tab wears; `share` into a pipe uses it without asking.
|
|
144
144
|
|
|
145
|
-
A local
|
|
146
|
-
under it, such as `palettes/night/`, is a catalog
|
|
147
|
-
`ttheme-
|
|
148
|
-
|
|
145
|
+
A local marketplace is already a repository layout: `palettes/*.toml` (a folder
|
|
146
|
+
under it, such as `palettes/night/`, is a catalog, which a `[[catalog]]` table in
|
|
147
|
+
`ttheme-marketplace.toml` may give an order, a title and a lead) and the
|
|
148
|
+
`ttheme-marketplace.toml` that names it — nothing to build, since ttheme reads the
|
|
149
|
+
files as pushed. `ttheme marketplace init <name>` makes one and prints the commands that
|
|
149
150
|
publish it:
|
|
150
151
|
|
|
151
152
|
```sh
|
|
152
|
-
cd ~/.config/ttheme/
|
|
153
|
+
cd ~/.config/ttheme/marketplace/<name>
|
|
153
154
|
git init -b main && git add -A && git commit -m "<you>@<name>"
|
|
154
155
|
gh repo create <you>/ttheme-<name> --public --source . --push
|
|
155
|
-
gh repo edit <you>/ttheme-<name> --add-topic ttheme-
|
|
156
|
+
gh repo edit <you>/ttheme-<name> --add-topic ttheme-marketplace
|
|
156
157
|
```
|
|
157
158
|
|
|
158
159
|
`ttheme share <palette>` prints a link — `https://ttheme.vercel.app/p/tt2:…` —
|
|
@@ -161,18 +162,18 @@ its background posts with their framing, so nothing is uploaded: the page it
|
|
|
161
162
|
opens draws the palette in a terminal, lists the posts, and gives the
|
|
162
163
|
`ttheme add` command, and its preview image for chat apps is drawn in the palette's colors.
|
|
163
164
|
`ttheme add <link>` (or the bare `tt2:…` code at its end) installs it anywhere
|
|
164
|
-
without a
|
|
165
|
+
without a marketplace, fetching those posts from the booru the way `find` does.
|
|
165
166
|
|
|
166
167
|
## Usage
|
|
167
168
|
|
|
168
169
|
| Command | |
|
|
169
170
|
|---|---|
|
|
170
|
-
| `ttheme` | Preview and Browse as tabs of one screen — `tab` and `shift+tab` switch. Preview tries palettes live: the tab repaints as the cursor moves, enter applies it to this tab or makes it the default. Browse picks palettes and
|
|
171
|
+
| `ttheme` | Preview and Browse as tabs of one screen — `tab` and `shift+tab` switch. Preview tries palettes live: the tab repaints as the cursor moves, enter applies it to this tab or makes it the default. Browse picks palettes and marketplaces in one list: a marketplace's row takes `delete`, `shift+←/→` for its auto-update and `ctrl+r` |
|
|
171
172
|
| `ttheme use <palette>` | Paint this tab (a unique prefix works) |
|
|
172
173
|
| `ttheme default <palette>` | The palette new tabs open with |
|
|
173
174
|
| `ttheme pin` / `unpin` | A palette for this directory, everything below it, its repository or an ssh host (`ssh:<host>`) — a panel shows what each choice reaches; `cd` or `ssh` in repaints, leaving restores |
|
|
174
175
|
| `ttheme pins` | Map every pin as a file tree — the pinned directories in each palette's colors, with where you are marked, and every pinned ssh host |
|
|
175
|
-
| `ttheme
|
|
176
|
+
| `ttheme marketplace add <owner/repo>` | Add someone's marketplace (`#v1` pins it) — `ttheme marketplace` lists yours; `search`, `remove` too |
|
|
176
177
|
| `ttheme new <name>` | Make a palette of your own in the palette editor (`--from <palette>` starts from its colors); `edit`, `check`, `share` follow |
|
|
177
178
|
| `ttheme on` / `off` | Wear the default again / give the terminal its own colors back |
|
|
178
179
|
| `ttheme config` | Settings in `$EDITOR` |
|
|
@@ -209,7 +210,7 @@ window, WezTerm the active tab's per window, Warp the tab in front's, through it
|
|
|
209
210
|
## Contributing
|
|
210
211
|
|
|
211
212
|
A palette is one TOML file of color values and post numbers — never images.
|
|
212
|
-
Your own go in your own
|
|
213
|
+
Your own go in your own marketplace, with no review; the official marketplace takes pull
|
|
213
214
|
requests, and [CONTRIBUTING.md](CONTRIBUTING.md) has its rules, the file format
|
|
214
215
|
and the checks a palette must pass.
|
|
215
216
|
|