@kecan0406/ttheme 1.2.18 → 1.2.20
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 +10 -7
- package/bin/ttheme.js +222 -220
- package/bin/ttheme.js.map +1 -1
- package/dist/manifest.json +1 -1
- package/package.json +11 -7
- package/shell/adapters/_bg.zsh +9 -5
- package/shell/adapters/_osc.zsh +20 -4
- package/shell/adapters/ghostty.zsh +1 -1
- package/shell/adapters/iterm2.zsh +6 -3
- package/shell/adapters/kitty.zsh +1 -1
- package/shell/adapters/konsole.zsh +1 -1
- package/shell/adapters/terminal-app.zsh +1 -1
- package/shell/adapters/warp.zsh +1 -1
- package/shell/adapters/wezterm.zsh +1 -1
- package/shell/preview.zsh +182 -40
- package/shell/ttheme.zsh +31 -13
package/shell/ttheme.zsh
CHANGED
|
@@ -112,7 +112,7 @@ fi
|
|
|
112
112
|
|
|
113
113
|
typeset -g TTHEME_CONFIG=${XDG_CONFIG_HOME:-$HOME/.config}/ttheme/config.zsh
|
|
114
114
|
|
|
115
|
-
[[ -r $TTHEME_CONFIG ]] && source $TTHEME_CONFIG
|
|
115
|
+
[[ -r $TTHEME_CONFIG ]] && source "$TTHEME_CONFIG"
|
|
116
116
|
|
|
117
117
|
typeset -g TTHEME_PINS_FILE=${TTHEME_CONFIG:h}/pins
|
|
118
118
|
typeset -g TTHEME_PINS_RAW="" TTHEME_PINS_AT=""
|
|
@@ -305,10 +305,10 @@ __tt_mend() {
|
|
|
305
305
|
__tt_apply "$TTHEME_SPEC"
|
|
306
306
|
}
|
|
307
307
|
|
|
308
|
-
source $TTHEME_HOME/adapters/_osc.zsh
|
|
309
|
-
source $TTHEME_HOME/adapters/_wired.zsh
|
|
308
|
+
source "$TTHEME_HOME/adapters/_osc.zsh"
|
|
309
|
+
source "$TTHEME_HOME/adapters/_wired.zsh"
|
|
310
310
|
[[ -r $TTHEME_HOME/adapters/$TTHEME_ADAPTER.zsh ]] &&
|
|
311
|
-
source $TTHEME_HOME/adapters/$TTHEME_ADAPTER.zsh
|
|
311
|
+
source "$TTHEME_HOME/adapters/$TTHEME_ADAPTER.zsh"
|
|
312
312
|
|
|
313
313
|
__tt_empty() {
|
|
314
314
|
print -u2 'ttheme: no palettes installed yet — run `ttheme` in a terminal to pick some, or `ttheme add <palette>`'
|
|
@@ -729,6 +729,14 @@ __tt_key() {
|
|
|
729
729
|
C) REPLY=right ;;
|
|
730
730
|
D) REPLY=left ;;
|
|
731
731
|
Z) REPLY=stab ;;
|
|
732
|
+
"200~")
|
|
733
|
+
seq=""
|
|
734
|
+
while read -sk 1 -t 0.5 c; do
|
|
735
|
+
seq+=$c
|
|
736
|
+
[[ $c == '~' && $seq == *$'\e[201~' ]] && break
|
|
737
|
+
done
|
|
738
|
+
REPLY=nop
|
|
739
|
+
;;
|
|
732
740
|
*) REPLY=nop ;;
|
|
733
741
|
esac
|
|
734
742
|
else
|
|
@@ -795,7 +803,7 @@ __tt_unpin_choose() {
|
|
|
795
803
|
chosen=0
|
|
796
804
|
{
|
|
797
805
|
tty=$(stty -g 2>/dev/null && stty -echo -icanon -ixon min 1 time 0 2>/dev/null)
|
|
798
|
-
print -rn -- $'\e[?25l'
|
|
806
|
+
print -rn -- $'\e[?25l\e[?2004h'
|
|
799
807
|
while :; do
|
|
800
808
|
__tt_unpin_block $at
|
|
801
809
|
__tt_unpin_paint $n
|
|
@@ -811,7 +819,7 @@ __tt_unpin_choose() {
|
|
|
811
819
|
} always {
|
|
812
820
|
REPLY=$'\r'
|
|
813
821
|
(( n > 1 )) && REPLY+=$'\e['$(( n - 1 ))'A'
|
|
814
|
-
print -rn -- "$REPLY"$'\e[J\e[?25h'
|
|
822
|
+
print -rn -- "$REPLY"$'\e[J\e[?2004l\e[?25h'
|
|
815
823
|
[[ -n $tty ]] && stty "$tty" 2>/dev/null
|
|
816
824
|
}
|
|
817
825
|
(( chosen ))
|
|
@@ -960,14 +968,15 @@ __tt_map_tip() {
|
|
|
960
968
|
|
|
961
969
|
__tt_map_chip() {
|
|
962
970
|
local -a p=(${=TTHEME_PALETTE[$1]})
|
|
963
|
-
local bg=${p[1]#\#} fg=${p[2]#\#}
|
|
971
|
+
local bg=${p[1]#\#} fg=${p[2]#\#} name=$1
|
|
972
|
+
(( ${#name} > $2 )) && name=${name[1,$2-1]}…
|
|
964
973
|
if (( ! color )); then
|
|
965
|
-
printf -v REPLY '%-*s' $2 "$
|
|
974
|
+
printf -v REPLY '%-*s' $2 "$name"
|
|
966
975
|
elif (( ${#p} >= 20 )); then
|
|
967
976
|
printf -v REPLY "\e[48;2;%d;%d;%d;38;2;%d;%d;%dm %-*s ${TTHEME_SGR[/ink]}" $((16#${bg:0:2})) $((16#${bg:2:2})) $((16#${bg:4:2})) \
|
|
968
|
-
$((16#${fg:0:2})) $((16#${fg:2:2})) $((16#${fg:4:2})) $2 "$
|
|
977
|
+
$((16#${fg:0:2})) $((16#${fg:2:2})) $((16#${fg:4:2})) $2 "$name"
|
|
969
978
|
else
|
|
970
|
-
printf -v REPLY "${TTHEME_SGR[dim]} %-*s ${TTHEME_SGR[reset]}" $2 "$
|
|
979
|
+
printf -v REPLY "${TTHEME_SGR[dim]} %-*s ${TTHEME_SGR[reset]}" $2 "$name"
|
|
971
980
|
fi
|
|
972
981
|
}
|
|
973
982
|
|
|
@@ -1110,7 +1119,7 @@ __tt_map_build() {
|
|
|
1110
1119
|
|
|
1111
1120
|
__tt_map_fit() {
|
|
1112
1121
|
local b=$TTHEME_SGR[bold] d=$TTHEME_SGR[dim] y=$TTHEME_SGR[warn] r=$TTHEME_SGR[error] z=$TTHEME_SGR[reset] lab line tag tip note REPLY
|
|
1113
|
-
local -i width=$1 i lvl maxw namew need wr cap
|
|
1122
|
+
local -i width=$1 i lvl maxw namew need wr cap short
|
|
1114
1123
|
local -a lw=() rw=() cut=()
|
|
1115
1124
|
(( color )) || b= d= y= r= z=
|
|
1116
1125
|
reply=()
|
|
@@ -1149,11 +1158,16 @@ __tt_map_fit() {
|
|
|
1149
1158
|
(( lvl > 3 )) && lvl=3
|
|
1150
1159
|
cut=()
|
|
1151
1160
|
if (( need > width )); then
|
|
1152
|
-
cap=0
|
|
1161
|
+
cap=0 short=0
|
|
1153
1162
|
for (( i = 1; i <= ${#ll}; i++ )); do
|
|
1154
1163
|
(( rw[i] > cap )) && cap=$rw[i]
|
|
1164
|
+
(( rw[i] && lw[i] - ${(m)#ll[i]} + 1 > short )) && short=$(( lw[i] - ${(m)#ll[i]} + 1 ))
|
|
1155
1165
|
done
|
|
1156
1166
|
cap=$(( width - cap ))
|
|
1167
|
+
if (( short > cap )); then
|
|
1168
|
+
short=$(( short - cap > namew - 4 ? namew - 4 : short - cap ))
|
|
1169
|
+
(( short > 0 )) && (( namew -= short, cap += short ))
|
|
1170
|
+
fi
|
|
1157
1171
|
maxw=0
|
|
1158
1172
|
for (( i = 1; i <= ${#ll}; i++ )); do
|
|
1159
1173
|
wr=$(( rw[i] ? cap : width ))
|
|
@@ -1202,6 +1216,10 @@ __tt_map_fit() {
|
|
|
1202
1216
|
fi
|
|
1203
1217
|
fi
|
|
1204
1218
|
while [[ $line == *' ' ]]; do line=${line% }; done
|
|
1219
|
+
if (( need > width )); then
|
|
1220
|
+
__tt_clip "$line" $width
|
|
1221
|
+
line=$REPLY
|
|
1222
|
+
fi
|
|
1205
1223
|
reply+=("$line")
|
|
1206
1224
|
done
|
|
1207
1225
|
}
|
|
@@ -1481,7 +1499,7 @@ __tt_next() {
|
|
|
1481
1499
|
REPLY=${TTHEME_PALETTE[$TTHEME_ORDER[idx]]}
|
|
1482
1500
|
}
|
|
1483
1501
|
|
|
1484
|
-
source $TTHEME_HOME/preview.zsh
|
|
1502
|
+
source "$TTHEME_HOME/preview.zsh"
|
|
1485
1503
|
|
|
1486
1504
|
__tt_hook() {
|
|
1487
1505
|
autoload -Uz add-zsh-hook add-zle-hook-widget
|