Я сделал один скрипт liner для автоматического скрытия определенного окна, когда мышь не наводится на это окно. Он получает положение мыши и геометрию окна и его положение (topleftx, toplefty), я добавил его геометрию в исходное положение окна, чтобы получить координаты (rightrightx, bottomrighty), а затем он сравнивается, если мышь находится над окном. Если мышь не находится в окне, она скрывает окно.
Он работает, но только один раз, потому что команда xprop окна, которую я использую для извлечения информации о окне в скрипте, терпит неудачу, если она не находит имя окна в стеке окна. Он выдает сообщение об ошибке, после чего выходит сообщение --help.
Мне нужно xprop, потому что это единственная команда с информацией о окне, которая дает информацию о decoration id любого окна. Поскольку основные информационные инструменты окна в Linux только печатает геометрию и положение окна без его украшения. Я хотел бы включить оформление окна для полноты.
Как я могу обмануть его в работу?
while [ 1 ]
do
string=$(xdotool getmouselocation 2>/dev/null | sed 's/x:\([0-9]\+\)[ \t]y:\([0-9]\+\)[ \t].*/\1;\2/' | 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 [[(($5 -lt $(($1+$3)))) && (($5 -gt $1))]] && [[(($6 -lt $(($2+$4)))) && (( $6 -gt $2 ))]]
then echo "mouse is on the window"
else
then echo "mouse is out of the window"
fi
done