Pourquoi mes modifications lightdm.conf n'affectent-elles pas la résolution d'écran de mon 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 enregistré comme lightdmxrandr.shdans /usr/binet l' ai rendu exécutable. Ensuite, j'ai ajouté les lignes suivantes à /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf(ce qui est l'équivalent du bien connu /etc/lightdm/lightdm.conf. J'utilise le fichier ci-dessus comme je le suis au 14.04 où il n'y en a pas /etc/lightdm/lightdm.conf.): -

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

et l'a sauvé. En théorie, cela aurait dû changer à la fois la résolution d'écran de connexion et la résolution d'é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 lightdm.conffichier (ou plutôt au 50-ubuntu.conffichier) n'ont pas affecté la résolution de mon bureau. Est-ce une sorte de bogue qui doit être signalé sur le tableau de bord ou est-ce faux de dire que les modifications dans lightdm affecteront l'écran du bureau?

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

VenkiPhy6
la source

Réponses:

11

J'ai essayé une chose similaire et après quelques débogages, je pense avoir compris ce qui se passait. Votre script est probablement exécuté et définit probablement la résolution correctement. Cependant, puisqu'il est exécuté par le gestionnaire de connexion, il s'exécute avant que Unity ait terminé la configuration de votre environnement de bureau et 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. Cela 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 y avez
  4. Votre résolution revient à ce qu'elle était avant

Maintenant, cela se produit car le pilote VESA ne détecte pas automatiquement la résolution souhaitée. Cela signifie que lorsque vous modifiez la résolution dans la section Affichages des paramètres d'Unity, vous lui donnez une résolution qui n'est disponible que si vous exécutez les xrandrcommandes. Par conséquent, cela est ignoré au prochain redémarrage 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 de la définir par défaut et de la laisser la 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 cela /usr/bin/lightdmxrandr.shressemble à 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 règle pas réellement la résolution, je la rend uniquement disponible. Une fois ce redémarrage effectué, connectez-vous. La nouvelle résolution devrait maintenant être disponible dans Paramètres => Écrans. Si c'est le cas, choisissez-le ici, déconnectez-vous et reconnectez-vous et la résolution devrait être définie correctement. Elle devrait maintenant persister lors des redémarrages.


Approches alternatives:

  1. Créez un /etc/X11/xorg.conffichier 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 xrandrcommandes aux applications de démarrage de votre session.

terdon
la source
La modification des fichiers sous /usr/share/lightdm/lightdm.conf.d/ n'est pas la bonne façon de changer lightdm.conf. La page du projet LightDM indique que les administrateurs système peuvent remplacer la configuration par défaut dans /etc/lightdm/lightdm.conf.d/ ou /etc/lightdm/lightdm.conf Vous ne devez pas modifier les fichiers sous / usr / share / lightdm / car pendant que cela pourrait fonctionner pendant un certain temps, il est susceptible d'être écrasé par les mises à jour du paquet Source: page du projet LightDM freedesktop.org/wiki/Software/LightDM Veuillez corriger votre réponse
happyskeptic
3
Je n'ai pas assez de réputation pour ajouter un simple commentaire, mais je voulais souligner que le fichier sh doit être autorisé à s'exécuter. Le PO a mentionné qu'il l'avait fait, mais la réponse de terdon ne l'a pas inclus dans les étapes. Si ce n'est pas exécutable, vous devrez vous rendre dans une invite de commande car il ne se connectera pas (du moins, ce n'est pas le cas pour moi). C'était un simple oubli de ma part, mais juste au cas où quelqu'un d'autre négligerait cette étape, je voulais le répéter ici.
Kirk Spencer