Ключи AltGr не работают с Ubuntu в VirtualBox

Возможно, потому что это - поверхность, экранируя внутреннее ядро от пользователя? Таким образом, ядро было бы жемчугом в оболочке.

8
20.03.2017, 12:18
1 ответ

Выполните команду xev. В xev окне нажмите клавишу AltGr. Вы будете видеть что-то как

KeyPress event, serial 29, synthetic NO, window 0x6400001,
    root 0x105, subw 0x0, time 966635535, (243,-207), root:(1891,26),
    state 0x0, keycode 66 (keysym 0xff7e, Mode_switch), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

Отметьте код клавиши; так как ключ не делает то, что Вы хотите, Вы будете видеть что-то еще (возможно Alt_R) вместо Mode_switch. Вы хотите присвоить этот код клавиши Mode_switch, который является именем X11 AltGr. Поместите следующую команду в названный файл .Xmodmap (отметьте капитал X) в Вашем корневом каталоге:

keycode 66 = Mode_switch

Кроме того, Вы, возможно, должны присвоить модификатор Mode_switch, но если все, это происходит, будет несоответствием кода клавиши то уже будет тот. Посмотрите Установленный ключ для испанской буквы eñe для получения дополнительной информации.

Выполненный xmodmap ~/.Xmodmap протестировать Ваш файл. Во многих системах, включая Ubuntu 10.04, этот файл загружается автоматически в среде Gnome по умолчанию. На других дистрибутивах или средах, Вы, возможно, должны указать явно, что Вы хотите работать xmodmap ~/.Xmodmap когда Вы входите в систему.

5
27.01.2020, 20:13
  • 1
    Это - интересный ответ, с помощью кода клавиши 66. В моем комментарии перед регистрацией этого ответа я отметил, что код клавиши 113, который я просто скопировал и вставил от сети, работ для той строки. Теперь, когда я работаю xevкак Вы предполагаете, это сообщает о коде клавиши 108. Все же строка я скопировал с сетевых работ. Таким образом, это, по-видимому, не имеет никакого отношения к коду клавиши. Я изменил его на 66, только для забавы, и перезагрузил: это все еще работает. Таким образом, я прихожу к заключению, что это не что-то технически точное вообще, но очевидно Heisenbug в Ubuntu. –  Alf P. Steinbach 13.11.2011, 01:31
  • 2
    @AlfP.Steinbach код клавиши определяется Вашими аппаратными средствами (или аппаратный эмулятор в VM) и Вашим ядром и версией X-сервера. На клавиатурах компьютера правильная клавиша Alt имеет код клавиши 113 на более старых дистрибутивах Linux, и 108 на более новых (мой пример с 66 - то, потому что у меня есть AltGr на клавише Caps Lock). Только что я спросил, как автоматически определить, есть ли у меня “старая” или “новая” система относительно присвоений кода клавиши. –  Gilles 'SO- stop being evil' 13.11.2011, 01:34
  • 3
    Ну, это все еще работает после переименования того файла и перезагрузки. И терминал все еще помнит старую историю команд после перезагрузки. С глупыми персистентными динамическими состояниями как этот я думаю, что должно быть довольно трудно выследить ошибки: они не могут быть надежно воспроизведены в такой вмешивающейся среде. Я думаю новые доказательства того, именно так ошибка о AltGr пошла йо-йо: закрытый столь же разрешенный, вновь открытый, закрытый, как разрешено, вновь открытый, так вперед и вперед. Таким образом, я думаю, что это был бы Good Idea(TM) для серьезного наказания человека, который представил ту персистентность настроек и состояния. :-) –  Alf P. Steinbach 13.11.2011, 01:48

Теги

Похожие вопросы