xmodmap をログイン時(Xセッション起動時)に実行する
Debuan buster にアップグレードしたら xmodmapが自動実行されなくなっていたのでメモ。
以前やった設定は
MacBook Pro の初期設定のメモ その2 - ログ日記
ここ。
Linuxの設定じゃなくてMacの設定として書いてた。
それで、.xsessionrc や .xinitrc や .xsession のどれがどうなっているのかあまり把握していなかったのでメモ。
.xsessionrc というのはDebian系専用の設定らしい。
ディスプレイマネージャーがどれでも実行される。
rg .xsession /etc/X11/
とかで検索すれば実際の動きを調べられる。
.xsessionや.Xsession(この順で探索されて先に見つかった方)は、設定があればスタートアップスクリプトとしてデフォルトのx-session-managerの代わりに実行される。
.xinitrcは手動でstartxしたとき用?
.xsessionrcは
if [ -r "$USERXSESSIONRC" ]; then . "$USERXSESSIONRC" fi
で読み込まれる。(実行ではない)
それなら今までの設定で合ってるじゃん、と思って sleep を 3 から 10 にしたら起動できた。
GUIのログインセッションの起動で結構待たないとダメなんだね。
以前はスクショだったのでテキストで再掲しておく。
$ cat .xsessionrc /home/nishimura/bin/run_xmodmap.sh & $ cat bin/run_xmodmap.sh #!/bin/bash sleep 10 /usr/bin/xmodmap /home/nishimura/.xmodmap $ cat .xmodmap remove lock = Eisu_toggle remove mod1 = Alt_R
10/5 追記
PC立ち上げ時では実行されなかった。
もっとsleepしないとダメ?何か他にGUI系が立ち上がったトリガーがあれば良いんだが…。
10/7 追記
実行できるまで繰り返すことにした。
until /usr/bin/xmodmap /home/nishimura/.xmodmap; do sleep 3 done
それはそうと、ゾンビプロセスがずっと残ってる。何か起動の仕方を間違っている気がしないでもない。