@kecan0406/ttheme 1.0.31 → 1.0.33
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 +54 -8
- package/bin/ttheme.js +170 -127
- package/dist/manifest.json +1 -1
- package/package.json +1 -1
- package/shell/adapters/_bg.zsh +3 -0
- package/shell/adapters/_osc.zsh +9 -3
- package/shell/adapters/alacritty.zsh +1 -0
- package/shell/adapters/kitty.zsh +50 -27
- package/shell/adapters/windows-terminal.zsh +2 -0
- package/shell/ttheme.zsh +26 -6
package/dist/manifest.json
CHANGED
package/package.json
CHANGED
package/shell/adapters/_bg.zsh
CHANGED
|
@@ -11,10 +11,13 @@ __tt_ghostty_shown() {
|
|
|
11
11
|
__tt_bg_saved() {
|
|
12
12
|
local REPLY
|
|
13
13
|
(( ${TTHEME_TERMINALS[(Ie)iterm2]} )) && __tt_cli image $1 tuned
|
|
14
|
+
__tt_bg_refresh "$@"
|
|
14
15
|
__tt_ghostty_shown && (( ${@[(Ie)$REPLY]} )) && __tt_reload
|
|
15
16
|
return 0
|
|
16
17
|
}
|
|
17
18
|
|
|
19
|
+
__tt_bg_refresh() { : }
|
|
20
|
+
|
|
18
21
|
__tt_bg_aligns() { (( ! ${TTHEME_TERMINALS[(Ie)iterm2]} )) }
|
|
19
22
|
|
|
20
23
|
__tt_b64() {
|
package/shell/adapters/_osc.zsh
CHANGED
|
@@ -16,16 +16,18 @@ __tt_osc_apply() {
|
|
|
16
16
|
else
|
|
17
17
|
out=$'\e]11;'$p[1]$'\e\\'
|
|
18
18
|
fi
|
|
19
|
-
out+=$'\e]10;'$p[2]$'\e\\\e]12;'$p[3]$'\e\\\e]17;'$p[4]$'\e
|
|
20
|
-
for i in {0..15}; do out
|
|
21
|
-
__tt_out "$out"
|
|
19
|
+
out+=$'\e]10;'$p[2]$'\e\\\e]12;'$p[3]$'\e\\\e]17;'$p[4]$'\e\\'
|
|
20
|
+
for i in {0..15}; do out+=$'\e]4;'$i';'$p[i+5]$'\e\\'; done
|
|
21
|
+
__tt_out "$out"
|
|
22
22
|
(( TTHEME_TMUX )) && tmux set -q @ttheme_bg "$p[1]" 2>/dev/null
|
|
23
|
+
__tt_worn "$1"
|
|
23
24
|
return 0
|
|
24
25
|
}
|
|
25
26
|
|
|
26
27
|
__tt_osc_reset() {
|
|
27
28
|
__tt_out $'\e]104\e\\\e]110\e\\\e]111\e\\\e]112\e\\\e]117\e\\'
|
|
28
29
|
(( TTHEME_TMUX )) && tmux set -qu @ttheme_bg 2>/dev/null
|
|
30
|
+
__tt_worn ""
|
|
29
31
|
return 0
|
|
30
32
|
}
|
|
31
33
|
|
|
@@ -43,6 +45,10 @@ __tt_shown() { return 1 }
|
|
|
43
45
|
|
|
44
46
|
__tt_unshown() { : }
|
|
45
47
|
|
|
48
|
+
__tt_reloaded() { : }
|
|
49
|
+
|
|
50
|
+
__tt_worn() { : }
|
|
51
|
+
|
|
46
52
|
__tt_keepable() { return 1 }
|
|
47
53
|
|
|
48
54
|
__tt_pv_bg_open() { : }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__tt_keepable() { (( ${TTHEME_TERMINALS[(Ie)alacritty]} )) }
|
package/shell/adapters/kitty.zsh
CHANGED
|
@@ -1,31 +1,54 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
)
|
|
20
|
-
local i
|
|
21
|
-
for i in {0..15}; do reply+=("color$i=$p[i+5]"); done
|
|
1
|
+
source $TTHEME_HOME/adapters/_bg.zsh
|
|
2
|
+
|
|
3
|
+
typeset -g TTHEME_KITTY_SHOWN=""
|
|
4
|
+
|
|
5
|
+
__tt_keepable() { (( ${TTHEME_TERMINALS[(Ie)kitty]} )) }
|
|
6
|
+
|
|
7
|
+
__tt_kitty_var() { __tt_out $'\e]1337;SetUserVar='$1'='"$(print -rn -- $2 | base64)"$'\a' }
|
|
8
|
+
|
|
9
|
+
__tt_shown() {
|
|
10
|
+
[[ $2 != force && $TTHEME_KITTY_SHOWN == $1 ]] && return 1
|
|
11
|
+
TTHEME_KITTY_SHOWN=$1
|
|
12
|
+
__tt_kitty_var ttheme_shown $1
|
|
13
|
+
return 1
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
__tt_unshown() {
|
|
17
|
+
TTHEME_KITTY_SHOWN=""
|
|
18
|
+
__tt_kitty_var ttheme_shown ""
|
|
22
19
|
}
|
|
23
20
|
|
|
24
|
-
|
|
25
|
-
local
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
21
|
+
__tt_worn() {
|
|
22
|
+
local REPLY=""
|
|
23
|
+
[[ -n $1 ]] && __tt_name_of "$1"
|
|
24
|
+
[[ -n ${TTHEME_PALETTE[$REPLY]} ]] || REPLY=""
|
|
25
|
+
__tt_kitty_var ttheme_worn $REPLY
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
__tt_reloaded() { [[ -n $TTHEME_STARTUP ]] && __tt_kitty_var ttheme_startup $TTHEME_STARTUP }
|
|
29
|
+
|
|
30
|
+
__tt_bg_shown() { REPLY=$TTHEME_KITTY_SHOWN }
|
|
31
|
+
|
|
32
|
+
__tt_bg_refresh() { (( ${@[(Ie)$TTHEME_KITTY_SHOWN]} )) && __tt_kitty_var ttheme_shown $TTHEME_KITTY_SHOWN }
|
|
33
|
+
|
|
34
|
+
__tt_bg_cells() {
|
|
35
|
+
local fd saved resp="" c
|
|
36
|
+
exec {fd}<>/dev/tty 2>/dev/null || return 0
|
|
37
|
+
saved=$(stty -g <&$fd 2>/dev/null)
|
|
38
|
+
stty raw -echo min 0 time 3 <&$fd 2>/dev/null
|
|
39
|
+
printf '\e[16t' >&$fd
|
|
40
|
+
while IFS= read -r -s -k 1 -t 1 -u $fd c 2>/dev/null; do
|
|
41
|
+
resp+=$c
|
|
42
|
+
[[ $resp == *'[6;'<1->';'<1->t ]] && break
|
|
43
|
+
done
|
|
44
|
+
stty "$saved" <&$fd 2>/dev/null
|
|
45
|
+
exec {fd}>&-
|
|
46
|
+
[[ $resp == *'[6;'<1->';'<1->t ]] || return 0
|
|
47
|
+
resp=${${resp##*\[6;}%t}
|
|
48
|
+
bgch=${resp%;*} bgcw=${resp#*;}
|
|
49
|
+
}
|
|
29
50
|
|
|
30
|
-
|
|
51
|
+
__tt_bg_crop() {
|
|
52
|
+
__tt_bg_send $1
|
|
53
|
+
REPLY="$REPLY $4"
|
|
31
54
|
}
|
package/shell/ttheme.zsh
CHANGED
|
@@ -13,7 +13,7 @@ __tt_palettes_load() {
|
|
|
13
13
|
__tt_fresh() {
|
|
14
14
|
local -a at
|
|
15
15
|
zstat -F %s.%N -A at +mtime -- $TTHEME_HOME/palettes.zsh 2>/dev/null || return 0
|
|
16
|
-
[[ $at[1] == "$TTHEME_PALETTES_AT" ]] || __tt_palettes_load
|
|
16
|
+
[[ $at[1] == "$TTHEME_PALETTES_AT" ]] || { __tt_palettes_load && __tt_reloaded }
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
if [[ -r $TTHEME_HOME/palettes.zsh ]]; then
|
|
@@ -390,6 +390,7 @@ __tt_help() {
|
|
|
390
390
|
ttheme preview browse live — focus repaints, enter keeps (this tab or default), esc restores, ? lists keys
|
|
391
391
|
ttheme next advance this tab to the next palette
|
|
392
392
|
ttheme default make a palette the one new tabs open with
|
|
393
|
+
ttheme off open new tabs in the terminal'"'"'s own colors — ttheme on wears the default again
|
|
393
394
|
ttheme pin pick a palette for this directory — cd into it repaints, cd out restores
|
|
394
395
|
ttheme unpin drop the palette pinned to this directory
|
|
395
396
|
ttheme config edit settings in $EDITOR — they apply in new tabs
|
|
@@ -414,10 +415,27 @@ __tt_catalog() {
|
|
|
414
415
|
[[ $1 == list ]] && return 0
|
|
415
416
|
[[ -r $TTHEME_HOME/palettes.zsh ]] || return 0
|
|
416
417
|
was="$TTHEME_STARTUP ${TTHEME_PALETTE[$TTHEME_STARTUP]}"
|
|
417
|
-
__tt_palettes_load
|
|
418
|
+
__tt_palettes_load && __tt_reloaded
|
|
418
419
|
[[ "$TTHEME_STARTUP ${TTHEME_PALETTE[$TTHEME_STARTUP]}" == "$was" ]] || __tt_reload
|
|
419
420
|
}
|
|
420
421
|
|
|
422
|
+
__tt_switch() {
|
|
423
|
+
local spec
|
|
424
|
+
__tt_catalog $1 || return
|
|
425
|
+
__tt_active || return 0
|
|
426
|
+
if [[ $1 == off ]]; then
|
|
427
|
+
__tt_osc_reset
|
|
428
|
+
TTHEME_SPEC=
|
|
429
|
+
__tt_shown "" && __tt_reload
|
|
430
|
+
__tt_unshown force
|
|
431
|
+
elif [[ -n $TTHEME_STARTUP ]]; then
|
|
432
|
+
spec=${TTHEME_PALETTE[$TTHEME_STARTUP]}
|
|
433
|
+
__tt_apply "$spec"
|
|
434
|
+
TTHEME_SPEC=$spec
|
|
435
|
+
__tt_shown "$TTHEME_STARTUP" force && __tt_reload
|
|
436
|
+
fi
|
|
437
|
+
}
|
|
438
|
+
|
|
421
439
|
__tt_config() {
|
|
422
440
|
if [[ ! -e $TTHEME_CONFIG ]]; then
|
|
423
441
|
mkdir -p ${TTHEME_CONFIG:h} || return 1
|
|
@@ -826,7 +844,7 @@ __tt_pv_help() {
|
|
|
826
844
|
)
|
|
827
845
|
if (( bgcw )); then
|
|
828
846
|
hk+=("tune bg" "" "" "" "")
|
|
829
|
-
hv+=("tab · finds one on the boorus if none" "↑↓ field ←→ step ⇧←→ ×10 1-9 place" "space hides · = default · f adds one" "enter keeps · esc undoes" ", . other saved images · D removes this one")
|
|
847
|
+
hv+=("tab · finds one on the boorus, or takes your own, if none" "↑↓ field ←→ step ⇧←→ ×10 1-9 place" "space hides · = default · f adds one from the boorus or your own" "enter keeps · esc undoes" ", . other saved images · D removes this one")
|
|
830
848
|
fi
|
|
831
849
|
hk+=(config "")
|
|
832
850
|
hv+=("alt-c · ↑↓ setting ←→ value" "enter saves · esc undoes")
|
|
@@ -1481,6 +1499,7 @@ __tt_preview() {
|
|
|
1481
1499
|
abc "series and palettes by name" series "series in the order added"
|
|
1482
1500
|
)
|
|
1483
1501
|
[[ $mode == pin ]] && pkdef=2 plabel=(" this directory " " and below ")
|
|
1502
|
+
[[ $mode == init ]] && pkdef=2
|
|
1484
1503
|
__tt_pv_canpick
|
|
1485
1504
|
__tt_pv_size
|
|
1486
1505
|
local -a groups=() rtype=() rval=() rcnt=() reply=()
|
|
@@ -1540,7 +1559,7 @@ __tt_preview() {
|
|
|
1540
1559
|
}
|
|
1541
1560
|
|
|
1542
1561
|
ttheme() {
|
|
1543
|
-
if [[ $TTHEME_ADAPTER == warp && $1 != (-h|--help|help|browse|list|add|remove|update|config|default) ]]; then
|
|
1562
|
+
if [[ $TTHEME_ADAPTER == warp && $1 != (-h|--help|help|browse|list|add|remove|update|config|default|on|off) ]]; then
|
|
1544
1563
|
print -u2 "ttheme: Warp wears one theme app-wide and paints no tab background of its own — \`ttheme default <palette>\` puts one on every Warp window"
|
|
1545
1564
|
return 1
|
|
1546
1565
|
fi
|
|
@@ -1566,6 +1585,7 @@ ttheme() {
|
|
|
1566
1585
|
__tt_resolve "$2" || return 1
|
|
1567
1586
|
__tt_keep "$REPLY"
|
|
1568
1587
|
return ;;
|
|
1588
|
+
on|off) __tt_switch $1; return ;;
|
|
1569
1589
|
preview) __tt_preview; return ;;
|
|
1570
1590
|
pin) __tt_preview pin; return ;;
|
|
1571
1591
|
unpin) __tt_unpin; return ;;
|
|
@@ -1583,7 +1603,7 @@ ttheme() {
|
|
|
1583
1603
|
|
|
1584
1604
|
if (( $+functions[compdef] )); then
|
|
1585
1605
|
__tt_complete() {
|
|
1586
|
-
(( CURRENT == 2 )) && compadd -- preview next default pin unpin config help browse list add remove update
|
|
1606
|
+
(( CURRENT == 2 )) && compadd -- preview next default on off pin unpin config help browse list add remove update
|
|
1587
1607
|
compadd -- $TTHEME_ORDER
|
|
1588
1608
|
}
|
|
1589
1609
|
compdef __tt_complete ttheme
|
|
@@ -1615,7 +1635,7 @@ if __tt_active; then
|
|
|
1615
1635
|
add-zsh-hook preexec __tt_mux
|
|
1616
1636
|
add-zsh-hook precmd __tt_unmux
|
|
1617
1637
|
fi
|
|
1618
|
-
if [[ $TTHEME_ADAPTER == ghostty ]] || (( TTHEME_TMUX )); then
|
|
1638
|
+
if [[ $TTHEME_ADAPTER == (ghostty|kitty|windows-terminal) ]] || (( TTHEME_TMUX )); then
|
|
1619
1639
|
add-zsh-hook precmd __tt_precmd
|
|
1620
1640
|
add-zsh-hook preexec __tt_preexec
|
|
1621
1641
|
__tt_bind_focus
|