数日間の調査の結果、bunt/etc/gdm/Xsession
の代わりに/etc/X11/Xsession
が実行されていることがわかりました。どちらも/etc/X11/Xsession.d
の下でスクリプトを実行しますが。
/etc/X11/Xmodmap
を定義し、/etc/X11/Xsession.d/40load-xmodmap
でフックスクリプトを作成しましたが、ロードされたxmodmapは99x11-common_start
の後で失われます。
デバッグコード:
/etc/X11/Xseesion:
...
for file in Xsession.d/*; do
. $file
echo The current xmodmap is:
xmodmap
done
...
印刷されたxmodmapは、40load-xmodmap
が非常にうまく機能することを示していますが、デスクトップが起動すると、定義されたキーmodは失われます。
最後に、ユーザーディレクトリ~/.Xmodmap
でxmodmapを定義しました。今回は、セッションが開始されると、ポップアップウィンドウでXmodmapを有効にするように求められます。だから私はおそらくGNOMEデスクトップがxmodmapをリセットしたと思いますか?
まず、Xでキーボードを構成するための2つのインターフェースがあることに注意する必要があります。
kbd デバイスを使用して、/etc/X11/xorg.conf
でキーボードレイアウトを定義できます。 (マニュアルページは、何らかの理由で実際のディストリビューションに含まれていないようです。)これを行わないと、/etc/default/console-setup
の設定が適用されます。
ディスプレイマネージャがGdmの場合、XKBとxmodmapの設定(/etc/gdm/Xsession
を参照)をそれぞれ/etc/X11/Xkbmap
と/etc/X11/Xmodmap
からロードします。他のディスプレイマネージャは、この時点で設定をそのままにしておきます。
ログインすると、デスクトップ環境が独自の設定で設定を上書きする場合があります。デフォルトのUbuntu環境を実行している場合は、 この質問 を参照してください。
Ubuntuキーボード設定GUIを使用して[システム全体に適用]を押し、キーボードに対応する組み込みレイアウトをシステムレイアウトとして選択し、個人設定を~/.xmodmap
または~/.xkbmap
に個別に保存することをお勧めします。