Среда
Issue
Я создал свежий VirtualBox vm и установил Precise из стандартного рабочего стола ISO. В ходе установки я выбрал карту ключей «English UK (Mac International)». Кажется, что все клавиши излучают правильный символ, однако для некоторых клавиш символ не будет зарегистрирован, пока я не нажму клавишу дважды .
Например, при первом нажатии клавиши `в строке терминала не появляется символ. Однако второй раз работает.
Это также происходит для некоторых других комбинаций клавиш и смены - то есть ~ (shift + `) также затрагивается.
Дополнительная информация
xev output
Первое нажатие клавиши:
KeyPress event, serial 30, synthetic NO, window 0x4a00001,
root 0x138, subw 0x0, time 3935772, (317,33), root:(320,141),
state 0x0, keycode 94 (keysym 0xfe50, dead_grave), same_screen YES,
XLookupString gives 1 bytes: (60) "`"
XmbLookupString gives 0 bytes:
XFilterEvent returns: True
KeyRelease event, serial 33, synthetic NO, window 0x4a00001,
root 0x138, subw 0x0, time 3935884, (317,33), root:(320,141),
state 0x0, keycode 94 (keysym 0xfe50, dead_grave), same_screen YES,
XLookupString gives 1 bytes: (60) "`"
XFilterEvent returns: False
Второе нажатие клавиши:
KeyPress event, serial 33, synthetic NO, window 0x4a00001,
root 0x138, subw 0x0, time 3939630, (317,33), root:(320,141),
state 0x0, keycode 94 (keysym 0xfe50, dead_grave), same_screen YES,
XLookupString gives 1 bytes: (60) "`"
XmbLookupString gives 0 bytes:
XFilterEvent returns: True
KeyPress event, serial 33, synthetic NO, window 0x4a00001,
root 0x138, subw 0x0, time 3939630, (317,33), root:(320,141),
state 0x0, keycode 0 (keysym 0x60, grave), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 1 bytes: (60) "`"
XFilterEvent returns: False
KeyRelease event, serial 33, synthetic NO, window 0x4a00001,
root 0x138, subw 0x0, time 3939777, (317,33), root:(320,141),
state 0x0, keycode 94 (keysym 0xfe50, dead_grave), same_screen YES,
XLookupString gives 1 bytes: (60) "`"
XFilterEvent returns: False
Третье нажатие клавиши:
KeyPress event, serial 33, synthetic NO, window 0x4a00001,
root 0x138, subw 0x0, time 3956078, (317,33), root:(320,141),
state 0x0, keycode 94 (keysym 0xfe50, dead_grave), same_screen YES,
XLookupString gives 1 bytes: (60) "`"
XmbLookupString gives 0 bytes:
XFilterEvent returns: True
KeyRelease event, serial 33, synthetic NO, window 0x4a00001,
root 0x138, subw 0x0, time 3956214, (317,33), root:(320,141),
state 0x0, keycode 94 (keysym 0xfe50, dead_grave), same_screen YES,
XLookupString gives 1 bytes: (60) "`"
XFilterEvent returns: False
Дополнительное «серьезное» нажатие клавиши, похоже, генерируется только при каждом другом нажатии физической клавиши.
Кажется, что карта клавиатуры неверна для этих клавиш. Самое простое решение - сделать следующие исправления с помощью xmodmap:
$ xmodmap -e 'keycode 94 = grave asciitilde'
$ xmodmap -e 'keycode 48 = apostrophe quotedbl'
Чтобы применить эти изменения при входе в систему, вы можете создать файл с именем .Xmodmap
в вашем домашнем каталоге со следующим содержимым:
Просто добавление к ответу Джонсток. Добавьте
keycode 94 = grave asciitilde
keycode 48 = apostrophe quotedbl
в файл .Xmodmap в домашней директории и запустите
xmodmap .Xmodmap
Для меня это помогло, но каждый раз, когда я перезагружался, он возвращался к старому. Мне пришлось положить xmodmap .Xmodmap
в мой файл .bashrc, чтобы он прикрепился.