На моем thinkpad x220 около кнопок со стрелками есть кнопки для навигации вперед-назад. Вероятно, предполагается использовать их в браузере. Но куда удобнее использовать их как PgUp и PgDown. В ubuntu 12.04 для этих целей у меня лежал в домашнем каталоге файлик .Xmodmap такого содержания:
keycode 167 = Next keycode 166 = Prior
Файл этот автоматически подхватывался при логине и всё работало именно так, как мне было надо. Но после обновления до 14.04 оказалось, что файл этот игнорируется, а если загрузить его руками (xmodmap ~/.Xmodmap), то его эффект сохраняется до первого переключения языка. Сменил раскладку – снова запускай xmodmap. Как оказалось, такая картина уже как минимум с 13.10 и теперь надо править файл с раскладкой. Ну, надо, так надо.
Смотрим текущее стостояние дел:
$ setxkbmap -print xkb_keymap { xkb_keycodes { include "evdev+aliases(qwerty)" }; xkb_types { include "complete" }; xkb_compat { include "complete" }; xkb_symbols { include "pc+ru+us:2+inet(evdev)" }; xkb_geometry { include "pc(pc105)" }; };
Интересует строка xkb_symbols. В ней перечислены используемые в текущей раскладке файлы, в которых хранится соответствие кода нажимаемой клавиши её названию. Это файлы pc, ru, us и inet. Лежат они в каталоге /usr/share/X11/xkb/symbols/.
Посмотрим, где там собака порылась:
$ cd /usr/share/X11/xkb/symbols/ $ grep '167\|166' pc ru us inet inet: key <I166> { [ XF86Back ] }; inet: key <I167> { [ XF86Forward ] };
Ну вот. Действие по кодам 166 и 167 определяется в файле /usr/share/X11/xkb/symbols/inet. И поправить его надо так:
key <I166> { [ Prior ] }; key <I167> { [ Next ] };
Файл можно поправить прямо там, где он лежит, не забыть очистить кеш (удалив все xkm-файлы из /var/lib/xkb/) и перезапустить иксы.
При следующем обновлении пакета xkb-data изменения затрутся и процедуру придется повторять еще раз. Казалось бы, достаточно исправленный файл положить в /etc/X11/xkb/symbols/, файл из этого каталога будет иметь приоритет над одноименным файлом из /usr/share/X11 и не будет перезаписваться при обновлении. Хрен там. Похоже, что каталог /etc/X11/xkb вообще никак не используется.