我想在我的 .bashrc 中添加一个小脚本,当且仅当我没有打开任何非最小化、非终端窗口时,将终端背景设置为透明,如果有打开的东西,则将终端背景保留为图像。
我正在使用 Unity 12.04。
我可以毫无问题地设置终端背景,但我只能知道如何判断程序是否打开,而无法判断窗口是否最小化。
我目前的解决办法是:
if [ -z "$( ps -e | grep firefox )" ]
then
gconftool-2 --type string --set /apps/gnome-terminal/profiles/Default/background_type transparent
else
gconftool-2 --type string --set /apps/gnome-terminal/profiles/Default/background_type image
fi
(add inset for each of my most used programs)
如果能在启动终端时就看出来,我会很高兴,但如果能在最小化(或关闭)最后一个打开的窗口时将终端变为透明,那就太棒了。我猜是这样的:
export largewindows= #number of open, non-minimised windows
if [ $largewindows -eq 0 ]
then
gconftool-2 --type string --set /apps/gnome-terminal/profiles/Default/background_type transparent
fi
使用(某种方式)一个小脚本,在打开、关闭、最小化或取消最小化程序窗口时运行该脚本。
我不知道的是:
如何自动计算窗口(甚至正在运行的程序)的数量。
如何在每次打开/关闭/最小化/取消最小化窗口时运行脚本。
如能提供任何正确的建议我将不胜感激 - 非常感谢!
答案1
要查找窗口,您可以使用工具搜索类似
WID=`xdotool search "Mozilla Firefox" | head -1`
xdotool 行为看起来像是可以用于第二部分的东西,但不幸的是那里没有最大化和最小化事件 - 而且它只适用于现有窗口 - 但您可以使用 cron 不时检查打开的窗口。