Я переназначил клавиши PageUp и PageDown, так как они были неудобно расположены прямо над левой и правой клавишами (XPS13 2018). Для этого я изменил файл с именем 'pc' в /usr/share/X11/xkb/symbols. А именно, я заменил строки
ключ { [ Предыдущий ] };
клавиша { [Далее]};
к
ключ { [NoSymbol, Prior ] };
клавиша { [NoSymbol, Next ] };
и затем перезапустил X-сервер.
При таких настройках нажатие клавиши PgUp, например, не должно ничего делать, а нажатие Shift+PgUp должно выполнять обычное действие PgUp (то же самое и с PgDown).
Кажется, это решило мою проблему: во всех приложениях, таких как терминал, текстовые редакторы и другие приложения GTK, клавиши сопоставлены с правильными действиями.
Моя единственная проблема касается Google Chrome; Shift+Pgup ничего не делает, как и PgUp (то же самое с PgDown). Похоже, эти клавиши теперь бесполезны в Chrome.
Есть ли способ переназначить клавишу (PgUp/PgDown), чтобы она не была назначена ни на что при обычном нажатии и выполняла свое обычное поведение при нажатии Shift+клавиша (или Ctrl+клавиша/Altgr+клавиша и т. д.) как для системы, так и для других приложений, таких как Chrome?
PS: Я пробовал переназначать клавиши с помощью xmodmap. Это сработало для терминала и текстовых редакторов, но не для Chrome и пары других приложений GTK; последние, похоже, игнорируют сопоставления и выполняют обычные действия для этих клавиш.
Я использую Ubuntu 17.10 на X-сервере (а не Wayland).
решение1
Я думаю, проблема в том, что клавиша shift по-прежнему является модификатором, поэтому, хотя нажатие PgUp не генерирует никакого события, нажатие Shift + PgUp генерирует событие Shift + PgUp. При такой настройке нет возможности сгенерировать простое нажатие клавиши PgUp, что, вероятно, и нужно Chrome.
Единственный способ обойти это — изменить клавишу Shift так, чтобы она не была модификатором, а вместо этого выбирала наложение. Это похоже на то, как работает AltGr, где AltGr + 4 выдает символ валюты евро на некоторых раскладках клавиш, не создавая впечатления, что одновременно нажата клавиша Alt.
Вы, вероятно, не захотите делать это с Shift (так как тогда вы потеряете другие функции, связанные с клавишей Shift), однако вы можете выбрать для нее другую клавишу. Я использовал клавишу Caps Lock на своей раскладке клавиш для переключения между группами, в моем случае, чтобы некоторые буквенные клавиши вели себя нормально, но когда я удерживаю Caps, эти буквенные клавиши превращаются в клавиши со стрелками для навигации курсора.