@kecan0406/ttheme 1.0.30 → 1.0.32
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 +129 -18
- package/bin/ttheme.js +191 -117
- package/dist/manifest.json +1 -1
- package/package.json +1 -1
- package/shell/adapters/_bg.zsh +4 -1
- package/shell/adapters/_osc.zsh +41 -7
- package/shell/adapters/alacritty.zsh +1 -0
- package/shell/adapters/iterm2.zsh +16 -3
- package/shell/adapters/kitty.zsh +50 -27
- package/shell/adapters/terminal-app.zsh +35 -0
- package/shell/adapters/wezterm.zsh +19 -0
- package/shell/adapters/windows-terminal.zsh +3 -0
- package/shell/ttheme.zsh +56 -13
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() {
|
|
@@ -236,7 +239,7 @@ __tt_pv_bg_open() {
|
|
|
236
239
|
bgcw=0 bgch=0 bginc="" bgrel=0 bgmx=0 bgmy=0 bganchor=0
|
|
237
240
|
local REPLY
|
|
238
241
|
__tt_bg_shown && bginc=$REPLY
|
|
239
|
-
__tt_bg_cells
|
|
242
|
+
(( TTHEME_TMUX )) || __tt_bg_cells
|
|
240
243
|
}
|
|
241
244
|
|
|
242
245
|
__tt_pv_bg_show() {
|
package/shell/adapters/_osc.zsh
CHANGED
|
@@ -1,25 +1,54 @@
|
|
|
1
|
+
__tt_out() {
|
|
2
|
+
if (( TTHEME_TMUX )); then
|
|
3
|
+
printf '\ePtmux;%s\e\\' "${1//$'\e'/$'\e\e'}"
|
|
4
|
+
else
|
|
5
|
+
printf '%s' "$1"
|
|
6
|
+
fi
|
|
7
|
+
}
|
|
8
|
+
|
|
1
9
|
__tt_osc_apply() {
|
|
2
10
|
local -a p=(${=1})
|
|
3
11
|
(( ${#p} >= 20 )) || return 1
|
|
12
|
+
local out i
|
|
4
13
|
|
|
5
14
|
if [[ $p[1] == - ]]; then
|
|
6
|
-
|
|
15
|
+
out=$'\e]111\e\\'
|
|
7
16
|
else
|
|
8
|
-
|
|
17
|
+
out=$'\e]11;'$p[1]$'\e\\'
|
|
9
18
|
fi
|
|
10
|
-
|
|
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
|
+
(( TTHEME_TMUX )) && tmux set -q @ttheme_bg "$p[1]" 2>/dev/null
|
|
23
|
+
__tt_worn "$1"
|
|
24
|
+
return 0
|
|
25
|
+
}
|
|
11
26
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
27
|
+
__tt_osc_reset() {
|
|
28
|
+
__tt_out $'\e]104\e\\\e]110\e\\\e]111\e\\\e]112\e\\\e]117\e\\'
|
|
29
|
+
(( TTHEME_TMUX )) && tmux set -qu @ttheme_bg 2>/dev/null
|
|
30
|
+
__tt_worn ""
|
|
31
|
+
return 0
|
|
15
32
|
}
|
|
16
33
|
|
|
17
|
-
|
|
34
|
+
__tt_repaint() {
|
|
35
|
+
if [[ -n $TTHEME_SPEC ]]; then
|
|
36
|
+
__tt_apply "$TTHEME_SPEC"
|
|
37
|
+
else
|
|
38
|
+
__tt_osc_reset
|
|
39
|
+
fi
|
|
40
|
+
}
|
|
18
41
|
|
|
19
42
|
__tt_apply() { __tt_osc_apply "$@" }
|
|
20
43
|
|
|
21
44
|
__tt_shown() { return 1 }
|
|
22
45
|
|
|
46
|
+
__tt_unshown() { : }
|
|
47
|
+
|
|
48
|
+
__tt_reloaded() { : }
|
|
49
|
+
|
|
50
|
+
__tt_worn() { : }
|
|
51
|
+
|
|
23
52
|
__tt_keepable() { return 1 }
|
|
24
53
|
|
|
25
54
|
__tt_pv_bg_open() { : }
|
|
@@ -47,6 +76,11 @@ __tt_pv_bg_save() { : }
|
|
|
47
76
|
__tt_query_bg() {
|
|
48
77
|
local saved resp="" c fd
|
|
49
78
|
REPLY=""
|
|
79
|
+
if (( TTHEME_TMUX )); then
|
|
80
|
+
REPLY=$(tmux show -qv @ttheme_bg 2>/dev/null)
|
|
81
|
+
[[ $REPLY == \#* ]] && return 0
|
|
82
|
+
REPLY=""
|
|
83
|
+
fi
|
|
50
84
|
exec {fd}<>/dev/tty 2>/dev/null || return 1
|
|
51
85
|
|
|
52
86
|
saved=$(stty -g <&$fd 2>/dev/null)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__tt_keepable() { (( ${TTHEME_TERMINALS[(Ie)alacritty]} )) }
|
|
@@ -8,7 +8,9 @@ fi
|
|
|
8
8
|
__tt_keepable() { return 0 }
|
|
9
9
|
|
|
10
10
|
__tt_bg_shown() {
|
|
11
|
-
REPLY
|
|
11
|
+
REPLY=""
|
|
12
|
+
(( TTHEME_TMUX )) && REPLY=$(tmux show -qv @ttheme_shown 2>/dev/null)
|
|
13
|
+
[[ -n $REPLY ]] || REPLY=$TTHEME_ITERM_SHOWN
|
|
12
14
|
[[ $REPLY == default ]] && REPLY=$TTHEME_STARTUP
|
|
13
15
|
[[ -n $REPLY ]]
|
|
14
16
|
}
|
|
@@ -18,13 +20,24 @@ __tt_shown() {
|
|
|
18
20
|
__tt_bg_shown
|
|
19
21
|
was=$REPLY
|
|
20
22
|
[[ $2 != force && $was == $1 ]] && return 1
|
|
21
|
-
[[ -r $dir/$1.conf || ( -n $was && -r $dir/$was.conf ) ]] || return 1
|
|
23
|
+
[[ -r $dir/$1.conf || ( -n $was && -r $dir/$was.conf ) ]] || (( TTHEME_MUXED )) || return 1
|
|
22
24
|
(( ${TTHEME_ORDER[(Ie)$1]} )) || return 1
|
|
23
|
-
|
|
25
|
+
__tt_out $'\e]1337;SetProfile=ttheme · '$1$'\a'
|
|
24
26
|
TTHEME_ITERM_SHOWN=$1
|
|
27
|
+
(( TTHEME_TMUX )) && tmux set -q @ttheme_shown $1 2>/dev/null
|
|
25
28
|
return 1
|
|
26
29
|
}
|
|
27
30
|
|
|
31
|
+
__tt_unshown() {
|
|
32
|
+
local want=${TTHEME_STARTUP:+default} was=$TTHEME_ITERM_SHOWN
|
|
33
|
+
(( TTHEME_TMUX )) && was=$(tmux show -qv @ttheme_shown 2>/dev/null)
|
|
34
|
+
[[ $1 != force && $was == "$want" ]] && return 0
|
|
35
|
+
__tt_out $'\e]1337;SetProfile=\a'
|
|
36
|
+
TTHEME_ITERM_SHOWN=$want
|
|
37
|
+
(( TTHEME_TMUX )) && tmux set -q @ttheme_shown "$want" 2>/dev/null
|
|
38
|
+
return 0
|
|
39
|
+
}
|
|
40
|
+
|
|
28
41
|
__tt_bg_cells() {
|
|
29
42
|
local fd saved resp="" c
|
|
30
43
|
local -a p
|
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
|
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
typeset -g TTHEME_TERMINAL_BASE=""
|
|
2
|
+
|
|
3
|
+
__tt_terminal_base() {
|
|
4
|
+
local fd saved resp="" c q=$'\e]11;?\e\\\e]10;?\e\\\e]12;?\e\\\e]17;?\e\\' e v i
|
|
5
|
+
local -a p
|
|
6
|
+
local -A got
|
|
7
|
+
for i in {0..15}; do q+=$'\e]4;'$i$';?\e\\'; done
|
|
8
|
+
exec {fd}<>/dev/tty 2>/dev/null || return 1
|
|
9
|
+
saved=$(stty -g <&$fd 2>/dev/null)
|
|
10
|
+
[[ -n $saved ]] || { exec {fd}>&-; return 1 }
|
|
11
|
+
stty raw -echo min 0 time 3 <&$fd 2>/dev/null
|
|
12
|
+
printf '%s\e[5n' $q >&$fd
|
|
13
|
+
while IFS= read -r -k 1 -u $fd c 2>/dev/null; do
|
|
14
|
+
resp+=$c
|
|
15
|
+
[[ $resp == *$'\e[0n' ]] && break
|
|
16
|
+
(( ${#resp} < 2048 )) || break
|
|
17
|
+
done
|
|
18
|
+
stty "$saved" <&$fd 2>/dev/null
|
|
19
|
+
exec {fd}>&-
|
|
20
|
+
for e in ${(ps:\e]:)resp}; do
|
|
21
|
+
[[ $e == *';rgb:'* ]] || continue
|
|
22
|
+
p=(${(s:/:)${${e#*rgb:}%%[^0-9A-Fa-f/]*}})
|
|
23
|
+
(( ${#p} >= 3 )) && got[${e%%;rgb:*}]="#${(L)p[1][1,2]}${(L)p[2][1,2]}${(L)p[3][1,2]}"
|
|
24
|
+
done
|
|
25
|
+
v="$got[11] $got[10] $got[12] ${got[17]:-$got[11]}"
|
|
26
|
+
for i in {0..15}; do v+=" ${got[4;$i]}"; done
|
|
27
|
+
(( ${#${=v}} == 20 )) && TTHEME_TERMINAL_BASE=$v
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
__tt_osc_reset() {
|
|
31
|
+
[[ -n $TTHEME_TERMINAL_BASE ]] && __tt_osc_apply "$TTHEME_TERMINAL_BASE"
|
|
32
|
+
return 0
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
[[ -o interactive && -t 1 ]] && __tt_terminal_base
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
typeset -g TTHEME_WEZTERM_SHOWN=""
|
|
2
|
+
|
|
3
|
+
__tt_keepable() { (( ${TTHEME_TERMINALS[(Ie)wezterm]} )) }
|
|
4
|
+
|
|
5
|
+
__tt_wezterm_show() { printf '\e]1337;SetUserVar=ttheme_shown=%s\a' "$(print -rn -- $1 | base64)" }
|
|
6
|
+
|
|
7
|
+
__tt_shown() {
|
|
8
|
+
[[ $2 != force && $TTHEME_WEZTERM_SHOWN == $1 ]] && return 1
|
|
9
|
+
TTHEME_WEZTERM_SHOWN=$1
|
|
10
|
+
__tt_wezterm_show $1
|
|
11
|
+
return 1
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
__tt_pv_bg_show() {
|
|
15
|
+
bgname=$1
|
|
16
|
+
__tt_wezterm_show $1
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
__tt_pv_bg_close() { [[ -z $TTHEME_WEZTERM_SHOWN ]] || __tt_wezterm_show $TTHEME_WEZTERM_SHOWN }
|
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
|
|
@@ -62,7 +62,9 @@ __tt_pins_load
|
|
|
62
62
|
|
|
63
63
|
typeset -g TTHEME_STATE_DIR=${XDG_STATE_HOME:-$HOME/.local/state}/ttheme
|
|
64
64
|
|
|
65
|
-
if [[
|
|
65
|
+
if [[ $TERM_PROGRAM == WarpTerminal ]]; then
|
|
66
|
+
typeset -g TTHEME_ADAPTER=warp
|
|
67
|
+
elif [[ -n $GHOSTTY_RESOURCES_DIR || $TERM_PROGRAM == ghostty ]]; then
|
|
66
68
|
typeset -g TTHEME_ADAPTER=ghostty
|
|
67
69
|
elif [[ -n $KITTY_WINDOW_ID ]]; then
|
|
68
70
|
typeset -g TTHEME_ADAPTER=kitty
|
|
@@ -72,32 +74,43 @@ elif [[ -n $ALACRITTY_WINDOW_ID ]]; then
|
|
|
72
74
|
typeset -g TTHEME_ADAPTER=alacritty
|
|
73
75
|
elif [[ -n $ITERM_SESSION_ID || $TERM_PROGRAM == iTerm.app ]]; then
|
|
74
76
|
typeset -g TTHEME_ADAPTER=iterm2
|
|
77
|
+
elif [[ $TERM_PROGRAM == Apple_Terminal ]]; then
|
|
78
|
+
typeset -g TTHEME_ADAPTER=terminal-app
|
|
79
|
+
elif [[ -n $WT_SESSION && -z $TERM_PROGRAM ]]; then
|
|
80
|
+
typeset -g TTHEME_ADAPTER=windows-terminal
|
|
75
81
|
elif [[ $TERM == foot* ]]; then
|
|
76
82
|
typeset -g TTHEME_ADAPTER=foot
|
|
77
83
|
else
|
|
78
84
|
typeset -g TTHEME_ADAPTER=unknown
|
|
79
85
|
fi
|
|
80
86
|
|
|
81
|
-
typeset -g TTHEME_GHOSTTY_PID=""
|
|
87
|
+
typeset -g TTHEME_GHOSTTY_PID="" TTHEME_TMUX=0 TTHEME_MUXED=0
|
|
82
88
|
|
|
83
89
|
__tt_reload() {
|
|
84
90
|
(( ${TTHEME_TERMINALS[(Ie)ghostty]} )) || return 0
|
|
85
|
-
local pid=$PPID ppid comm
|
|
86
|
-
|
|
87
|
-
|
|
91
|
+
local pid=$PPID ppid comm owner=$TTHEME_GHOSTTY_PID
|
|
92
|
+
(( TTHEME_TMUX )) && { pid=$(tmux display -p '#{client_pid}' 2>/dev/null) owner="" }
|
|
93
|
+
if [[ -z $owner ]]; then
|
|
94
|
+
owner=0
|
|
88
95
|
while (( pid > 1 )); do
|
|
89
96
|
read -r ppid comm <<< "$(ps -o ppid=,comm= -p $pid)"
|
|
90
97
|
if [[ ${comm:t} == ghostty ]]; then
|
|
91
|
-
|
|
98
|
+
owner=$pid
|
|
92
99
|
break
|
|
93
100
|
fi
|
|
94
101
|
pid=$ppid
|
|
95
102
|
done
|
|
103
|
+
(( TTHEME_TMUX )) || TTHEME_GHOSTTY_PID=$owner
|
|
96
104
|
fi
|
|
97
|
-
((
|
|
105
|
+
(( owner )) && kill -USR2 $owner 2>/dev/null && return
|
|
98
106
|
pkill -USR2 -x ghostty 2>/dev/null
|
|
99
107
|
}
|
|
100
108
|
|
|
109
|
+
__tt_tmux() {
|
|
110
|
+
[[ $(tmux if -t "$TMUX_PANE" -F '#{==:#{allow-passthrough},off}' 'set -p allow-passthrough on' \; set -sq focus-events on \; display -p '#{client_control_mode}' 2>/dev/null) == 1 ]] && return 0
|
|
111
|
+
TTHEME_TMUX=1 TTHEME_SPEC=
|
|
112
|
+
}
|
|
113
|
+
|
|
101
114
|
source $TTHEME_HOME/adapters/_osc.zsh
|
|
102
115
|
[[ -r $TTHEME_HOME/adapters/$TTHEME_ADAPTER.zsh ]] &&
|
|
103
116
|
source $TTHEME_HOME/adapters/$TTHEME_ADAPTER.zsh
|
|
@@ -105,7 +118,7 @@ source $TTHEME_HOME/adapters/_osc.zsh
|
|
|
105
118
|
__tt_active() {
|
|
106
119
|
[[ -o interactive ]] || return 1
|
|
107
120
|
(( ${#TTHEME_PALETTE} )) || return 1
|
|
108
|
-
[[ $TTHEME_ADAPTER != unknown || -n $TTHEME_FORCE ]]
|
|
121
|
+
[[ $TTHEME_ADAPTER != (unknown|warp) || -n $TTHEME_FORCE ]]
|
|
109
122
|
}
|
|
110
123
|
|
|
111
124
|
__tt_empty() {
|
|
@@ -209,9 +222,30 @@ __tt_precmd() {
|
|
|
209
222
|
|
|
210
223
|
__tt_preexec() { printf '\e[?1004l' }
|
|
211
224
|
|
|
225
|
+
__tt_rewear() {
|
|
226
|
+
local REPLY
|
|
227
|
+
__tt_repaint
|
|
228
|
+
[[ -n $TTHEME_SPEC ]] || { __tt_unshown $1; return 0 }
|
|
229
|
+
__tt_name_of "$TTHEME_SPEC"
|
|
230
|
+
[[ -n ${TTHEME_PALETTE[$REPLY]} ]] || return 0
|
|
231
|
+
__tt_shown "$REPLY" $1 && __tt_reload
|
|
232
|
+
}
|
|
233
|
+
|
|
212
234
|
__tt_focus() {
|
|
213
235
|
__tt_fresh
|
|
214
|
-
|
|
236
|
+
if (( TTHEME_TMUX )); then
|
|
237
|
+
__tt_rewear
|
|
238
|
+
else
|
|
239
|
+
__tt_sync
|
|
240
|
+
fi
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
__tt_mux() { [[ ${${(z)3}[1]:t} == tmux ]] && TTHEME_MUXED=1 }
|
|
244
|
+
|
|
245
|
+
__tt_unmux() {
|
|
246
|
+
(( TTHEME_MUXED )) || return 0
|
|
247
|
+
__tt_rewear force
|
|
248
|
+
TTHEME_MUXED=0
|
|
215
249
|
}
|
|
216
250
|
|
|
217
251
|
__tt_blur() { : }
|
|
@@ -380,7 +414,7 @@ __tt_catalog() {
|
|
|
380
414
|
[[ $1 == list ]] && return 0
|
|
381
415
|
[[ -r $TTHEME_HOME/palettes.zsh ]] || return 0
|
|
382
416
|
was="$TTHEME_STARTUP ${TTHEME_PALETTE[$TTHEME_STARTUP]}"
|
|
383
|
-
__tt_palettes_load
|
|
417
|
+
__tt_palettes_load && __tt_reloaded
|
|
384
418
|
[[ "$TTHEME_STARTUP ${TTHEME_PALETTE[$TTHEME_STARTUP]}" == "$was" ]] || __tt_reload
|
|
385
419
|
}
|
|
386
420
|
|
|
@@ -792,7 +826,7 @@ __tt_pv_help() {
|
|
|
792
826
|
)
|
|
793
827
|
if (( bgcw )); then
|
|
794
828
|
hk+=("tune bg" "" "" "" "")
|
|
795
|
-
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")
|
|
829
|
+
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")
|
|
796
830
|
fi
|
|
797
831
|
hk+=(config "")
|
|
798
832
|
hv+=("alt-c · ↑↓ setting ←→ value" "enter saves · esc undoes")
|
|
@@ -1506,6 +1540,10 @@ __tt_preview() {
|
|
|
1506
1540
|
}
|
|
1507
1541
|
|
|
1508
1542
|
ttheme() {
|
|
1543
|
+
if [[ $TTHEME_ADAPTER == warp && $1 != (-h|--help|help|browse|list|add|remove|update|config|default) ]]; then
|
|
1544
|
+
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
|
+
return 1
|
|
1546
|
+
fi
|
|
1509
1547
|
if (( ! $# )); then
|
|
1510
1548
|
(( ${#TTHEME_PALETTE} )) || { __tt_empty; return }
|
|
1511
1549
|
__tt_menu
|
|
@@ -1552,6 +1590,7 @@ if (( $+functions[compdef] )); then
|
|
|
1552
1590
|
fi
|
|
1553
1591
|
|
|
1554
1592
|
if __tt_active; then
|
|
1593
|
+
[[ -n $TMUX ]] && __tt_tmux
|
|
1555
1594
|
() {
|
|
1556
1595
|
local REPLY k
|
|
1557
1596
|
if [[ -n $TTHEME_SPEC ]]; then
|
|
@@ -1572,7 +1611,11 @@ if __tt_active; then
|
|
|
1572
1611
|
autoload -Uz add-zsh-hook
|
|
1573
1612
|
add-zsh-hook chpwd __tt_chpwd
|
|
1574
1613
|
add-zsh-hook precmd __tt_fresh
|
|
1575
|
-
if
|
|
1614
|
+
if (( ! TTHEME_TMUX )); then
|
|
1615
|
+
add-zsh-hook preexec __tt_mux
|
|
1616
|
+
add-zsh-hook precmd __tt_unmux
|
|
1617
|
+
fi
|
|
1618
|
+
if [[ $TTHEME_ADAPTER == (ghostty|kitty|windows-terminal) ]] || (( TTHEME_TMUX )); then
|
|
1576
1619
|
add-zsh-hook precmd __tt_precmd
|
|
1577
1620
|
add-zsh-hook preexec __tt_preexec
|
|
1578
1621
|
__tt_bind_focus
|