Fedora18にあげたら.xmodmapが読み込まれ無くなった

こんにちは。最近なぜかFedora17が動かなくなった(えっ)ので、Fedora18にアップデートしました。

私は~/.Xmodmapにこんな内容を置いて、キーボードのCtrlとShiftを入れ替えたりZenkaku_HankakuをEscapeにしたりしているのですが、

keysym Zenkaku_Hankaku = Escape
remove Lock = Caps_Lock
keysym Caps_Lock = Control_L
add Control = Control_L

Fedora18にアップデートしたところ、うまく動かなくなってしまいました。それを今回対策したので、メモっておきます。

原因は?

どうやら大本の原因は、どうやらgnome3.6になってから文字入力を担ってるあたりがgnomeに統合されたのが問題の原因(?)らしいです 参考

直接的な原因はxmodmap ~/.Xmodmapが自動で実行され無くなったことで、何もせずともコンソールで自分で

% xmodmap ~/.Xmodmap

って入力して実行すると今までどおりちゃんと設定が反映されるようになってるはずです。というわけで、これを自動で実行するようにしましょう。

gnome-session-propertiesを起動する

コンソールからgnome-session-propertiesを実行します。

% gnome-session-properties

そうすると、自動的に実行されるプログラムの一覧が表示されるので…

20130331_01

Addを押して、新しいエントリを追加し、

20130331_02コマンドの所に

/usr/bin/xmodmap ${YOUR_HOME}/.Xmodmap

と入力してSaveして、再ログインすれば反映されるはずです。

ここで重要なのが、xmodmapを絶対パスで指定しておくことです。どうやらPATH変数がうまく設定されてないのか、xmodmapとだけ書いても動きません。

余談:SSH key agentはここで実行されている

他のエントリを見てみると中々面白いです。ssh key agentとかどこで実行されてるのか割と不思議だったのですが、この中だったのですね。

Linux版Dropboxのクライアントなどもここで実行されています。

.bash_profileとかはターミナルを起動した瞬間でないと自動実行されない(たしか)ので、Xからログインしてすぐに発動させたいコマンドはここを使うと良さそうです