Você pode tentar
(xprop -name "kenn" 2>/dev/null || echo "") |...
O redirecionamento stderr elimina o erro e a parte depois que ||
entra em ação se o xprop explodir.
Eu fiz um script de um forro para ocultar automaticamente uma janela específica quando o mouse não está focalizado naquela janela. Obtém a posição do mouse e a geometria da janela e sua posição (topleftx, toplefty), adicionei sua geometria à posição inicial da janela para obter coordenadas (bottomrightx, bottomrighty) e compara se o mouse está sobre a janela. Se o mouse não estiver na janela, ele oculta a janela.
Funciona, mas apenas uma vez, porque o comando xprop
window info que eu uso para extrair informações da janela no script falha se ele não encontrar o
nome da janela na pilha de janelas. Ele envia uma mensagem de erro e a mensagem --help
sai.
Eu preciso de xprop
porque é o único comando de informações da janela que fornece informações sobre decoration id
de qualquer janela. Porque as principais ferramentas de informação de janelas no Linux apenas imprimem geometria e posição de uma janela sem a sua decoração. Eu queria incluir a decoração da janela para completar.
Como posso fazer isso funcionar?
while [ 1 ]
do
string=$(xdotool getmouselocation 2>/dev/null | sed 's/x:\([0-9]\+\)[ \t]y:\([0-9]\+\)[ \t].*/;/' | tr ';' ',')
string2=$(xdotool getwindowgeometry $(xprop -name "kenn" | grep _COMPIZ_WINDOW_DECOR_INPUT_FRAME | grep -Po ' # \K.*') | grep -Po ': \K.*' |cut -d" " -f1 | tr '\n' ',' | tr 'x' ','| sed 's/-[0-9][0-9]*/0/')
A="$string2$string"
IFS=,
set $A
if [[(( -lt $((+)))) && (( -gt ))]] && [[(( -lt $((+)))) && (( -gt ))]]
then echo "mouse is on the window"
else
then echo "mouse is out of the window"
fi
done
Você pode tentar
(xprop -name "kenn" 2>/dev/null || echo "") |...
O redirecionamento stderr elimina o erro e a parte depois que ||
entra em ação se o xprop explodir.