[SOLVED] Пара проблем с клавиатурой

Привет. Назрела пара вопросов. Не особо критичных, но неприятных.
Условия обеих задач - ноутбук Lenovo ThinkPad Edge E530, арч со всеми свежими пакетами. Клавиатура выглядит вот так

#1
На клавиатуре имеются дополнительные кнопки (верхний правый угол) в количестве 4х штук. 3 из них (по крайней мере в иксах) определяются нормально, а 4 (со значком блокировки) определяется, как Win-key. Вывод xev'a абсолютно идентичен для обеих кнопок:
KeyRelease event, serial 40, synthetic NO, window 0x6600001,
    root 0xc1, subw 0x0, time 53769234, (289,392), root:(548,547),
    state 0x50, keycode 133 (keysym 0x1008ff41, XF86Launch1), same_screen YES,
    XLookupString gives 0 bytes:
    XFilterEvent returns: False
(в иксах стоит переопределение win-key, чтобы она не использовалась как модификатор в кедах, однако, была попытка удалить этот скрипт и ничего не изменилось). Задача - правильно задать клавиши на клавиатуре. В вики есть статья, похожая на решение, однако, если честно, я не понял, откуда взять модификатор клавиши (который в примере 0x71). В принципе решение на уровне исков также приветствуется.
Доп.информация: используется слегка модифицированная раскладка, основанная на ru.map.gz (заменено переключение на капслок). Что еще приложить для описания проблемы - не знаю). В кедах используется в настройках 101 клавишная клавиатура. Попытка сменить на что то другое (в т.ч. и клавиатуры IBM) результата не дало.

#2
В новых Леново довольно криво расположены функциональные клавиши (по умолчанию, клавиши Fx воспринимаются через Fn). Однако, в биосе это можно исправить. Обнаружена следующая проблема - через некоторое время работы, настройки сбрасываются. Было замечено как в кедах, так и авесаме. Поймать момент сброса настроек мне не удалось - такое ощущение, что абсолютно рандомно сбиваются - но точно могу сказать, что не из за выключения блокировки экрана и включения/выключения numlock'a. Бывает просто сидишь работаешь, а тут бац. Или оставил комп на ночь включенным, проснулся и на тебе. Кстати, при выходе из сна, наблюдалась похожая проблема.
Задача - исправить этот неприятный баг. Вероятно, как я понимаю, через запись в файлы /proc, при внезапном сбросе настроек, но куда конкретно - я затрудняюсь ответить.
PGP 0x31361F01
arcanisrepo
#1
Узнать скан-код клавиши и назначить действие на нажатие для себя решал через xbindkeys -k.

#2
Сбрасывающиеся настройки биоса - проблема биоса. Или батарейки. Обновитесь до последней версии.

I'm not sure if this fixes the problem but I noticed that pushing Fn key two times it swaps the legacy mode on/off.
forums.lenovo.com
спасибо
с xbindkeys попробую поиграться
gluk
#2
Сбрасывающиеся настройки биоса - проблема биоса. Или батарейки. Обновитесь до последней версии.

I'm not sure if this fixes the problem but I noticed that pushing Fn key two times it swaps the legacy mode on/off.
forums.lenovo.com
как то эту тему я не нашел, видимо не так искал. Обновил биос, посмотрим, что там получится. Проблема батарейки - это вряд ли, т.к. питание обычно идет от шнура (хотя батарейка вставлена).
PGP 0x31361F01
arcanisrepo
пук в лужу: странно, но если код одинаковый как xbindkeys справится? т.е. тоже хотел предложить, но смутил тот факт, что код может быть одинаковый.
Лозунг у них был такой: "Познание бесконечности требует бесконечного времени". С этим я не спорил, но они делали из этого неожиданный вывод: "А потому работай не работай — все едино". И в интересах неувеличения энтропии Вселенной они не работали. (с)
sleepycat
пук в лужу: странно, но если код одинаковый как xbindkeys справится? т.е. тоже хотел предложить, но смутил тот факт, что код может быть одинаковый.
вывод отличается немного. Правда, сходу прикрутить конфиг у меня не получилось)
# win-key
[[email protected] step3_grompp]$ xbindkeys -k                                                        19:13, 13-01-22
Press combination of keys or/and click under the window.
You can use one of the two lines after "NoCommand"
in $HOME/.xbindkeysrc to bind a key.
"(Scheme function)"
    m:0x50 + c:133
    Mod2+Mod4 + XF86Launch1
# доп.клавиша
[[email protected] step3_grompp]$ xbindkeys -k                                                        20:14, 13-01-22
Press combination of keys or/and click under the window.
You can use one of the two lines after "NoCommand"
in $HOME/.xbindkeysrc to bind a key.
"(Scheme function)"
    m:0x50 + c:46
    Mod2+Mod4 + l
