諸事情により Ubuntu Server 18.04 上の Android Studio を MacBook 側にX11(XQuartz) を使って表示させて使っているのだが、そのとき Ubuntu Server 上で毎回 DISPLAY 変数を設定するのが面倒だったので、自動でセットするようにした話。
たぶん、もっと楽な方法があるのではないかと思うのだが、 とりあえず MacBook から ssh で Ubuntu Server にログインして、 export DISPLAY=192.168.0.100:0.0 とかいった値を毎回セットするのが面倒なので、自動でセットする方法を探した。
MacBook から Ubuntu Server にログインして lastlog コマンドを実行すると以下のような情報が標準出力される。
sshd **Never logged in**
foo pts/1 192.168.0.100 Thu Jun 7 10:22:43 +0000 2018
mongodb **Never logged in**
さらに lastlog -u foo とすれば関心のある行だけ出力してくれる。
Username Port From Latest
foo pts/1 192.168.0.100 Thu Jun 7 10:22:43 +0000 2018
ということはあとは IP アドレスだけを取り出したいので以下のようなコマンドをパイプしてフィルタリングすればOK。
lastlog -u `whoami` | grep `whoami` | sed -e 's/.*\(192.168.[^ ]*\).*/\1/'
これを mylastlog コマンドとして $HOME/bin/mylastlog などパスが通った場所に配置して chmod u+x する。
あとは、login したときに環境変数 DISPLAY に mylastlog コマンドの実行結果をセットすればよい。
つまり $HOME/.bashrc の最後に以下を追記。
export DISPLAY=`mylastlog`:0.0
これで一つ手間が減った。