我想使用 compiz 添加手势命令。有命令CCSM 中的插件,它允许您在鼠标移动时指定屏幕的一个角来执行命令。
我想切换在船上屏幕键盘隐藏,鼠标移至屏幕左上角时显示。
以下脚本切换在船上但必须用一行代码将其复制到 compiz 命令插件中
#!/bin/bash
wid=`xdotool search --name Keyboard|head -1`
wstate=`xwininfo -id $wid | grep "Map State:"`
if [[ "$wstate" == *IsViewable ]]
then
xdotool windowunmap $wid
else
xdotool windowmap $wid
fi
我怎样才能使它成为一行?
答案1
由于您需要使用上一个命令给出的值来运行命令,因此至少必须运行两个不同的命令。因此,首先存储值wid
,然后使用一行if
检查:
wid=$(xdotool search --name Keyboard|head -1)
[[ "$(xwininfo -id "$wid" | grep "Map State:")" == *IsViewable ]] && xdotool windowunmap $wid || xdotool windowmap $wid
这表明了以下情况if
:
if [ ... ]; then
do if true
else
do if false
fi
可以写成[ ... ] && do if true || do if false
仅一行:
wid=$(xdotool search --name Keyboard|head -1); [[ "$(xwininfo -id "$wid" | grep "Map State:")" == *IsViewable ]] && xdotool windowunmap $wid || xdotool windowmap $wid
答案2
您可以使用扩展名将代码保存在 bash 脚本中.sh
,并在文本框中提供完整路径。
还有你的一行 bash 代码:
wid="$(xdotool search --name Keyboard|head -1)"; wstate="$(xwininfo -id $wid | grep "Map State:")"; if [[ "$wstate" == *IsViewable ]];then xdotool windowunmap $wid; else xdotool windowmap $wid; fi
这里;
用于将多行 bash 代码合并到一行中。