Я хотел бы изменить раскладку (отображение) клавиатуры 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
Что мне не хватает?
