I want to add в gesture command using compiz. There is command plugin in CCSM, it lets you assign one of the screen углы on мышь move to execute в command.
I want to toggle onboard screen keyboard to hide and шоу on мышь move to topleft screen угол.
Below рукописный шрифт toggles onboard but it must be в one liner to copy it into compiz command plugin
#!/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
How хан I make it one liner?
Так как необходимо выполнить команду со значением, данным предыдущей командой, по крайней мере, необходимо выполнить две различных команды. Поэтому первое хранилище значение 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
Можно сохранить код в сценарии удара с .sh
расширение и обеспечить полный путь в текстовом поле.
И Ваша одна строка колотят код:
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
Здесь ;
используется для объединения multline кода удара строки в 1 строке.