おいちゃんと呼ばれています

ウェブ技術や日々考えたことなどを綴っていきます

Ubuntu 9.04 でキー割り当て(キーボード配列)を変更 - 起動時に .Xmodmap が自動で読み込まれないときは?

ええと,先日のエントリー「Ctrl(Control)キーと CapsLock キーの位置問題に折り合いをつけてみる」に続いて,Emacs の操作に必須な,キー割り当て変更に関する話題です。

Windows のキー割り当ての変更は,既に書いたとおり XKeymacs に任せるとして(Windows のすべての操作を Emacs 風に変更するツール Xkeymacs が手放せない),今回は,Linux(特に Ubuntu 9.04)におけるキー割り当ての変更のハナシ。過去に Ubuntu でハマってしまった箇所があったので,そのことを思い出しながら書き留めておきます。

**Ctrl と CapsLock の交換 単純に Ctrl と CapsLock の交換であれば,UbuntuGUI で設定変更ができるようにメニューを用意してくれています。

システム > 設定 > キーボード > 「レイアウト」タブ > 「レイアウトのオプション」をクリックします。

Ctrl キーの位置 > 「Swap Ctrl and CapsLock」を選択すれば OK です。

**Ctrl(右)と CapsLock の交換 ところが,先日のエントリー「Ctrl(Control)キーと CapsLock キーの位置問題に折り合いをつけてみる」でおススメした,“Ctrl(左)はそのまま残して,Ctrl(右)と CapsLock を交換”する場合には,ひと工夫必要になります。

具体的には,xmodmap コマンドを使用します。 -Ubuntu Manpage: xmodmap - utility for modifying keymaps and pointer button mappings in

詳しいことは上記のマニュアルに載っていますが(ただし英語),次のスクリプトをホームディレクトリ直下にファイル名「.Xmodmap」で保存した後,

|| remove Lock = Caps_Lock remove Control = Control_R keysym Caps_Lock = Control_R keysym Control_R = Caps_Lock add Lock = Caps_Lock add Control = Control_R ||<

次のコマンドを実行すれば OK です。

|| $ xmodmap .Xmodmap ||<

**ハマってしまった箇所と,その解決方法 しかし,起動するたびに上記のコマンドを実行するのは面倒なので,次に考えるのは,“どうしたら自動化できるか?”ということ。

この点,ググってみたら,

< 便利なことに Ubuntu では、システム起動時に「.Xmodmap を読み込ますか?」と出てくるので、一度ここで Yes を答えておけば、あとは自動的に起動時に読み込んで設定を反映してくれる。
<

とあり,実際,次の起動時に,

と訊かれたので,右側の「.Xmodmap」を左側に移動させてやれば,OK のはずでした。

ところが,どういうわけか,キー割り当てが効いていない。いろいろ調べてみたら,次の方法で解決できました。

Alt + F2 で「アプリケーションの実行」を起動し,(Windows でいうところの「ファイル名を指定して実行」みたいなもの)「gconf-editor」を実行します。

次のとおり展開し,値を確認。 /desktop/gnome/peripherals/keyboard/general/update_handlers

おそらく値が [.Xmodmap] となっていると思うので,これを [$HOME/.Xmodmap] に変更してやれば,次回の起動時から「.Xmodmap」が自動的に読み込まれるはずです。

僕とおんなじところでハマってしまって諦めていた人,ぜひ試してみてください。ではでは。

**関連エントリー -Ctrl(Control)キーと CapsLock キーの位置問題に折り合いをつけてみる -Windows のすべての操作を Emacs 風に変更するツール Xkeymacs が手放せない