キーを再マップする方法について多くの質問を見てきましたが、どういうわけか私の問題は、キーが再マップされないことです永続的に。
これが私の~/bootstrap-custom.sh
#!/bin/sh
# remaps Caps Lock to Ctrl
/usr/bin/setxkbmap -option "ctrl:nocaps"
私が追加しました source ~/boostrap-custom.sh
私のスタートアップアプリケーションに。
マッピングは正常に機能します。
しかしながら:
マッピングを永続的にする方法はありますが、同じメソッド(xkbmap)を維持しますか?
これは部分的な解決策にすぎないかもしれませんが(キーボードのプラグの抜き差しにどのように反応するかは正直わかりません)、必要なことを実行するスクリプトがすでにあるので、これで十分かもしれません。
起動時に、X11は、システムに存在する場合、いくつかの特別なプログラムを実行します。私たちの目的では、最も興味深いのはおそらく〜/。xsessionです。これは、通常の設定であるディスプレイマネージャーを介してログインした後に実行されます。最近のグラフィカル環境向けです。 (以前は、通常はシェルにログインしてから、コマンドstartx
を実行してXを起動していました。その場合は、〜/。xinitrc同じ目的で。)
これを利用して、使用しているディスプレイマネージャー(gdm、gdm3、kdm、...)やデスクトップ環境(GNOME、Xfce、KDE、...)に関係なく、実質的にコマンドを実行できます。
.xsession
という名前のファイルを作成し、ホームディレクトリに配置します。#!/bin/bash
/usr/bin/setxkbmap -option "ctrl:nocaps"
chmod 755 ~/.xsession
)これにより、ログイン時にキーボードマッピングが設定されます。また、setxkbmapが実際に機能するのに十分な遅延で実行する必要があります。
何らかの理由でこれが機能しない場合テキスト端末にログインします(Ctrl+Alt+F2 [F1..F6]のF2は友達である必要があります)、コマンドrm ~/.xsession
を発行してファイルを削除します。
参考までに、これが私の〜/ .xsessionです。これは、モード755でXfce4セッションにドロップします(これは「既知の良い」例として役立ちます)。
#!/bin/sh
xscreensaver &
exec xfce4-session
最後のexec
ディレクティブは、スクリプト自体を指定されたコマンドに置き換えます。多かれ少なかれすぐに終了しないものはすべてバックグラウンドで処理する必要があるため、&
。 (setxkbmapはほぼすぐに終了するため、バックグラウンドは必要ありません。)
シェルコードを.profile
ファイルに入れてみることができます。ORより複雑なバージョンはXKBを使用することです。 ここ は簡単な概要です。
完全な概要については、これを試してください Arch wiki記事 。
どうやらこれはバグです。
「私はArchLinuxでxfceを使用していますが、〜/ .config/xfce4/panel/xkb-plugin-##。rcを編集して新しい行などを追加すると、一部のセッションで機能します。別の一時的な修正は次のとおりです。 #31が示唆すること。
- プラグインで必要なオプションを設定します
- 〜/ .config/xfce4/panel/xkb-plugin-##。rcを他のファイルにコピーします。 〜/ .config/xfce4/panel/goodxkb.rc
このコマンドをスタートアップジョブに追加します。
sh -c "cp〜/.config/xfce4/panel/goodxkb.rc〜/.config/xfce4/panel/xkb-plugin-##。rc&&pkill xkb"(##を自分の番号に変更)
プラグインとその設定をリロードするには、pkillの部分が重要です。」