Bash – xrandr: cannot find mode on startup

arch linuxbashlinuxxrandr

I want to configure my 2 external screens of my laptop on every startup.
Because I have a kind of dockstation I wrote a small script which retrieves whether my laptop is connected to the dock or not.

If yes the monitors should configure themselfs by xrandr. Here is my script:

#!/bin/bash

export DISPLAY=:0
export XAUTHORITY=/home/$USER/.Xauthority

sleep 1

DOCKED=$(cat /sys/devices/platform/dock.2/docked)
case "$DOCKED" in
0)
xrandr --output DVI1 --off --output VIRTUAL1 --off --output VGA1 --off &> && xrandr --output LVDS1 --mode 1024x768 --pos 0x0 --rotate normal
;;
1)
xrandr --output VIRTUAL1 --off --output LVDS1 --off && xrandr --output DVI1 --mode 1366x768 --pos 1360x0 --rotate normal --output VGA1 --primary --mode 1360x768 --pos 0x0 --rotate normal
;;
esac

Unfortunately xrand does not work in the right way on boot. It shows me this:

xrandr: cannot find mode 1360x768

I am a little bit confused because if I start the script while my pc is already running it works flawless and there is no error report!

So I guess xrandr does not find my monitors on startup and therefore it does not know the specific configuration of each of them..

How can I fix this issue??

Thanks a lot for helping me!

Best Answer

First add the mode you want.

Use gtf/cvt and xrandr to do that.

$ cvt 1360 768 60
# 1360x768 59.80 Hz (CVT) hsync: 47.72 kHz; pclk: 84.75 MHz
Modeline "1360x768_60.00"   84.75  1360 1432 1568 1776  768 771 781 798 -hsync +vsync
$ gtf 1360 768 60 -x

  # 1360x768 @ 60.00 Hz (GTF) hsync: 47.70 kHz; pclk: 84.72 MHz
  Modeline "1360x768_60.00"  84.72  1360 1424 1568 1776  768 769 772 795  -HSync +Vsync

$ xrandr --newmode "1360x768_60.00"  84.72  1360 1424 1568 1776  768 769 772 795  -HSync +Vsync
$ xrandr --addmode VGA1 "1360x768_60.00"
Related Question