Конфиг был примерно такой:
"xvkbd  -text "\[Control]\[Alt]\L""
    m:0x50 + c:46
    Mod2+Mod4 + l
Впрочем. пробовал и просто забить "\[F10]" (эт точно должно работать)
Кстати, попробовал тут воспользоваться утилитой getscancodes. Результаты удивили:
[[email protected] /root]# getscancodes /dev/input/event0                                                20:17, 13-01-22
Input driver version is 1.0.1
Input device ID: bus 0x11 vendor 0x1 product 0x1 version 0xab41
Input device name: "AT Translated Set 2 keyboard"
28 (0x1c)            # отпустил ентер
219 (0xdb)         # нажал win-key
219 (0xdb)          # отпустил
219 (0xdb)         # нажал доп.клавишу
38 (0x26)
38 (0x26)
219 (0xdb)         # отпустил
т.е. доп.клавиша согласно этому выводу имеет 2 сканкода, да. Один соответствует win-key, второй - какой то левый.
PGP 0x31361F01
arcanisrepo
Да numlock небось нажат
ivand
Да numlock небось нажат
намлок - это 69 согласно той же утилите. К тому же, щас попробовал потыкать на него и на доп клавишу - результат не изменился)
PGP 0x31361F01
arcanisrepo
блин жалко конфиг не остался, я раньше юзал его. Сейчас все запилил(слава богу) силами вм. Но помнится я биндил клаву какимто одним способом, т.е. или
m:0x50 + c:46
или
Mod2+Mod4 + XF86Launch1
в зависимости от странности последнего. Попробуйте так и не забывайте передергивать прогу после внесения изменений.
зы
также(не знаю что там за прога) если выводите сообщения, то сделайте сначала просто текст типа 234 мама мыла раму)) , на случай путаницы в экранировании символов.
Лозунг у них был такой: "Познание бесконечности требует бесконечного времени". С этим я не спорил, но они делали из этого неожиданный вывод: "А потому работай не работай — все едино". И в интересах неувеличения энтропии Вселенной они не работали. (с)
sleepycat
блин жалко конфиг не остался, я раньше юзал его. Сейчас все запили(слава богу) силами вм. Но помнится я биндил клаву какимто одним спсобом, т.е. или
m:0x50 + c:46
или
Mod2+Mod4 + XF86Launch1
в зависимости от странности последнего. Попробуйте так и не забывайте передергивать прогу после внесения изменений.
ну я прыгал от биндинга кнопок мыши (ранее, когда активно пользовался мышью, было офигенно удобно прыгать по столам нажатием одной кнопки). Правда, там было только m... Спасибо за совет, вот прям щас попробую поиграться.
PGP 0x31361F01
arcanisrepo
Че т нифига не получается с обоими вариантами. Тестилось на назначение нажатия, как F8, которая по в окне браузера должна выделять адресную строку (т.е. ошибок в назначении явно быть не должно - ибо работало ранее, как писал выше). Пытаюсь разобраться с назначением клавиш в иксах. И мне вот что интересно - на этой клавиатуре появились кнопки XF86Search и XF86Calculator (согласно xev), причем, листая хидер-файл keysym.h, я в упор не вижу ничего похожего (хотя кнопка Find вроде есть, но у нее не совпадает ни один из предложенных кодов, да и выглядит она как XK_Find). Вопрос - откуда они берутся, кто их назначает?)
Кстати, появилась прикольная идея, почему это так (в смысле, win-key и screen-lock воспринимаются одинаково). Если я не ошибаюсь, в винде, сочетание Win+L выполняет блокировку экрана. А тут как раз что то похожее на выдачи xbindkeys -k наблюдается.

Относительно второго вопроса, кстати, попробовал скопировать (еще ранее) директорию /sys/devices/platform/thinkpad_acpi/, в которой лежали файлики с подозрительными названиями hotkey. И путем пропускания всех файлов через diffuse выяснил, что там целая папка меняется. Было ./input/input9/event9, становится ./input/input7/event7. Согласно небольшой справке, которую выплевывает тот же самый getscancodes:
[[email protected] /root]# getscancodes /dev/input/event7                                                 2:57, 13-01-23
Input driver version is 1.0.1
Input device ID: bus 0x19 vendor 0x17aa product 0x5054 version 0x4101
Input device name: "ThinkPad Extra Buttons"
[[email protected] /root]# getscancodes /dev/input/event9                                                 2:57, 13-01-23
Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x5ca product 0x1823 version 0x8
Input device name: "Integrated Camera"
Камера, конечно, радует, но event7 - явно что то похожее на доп.клавиши. Правда при попытках потыкать на какие нибудь (в т.ч. и те 4 несчастные доп.кнопки) и получить что либо на выходе ни к каким результатам не привели
PGP 0x31361F01
arcanisrepo
 
Зарегистрироваться или войдите чтобы оставить сообщение.