Я хотел бы изменить раскладку (отображение) клавиатуры Lenovo ThinkPad (которую я ненавижу), чтобы она была похожа на Acer TravelMate 8000 (которую я люблю).
Это в основном означает:
- Поменяйте местами Fn и оставьте Ctrl
- Tab-слева, чтобы действовать как PgUp
- Fn '+ Tab-слева, чтобы действовать как дома
- Tab-право вести себя как PgDown
- Fn '+ Tab-вправо действовать как конец
- PgUp действовать как Удалить
- Дом, чтобы действовать как Вставка
Я пробовал xev
чтобы увидеть коды.
Я нашел этот список символов: http://cs.gmu.edu/~sean/stuff/n800/keyboard/keysymdef.h
Это мой результат:
xmodmap -e 'keycode 112 = XF86Back' # Remap PgUp to TabPrev
xmodmap -e 'keycode 117 = XF86Forward' # Remap PgDn to Tabnext
xmodmap -e 'keycode 166 = Prior Home XF86Back' # Remap TabPrev to PgUp.
xmodmap -e 'keycode 167 = Next End XF86Forward' # Remap TabNext to PgDn.
xmodmap -e 'keycode 151 = Control_L' # Remap FN to be Ctrl.
xmodmap -e 'keycode 37 = XF86WakeUp' # Remap Ctrl to be FN.
xmodmap -e 'keycode 94 = Shift_L' # Remap stupid left |\*& to be Shift too.
Однако это не совсем то, что мне нужно, поскольку он отображает Shift + Tab * на Home, что не позволяет мне использовать комбинацию Shift
+ Home'
(для выделения текста) и работает только в некоторых приложениях (например, не работает в Firefox для перехода к Топ).
Итак, как мне это отобразить?
Обновление: я использовал setkeycodes
и нашел эти коды сканирования:
Press Release
TabLeft - 158 ^[[5~0xe0 0x6a 0xe0 0xea
TabRight - 159 ^[[6~0xe0 0x69 0xe0 0xe9
PgUp: 0xe0 0x49 0xe0 0xc9
PgDn: 0xe0 0x51 0xe0 0xd1
Ctrl: 0x1d 0x9d
FN: 0xe0 0x63 0xe0 0xe3
Обновление: я также обнаружил, что dumpkeys
показывает интересную информацию.
Например, псевдонимы строк для некоторых ключей; например, здесь определяется ^[[5~
показанный showkey -s
.
Обновление: я пробовал setkeycodes
:
sudo setkeycodes 0xE063 29 ## Fn to Ctrl
sudo setkeycodes 0x1d 143 ## Ctrl to Fn
sudo setkeycodes 0x56 42 ## |\*& to Shift
showkeys
-k показывает правильные коды клавиш, но они по-прежнему не работают - например, Ctrl+T
не открывает вкладку в FF и т. д.
После отмены изменений все работает как прежде.
sudo setkeycodes 0xE063 143 ## Fn to Ctrl
sudo setkeycodes 0x1d 29 ## Ctrl to Fn
Что мне не хватает?