Мне было неудобно, что расположение клавиш End, Page Up и PageDown на моей клавиатуре A4Tech FS не совпадало с их расположением на ноутбуке. Решил переставить, но не нашел толковой инструкции на этот счет в интернете, решил написать тут, вдруг кому пригодится. На самом деле всё просто, доступно каждому.

В современном Linux (у меня одна из сравнительно свежих версий Ubuntu) события от устройств отображаются в конкретные клавиши с помощью systemd. Особенности разных клавиатур описаны в файле /usr/lib/udev/hwdb.d/60-keyboard.hwdb. Почитать его полезно, но редактировать не стоит. Свою особенную конфигурацию стоит написать в каком-нибудь файле в /etc, например /etc/udev/hwdb.d/70-keyboard.hwdb . Что же туда мне понадобилось вписать?
Надо узнать коды клавиш, которые мы хотим переназначить, и понять, как идентифицировать конкретную клавиатуру, если у вас их две или больше, как у меня.
Это легко сделать с помощью утилиты evtest, которая есть в вашем пакетном репозитории.

Найдите вашу клавиатуру в списке устройств и введите её номер.
evtest выдаст информацию об идентификации этого устройства (это часть того, что нужно нам для решения задачи):

Затем утилита начнет мониторить события от этого устройства, из которых вы увидите коды клавиатурных событий и соответствующих им клавиш. Выглядит это примерно так.

Понаблюдав выдачу evtest, вы узнаете, что именно писать в /etc/udev/hwdb.d/70-keyboard.hwdb
В моём случае это оказалось таким:
evdev:input:b0003v09DAp0025e0111-*
KEYBOARD_KEY_7004d=104
KEYBOARD_KEY_7004b=109
KEYBOARD_KEY_7004e=107
Здесь 0003 - признак USB-шины, 09DA, 0025 и 0111 - вендор, продукт и версия USB-устройства (см.пример выдачи evtest выше). Обратите внимание, что все строчки, кроме первой, начинаются с пробела, а шестнадцатиразрядные цифры в идентификаторе клавиатуры записаны апперкейсом.
После создания файла надо обновить систему:
sudo systemd-hwdb update
sudo udevadm trigger --sysname-match="event*"
Проверьте, можно снова с помощью evtest. Получилось?
Всё, можете браться за отвертку - выковыривать и переставлять физические кнопки.
Автор: x-wao