web-dev-qa-db-ja.com

xmodmapコマンドが起動/ログイン時に実行されないのはなぜですか?

ログインするたびに(または、起動するたびに、それが機能しない場合は)このコマンドを実行したい:xmodmap -e 'keysym Delete = Menu' -e 'keysym Menu = Delete'

私は多くのことを試みました。コマンドをSystem > Preferences > Startup Applicationsに入れました。私はそれを.shファイルに入れ、それをchmod +xとマークし、そのファイルをSystem > Preferences > Startup Applicationsに入れました。スクリプトを/etc/init.dに配置しました。コマンドを~/.profileに入れました。何も機能していないようです。

最後に、これを~/.profileに入れます。

touch test1
xmodmap -e 'keysym Delete = Menu' -e 'keysym Menu = Delete'
touch test2

Test1とtest2の両方が作成されますが、キーはまだ再マップされていません。コマンドをコピーして貼り付けて手動で実行すると、正常に機能します。ただし、ログイン時には実行されません。何か案は?

10
Matthew

~/.profileはログインシーケンスの早い段階で実行されます。デスクトップ環境でキーボードレイアウトが構成されている場合、ロードしたばかりの設定が上書きされる可能性があります。

設定を~/.Xmodmapというファイルに入れます。

keysym Delete = Menu
keysym Menu = Delete

Ubuntu 10.04のデフォルトのGnome環境では、次にログインするときに、~/.Xmodmapをロードするかどうかを確認するメッセージが表示されます。それをロードし、「二度と聞かないで」にチェックを入れます。次に、.Xmodmapがデフォルト設定の後に適用されます。

上記のGconf-Editorの場所で、改訂したキーボードレイアウトの名前が2回表示されるはずです。1回は「known_file_list」の下、もう1回は「update_handlers」の下です。なぜUbuntuが後者のエントリを入れることもあれば、入れないこともあるのですが...まあ、それはあなたをつま先立ちさせますね?

ちなみに、多くの調査の結果、上記の微調整を使用して、左Windowsキーを再割り当てしました。左矢印キーを複製するために、次のステートメントを自分のキーボードレイアウトに配置しました。-

キーコード133 = 0xFF51

(xevに移動し、最初に1つのキーを押してから、もう1つのキーを押して、それらが正しいコードであることを確認してください。)

それはほんの少しのポイントですが、私がインターネットにいる間、それは私に便利な「戻る」キーを与えます-左手でAlt + Win。見なくてもできる。

2
Alan

一部のシステムは、~/.Xmodmapという名前のファイルを探し、そこで見つかったコマンドを実行します。そのファイルに次の行を入れてみてください。

keysym Delete = Menu
keysym Menu = Delete
1
garyjohn