Как я могу сопоставить Super + UpArrow с PageUp?

12

Я хотел бы на карту

  • Super+ UpArrowкPageUp

  • Super+ DownArrowкPageDown

  • Super+ LeftкHome

  • Super+ RightкEnd

на алюминиевой беспроводной клавиатуре Apple. Те, кто знает клавиатуру, заметят, что она уже делает это с Fnклавишей по умолчанию; это хорошо, и я хотел бы оставить это, но я смогу сделать то же самое с комбинацией клавиш одной рукой, поэтому я хочу Superсопоставления.

Я искал возможный способ сделать это через xmodmap в течение 3 часов, но пока ничего не получалось.

guest442
источник

Ответы:

5

попробуйте отредактировать определение клавиатуры / usr / share / X11 / xkb / symbols / pc

(это изменит ваши привязки глобально, если вы хотите что-то более тонко настроенное, нужно проделать еще какую-то работу, такую ​​как создание пользовательской раскладки клавиатуры или пользовательского варианта)

как вы можете видеть здесь:

ключ {[Prior]};
ключ {[Next]};

Как видите, ключ PGUP связан с «Prior». Пока:

 ключ {[Left]};
 клавиша {[Вниз]};

Клавиши «Влево» и «Вниз» привязаны к «Влево» и «Вниз».

Часть в скобках [ ]представляет собой список символов, которые будут сгенерированы. Вы можете поставить более одного. Первый - это символ, связанный с неизмененным ключом, тогда как другие позиции - для символов, связанных с ключом + некоторый модификатор.

Обычно он используется для определения поведения клавиши плюс модификатор «SHIFT»:

  ключ {[l, L]};
  ключ {[точка с запятой, двоеточие]};

Но также могут быть указаны другие модификаторы, например, на карте эсперанто (epo):

  ключ {[jcircumflex, Jcircumflex, кронштейн, кронштейн]};
  ключ {[hcircumflex, Hcircumflex, скобка, скобка]};

Вы можете ввести символ [, набрав AltGr + key (клавиша [на клавиатуре us) и {Shift + AltGr + key.

Все идет нормально. Последовательность, которую мы можем понять из нескольких простых примеров:

plain shift altgr shift+altgr


Однако мы хотим иметь возможность привязать нашу левую и правую клавиши к модификаторам plain и CTRL + ALT. Как этого добиться?

Я понятия не имею и никогда не пытался, но я бы черпал вдохновение из / usr / share / X11 / xkb / symbols / pc:

xkb_symbols "function" {
    ключ {
        тип = "CTRL + ALT",
        символы [Group1] = [F1, XF86_Switch_VT_1]
    };

Возможно, мы можем сделать то же самое для наших клавиш со стрелками. Попробуем добавить следующие строки:

 ключ {type = "CTRL + ALT", символы [Group1] = [Left, Prior]};
 key {type = "CTRL + ALT", символы [Group1] = [Down, Next]};

Чуть ниже первоначальных определений LEFT и DOWN, в нижней части файла 'pc'.

А затем перезапустите X-сервер. Извините, но сейчас я не могу закрыть сеанс, чтобы проверить его.

Кстати, вас может заинтересовать http://code.google.com/p/partiwm/wiki/xpra , чтобы вы могли перезапустить сеанс X и сохранить некоторые приложения при перезапуске.

Ифкуиль
источник
К сожалению, это тоже не работает. Я изменил ваш "CTRL + ALT" на SUPER_R, SUPER, META, так как я хочу сопоставить правильный Супер ключ, а не CTRL + ALT (который также не работает). Я также попытался добавить идентификаторы после «ключевой» части (например, <PGUP>), которая, по моему мнению, отсутствовала, но без разницы.
guest442
4

Я пробовал что-то подобное, используя xmodmap и его родственников, но мне это не удалось. Попробуйте xbindkeysв сочетании с xdotool. Это то, что я вставил, ~/.xbindkeysrcчтобы связать цифровую клавиатуру 1 и 2 с Ctrl- PageUpи Ctrl- PageDown:

"xdotool key ctrl+Prior" 
  Release + KP_End

"xdotool key ctrl+Next" 
  Release + KP_Down
loevborg
источник
Благодарность; Я пробовал то же самое, но, похоже, это не работает. Super + Down, кажется, испускает символ «~» каждые несколько нажатий в терминале (обычный PageDown тоже делает это, поэтому я подумал, что это работает), но на самом деле он не выполняет PageDown.
guest442
Я также пробовал xautomation и xvkbd; они оба терпят неудачу одинаково. Я уверен, что часть xbindkeys работает, так как я могу получить комбинации клавиш для запуска других приложений и так далее, но нажатия клавиш просто не эмулируются.
guest442