Pull to refresh

Выключаем экран вместе с клавиатурой и мышью в Linux

Я часто оставляю компьютер включенным и занимаюсь другими делами, в процессе которых могу случайно задеть чувствительную мышь или положить что-то на край клавиатуры, и экран включается. Стоит ли упоминать вездесущую кошку, которой нравится звук клавиш? Можно заблокировать экран и настроить энергосбережение, но экран все равно будет включаться от каждого прикосновения.
Поэтому я решил реализовать отключение мыши и клавиатуры.

Так как клавиатура с мышью будут отключены, то для включения придётся задействовать оставшуюся кнопку питания. На моём моноблоке она расположена очень удобно и никак не используется.

Отключение устройств.
Для начала найдем мышь и клавиатуру в списке устройств X-сервера:
xinput --list

У меня они значатся под id 6 и 7. Для отключения следует подставить это число в следующую команду:
xinput set-int-prop 6 «Device Enabled» 8 0

Для проверки можете на 10 секунд отключить клавиатуру, используя команду sleep:
xinput set-int-prop 7 «Device Enabled» 8 0 && sleep 10 && xinput set-int-prop 7 «Device Enabled» 8 1


Настройка действий.
Linux предоставляет большой выбор рабочих сред, так что настройку «горячих» клавиш оставлю за пользователями. Упомяну лишь свою любимую DE — Xfce. Настройки сочетаний клавиш находятся в Settings => Keyboard => Application shortcut.
Выключение экрана и устройств ввода решено было установить на XF86Sleep, а включение, как уже упоминалось, на XF86PowerOff.

Итак, скрипт отключения:
#!/bin/bash
xset dpms force off && xinput set-int-prop 6 «Device Enabled» 8 0 && xinput set-int-prop 7 «Device Enabled» 8 0

И включения:
#!/bin/bash
xinput set-int-prop 6 «Device Enabled» 8 1 && xinput set-int-prop 7 «Device Enabled» 8 1

Следует сделать их исполняемыми:
chmod +x /путь/к/скрипту

Осталось скопировать путь к исполняемому скрипту и установить «горячую» клавишу.

Теперь, отходя от компьютера или ноутбука, можно не опасаться случайных нажатий, кто бы их не совершил.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.