Отображение Super + hjkl клавишам со стрелками под X

Я пытаюсь отобразить:

Super+h -> Left Super+j -> Down Super+k -> Up Super+l -> Right 

Глобально под X. Идея в том, что я не хочу оставлять свою домашнюю строку, чтобы часто использовать клавиши со стрелками, поэтому я буду использовать модификатор Super + hjkl для эмуляции клавиш со стрелками под X. Есть ли способ сделать это ?

Одна вещь, которую я пробовал, это xbindkeys + xte, используя эту конфигурацию:

 "xte 'keydown Up' 'keyup Up'" Mod4+k "xte 'keydown Down' 'keyup Down'" Mod4+j "xte 'keydown Left' 'keyup Left'" Mod4+h "xte 'keydown Right' 'keyup Right'" Mod4+l 

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

Есть ли более элегантный способ сделать это, что на самом деле работает без задержки?

Capslock + HJKL для клавиш со стрелками

  1. Создайте ~ / .Xmodmap и поместите это внутри:

     clear Lock keycode 66 = ISO_Level3_Shift 
  2. Добавьте Left , Down , Up , Right в качестве третьего элемента в h, j, k, l ключевые записи в /usr/share/X11/xkb/symbols/us (первый раздел):

     key { [ h, H, Left, Left ] }; key { [ j, J, Down, Down ] }; key { [ k, K, Up, Up ] }; key { [ l, L, Right, Right ] }; 
  3. xmodmap ~/.Xmodmap

Альтернатива: Capslock as Control и Control_L + HJKL для клавиш со стрелками

Это моя текущая настройка. Я отключил Control_L в качестве управляющего ключа и использовал его как специальный модификатор (ISO_Level3_Shift), который соответствует третьей записи в файле /usr/share/X11/xkb/symbols/us для сопоставлений hjkl.

  1. Я изменил первую строфу / usr / share / X11 / xkb / symbols / us, как раньше:

     key { [ h, H, Left, Left ] }; key { [ j, J, Down, Down ] }; key { [ k, K, Up, Up ] }; key { [ l, L, Right, Right ] }; 
  2. Затем я помещал это в свой файл ~ / .Xmodmap:

     clear Control keycode 66 = Control_L add Control = Control_L add Control = Control_R keycode 37 = ISO_Level3_Shift 

Ключевой keycode 66 является капсюлем, а keycode 37 клавиш – левым элементом управления

  1. Запустить xmodmap ~ / .Xmodmap

С помощью этой настройки я могу использовать клавиши со стрелками с Control_L + hjkl, а также пропускать слова с Control_L + caps + hl. Легко!

Вышеуказанные изменения в / usr / share / X11 / xkb / symbols / us НЕ работают для меня:
Ошибка при загрузке нового описания клавиатуры

Но, просмотрев много противоречащих howtos, я придумал решение, которое отображает левый супер-ключ (левый ключ окна / Mod4) в сочетании с hjkl влево, вниз, вверх, вправо. Это общесистемная настройка.

Добавьте этот блок в конец первого раздела (непосредственно перед }; ) вашего / usr / share / X11 / xkb / symbols / us :

 //hjkl //AltGr + hjkl key <AC06> { [ h, H, Left ] }; key <AC07> { [ j, J, Down ] }; key <AC08> { [ k, K, Up ] }; key <AC09> { [ l, L, Right ] }; //Super_L -> Alt Gr key <LWIN> { [ ISO_Level3_Shift ] }; //see below! 

Первая ключевая строка отображает AltGr + h влево.
Последняя ключевая строка заставляет левый супер ключ вести себя как AltGr.
Ну вот:

Super + h -> Left
Супер + j -> Вниз
Супер + k -> Вверх
Super + l -> Right

Чтобы применить новые настройки, запустите setxkbmap или перезапустите систему.

Важно : это явно отключает супер-ключ, поэтому, если вы на самом деле используете свой супер-ключ для других целей (например, перемещение окна в другое рабочее пространство), вы не должны переназначать его так.
Чтобы использовать Caps Lock вместо Super, измените последнюю ключевую строку на:

 key <CAPS> { [ ISO_Level3_Shift ] }; 

