xmodmapでxkb構成を作成する

xmodmapでxkb構成を作成する

xmodmap便利な多言語発音区別記号、英語の引用符、ダッシュなどを含むカスタムファイルを使用しています。このマップを使用したいので、ここで設定を作成する必要がありますkmsconxkbこれを行う自動化された方法はありますか?それともこれを頻繁に行う必要がないので、簡単な手動プロセスを実行する必要がありますか?

答え1

独自のxkb構成ファイルを作成する

アイデアは、現在のキーボード構成を(呼び出すことなくxmodmap)「読み込み」に基づいて独自のシンボルファイルを作成することです。最初:

xkbcomp -xkb $DISPLAY

server-0_0.xkbこのファイルから次のブロックを生成します。

xkb_symbols "pc+inet(evdev)+compose(menu)+whatever(option)" {
    key <ESC> { [ Escape ] };
    ...
};

最初の行を次に変更します。

default xkb_symbols "my_symbols" {
    include "pc+inet(evdev)"
    include "compose(menu)+whatever(option)"

(私の考えでは、オプションを「含む」行数に関係なく分割できると思います)。変更したいキーを変更し、前に次を追加しますoverride

override key <AE10>  { [ 0, parenright, degree ]};

変更されていないすべてのキーを削除します。

システム全体のインストール

すべて入れてください/usr/share/X11/xkb/symbols/my_terrific_kb。これで、ユーザーはsetxkbmap my_terrific_kb(in.xinitrcまたは.xsessionrc)を使用してロードできます。たぶん、Option "XkbLayout" "my_terrific_kb"システムxorg.conf全体を変更することができます。

シングルユーザーインストール

すべて入れてください~/anywhere/my_terrific_kb。 XInput IDを使ってキーボードを見つけますxinput list。それからxkbcomp -i <XInput_id> ~/anywhere/my_terrific_kb $DISPLAY

答え2

生成されたマッピングファイルは、xkbcomp :0 custom-xkb-keymapパラメータを交換してロードできる複数のコンポーネントで構成されていますxkbcomp custom-xkb-keymap :0。ここにいくつかの警告が表示されますが、ファイルのレイアウトを変更すると機能するようです。

xkbレイアウトは、symbols例えばディレクトリに保存されます/usr/local/share/X11/xkb/symbols。パスはシステムによって異なる場合があります。レイアウトが必要な場合は、次のセクションを切り取る必要があります。

xkb_symbols "id+id+id(pc104)" {
    name[group1]="..."
    .
    .
    .
};

symbolsそしてディレクトリに保存します。そこにファイルを上書きしないでください!その場所に保存されたら(たとえば、mylayout)を入力してロードできますsetxkbmap mylayout。これはセクションの設定に対応しますxorg.conf(参照:Option "XkbLayout" "mylayout"InputDevicekbd マニュアルページ詳細は)。

出力の他の部分は、xkcomp他のディレクトリのファイルと一致するようです。したがって、機能しない場合は、コンポーネントcustom-xkb-keymapをコンポーネントに分割して以下の正しいディレクトリにコピーする必要があります/usr/local/share/X11/xkb。しかし、これは私が一度もやったことがないことだ。

より良いレイアウト

デコンパイルされたコードのように見える生のダンプを使用する代わりに、symbolsより読みやすい独自のファイルを作成することもできます。私はほとんどの人にとってはうまくいかない独自のカスタムレイアウトを持っていますが、この短いファイルを見続けることができます。私はドイツ語のキーボードでプログラムするために使用します。(ファイルの外観とファイルsymbolsで何ができるかについてのアイデアを得るために)。

答え3

私はこの問題を解決しました。xmodmap設定を適用したら、doを使用して現在のキーマップ(ディスプレイから)を名前付きファイルにxkbcomp :0 custom-xkb-keymapコピーします。xkb:0custom-xkb-keymap

答え4

このスレッドにも同様の質問があります。Xepyr:キーマップが正しく機能しません。 提供されたソリューションと同様に、キーボード設定を保存できます

setxkbmap -display :0 -print > mykeymap

このファイルはxkbcompを介して他のシステムに適用できます。

xkbcomp mykeymap :0

このコマンドは、gnomeまたは他のDEの自動起動で実行できます。すべての手動変更が引き継がれるかどうかはわかりませんが、試してみる価値があると思います。 xkbcompを使用せずに自動ロードするには、このファイルをどこに置くべきかわかりません。

関連情報