xrandr external monitor not being set as primary after screen unlock
Edit2: the solution is so much simpler with autorandr
which is explained here: https://askubuntu.com/a/1130337/8 no more messing with scripts which never seem to run -- I still have no idea what I was doing wrong with the xrandr
commands, but it doesn't matter anymore.
Edit: I still have some problem with triggering the xrandr
command correctly at each login, because something I'm not understanding about having it in ~/.xprofile
isn't working exactly as expected:
/bin/bash -c "sleep 15 && xrandr --output eDP-1 --below DP-1 --output DP-1 --primary --above eDP-1"
Original question (now partially resolved):
Running 18.04 and xrandr
setting of primary monitor works at startup, but not after screen unlock. After screen unlock the primary monitor switches to the built-in laptop display. Strangely, this wasn't an issue with a different monitor connected in the very same way: USB-C to DisplayPort.
Below are the contents of the script run at startup:
#!/bin/sh
xrandr --output HDMI-1 --off --output DP-1 --primary --mode 3440x1440 --pos 0x0 --rotate normal
xrandr --output eDP-1 --mode 1920x1080 --pos 744x1440 --rotate normal --output HDMI-2 --off
Output of xrandr --query
in case that's helpful:
Screen 0: minimum 320 x 200, current 3440 x 2520, maximum 16384 x 16384
eDP-1 connected 1920x1080+616+1440 (normal left inverted right x axis y axis) 344mm x 194mm
1920x1080 59.98*+ 59.97 59.96 59.93
1680x1050 59.95 59.88
1600x1024 60.17
1400x1050 59.98
1600x900 59.99 59.94 59.95 59.82
1280x1024 60.02
1440x900 59.89
1400x900 59.96 59.88
1280x960 60.00
1440x810 60.00 59.97
1368x768 59.88 59.85
1360x768 59.80 59.96
1280x800 59.99 59.97 59.81 59.91
1152x864 60.00
1280x720 60.00 59.99 59.86 59.74
1024x768 60.04 60.00
960x720 60.00
928x696 60.05
896x672 60.01
1024x576 59.95 59.96 59.90 59.82
960x600 59.93 60.00
960x540 59.96 59.99 59.63 59.82
800x600 60.00 60.32 56.25
840x525 60.01 59.88
864x486 59.92 59.57
800x512 60.17
700x525 59.98
800x450 59.95 59.82
640x512 60.02
720x450 59.89
700x450 59.96 59.88
640x480 60.00 59.94
720x405 59.51 58.99
684x384 59.88 59.85
680x384 59.80 59.96
640x400 59.88 59.98
576x432 60.06
640x360 59.86 59.83 59.84 59.32
512x384 60.00
512x288 60.00 59.92
480x270 59.63 59.82
400x300 60.32 56.34
432x243 59.92 59.57
320x240 60.05
360x202 59.51 59.13
320x180 59.84 59.32
DP-1 connected primary 3440x1440+0+0 (normal left inverted right x axis y axis) 797mm x 333mm
3440x1440 59.97*+ 74.98
2560x1440 59.95
2560x1080 60.00 59.94
1920x1080 60.00 50.00 59.94
1680x1050 59.95
1600x900 60.00
1280x1024 75.02 60.02
1440x900 59.89
1280x800 59.81
1152x864 75.00
1280x720 60.00 50.00 59.94
1024x768 75.03 70.07 60.00
832x624 74.55
800x600 72.19 75.00 60.32 56.25
720x576 50.00
720x480 60.00 59.94
640x480 75.00 72.81 66.67 60.00 59.94
720x400 70.08
HDMI-1 disconnected (normal left inverted right x axis y axis)
HDMI-2 disconnected (normal left inverted right x axis y axis)
Just to get this out of the "unanswered" category: the solution which worked so well for me is incredibly simple compared to all of the things I tried. It is explained well here: https://askubuntu.com/a/1130337/8 and it really only involves a few steps:
-
sudo apt install autorandr
, and - arrange according to your preference using
xrandr
or even with the GUI-basedarandr
tool seems to work as well, - save that arrangement using something like:
autorandr --save work
And, obviously now in hindsight after I had to boot to the command-line to revert some of my other attempts at addressing this: make sure this is the only command that's being executed with respect to monitor orientation preferably before shutting down, lol.