Как разрешить ключевые функции, когда рабочий стол заблокирован

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

20
задан 17 April 2012 в 21:52

1 ответ

В некотором смысле это постыдный плагин, но поскольку, похоже, не было никакого существующего решения, и поскольку задача казалась относительно простой, я написал простой демон Python , чтобы решить эту проблему. Он использует API-интерфейс python-xlib для захвата нажатий клавиш в масштабе всей системы, а затем запускает пользовательские команды оболочки. Он предполагает базовую настройку Debian / Ubuntu, но, вероятно, будет работать на большинстве систем Linux с несколькими настройками.

В моем случае клавиши увеличения / уменьшения громкости соответствуют коду 122/123, поэтому соответствующие команды для уменьшения или увеличения громкости только при заблокированном рабочем столе :

gnome-screensaver-command -q | grep "is active" && bash -c '/usr/bin/pactl -- set-sink-volume `pacmd list-sinks | grep -P -o "(?<=\* index: )[0-9]+"` -10%'
gnome-screensaver-command -q | grep "is active" && bash -c '/usr/bin/pactl -- set-sink-volume `pacmd list-sinks | grep -P -o "(?<=\* index: )[0-9]+"` +10%'

Правда, это немного многословно. Второй шаг - найти активный звуковой интерфейс в системах, в которых их может быть несколько (например, у моего ноутбука есть интерфейс Master и Headphone, позволяющий этим командам управлять либо).

Редактировать: Это больше не работает в Ubuntu 16. Кажется, что все функции X отключаются, даже из терминала, после блокировки экрана.

0
ответ дан 17 April 2012 в 21:52

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

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