@kecan0406/ttheme 1.2.2 → 1.2.3
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/bin/ttheme.js +122 -122
- package/bin/ttheme.js.map +1 -1
- package/dist/manifest.json +1 -1
- package/package.json +2 -1
- package/shell/adapters/_osc.zsh +2 -0
- package/shell/adapters/alacritty.zsh +2 -0
- package/shell/adapters/iterm2.zsh +22 -4
- package/shell/adapters/konsole.zsh +4 -0
- package/shell/adapters/terminal-app.zsh +2 -0
- package/shell/adapters/wezterm.zsh +2 -0
- package/shell/adapters/windows-terminal.zsh +10 -1
- package/shell/ttheme.zsh +36 -24
package/dist/manifest.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kecan0406/ttheme",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
6
|
"ttheme": "bin/ttheme.js"
|
|
@@ -37,6 +37,7 @@
|
|
|
37
37
|
"@material/material-color-utilities": "^0.4.0",
|
|
38
38
|
"@types/bun": "^1.3.0",
|
|
39
39
|
"@types/pngjs": "6.0.5",
|
|
40
|
+
"@xterm/headless": "6.0.0",
|
|
40
41
|
"fast-string-width": "^3.0.2",
|
|
41
42
|
"jpeg-js": "^0.4.4",
|
|
42
43
|
"pngjs": "7.0.0",
|
package/shell/adapters/_osc.zsh
CHANGED
|
@@ -1,17 +1,35 @@
|
|
|
1
1
|
source $TTHEME_HOME/adapters/_bg.zsh
|
|
2
2
|
|
|
3
3
|
if (( ! ${+TTHEME_ITERM_SHOWN} )); then
|
|
4
|
-
typeset -gx TTHEME_ITERM_SHOWN=""
|
|
4
|
+
typeset -gx TTHEME_ITERM_SHOWN="" TTHEME_ITERM_DYED=0
|
|
5
5
|
[[ $ITERM_PROFILE == 'ttheme · '* ]] && TTHEME_ITERM_SHOWN=${ITERM_PROFILE#ttheme · }
|
|
6
6
|
fi
|
|
7
7
|
|
|
8
8
|
__tt_keepable() { return 0 }
|
|
9
9
|
|
|
10
|
+
__tt_follows_focus() { return 0 }
|
|
11
|
+
|
|
12
|
+
__tt_takes_default() {
|
|
13
|
+
local REPLY was=$TTHEME_ITERM_SHOWN
|
|
14
|
+
(( ! TTHEME_ITERM_DYED )) || return 1
|
|
15
|
+
(( TTHEME_TMUX )) && was=$(tmux show -qv @ttheme_shown 2>/dev/null)
|
|
16
|
+
[[ $was == default ]] && return 0
|
|
17
|
+
[[ -z $was ]] && __tt_hear && [[ $REPLY == ${TTHEME_PALETTE[$TTHEME_STARTUP]%% *} ]] || return 1
|
|
18
|
+
TTHEME_ITERM_SHOWN=default
|
|
19
|
+
(( TTHEME_TMUX )) && tmux set -q @ttheme_shown default 2>/dev/null
|
|
20
|
+
return 0
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
__tt_worn() { [[ -z $1 ]] || TTHEME_ITERM_DYED=1 }
|
|
24
|
+
|
|
10
25
|
__tt_pv_paint() {
|
|
11
26
|
local -a p=(${=1})
|
|
12
27
|
if (( ${#p} < 20 )); then
|
|
13
28
|
__tt_out $'\e]110\e\\\e]111\e\\'
|
|
14
|
-
|
|
29
|
+
return 0
|
|
30
|
+
fi
|
|
31
|
+
TTHEME_ITERM_DYED=1
|
|
32
|
+
if [[ $p[1] == - ]]; then
|
|
15
33
|
__tt_out $'\e]111\e\\\e]10;'$p[2]$'\e\\'
|
|
16
34
|
else
|
|
17
35
|
__tt_out $'\e]11;'$p[1]$'\e\\\e]10;'$p[2]$'\e\\'
|
|
@@ -34,7 +52,7 @@ __tt_shown() {
|
|
|
34
52
|
[[ -r $dir/${${1/@/--}/\//--}.conf || ( -n $was && -r $dir/${${was/@/--}/\//--}.conf ) ]] || (( TTHEME_MUXED )) || return 1
|
|
35
53
|
(( ${TTHEME_ORDER[(Ie)$1]} )) || return 1
|
|
36
54
|
__tt_out $'\e]1337;SetProfile=ttheme · '$1$'\a'
|
|
37
|
-
TTHEME_ITERM_SHOWN=$1
|
|
55
|
+
TTHEME_ITERM_SHOWN=$1 TTHEME_ITERM_DYED=0
|
|
38
56
|
(( TTHEME_TMUX )) && tmux set -q @ttheme_shown $1 2>/dev/null
|
|
39
57
|
return 1
|
|
40
58
|
}
|
|
@@ -44,7 +62,7 @@ __tt_unshown() {
|
|
|
44
62
|
(( TTHEME_TMUX )) && was=$(tmux show -qv @ttheme_shown 2>/dev/null)
|
|
45
63
|
[[ $1 != force && $was == "$want" ]] && return 0
|
|
46
64
|
__tt_out $'\e]1337;SetProfile=\a'
|
|
47
|
-
TTHEME_ITERM_SHOWN=$want
|
|
65
|
+
TTHEME_ITERM_SHOWN=$want TTHEME_ITERM_DYED=0
|
|
48
66
|
(( TTHEME_TMUX )) && tmux set -q @ttheme_shown "$want" 2>/dev/null
|
|
49
67
|
return 0
|
|
50
68
|
}
|
|
@@ -6,6 +6,10 @@ __tt_unpainted() {
|
|
|
6
6
|
|
|
7
7
|
__tt_keepable() { __tt_paints }
|
|
8
8
|
|
|
9
|
+
__tt_takes_default() { __tt_osc_reset }
|
|
10
|
+
|
|
11
|
+
__tt_follows_focus() { return 0 }
|
|
12
|
+
|
|
9
13
|
__tt_scheme() {
|
|
10
14
|
local -a p=(${=TTHEME_PALETTE[$1]})
|
|
11
15
|
REPLY="ColorScheme=ttheme-${${1/@/--}/\//--};UseCustomCursorColor=true;customCursorColor=$p[3]"
|
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
__tt_keepable() { (( ${TTHEME_TERMINALS[(Ie)windows-terminal]} )) }
|
|
2
2
|
|
|
3
|
-
__tt_reloaded() {
|
|
3
|
+
__tt_reloaded() {
|
|
4
|
+
local REPLY
|
|
5
|
+
integer i
|
|
6
|
+
[[ -n $TTHEME_PAINTED ]] || return 0
|
|
7
|
+
for (( i = 0; i < 20; i++ )); do
|
|
8
|
+
__tt_query_bg && [[ ${(L)REPLY} == ${(L)${TTHEME_SPEC%% *}} ]] || break
|
|
9
|
+
sleep 0.05
|
|
10
|
+
done
|
|
11
|
+
__tt_repaint
|
|
12
|
+
}
|
|
4
13
|
|
|
5
14
|
__tt_follows_focus() { return 0 }
|
package/shell/ttheme.zsh
CHANGED
|
@@ -14,16 +14,22 @@ __tt_palettes_load() {
|
|
|
14
14
|
__tt_fresh() {
|
|
15
15
|
emulate -L zsh ${=${options[xtrace]:#off}:+-o xtrace}
|
|
16
16
|
local -a at
|
|
17
|
-
local was=$TTHEME_STARTUP
|
|
17
|
+
local was=$TTHEME_STARTUP start="$TTHEME_STARTUP ${TTHEME_PALETTE[$TTHEME_STARTUP]}"
|
|
18
18
|
if ! zstat -F %s.%N -A at +mtime -- $TTHEME_HOME/palettes.zsh 2>/dev/null; then
|
|
19
19
|
[[ -e $TTHEME_HOME ]] || __tt_gone
|
|
20
20
|
return 0
|
|
21
21
|
fi
|
|
22
22
|
[[ $at[1] == "$TTHEME_PALETTES_AT" ]] && return 0
|
|
23
|
-
__tt_palettes_load && __tt_reloaded
|
|
23
|
+
__tt_palettes_load && { __tt_follow "$start" && __tt_sync; __tt_reloaded }
|
|
24
24
|
[[ -n $was && -z $TTHEME_STARTUP && -n $TTHEME_SPEC ]] && __tt_active && __tt_off_here
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
+
__tt_follow() {
|
|
28
|
+
[[ -n $TTHEME_STARTUP && "$TTHEME_STARTUP ${TTHEME_PALETTE[$TTHEME_STARTUP]}" != "$1" && -z $TTHEME_PAINTED ]] || return 1
|
|
29
|
+
__tt_active && __tt_takes_default || return 1
|
|
30
|
+
TTHEME_SPEC=${TTHEME_PALETTE[$TTHEME_STARTUP]}
|
|
31
|
+
}
|
|
32
|
+
|
|
27
33
|
__tt_gone() {
|
|
28
34
|
local bg=${TTHEME_SPEC%% *} hook
|
|
29
35
|
TTHEME_SPEC=
|
|
@@ -304,8 +310,7 @@ __tt_dir_sync() {
|
|
|
304
310
|
[[ -n $spec && $spec != "$TTHEME_SPEC" ]] || return 0
|
|
305
311
|
__tt_apply "$spec"
|
|
306
312
|
TTHEME_SPEC=$spec
|
|
307
|
-
|
|
308
|
-
__tt_shown "$REPLY" && __tt_reload
|
|
313
|
+
__tt_sync
|
|
309
314
|
}
|
|
310
315
|
|
|
311
316
|
__tt_chpwd() {
|
|
@@ -314,14 +319,16 @@ __tt_chpwd() {
|
|
|
314
319
|
__tt_dir_sync
|
|
315
320
|
}
|
|
316
321
|
|
|
317
|
-
|
|
322
|
+
__tt_worn_shown() {
|
|
318
323
|
local REPLY
|
|
319
|
-
[[ -n $TTHEME_SPEC ]] || return
|
|
324
|
+
[[ -n $TTHEME_SPEC ]] || return 1
|
|
320
325
|
__tt_name_of "$TTHEME_SPEC"
|
|
321
|
-
[[ -n ${TTHEME_PALETTE[$REPLY]} ]] || return
|
|
322
|
-
__tt_shown "$REPLY"
|
|
326
|
+
[[ -n ${TTHEME_PALETTE[$REPLY]} ]] || return 1
|
|
327
|
+
__tt_shown "$REPLY" $1
|
|
323
328
|
}
|
|
324
329
|
|
|
330
|
+
__tt_sync() { ! __tt_worn_shown || __tt_reload }
|
|
331
|
+
|
|
325
332
|
__tt_precmd() {
|
|
326
333
|
emulate -L zsh ${=${options[xtrace]:#off}:+-o xtrace}
|
|
327
334
|
__tt_sync
|
|
@@ -335,12 +342,13 @@ __tt_preexec() {
|
|
|
335
342
|
}
|
|
336
343
|
|
|
337
344
|
__tt_rewear() {
|
|
338
|
-
local REPLY
|
|
339
345
|
__tt_repaint
|
|
340
|
-
[[ -n $TTHEME_SPEC ]]
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
346
|
+
if [[ -n $TTHEME_SPEC ]]; then
|
|
347
|
+
__tt_worn_shown $1 && __tt_reload
|
|
348
|
+
else
|
|
349
|
+
__tt_unshown $1
|
|
350
|
+
fi
|
|
351
|
+
return 0
|
|
344
352
|
}
|
|
345
353
|
|
|
346
354
|
__tt_focus() {
|
|
@@ -1074,10 +1082,11 @@ __tt_pins_map() {
|
|
|
1074
1082
|
}
|
|
1075
1083
|
|
|
1076
1084
|
__tt_keep() {
|
|
1077
|
-
local note
|
|
1085
|
+
local note was="$TTHEME_STARTUP ${TTHEME_PALETTE[$TTHEME_STARTUP]}"
|
|
1078
1086
|
note=$(__tt_cli default "$1") || return 1
|
|
1079
|
-
|
|
1080
|
-
|
|
1087
|
+
[[ -r $TTHEME_HOME/palettes.zsh ]] && __tt_palettes_load && __tt_reloaded
|
|
1088
|
+
__tt_follow "$was"
|
|
1089
|
+
__tt_worn_shown $2
|
|
1081
1090
|
__tt_reload
|
|
1082
1091
|
if __tt_color; then
|
|
1083
1092
|
printf '\033[2m%s\033[0m\n' "${(@f)note}"
|
|
@@ -1189,7 +1198,10 @@ __tt_catalog() {
|
|
|
1189
1198
|
[[ -r $TTHEME_HOME/palettes.zsh ]] || return 0
|
|
1190
1199
|
was="$TTHEME_STARTUP ${TTHEME_PALETTE[$TTHEME_STARTUP]}"
|
|
1191
1200
|
__tt_palettes_load && __tt_reloaded
|
|
1192
|
-
[[ "$TTHEME_STARTUP ${TTHEME_PALETTE[$TTHEME_STARTUP]}" == "$was" ]]
|
|
1201
|
+
[[ "$TTHEME_STARTUP ${TTHEME_PALETTE[$TTHEME_STARTUP]}" == "$was" ]] && return 0
|
|
1202
|
+
__tt_follow "$was"
|
|
1203
|
+
__tt_worn_shown
|
|
1204
|
+
__tt_reload
|
|
1193
1205
|
}
|
|
1194
1206
|
|
|
1195
1207
|
__tt_switch() {
|
|
@@ -1307,13 +1319,11 @@ __tt_next() {
|
|
|
1307
1319
|
}
|
|
1308
1320
|
|
|
1309
1321
|
__tt_rotate() {
|
|
1310
|
-
local REPLY
|
|
1322
|
+
local REPLY
|
|
1311
1323
|
__tt_next
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
__tt_name_of "$spec"
|
|
1316
|
-
__tt_shown "$REPLY" force && __tt_reload
|
|
1324
|
+
__tt_apply "$REPLY"
|
|
1325
|
+
TTHEME_SPEC=$REPLY
|
|
1326
|
+
__tt_worn_shown force && __tt_reload
|
|
1317
1327
|
__tt_announce
|
|
1318
1328
|
}
|
|
1319
1329
|
|
|
@@ -2705,7 +2715,7 @@ __tt_preview() {
|
|
|
2705
2715
|
__tt_sync
|
|
2706
2716
|
elif (( picked == 2 )); then
|
|
2707
2717
|
__tt_announce
|
|
2708
|
-
__tt_keep "$sel"
|
|
2718
|
+
__tt_keep "$sel" force
|
|
2709
2719
|
else
|
|
2710
2720
|
__tt_announce
|
|
2711
2721
|
__tt_shown "$sel" force && __tt_reload
|
|
@@ -2733,6 +2743,8 @@ ttheme() {
|
|
|
2733
2743
|
print -u2 "ttheme: unknown command '$1' — see \`ttheme help\`"
|
|
2734
2744
|
return 1
|
|
2735
2745
|
fi
|
|
2746
|
+
__tt_fresh
|
|
2747
|
+
(( $+functions[ttheme] )) || { print -u2 "ttheme: uninstalled — \`npx @kecan0406/ttheme@latest init\` sets it up again"; return 1 }
|
|
2736
2748
|
if ! __tt_paints && (( ! $# || ${TTHEME_TAB_VERBS[(Ie)$1]} )); then
|
|
2737
2749
|
__tt_unpainted
|
|
2738
2750
|
return 1
|