@kecan0406/ttheme 1.0.31 → 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.
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.0.31",
2
+ "version": "1.0.32",
3
3
  "gate": [
4
4
  {
5
5
  "rule": "foreground",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kecan0406/ttheme",
3
- "version": "1.0.31",
3
+ "version": "1.0.32",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "ttheme": "bin/ttheme.js"
@@ -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() {
@@ -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\\\e]4'
20
- for i in {0..15}; do out+=";$i;$p[i+5]"; done
21
- __tt_out "$out"$'\e\\'
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]} )) }
@@ -1,31 +1,54 @@
1
- if (( $+commands[kitten] )); then
2
- __tt_kitty() { kitten @ "$@" }
3
- elif (( $+commands[kitty] )); then
4
- __tt_kitty() { kitty @ "$@" }
5
- else
6
- __tt_kitty() { return 1 }
7
- fi
8
-
9
- __tt_kitty_args() {
10
- local -a p=(${=1})
11
- (( ${#p} >= 20 )) || return 1
12
- reply=(
13
- foreground=$p[2]
14
- background=$p[1]
15
- cursor=$p[3]
16
- cursor_text_color=$p[1]
17
- selection_background=$p[4]
18
- selection_foreground=$p[2]
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
- __tt_apply() {
25
- local -a reply
26
- if [[ ${1%% *} != - ]] && __tt_kitty_args "$1"; then
27
- __tt_kitty set-colors -- "${reply[@]}" 2>/dev/null && return 0
28
- fi
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
- __tt_osc_apply "$1"
51
+ __tt_bg_crop() {
52
+ __tt_bg_send $1
53
+ REPLY="$REPLY $4"
31
54
  }
@@ -1 +1,3 @@
1
1
  __tt_keepable() { (( ${TTHEME_TERMINALS[(Ie)windows-terminal]} )) }
2
+
3
+ __tt_reloaded() { __tt_repaint }
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
@@ -414,7 +414,7 @@ __tt_catalog() {
414
414
  [[ $1 == list ]] && return 0
415
415
  [[ -r $TTHEME_HOME/palettes.zsh ]] || return 0
416
416
  was="$TTHEME_STARTUP ${TTHEME_PALETTE[$TTHEME_STARTUP]}"
417
- __tt_palettes_load
417
+ __tt_palettes_load && __tt_reloaded
418
418
  [[ "$TTHEME_STARTUP ${TTHEME_PALETTE[$TTHEME_STARTUP]}" == "$was" ]] || __tt_reload
419
419
  }
420
420
 
@@ -826,7 +826,7 @@ __tt_pv_help() {
826
826
  )
827
827
  if (( bgcw )); then
828
828
  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")
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")
830
830
  fi
831
831
  hk+=(config "")
832
832
  hv+=("alt-c · ↑↓ setting ←→ value" "enter saves · esc undoes")
@@ -1615,7 +1615,7 @@ if __tt_active; then
1615
1615
  add-zsh-hook preexec __tt_mux
1616
1616
  add-zsh-hook precmd __tt_unmux
1617
1617
  fi
1618
- if [[ $TTHEME_ADAPTER == ghostty ]] || (( TTHEME_TMUX )); then
1618
+ if [[ $TTHEME_ADAPTER == (ghostty|kitty|windows-terminal) ]] || (( TTHEME_TMUX )); then
1619
1619
  add-zsh-hook precmd __tt_precmd
1620
1620
  add-zsh-hook preexec __tt_preexec
1621
1621
  __tt_bind_focus