¿Por qué mis ediciones lightdm.conf no afectan la resolución de pantalla de mi escritorio?

13

Quería cambiar la resolución de la pantalla de mi escritorio a 1366x768. Pero mi VESA drivers(AMD REDWOOD)no detectó esa resolución. Así que creé un script de shell de la siguiente manera:

xrandr --newmode "1368x768_60.00"   85.25  1368 1440 1576 1784  768 771 781 798 -hsync +vsync  
xrandr --addmode DVI-0 1368x768_60.00  
xrandr --output DisplayPort-0 --off --output DVI-0 --mode 1368x768_60.00 --pos 0x0 --rotate normal --output HDMI-0 --off

Lo guardé como lightdmxrandr.shen /usr/biny lo hice ejecutable. Luego añade las siguientes líneas /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf(que es el equivalente a la conocida /etc/lightdm/lightdm.confestoy usando el archivo de arriba como soy en 14.04 donde no está. /etc/lightdm/lightdm.conf.): -

greeter-session=unity-greeter  
display-setup-script=/usr/bin/lightdmxrandr.sh  
session-setup-script=/usr/bin/lightdmxrandr.sh

y lo guardé En teoría, esto debería haber cambiado tanto la resolución de la pantalla de inicio de sesión como la resolución de la pantalla del escritorio 1366x768. Pero sorprendentemente esto solo cambió la resolución de la pantalla de inicio de sesión. La resolución del escritorio no se modificó. Más tarde agregué el script a las aplicaciones de inicio y eso cambió la resolución de mi escritorio.

Así que quiero saber por qué las ediciones que hice al lightdm.confarchivo (o más bien el 50-ubuntu.confarchivo) no afectaron la resolución de mi escritorio. ¿Se trata de algún tipo de error que debe notificarse en el launchpad o es incorrecto decir que las ediciones en lightdm afectarán la pantalla del escritorio?

PD: - En mi opinión, esto no es solo específico de Ubuntu 14.04.

VenkiPhy6
fuente

Respuestas:

11

Intenté algo similar y después de algunas depuraciones creo que descubrí lo que está sucediendo. Su script probablemente se ejecuta y probablemente establece la resolución correctamente. Sin embargo, dado que lo ejecuta el administrador de inicio de sesión, se ejecuta antes de que Unity haya terminado de configurar su entorno de escritorio y Unity lee su propia configuración y restablece la resolución a lo que tenía. Entonces, creo que lo que sucede es:

  1. lightdm ejecuta correctamente su script
  2. Esto establece la resolución deseada
  3. Unity se inicia, lee su configuración y vuelve a la resolución predeterminada que tiene allí
  4. Su resolución vuelve a ser lo que era antes.

Ahora, esto sucede porque el controlador VESA no detecta la resolución deseada automáticamente. Esto significa que cuando cambia la resolución desde la sección Pantallas de la configuración de Unity, le está dando una resolución que no está disponible a menos que ejecute los xrandrcomandos. Por lo tanto, esto se ignora la próxima vez que reinicie y Unity vuelve a la resolución predeterminada.

Entonces, lo que debe hacer es poner la resolución a disposición de Unity, luego configurarla como predeterminada y dejar que se encargue de ella. Para hacerlo, primero debe agregar esta línea a /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf:

session-setup-script=/usr/bin/lightdmxrandr.sh

Luego, asegúrese de que se /usr/bin/lightdmxrandr.shvea así:

xrandr --newmode "1368x768_60.00"   85.25  1368 1440 1576 1784  768 771 781 798 -hsync +vsync  
xrandr --addmode DVI-0 1368x768_60.00  

Tenga en cuenta que en realidad no estoy configurando la resolución, solo haciéndola disponible. Una vez que haya hecho este reinicio, inicie sesión. La nueva resolución ahora debería estar disponible en Configuración => Pantallas. Si es así, elíjalo allí, cierre la sesión y vuelva a iniciarla y la resolución debe establecerse correctamente. Ahora debe persistir durante los reinicios.


Aproximaciones alternativas:

  1. Cree un /etc/X11/xorg.confarchivo que enumere su resolución deseada. Algo como esto:

    Section "Monitor"
        Identifier    "Monitor0"
        Modeline "1368x768_60.00"  109.00  1280 1368 1496 1712  1024 1027 1034 1063 -hsync +vsync
    EndSection
    
    Section "Screen"
        Identifier     "Screen0"
        Device         "Card0"
        Monitor        "Monitor0"
        SubSection "Display"
            Modes       "1368x768_60.00"
        EndSubSection
    EndSection
    
    Section "Device"
        Identifier    "Card0"
        Driver        "vesa"
    EndSection
    
  2. Agregue el script que ejecuta los xrandrcomandos a las aplicaciones de inicio de su sesión.

terdon
fuente
Editar los archivos en /usr/share/lightdm/lightdm.conf.d/ es la forma incorrecta de cambiar lightdm.conf. La página del proyecto LightDM dice que los administradores del sistema pueden anular la configuración predeterminada en /etc/lightdm/lightdm.conf.d/ o /etc/lightdm/lightdm.conf No debe editar archivos en / usr / share / lightdm / porque mientras puede funcionar por un tiempo y es probable que se sobrescriba con las actualizaciones del paquete Fuente: página del proyecto LightDM freedesktop.org/wiki/Software/LightDM Corrija su respuesta
happyskeptic
3
No tengo suficiente reputación para agregar un comentario simple, pero quería señalar que el archivo sh debe tener permiso para ejecutarse. El OP mencionó que él / ella había hecho esto, pero la respuesta de terdon no lo incluyó en los pasos. Si no es ejecutable, tendrá que desplegarse en un símbolo del sistema porque no iniciará sesión (al menos no lo hizo para mí). Fue un simple descuido de mi parte, pero en caso de que alguien más pase por alto ese paso, quería reiterarlo aquí.
Kirk Spencer el