Google Chrome игнорирует сопоставление клавиш XmodMap
На моем ноутбуке нажата клавиша со стрелкой вниз, поэтому я использовал Xmodmap для удаления сопоставления этой клавиши с помощью следующей команды:
xmodmap.Xmodmap
Содержимое моего файла.Xmodmap - всего одна строка:
код 116 =
Все программы в Ubuntu (такие как gnome-терминал, xterm, Firefox, gedit) уважают это отображение.
Однако Google Chrome игнорирует это сопоставление, в результате чего страница постоянно прокручивается вниз или уменьшается громкость при воспроизведении полноэкранного видео.
Посмотрел на:
- https://code.google.com/p/chromium/issues/detail?id=394552
- https://superuser.com/questions/876515/chromium-is-recognising-keys-that-ive-disabled-with-xmodmap
Оба из которых не имели доступного решения.
Решение из https://github.com/dnschneid/crouton/wiki/Keyboard для отключения управления раскладкой клавиатуры с помощью:
gsettings set org.gnome.settings-daemon.plugins.keyboard active false
не подходит для меня, так как мне нужно вводить японские символы, поэтому мне нужен IME для переключения между английским и японским языками.
3 ответа
Этот ответ решил это для меня:
setxkbmap -option lv3:rwin_switch
А затем снова запустите xmodmap и перезапустите приложение.
В выпуске 394552 один из пользователей отмечает, что если вы установите в качестве ключевой карты ключ, понятный Chromium (например, буквенный ключ), он будет уважать эту карту ключей.
Следовательно, исходя из рекомендации, приведенной здесь, я установил клавишу со стрелкой вниз, чтобы сопоставить ее с клавишей F18 (которая, насколько я вижу, никогда не будет нажата:P). Итак, содержимое моего файла.Xmodmap теперь:
код 116 = F18 F18 F18
Я протестировал эту новую раскладку клавиш, и теперь, похоже, Chrome ведет себя сам, как и другие программы.
Вот как я решил ту же самую проблему, и я помещаю это здесь для любого с этой проблемой.
Я получил ответ отсюда.
Из командной строки:
sudo su
Теперь вы должны выяснить скан-код застрявшего ключа.
showkey -s
Затем нажмите клавишу, и она выдаст два кода сканирования: нажмите и отпустите. Запишите их. Или, так как ваш ключ застрял, посмотрите, какой код повторяется. Для меня клавиша "вниз" состоит из двух пар скан-кодов: 0xe0 0x50 (нажмите) и 0xe0 0xd0 (отпустите). Вы должны сократить пару скан-кодов и использовать setkeycodes, чтобы переназначить их на новый код:
setkeycodes e050 255
setkeycodes e0d0 255
Это отключит вашу клавишу со стрелкой вниз на уровне ядра, что должно предотвратить проблемы в Chrome. Очевидно, что Chrome обрабатывает ввод с клавиатуры в некоторой степени независимо от xmodmap и xkb. Это было преднамеренное изменение, чтобы приспособиться к тому, как Chrome обрабатывает ввод в ChromeOS. К счастью, отключение застрявшего ключа на уровне ядра останавливает проблему задолго до того, как она достигнет Chrome. Это сработало для меня, чтобы предотвратить зависание застрявшей клавиши на цифровой клавиатуре 9.