web-dev-qa-db-ja.com

/ etc / X11 / XmodmapはUbuntuでは機能しませんか?

数日間の調査の結果、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をリセットしたと思いますか?

2
Xiè Jìléi

まず、Xでキーボードを構成するための2つのインターフェースがあることに注意する必要があります。

  • Xmodmap:従来の、シンプルな、制限付き。
  • XKB:モダンで、複雑で、強力です。

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に個別に保存することをお勧めします。