ログ日記

作業ログと日記とメモ

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

それはそうと、ゾンビプロセスがずっと残ってる。何か起動の仕方を間違っている気がしないでもない。