Ubuntu – lightdm doesn’t run the display-setup-script script

lightdm

To fight with dual-monitor resolution problems, I followed the advice found in other questions here related to session- and display-setup-script. I have the following /etc/lightdm/lightdm.conf:

[SeatDefaults]
user-session=ubuntu
greeter-session=unity-greeter
allow-guest=false
display-setup-script=/usr/bin/dualmon.sh
session-setup-script=/usr/bin/dualmon.sh

I also have the following (executable) /usr/bin/dualmon.sh that I created:

#!/bin/bash

xrandr --output LVDS1 --auto --left-of HDMI1 --output HDMI1 --auto
# notify-send Dualscreen activated

touch /home/shade/Desktop/touched

However, the resolution is wrong both at the login screen and after I log in. Also, the file /home/shade/Desktop/touched is not there. When I run the dualmon.sh script manually (after I log in), the resolution is set correctly.

This makes me think that the scripts are not run at all. What is the cause of this and how can I fix it?

Best Answer

Using Ubuntu, the best way to get your user account to have the right resolution for your dual monitor setup is as follows:

  • Delete monitors.xml from ~/.config/
  • Open Screen Display in System Settings
  • Set appropriate screen settings (use XRandR or ARandR beforehand if need be)
  • Then the big one - Hit Apply

You'll notice after doing the above that monitors.xml is rewritten, and whenever you login your dual monitor setup will work.

Secondly, to get the login screen to work correctly the process you need to follow is as is this answer. The tricky part is ensuring your permissions are correct - On top of setting the correct permissions for the symbolic link, you also need to make sure Others are able to access the monitors.xml file as well as the ~/.config folder.

The beauty of this setup is, as opposed to trying to brute force some xrandr commands, that whenever you change your resolution/monitor set-up in Ubuntu, your login screen will follow suit.

For both of the above to work you need to make sure you remove any references to xrandr commands at startup.