web-dev-qa-db-ja.com

xkbキーバインディングを恒久的に変更しますか?

/usr/share/X11/xkb/symbols/usにカスタムキーボードレイアウトがあります。更新が発生するたびに、このファイルは標準のキーボードレイアウトに更新されます。これを永続的に変更する方法、またはディストリビューションレベルの構成から離れたユーザースペースでこれを変更する方法はありますか?

カスタムキーボードレイアウトにアプローチするより良い方法がある場合は、私に知らせてください。私の知る限り、これに取り組む最善の方法はxkbシンボルファイルを使用することであり、これらについての文書はあまりありません。

ありがとう。

4
milquetoast

_/home/<user>/_と同じ構造を持つ_/usr/share/X11/xkb/_の下にディレクトリツリーを作成します。言い換えると:

_$ tree -L 1
.
├── compat
├── geometry
├── keycodes
├── rules
├── symbols
└── types
_

したがって、関連するファイルをcompatsymbolsなどに配置します。空のディレクトリを作成する必要はありません。必要なファイルのディレクトリだけを作成する必要があります。

次に、シンボルファイルの名前をusとは異なる名前に変更することを検討してください。独自のusシンボルファイルを_/usr/share/X11/xkb/_の下のファイルから明確にする方法があるかもしれませんが、_/usr/share/X11/xkb/symbols/_に表示されない新しい名前を選択する方が簡単です。 mineは問題なく動作します。

カスタムXkbディレクトリを_/home/<user>/my-xkb_に置き、カスタムシンボルファイルの名前がmineであるとします。

setxkbmap(1)を使用してレイアウトを設定する場合は、出力を出力してxkbcomp(1)にパイプするようにレイアウトを変更するだけです。したがって、これがsetxkbmapの呼び出しである場合:

_setxkbmap mine
_

これに変更する必要があります:

_setxkbmap mine -print |
    xkbcomp -I"/home/<user>/my-xkb" - "$DISPLAY"
_
2
Guildenstern