LINUX.ORG.RU

Отключить неиспользуемые клавиши

 ,


0

1

Имеется клавиатура logitech g105

На клавиатуре есть клавиши G1, G2 и т.д. (видно по ссылке).

Вопрос: Как отключить эти клавиши, т.к. вместо ctrl, я случайно жму эти G клавиши, очень раздражает ))

И чо происходит, когда ты на них жмешь? Что они делают? Что выдает xev при их нажатии? Повеcь на них Ctrl. Если промахнешься, то все равно будет Ctrl.

Zubok ★★★★★
()
Последнее исправление: Zubok (всего исправлений: 2)
Ответ на: комментарий от Zubok

На Linux это практически дубляж кнопок F1, F2 и т.д.

И так пробовал: http://www.linuxscrew.com/2008/09/15/faq-how-to-disableremap-a-keyboard-key-i...

ничего не выходит.

lexxus-lex ★★★
() автор топика
Последнее исправление: lexxus-lex (всего исправлений: 1)
Ответ на: комментарий от lexxus-lex

Замени им keysym через xmodmap. Смотришь, какой у них keycode по xev или xinput --test <номер девайса клавиатуры (получить можно xinput --list)>. Обзовем коды, которые ты получил (так как я их не знаю): 100, 200 (это пример!):

Проверяем:

$ xmodmap -e "keycode 100 = Control_L"
$ xmodmap -e "keycode 200 = Control_L"
Zubok ★★★★★
()
Последнее исправление: Zubok (всего исправлений: 2)
Ответ на: комментарий от lexxus-lex

И так пробовал: http://www.linuxscrew.com/2008/09/15/faq-how-to-disableremap-a-keyboard-key-i...

Упс, пока писал свой пост, то добавилось у тебя. Проверь, присвоилось ли значение keysym к keycode при помощи xev. Он пишет, какой символ посылается. Да, и перезапусти программы, в которых тестируешь.

Zubok ★★★★★
()
Ответ на: комментарий от lexxus-lex

оке, спасибо, буду пробовать.

Ну вот я у себя подобные кнопки сейчас затер для теста. Вроде все затерлось.

Вот есть кнопка, которая шлет XF86Reload.

$ xev
KeyRelease event, serial 38, synthetic NO, window 0x1600001,
    root 0x194, subw 0x0, time 24192637, (351,447), root:(499,612),
    state 0x0, keycode 181 (keysym 0x1008ff73, XF86Reload), same_screen YES,
                                               ^^^^^^^^^^
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

$ xmodmap -pke
...
keycode 181 = XF86Reload NoSymbol XF86Reload
...

Трем:

$ xmodmap -e "keycode 181 ="
$ xmodmap -pke
...
keycode 181 = 
...

Проверяем

$ xev

KeyRelease event, serial 38, synthetic NO, window 0x1600001,
    root 0x194, subw 0x0, time 24386972, (71,90), root:(237,273),
    state 0x0, keycode 181 (keysym 0x0, NoSymbol), same_screen YES,
                                        ^^^^^^^^
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

Zubok ★★★★★
()

У меня была клава с кнопками pwr/sleep/непомню рядом со стрелками. Я эти %^$%&$#&$# кнопки отверткой отключил. Снизу поддеваешь и все.

handbrake ★★★
()
Ответ на: комментарий от Zubok

сделал, но оно не работает.
в xev То оно пишет False, а в играх (в Steam) - работает, как будто ничего и не отключали.

lexxus-lex ★★★
() автор топика
Ответ на: комментарий от lexxus-lex

Так не False должно писать, а то, что я подчеркнул в выводе выше. То есть NoSymbol. Что пишет до? что пишет после?

Zubok ★★★★★
()
Последнее исправление: Zubok (всего исправлений: 2)
Ответ на: комментарий от lexxus-lex

а в играх (в Steam) - работает, как будто ничего и не отключали.

Сорри, я не в курсе Steam, не специалист, но скажи, а Steam *отдельный* X-сервер запускает или работает в уже запущенном? Если запускает свой, то надо операцию по отключению кнопки там провести, потому что xmodmap работает per-display. У него даже опция есть:

-display display
               This option specifies the host and display to use.

Если у Steam сервер на дисплее :1, то надо запустить xmodmap в сессии нового сервера или в старом сервере указать -display.

Zubok ★★★★★
()
Ответ на: комментарий от Zubok
KeyPress event, serial 37, synthetic NO, window 0x6400001,
    root 0x2a2, subw 0x0, time 5660438, (-640,465), root:(652,496),
    state 0x0, keycode 67 (keysym 0x0, NoSymbol), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 40, synthetic NO, window 0x6400001,
    root 0x2a2, subw 0x0, time 5660494, (-640,465), root:(652,496),
    state 0x0, keycode 67 (keysym 0x0, NoSymbol), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

Вот, NoSymbol, я ж говорю, в системе работает.
Буду сейчас разбираться со STEAM значит. новый X сервер он не запускает.

У меня даже в домашнем каталоге такое:

~$ cat .Xmodmap 
keycode 72 = NoSymbol
keycode 71 = NoSymbol
keycode 70 = NoSymbol
keycode 69 = NoSymbol
keycode 68 = NoSymbol
keycode 67 = NoSymbol
lexxus-lex ★★★
() автор топика
Последнее исправление: lexxus-lex (всего исправлений: 3)
Ответ на: комментарий от Zubok

Блин, оказывается, это фича STEAM.

Придётся применить отвертку...

Проблема «решена».

Спасибо :)

http://steamcommunity.com/app/221410/discussions/2/846939071147868490/
http://steamcommunity.com/app/221410/discussions/2/648814845341609444/?l=russian
https://github.com/ValveSoftware/Dota-2/issues/1290

lexxus-lex ★★★
() автор топика
Последнее исправление: lexxus-lex (всего исправлений: 2)
Ответ на: комментарий от lexxus-lex

По ссылкам я вижу лишь сообщения о проблеме, но не решение. А в чем решение?

новый X сервер он не запускает.

Ага, понял. Я нашел то обсуждение, в котором я это видел. Просто человек хотел запускать игры на другом мониторе и ему нужно было второй сервер запустить под игру. А я грешным делом подумал, что Steam какой-то свой сервер тащит и надо в него загружаться. Тогда, да, проблема не в display.

Zubok ★★★★★
()
Последнее исправление: Zubok (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.