@kecan0406/ttheme 1.0.47 → 1.0.48

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.47",
2
+ "version": "1.0.48",
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.47",
3
+ "version": "1.0.48",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "ttheme": "bin/ttheme.js"
@@ -265,12 +265,12 @@ __tt_pv_bg_show() {
265
265
  local -a p=(${=TTHEME_PALETTE[$name]}) wh at
266
266
  local -i cols=$(( pw + 2 * bgmx )) rows=$(( ph + 2 * bgmy ))
267
267
  (( ${#p} >= 20 )) || return 0
268
- (( $2 )) && { bgsent=(); bgshown="" bganchor=0 }
268
+ (( $2 )) && { __tt_bg_forget; bgshown="" bganchor=0 }
269
269
  bgname=$name
270
270
  __tt_bg_load $name
271
271
  if (( ! bgrel )) && [[ $name == "$bginc" && "${bgsize[$name]} ${bgpos[$name]} ${bgop[$name]} ${bgoff[$name]}" == "${bgload[$name]}" ]]; then
272
272
  printf '\e_Ga=d,d=i,i=1,q=2\e\\\e_Ga=d,d=i,i=2,q=2\e\\'
273
- [[ -n $bgshown ]] && printf '\e_Ga=d,d=i,i=%d,q=2\e\\' $bgshown
273
+ [[ -n $bgshown ]] && printf '\e_Ga=d,d=i,i=%d,p=%d,q=2\e\\' $bgshown $bgshown
274
274
  bgshown=""
275
275
  return 0
276
276
  fi
@@ -304,21 +304,41 @@ __tt_pv_bg_show() {
304
304
  __tt_bg_crop $img $wh[1] $wh[2] $at[6] $at[8] && id=${REPLY% *} at[6]=${REPLY##* }
305
305
  fi
306
306
  fi
307
- [[ -n $bgshown && $bgshown != "$id" ]] && printf '\e_Ga=d,d=i,i=%d,q=2\e\\' $bgshown
307
+ [[ -n $bgshown && $bgshown != "$id" ]] && printf '\e_Ga=d,d=i,i=%d,p=%d,q=2\e\\' $bgshown $bgshown
308
308
  bgshown=$id
309
309
  [[ -n $id ]] || return 0
310
310
  __tt_bg_at $id -1073741826 $(( at[1] - 1 )) $(( at[2] - 1 )) $at[3] $at[4] $at[5] $at[6] $at[7] $at[8]
311
311
  }
312
312
 
313
313
  __tt_bg_send() {
314
- if [[ -z ${bgsent[$1]} ]]; then
315
- bgsent[$1]=$(( ${#bgsent} + 3 ))
314
+ local -i cost=0
315
+ if [[ -n ${bgsent[$1]} ]]; then
316
+ bgorder=("${(@)bgorder:#${(b)1}}" "$1")
317
+ else
318
+ __tt_bg_dim "$1" && cost=$(( ${bgdim[$1]% *} * ${bgdim[$1]#* } * 4 ))
319
+ bgsent[$1]=$(( ++bgnext + 2 )) bgcost[$1]=$cost
320
+ (( bgbytes += cost ))
321
+ bgorder+=("$1")
316
322
  __tt_b64s "$1"
317
323
  printf '\e_Ga=t,t=f,f=100,i=%d,q=2;%s\e\\' ${bgsent[$1]} "$REPLY"
324
+ while (( ${#bgorder} > 1 && bgbytes > 134217728 )); do
325
+ printf '\e_Ga=d,d=I,i=%d,q=2\e\\' ${bgsent[$bgorder[1]]}
326
+ (( bgbytes -= bgcost[$bgorder[1]] ))
327
+ unset "bgsent[$bgorder[1]]" "bgcost[$bgorder[1]]"
328
+ shift bgorder
329
+ done
318
330
  fi
319
331
  REPLY=${bgsent[$1]}
320
332
  }
321
333
 
334
+ __tt_bg_forget() {
335
+ local id
336
+ for id in $bgsent; do
337
+ printf '\e_Ga=d,d=I,i=%d,q=2\e\\' $id
338
+ done
339
+ bgsent=() bgcost=() bgorder=() bgbytes=0
340
+ }
341
+
322
342
  __tt_pv_bg_fs() {
323
343
  local name=$1
324
344
  local -a wh fwh
@@ -415,7 +435,7 @@ __tt_pv_bg_find() {
415
435
  done
416
436
  [[ -r $TTHEME_CONFIG ]] && source $TTHEME_CONFIG
417
437
  err=${${err//$'\n'/ }## #}
418
- resized=1 bgname="" bgshown="" bgsent=() bgdim=()
438
+ resized=1 bgname="" bgshown="" bgdim=()
419
439
  if (( rc == 1 )); then
420
440
  msg=${err:-"find failed for $name"} msgt=300
421
441
  fi
@@ -445,7 +465,7 @@ __tt_pv_bg_image() {
445
465
  err=$(__tt_cli image $name $act 2>&1)
446
466
  rc=$?
447
467
  err=${${err//$'\n'/ }## #}
448
- resized=1 bgname="" bgshown="" bgsent=() bgdim=()
468
+ resized=1 bgname="" bgshown="" bgdim=()
449
469
  unset "bgsrc[$name]"
450
470
  __tt_bg_load $name
451
471
  bgload[$name]="" bgedit[$name]=1
@@ -514,7 +534,7 @@ __tt_pv_bg_panel() {
514
534
  }
515
535
 
516
536
  __tt_pv_bg_close() {
517
- (( bgcw )) && printf '\e_Ga=d,d=A,q=2\e\\'
537
+ (( bgcw )) && { printf '\e_Ga=d,d=A,q=2\e\\'; __tt_bg_forget }
518
538
  [[ -z $bgcut ]] || { rm -rf -- $bgcut; bgcut="" }
519
539
  }
520
540
 
package/shell/ttheme.zsh CHANGED
@@ -1633,8 +1633,9 @@ __tt_preview() {
1633
1633
  fi
1634
1634
  local orig=$TTHEME_SPEC applied=$TTHEME_SPEC painted=$TTHEME_SPEC flt="" sel="" cn="" cdot="" key="" REPLY="" cur=1 top=1 color=0 pw=80 ph=24 resized=1 expal="" exgrp="" exnext=0 gstep=0 gseed=0 tick=0
1635
1635
  local pick="" pk=1 pkdef=1 picked=0 canpick=0 bgcw=0 bgch=0 bgname="" bgshown="" bginc="" osd="" osdt=0
1636
- local tune="" tsnap="" tf=1 help=0 msg="" msgt=0 an="" bgrel=0 bgmx=0 bgmy=0 bganchor=0 bgcut=""
1637
- local -A bgfrom=() bgsent=() bgdim=() bgsrc=() bgfill=() bgfocus=() bgsize=() bgpos=() bgop=() bgdef=() bgoff=() bgbase=() bgload=() bgshot=() bgshotkey=() bgedit=() bgtunef=() bgofff=() bgimages=()
1636
+ local tune="" tsnap="" tf=1 help=0 msg="" msgt=0 an="" bgrel=0 bgmx=0 bgmy=0 bganchor=0 bgcut="" bgnext=0 bgbytes=0
1637
+ local -a bgorder=()
1638
+ local -A bgfrom=() bgsent=() bgcost=() bgdim=() bgsrc=() bgfill=() bgfocus=() bgsize=() bgpos=() bgop=() bgdef=() bgoff=() bgbase=() bgload=() bgshot=() bgshotkey=() bgedit=() bgtunef=() bgofff=() bgimages=()
1638
1639
  local conf=0 cf=1
1639
1640
  local -a plabel=(" this tab " " default ") csnap=()
1640
1641
  local -a cvars=(TTHEME_TAB_PALETTE TTHEME_ANNOUNCE TTHEME_FX TTHEME_SORT) clabel=("new tabs" announce "search fx" sort)