Выполнять команду при обнаружении взаимодействия пользователя (например: перемещение мыши, нажатие клавиши)

Я пытаюсь сделать скрипт bash, чтобы уменьшить яркость до минимума при простоях в течение определенного времени, но возвращается к предыдущей яркости, когда обнаруживает взаимодействие пользователя, будь то с мыши или клавиатуры. Я знаю, как сделать первую часть с помощью xautolock, но не знаю, как выполнить вторую часть. благодаря

2 Solutions collect form web for “Выполнять команду при обнаружении взаимодействия пользователя (например: перемещение мыши, нажатие клавиши)”

Предположительно, вы знаете о xset dpms который обеспечивает управление питанием дисплея, и ярлык, который меняет прогрессивную подсветку, но если этого недостаточно, вы можете обнаружить движение, когда вы находитесь в режиме ожидания, используя xinput следующим образом.

Перечислите устройства ввода с помощью простого xinput и найдите идентификаторы мыши и клавиатуры, которые вы хотите прослушать. В моем случае это было 11 и 9.

 Logitech USB Optical Mouse id=11 [slave pointer (2)] HID 05f3:0007 id=9 [slave keyboard (3)] 

Затем вы можете ожидать выхода из xinput --test для каждого идентификатора:

 xinput --test 9 | read stuff & pid1=$! xinput --test 11 | read stuff & pid2=$! wait -n kill -hup $pid1 $pid2 2>/dev/null echo 'ready' 

Вы можете попробовать использовать dbus . В частности, используйте dbus-send для вызова метода org.freedesktop.ScreenSaver на org.freedesktop.ScreenSaver :

 dbus-send --session --dest=org.freedesktop.ScreenSaver --type=method_call --print-reply=literal /ScreenSaver org.freedesktop.ScreenSaver.GetSessionIdleTime 

Это напечатает 4 пробела, затем «uint32», затем количество миллисекунд с момента последнего нажатия пользователем клавиши или перемещения мыши. Вы можете извлечь номер с помощью команды cut :

 echo $result | cut -d ' ' -f 5 

Для этого требуется регулярный опрос dbus , поэтому будет задержка между вводом пользователя и ответом вашего сценария в зависимости от того, как часто вы проводите опрос.

  • Улучшение скорости выполнения сценария яркости экрана
  • GNOME распознает второй монитор, когда он подключен. Не работает ли Openbox?
  • ошибка, вызванная неопределенным символом: glXGetProcAddress
  • Открытое окно максимизируется при запуске X
  • Является ли (wayland's) libinput чем-то новым, то есть не связанным с сервером X.Org?
  • Как изменить разрешение экрана Slax?
  • почему я получаю «причина: этот сервер не требует аутентификации» в xpra
  • Установите яркость экрана: xbacklight не работает на HDMI, xrandr -brightness не прилипает
  • Как ключи или ключевые коды сопоставляются с символами X Key?
  • XRandR отображает область отображения в некоторых конфигурациях с несколькими мониторами
  • Заблокировать экран w / slock через определенное время?
  • X искажает прямоугольник вокруг моего указателя мыши
  • Linux и Unix - лучшая ОС в мире.