Вот первый раздел моего конфигурационного файла:

 default partial alphanumeric_keys modifier_keys xkb_symbols "basic" { name[Group1]= "English (US)"; // Alphanumeric section key <TLDE> { [ grave, asciitilde ] }; key <AE01> { [ 1, exclam ] }; key <AE02> { [ 2, at ] }; key <AE03> { [ 3, numbersign ] }; key <AE04> { [ 4, dollar ] }; key <AE05> { [ 5, percent ] }; key <AE06> { [ 6, asciicircum ] }; key <AE07> { [ 7, ampersand ] }; key <AE08> { [ 8, asterisk ] }; key <AE09> { [ 9, parenleft ] }; key <AE10> { [ 0, parenright ] }; key <AE11> { [ minus, underscore ] }; key <AE12> { [ equal, plus ] }; key <AD01> { [ q, Q ] }; key <AD02> { [ w, W ] }; key <AD03> { [ e, E ] }; key <AD04> { [ r, R ] }; key <AD05> { [ t, T ] }; key <AD06> { [ y, Y ] }; key <AD07> { [ u, U ] }; key <AD08> { [ i, I ] }; key <AD09> { [ o, O ] }; key <AD10> { [ p, P ] }; key <AD11> { [ bracketleft, braceleft ] }; key <AD12> { [ bracketright, braceright ] }; key <AC01> { [ a, A ] }; key <AC02> { [ s, S ] }; key <AC03> { [ d, D ] }; key <AC04> { [ f, F ] }; key <AC05> { [ g, G ] }; key <AC06> { [ h, H ] }; key <AC07> { [ j, J ] }; key <AC08> { [ k, K ] }; key <AC09> { [ l, L ] }; key <AC10> { [ semicolon, colon ] }; key <AC11> { [ apostrophe, quotedbl ] }; key <AB01> { [ z, Z ] }; key <AB02> { [ x, X ] }; key <AB03> { [ c, C ] }; key <AB04> { [ v, V ] }; key <AB05> { [ b, B ] }; key <AB06> { [ n, N ] }; key <AB07> { [ m, M ] }; key <AB08> { [ comma, less ] }; key <AB09> { [ period, greater ] }; key <AB10> { [ slash, question ] }; key <BKSL> { [ backslash, bar ] }; // End alphanumeric section //hjkl //AltGr + hjkl key <AC06> { [ h, H, Left ] }; key <AC07> { [ j, J, Down ] }; key <AC08> { [ k, K, Up ] }; key <AC09> { [ l, L, Right ] }; //Super_L -> Alt Gr key <LWIN> { [ ISO_Level3_Shift ] }; }; 

Надеюсь, это поможет кому-то там …

Если у кого-то есть лучшее решение, пожалуйста, дайте мне знать.

Изменить: проверено на Fedora.

Я не пробовал это сам, но похоже, что xkb может делать то, что вы хотите http://en.wikipedia.org/wiki/X_keyboard_extension .

У меня есть пакет в Ubuntu, называемый x11-xkb-utils, который звучит многообещающе πŸ™‚

Interesting Posts

OS X Framework Library Π½Π΅ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π°: Β«Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎΒ»

Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ содСрТимоС ΠΏΠ°ΠΏΠΊΠΈ Π² Python?

Как красиво Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ»Π°Π²Π°ΡŽΡ‰ΠΈΠ΅ числа Π² String Π±Π΅Π· Π½Π΅Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ дСсятичного числа 0?

Эмулировать ключ Windows на сенсорной клавиатуре Windows 10

Π’ΠΎΡ‡ΠΊΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ частичный порядок

Escape символ ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½ΠΎΠΉ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ для использования Π² SQLite-запросС

ΠšΠ°ΠΊΠΎΠ²Ρ‹ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° API Π²Π΅Π±-поиска Google устарСл?

ВычислСниС суммы Π΄Π²ΡƒΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΌ скриптС

Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ привязки Π² JSF? Когда ΠΈ ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ?

Как настроить FTP-сервер в Windows XP без использования IIS?

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΈ Π³Π΄Π΅ \ n символы Π½ΠΎΠ²ΠΎΠΉ строки вводятся Π² c ()?

Android, ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ XML Ρ‡Π΅Ρ€Π΅Π· HTTP POST (SOAP)

IOS 6: ориСнтация устройства Π½Π° ΠΏΠ΅ΠΉΠ·Π°ΠΆ

Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ диска Π² Picasso?

Найти Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΌΠ΅Π΄ΠΈΠ°Π½Ρƒ ΠΈΠ· streamΠ° Ρ†Π΅Π»Ρ‹Ρ… чисСл

Π”Π°Π²Π°ΠΉΡ‚Π΅ Π±ΡƒΠ΄Π΅ΠΌ Π³Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°.