これの続き。
doroyamada.hatenablog.jp
手元モニター(オンボードHDMIに接続)が時々アクティブにならないので、状態を検知してアクティブにするパートを追加。アクティブになっていないとconnectedなのに画面サイズを検知しない。
ディスプレイの名前を検出するために、上のリンク先に書いたとおり数字で決め打ちしていてたが、いつの間にか数字が変わって動作しなくなった。でもリブートすると以前の数字になる。どっちでも行けるようにスクリプトを修正。
#!/usr/bin/zsh INACTIVE=`xrandr | grep " connected"|grep -v mm|sed -e "s/\(HDMI\S*\).*$/\1/g"` if [ "$INACTIVE" != "" ]; then zenity --notification --text "Activated ${INACTIVE}." xrandr --output $INACTIVE --auto sleep 3 fi TV=`xrandr | grep " connected"|grep 160mm|sed -e "s/\(HDMI\S*\).*$/\1/g"` MON=`xrandr | grep " connected"|grep "510\|698"mm|sed -e "s/\(HDMI\S*\).*$/\1/g"` xrandr --output $TV --auto --right-of $MON
ログイン時に実行するとともにキーボード・ショートカットのCtl+ALT+Dに登録してある。出かける時にテレビをオフにすると、再度オンにしてもミラーリングになるので。
「全くもって使いにくい」と思っていたシェルスクリプトだけど、だいぶ慣れてきた。引数が出てくるケースはphpでスクリプト書くよりは楽なことが多い。
twitter.comシェルスクリプトのforループでinが省略されると変数には引数が順に格納されるとな。これ便利そう。
— 泥山田@チーム泥んこプロレス (@doroyamada) 2023年7月29日
fhiyo.github.io