結論としては~/.config/autostartにシェルスクリプトを実行するdesktopファイルを置くのが楽。GPUを2枚積んでいて、uefiからは1枚目が優先されるようだが、nvidiaのドライバを入れるとGPUの認識順が逆になって1枚目につないだモニタが機能しなくなるのも注意点だった。理由は不明。
~/.config/autostart
arandrやnvidia-settingsを使って適当に画面の回転や上下関係を調節した後、arandrで設定ファイルをシェルスクリプトで書き出す。arandrはxrandrを動かすもので、出力されるスクリプトもxrandrを実行するものになる。
以下をターミナルにコピペする
mkdir -p ~/.config/autostart cat << EOF > ~/.config/autostart/update-monitor-position.desktop [Desktop Entry] Type=Application Exec=/usr/bin/xrandr --output USB-C-0 --off --output HDMI-1 --off --output HDMI-0 --primary --mode 1920x1200 --pos 0x400 --rotate normal --output DP-3 --mode 1680x1050 --pos 2970x0 --rotate left --output DP-2 --off --output DP-1 --off --output DP-0 --mode 1680x1050 --pos 1920x0 --rotate left Hidden=false NoDisplay=false X-GNOME-Autostart-enabled=true Name[en_US]=Update Monitors Position Name=Update Monitors Position Comment[en_US]=Force monitors position using xrandr Comment=Force monitors position using xrandr Icon=display EOF
あるいはgnome-session-propertiesを使って手作業でも登録できる。
参考: conkyのセットアップ(gnome-session-propertiesで自動起動) - toshi_hirasawaの日記
うまく行かなかった方法たち
- /etc/X11/xorg.conf
- /etc/X11/xorg.conf.d/20-nvidia.conf
- /etc/X11/xorg.conf.d/10-monitor.conf
- nvidia-settings --load-config-only
- xinitrc
- /etc/gdm/Init/Default
- systemdにサービス登録
- /etc/systemd/system/にhoge.serviceというファイルを置いてsystemctl enableする
- systemdを用いたプログラムの自動起動 - Qiitaが分かりやすかったので参考にしたが、結局cannot open displayエラーは取れなかった
- monitors.xmlはxmlを書くのが難しかったので試さず
- cronもまだ試していない