как справиться с нежелательным выходом из команды и ее выходом в сценарии bash

Я сделал один скрипт 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
1
задан 26 December 2015 в 00:26

0 ответов

Другие вопросы по тегам:

Похожие вопросы: