Danesteti |
|
Темы:
1
Сообщения:
1
Участник с: 18 октября 2020
|
На самом деле, в заголовке я суть описал не очень верно, более точно опишу здесь. Линукс видит и понимает только некоторые мультимедийные клавиши. Основные проблемы связаны с клавишами для повышения/понижения яркости. В xev их не видно совсем, в остальных грабберах клавиш (или как называются эти утилиты) тоже. Видно разве что, в dmesg, НО обе клавиши отображаются как один keycode. e02b если не ошибаюсь. acpi_listen их, кстати, тоже не видит. И evtest. Ладно бы только эти две клавиши, с этим ещё можно как-то справиться, но есть и другая проблема. В acpi_listen закрытие крышки ноутбука (не знаю, как ещё это по русски обозвать) детектится как button/wlan. Через systemd из-за этого никак не настроить действие при lid switch. Каким способом это можно исправить? Ноутбук - HP Laptop 15-dw1035ur |
vasek |
|
Темы:
47
Сообщения:
11741
Участник с: 17 февраля 2013
|
DanestetiЕсли хочешь, чтобы кто то что то подсказал, нужна информация, а ее нет ... Для начала - какие клавиши выполняют управление подсветкой??? - вывод команд при нажатии соответствующих клавиш управления подсветкой (в выводе оставь только нужные строки, относящиеся к нажатию нужных клавиш) - xev | awk -F'[ )]+' '/^KeyPress/ { a[NR+2] } NR in a { printf "%-3s %s\n", $5, $8 }' - sudo evtest /dev/input/eventN ... где вместо N поставь номер, соответсвующий клавиатуре PS - перед запуском команд запусти journalctl -f в отдельном терминале, чтобы потом посмотреть наличие ошибок, если они будут В части - acpi_listen рекомендую вообще не использовать, все можно сделать без него - keycode. e02b - во первых это не keycode, а похоже scancode, а во вторых на ноутах HP такой сканкод раньше не использовался для управления подсветкой ... а потому рекомендую зайти в текстовую консоль (Ctrl+Alt+FN) и запустить showkey -s и showkey -k чтобы узнать коды нужных клавиш. EDIT 1 - клавиатура надеюсь родная, встроенная .... а не какая-нибудь внешняя USB
Ошибки не исчезают с опытом - они просто умнеют
|
vasek |
|
Темы:
47
Сообщения:
11741
Участник с: 17 февраля 2013
|
Хотя, если есть желание, можно обойтись без всяких вспомогательных утилит и проанализировать raw date нужных комбинаций клавиш … и самому распарсить вывод Для этого пишем в терминале (любом) команду sudo od -tx1 /dev/input/eventN … вместо N пишем свое значение - жмем Enter … и больше ничего не трогаем, просто смотрим что нам вывелось на монитор, возможны 2 варианта 1 - ничего не вывелось после запуска команды - это самое лучшее - и просто вводим нужную комбинацию клавиш …. и далее вообще не трогаем клавиатуру, а пользуемся только мышкой и выделяем полученные байты и копируем/сохранеяем. После чего завершаем действие команды комбинацией Ctrl+D …. лучше, чтобы не запутаться в байтах, новую комбинацию начинать по новой. 2 - будет выведено несколько строк, запоминаем номер последней строки … и действуем, как в п.1, но только НЕ выделяем для копирования строки, которые были выведены до нажатия комбинации … вообщем строки, которые запомнили. Все ... эти сохраненные байты распарсим и узнаем и сканкод и кейкод примененной комбинации клавиш (при желании узнаем даже и дату нажатия и время нажатия) Как пример, после запуска команды sudo od -tx1 /dev/input/event3 видим следующие 4 строки далее нажимаем комбинацию Fn+F2 и появятся следующие строки, которые и копируем/сохраняем Находим последовательность из 6 байт типа 00 04 00 04 00 XX, где XX зависит от комбинации клавиш и определяет сканкод этой комбинации, эта последовательность прописана дважды - в моем случае это комбинация 00 04 00 04 00 92 и сканкод равен 92Далее находим 2-е последовательности (одна нажатие, другая отжатие) из 6 байт типа 00 01 00 YY 00 01 и 00 01 00 YY 00 00, где YY зависит от комбинации клавиш и определяет кейкод этой комбинации - в моем случае YY = e0 или в 10-ой системе 224 - это и есть кейкод.
Ошибки не исчезают с опытом - они просто умнеют
|
vasek |
|
Темы:
47
Сообщения:
11741
Участник с: 17 февраля 2013
|
Danesteti, а вообще рекомендую использовать для проблемных мультимедийных комбинаций xbindkeys - это намного проще ... Чтобы решить проблему мультимедийных клавиш нужно много знать, да и то не всегда получается. У меня, например, все мультимедийные клавиши определяются, прописаны, НО не работают ... делал много подходов, применял много разных способов ... и даже уже не для работы, а просто ради интереса, но так и не смог решить эту проблему. А вот используя xbindkeys проблема решается быстро ... но при использовании tiling WM не нужен и xbindkeys - все решается встроенным функционалом.
Ошибки не исчезают с опытом - они просто умнеют
|