Зробіть свій ключ закриття клавішею відтворення / паузи
Це рішення дозволить перевстановити код сканування ключа вашого блокування на інший код у драйвері введення ядра, у цьому випадку відтворення / пауза.
Переваги
- Не потрібно змінювати існуючі системні файли (потрібно створити лише один новий файл)
- Програми не знають, що це насправді клавіша закриття, але подумають, що натиснута реальна клавіша відтворення / паузи
- Немає необхідності відключати затвор, немає можливості зіпсувати
xkb
конфігурацію
Недоліки
- Це потрібно зробити для кожної клавіатури окремо (що, залежно від ситуації, також може бути перевагою)
Передумови
- evtest (можна встановити через
sudo apt-get install evtest
)
Порядок
У терміналі запустіть sudo evtest
і виберіть клавіатуру. Якщо під час натискання клавіші немає результату, натисніть Ctrl+ Cта спробуйте інший пристрій. Запам’ятайте номер вибраної події на пристрої, він нам знадобиться згодом. Натисніть клавішу замикання. З'являться рядки, такі як:
Event: time 1529406021.187148, -------------- SYN_REPORT ------------
Event: time 1529406021.218427, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70039
Event: time 1529406021.218427, type 1 (EV_KEY), code 58 (KEY_CAPSLOCK), value 0
Нам потрібне значення з MSC_SCAN
рядка, що передує KEY_CAPSLOCK
рядку. У наведеному вище прикладі це було б 70039, але код сканування на вашій клавіатурі, ймовірно, інший.
Тепер запустіть таку команду, але замініть X на номер події пристрою, який ви використовували для evtest
команди:
grep "" /sys/class/input/eventX/device/id/*
... це буде вихід bustype
, product
, vendor
і version
клавіатури.
Створіть файл з ім'ям 65-keyboard-custom.hwdb
в /etc/udev/hwdb.d/
(потрібен дозвіл кореневого) з наступним змістом:
evdev:input:b[bustype]v[vendor]p[product]e[version]*
KEYBOARD_KEY_[scancode]=playpause
... куди
- [шина], [постачальник], [товар] та [версія] мають рівно 4 символи, а літери повинні бути великими літерами
- [сканувати код] має бути з малих літер
evdev:...
лінія не має не передує простору
KEYBOARD_KEY...
лінія має рівно одне попереднє простір
Наприклад:
evdev:input:b0003v046DpC228e0110*
KEYBOARD_KEY_70039=playpause
Нарешті, складіть нову конфігурацію до апаратної бази даних:
sudo systemd-hwdb update
Якщо ви хочете застосувати зміни негайно, повідомте udev:
sudo udevadm trigger
Якщо ви хочете відновити зміни, просто видаліть створений файл та перезавантажте.
Більш детальну інформацію ви можете знайти в моїй оригінальній відповіді на цю тему.
vlc --key-play-pause <key-string>
, але я не знайшов рядок, який VLC приймає як caplock ...