web-dev-qa-db-ja.com

XKB-構成が正しく機能しない

/ usr/share/X11/xkb/symbols/usに以下を追加しました:

key <AC06> {        [         h, H, Left            ]       };
key <AC07> {        [         j, J, Down            ]       };
key <AC08> {        [         k, K, Up              ]       };
key <AC09> {        [         l, L, Right           ]       };
key <AD08> { [ i, I, Home, Home          ] };
key <AB08> { [ comma, less, End, End         ] };
key <CAPS> { [ ISO_Level3_Shift ] }; 

矢印キーとホーム/エンドキーがあまりにも離れているからです。問題は、これらの変更が一部のプログラムで無視されることです。

これらはブラウザやvscodeやemacsguiなどの一部のテキストエディタでうまく機能しますが、たとえばSublime TextやKonsole(KDEターミナル)では機能しません。

修正はありますか?それが重要な場合、私はFedoraを使用しています。

2
Fritjof Larsson

私はちょうど次の解決策を一緒にハックしました。 Sublime Textで機能するだけでなく、次のテキストを選択することもできます。 shift

  1. _preserve[Shift+LevelThree] = Shift;_を_…/xdb/types/iso9995_に追加します。 askubunt の詳細。
  2. _type="THREE_LEVEL"_のエントリに_/usr/share/X11/xkb/symbols/us_とactions[Group1]= [NoAction(), NoAction(), RedirectKey(keycode=<UP>, clearmods=Lock)(最大)を追加します。

キーが少し異なる私のエントリは次のようになります。

_key <AD07> { type="THREE_LEVEL",
   symbols[Group1]= [ u,            U,         Home,        Home ],
   actions[Group1]= [      NoAction(),      NoAction(),   RedirectKey(keycode=<HOME>, clearmods=Lock) ]
};
key <AD08> { type="THREE_LEVEL",
   symbols[Group1]= [ i,            I,         Up,        Up ],
   actions[Group1]= [      NoAction(),      NoAction(),   RedirectKey(keycode=<UP>, clearmods=Lock) ]
};
key <AD09> { type="THREE_LEVEL",
   symbols[Group1]= [ o,            O,         End,        End ],
   actions[Group1]= [      NoAction(),      NoAction(),   RedirectKey(keycode=<END>, clearmods=Lock) ]
};
key <AC07> { type="THREE_LEVEL",
   symbols[Group1]= [ j,            J,         Left,      Left ],
   actions[Group1]= [      NoAction(),      NoAction(),   RedirectKey(keycode=<LEFT>, clearmods=Lock) ]
};
key <AC08> { type="THREE_LEVEL",
   symbols[Group1]= [ k,            l,         Down,      Down ],
   actions[Group1]= [      NoAction(),      NoAction(),   RedirectKey(keycode=<DOWN>, clearmods=Lock) ]
};
key <AC09> { type="THREE_LEVEL",
   symbols[Group1]= [ l,            L,         Right,      Right ],
   actions[Group1]= [      NoAction(),      NoAction(),   RedirectKey(keycode=<RGHT>, clearmods=Lock) ]
};
_

詳細については、 Archlinux Wikiのこの記事 をお読みください。

でテキストを選択したくない場合は、1。と型宣言をスキップできます。 shift

1
Zeromatiker