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

13
Matthew

ディストリビューションに応じて、~/.xsessionファイルは、Xへのログイン時に実行されます(シェルスクリプト)。および/または~/.Xmodmapファイルはxmodmapプロセスによって供給されます。

~/.profileファイルはログインシェル(Xの有無にかかわらず)によってのみ実行されるため、適切な場所ではありません

5
maxschlepzig

~/.Xmodmapに入れてください。一部のディストリビューションは、~/.Xmodmapではなく~/.xmodmaprcを探します。 Fedora16で動作します。

6
Bank Qian

~/.xsessionrcに入れ、/etc/X11/Xsession.optionsallow-user-xsessionが含まれていることを確認します。

1