カスタム setxkbmap オプションの追加

カスタム setxkbmap オプションの追加

setxkbmapを使用して左Shiftと左Controlを置き換えるxkbcompといくつかの修飾キーを交換する方法を説明します。しかし、完全なレイアウト定義でxkbcompを使用する代わりに、カスタムsetxkbmapオプションを追加したいと思います。同様にsetxkbmap -option local:swap_lwin_lctrl、/usr/share/X11/xkb(パッケージがアップグレードされると上書きされます)の既存のファイルを変更せずに右のwinと右のコントロールを変更したいと思います。

ベストアンサー1

私も同じ問題があります。ドキュメントでは、正しい構文は次のように推測できます。

$ setxkbmap -I$HOME/.config/xkb -option mine:accent

注:~この-Iオプションでは使用できません。

そして

~/.config/xkb/symbols/azerty_altgr

partial default
xkb_symbols "accent" {
    include "level3(ralt_switch)"
    key <AE02>  { [  NoSymbol, NoSymbol, eacute,      NoSymbol ] };
    key <AE07>  { [  NoSymbol, NoSymbol, egrave,      NoSymbol ] };
    key <AE09>  { [  NoSymbol, NoSymbol, asciicircum, NoSymbol ] };
    key <AE10>  { [  NoSymbol, NoSymbol, agrave,      NoSymbol ] };
};

またはあなたが持っているどんなシンボルファイルでも

~/.config/xkb/rules/evdev

! option        =   symbols
  mine:accent   =   +azerty_altgr(accent)

残念ながら動作しません。


私が見つけた唯一の解決策は次のとおりです。上記と同じファイルを使用してください。すべてのデフォルトオプション設定を使用してくださいsetxkbmap -option caps:swapescape,whatever。それから:

$ setxkbmap -print > tempfile.txt

tempfile.txt行にカスタムオプションを追加するように編集しますxkb_symbols

xkb_keymap {
    xkb_keycodes  { include "evdev+aliases(qwerty)" };
    xkb_types     { include "complete"  };
    xkb_compat    { include "complete"  };
    xkb_symbols   { include "pc+us+fr:2+inet(evdev)+capslock(swapescape)+azerty_altgr(accent)"  };
    xkb_geometry  { include "pc(pc104)" };
};

ついに:

xkbcomp -I$HOME/.config/xkb tempfile.txt $DISPLAY

これはさまざまなオプションで一般化できます。このソリューションは、次のように廃止されました。アーチLinuxウィキ

おすすめ記事