如何通过XTerm控制序列切换窗口的Shaded属性?
X窗口的Shaded功能
这是我一直使用的实用X功能,它可将窗口缩小至标题栏,而非最小化(iconify)。
我可利用标题栏展示信息,示例如下:
printf '\e];Long process running...\a' sleep 2 # doLongProcessLike apt full-upgrade rc=$?; printf '\e];Long process ended with %d.\a' $rc
通过以下命令可将窗口设为Shaded状态:
wmctrl -ir "$WINDOWID" -b add,shaded
注:我已修改Mate设置,双击标题栏可切换Shaded状态(toggle shade)。
现有流程运行正常:
printf '\e];Long process running...\a' wmctrl -ir "$WINDOWID" -b add,shaded sleep 2 # doLongProcessLike apt full-upgrade rc=$?; printf '\e];Long process ended with %d.\a' $rc wmctrl -ir "$WINDOWID" -b remove,shaded
XTerm控制序列
使用XTerm可通过Xterm控制序列修改几乎所有设置。
用*CSI 2 t和CSI 1 t*可最小化、恢复窗口:
printf '\e[2t'; sleep 1 ; printf '\e[1t'
用*OSC 0 ; Window Title BEL*可修改窗口标题,进度条示例如下:
wmctrl -ir "$WINDOWID" -b add,shaded for progress in {0..100};do printf '\e];Job progress: %.2f%% \U2595%b\U258F\a' \ "$progress" \\U2$(( progress ? 581 + progress * 100 /1428 : 800)) sleep .03 done
效果如下:
我的问题:如何通过控制序列(ctlseqs)切换Shaded属性?
尝试以下命令未成功:
printf '\e]3;WM_STATE=WM_STATE_SHADED\a' ;sleep 1
还基于以下命令尝试多种变体:
xprop -id "$WINDOWID" > /tmp/xpropfile.txt sleep 2 xprop -id "$WINDOWID" | diff /tmp/xpropfile.txt -
并在2秒内用鼠标切换Shaded状态对比,但始终未找到通过XTerm控制序列切换Shaded属性的方法。
内容的提问来源于stack exchange,提问作者F. Hauri - Give Up GitHub
相关产品推荐
相关产品推荐

