Pourquoi mes modifications lightdm.conf n'affectent-elles pas la résolution de mon écran de bureau?

13

Je voulais changer la résolution de mon écran de bureau en 1366x768 . Mais mon VESA drivers(AMD REDWOOD) n'a pas détecté cette résolution. J'ai donc créé un script shell comme suit: -

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

Je l'ai sauvegardé sous la forme lightdmxrandr.sh in /usr/bin et l'ai rendu exécutable. Ensuite, j’ai ajouté les lignes suivantes à /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf (qui est l’équivalent du /etc/lightdm/lightdm.conf connu. J'utilise le ci-dessus fichier que je suis sur 14.04 où il n'y a pas de /etc/lightdm/lightdm.conf .): -

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

et sauvé. En théorie, cela aurait dû changer la résolution de l'écran de connexion et la résolution de l'écran du bureau à 1366x768 . Mais étonnamment, cela n'a changé que la résolution de l'écran de connexion. La résolution du bureau n'a pas été modifiée. Plus tard, j'ai ajouté le script aux applications de démarrage et cela a changé la résolution de mon bureau.

Je veux donc savoir pourquoi les modifications que j'ai apportées au fichier lightdm.conf (ou plutôt au fichier 50-ubuntu.conf ) n'ont pas affecté ma résolution de bureau. Est-ce une sorte de bogue qui doit être signalé sur le tableau de bord ou est-il faux de dire que les modifications apportées à lightdm affecteront l’écran du bureau?

PS: - A mon avis, ce n’est pas seulement spécifique à Ubuntu 14.04.

    
posée VenkiPhy6 10.04.2014 - 14:49
la source

1 réponse

11

J'ai essayé une chose similaire et après quelques débogages, je pense avoir compris ce qui se passe. Votre script est probablement exécuté et définit probablement la résolution correctement. Cependant, étant donné qu'il est exécuté par le gestionnaire de connexion, il s'exécute avant qu'Unity ait fini de configurer votre environnement de bureau et qu'Unity lit ses propres paramètres et réinitialise la résolution à ce que vous aviez. Donc, je pense que ce qui se passe est:

  1. lightdm exécute correctement votre script
  2. Ceci définit la résolution souhaitée
  3. Unity se lance, lit ses paramètres et revient à la résolution par défaut que vous avez là-bas
  4. Votre résolution revient à ce qu’elle était auparavant

Cela se produit maintenant parce que le pilote VESA ne détecte pas automatiquement la résolution souhaitée. Cela signifie que lorsque vous modifiez la résolution à partir de la section Affichages des paramètres d'Unity, vous lui attribuez une résolution qui n'est pas disponible, sauf si vous exécutez les commandes xrandr . Par conséquent, ceci est ignoré la prochaine fois que vous redémarrez et Unity revient à la résolution par défaut.

Donc, ce que vous devez faire est de rendre la résolution disponible pour Unity, puis la définir comme valeur par défaut et la laisser gérer. Pour ce faire, vous devez d'abord ajouter cette ligne à /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf :

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

Ensuite, assurez-vous que /usr/bin/lightdmxrandr.sh ressemble à ceci:

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

Notez que je ne suis pas en train de paramétrer la résolution, en la rendant uniquement disponible. Une fois ce redémarrage effectué, connectez-vous. La nouvelle résolution devrait maintenant être disponible dans Settings = & gt; Affiche. Si c'est le cas, choisissez-le, déconnectez-vous et reconnectez-vous et la résolution doit être définie correctement.Il devrait maintenant persister lors des redémarrages.

Approches alternatives:

  1. Créez un fichier /etc/X11/xorg.conf répertoriant la résolution souhaitée. Quelque chose comme ça:

    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. Ajoutez le script qui exécute les commandes xrandr aux applications de démarrage de votre session.

réponse donnée terdon 10.04.2014 - 17:52
la source

Lire d'autres questions sur les étiquettes