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é sous le nom lightdmxrandr.sh
dans /usr/bin
et 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 le 14.04 où il n’ya 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 en 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é la résolution de mon bureau. Est-ce une sorte de bogue qui doit être signalé sur le tableau de bord ou est-ce une erreur de dire que les modifications dans lightdm affecteront l'écran du bureau?
PS: - À mon avis, cela ne concerne pas uniquement Ubuntu 14.04.
J'ai essayé une chose similaire et après un débogage, je pense avoir compris ce qui se passait. Votre script est probablement exécuté et définit probablement la résolution correctement. Toutefois, comme 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 Unity lit ses propres paramètres et réinitialise la résolution. Donc, je pense que ce qui se passe est:
Cela se produit maintenant car 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 Écrans des paramètres de Unity, vous lui attribuez une résolution indisponible, sauf si vous exécutez les commandes xrandr
. Par conséquent, ceci est ignoré au prochain redémarrage et Unity rétablit la résolution par défaut.
Vous devez donc mettre la résolution à la disposition de Unity, puis la définir par défaut et 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 /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 régler la résolution, mais seulement de la rendre disponible. Une fois ce redémarrage effectué, connectez-vous. La nouvelle résolution devrait maintenant être disponible dans Paramètres => Affichages. Si tel est le cas, choisissez-le ici, déconnectez-vous, reconnectez-vous et la résolution doit être correctement définie. Elle devrait désormais persister lors des redémarrages.
Créez un fichier /etc/X11/xorg.conf
qui répertorie 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
Ajoutez le script qui exécute les commandes xrandr
aux applications de démarrage de votre session.