Comment puis-je rendre la personnalisation de xrandr permanente?

59

J'éditions le script de démarrage du GDM (/ etc / gdm / Init / Default) pour modifier définitivement ma résolution d'affichage.

Comment puis-je le faire avec LigthDM dans Ubuntu Oneiric?

    
posée Edocastillo 30.09.2011 - 07:25
la source

9 réponses

20

Je pense que vous pouvez ajouter les modes d'affichage à /etc/X11/xorg.conf .

Si vous n’avez pas de xorg.conf , vous pouvez vous baser sur ce qui suit. Vous devez remplacer les entrées par les noms Modeline , Driver et Modes par les entrées correctes pour votre système. En fonction de votre matériel, vous pouvez avoir besoin d'entrées supplémentaires, par exemple si votre système comporte plusieurs puces graphiques.

Section "Monitor"
    Identifier    "Monitor0"
    Modeline "1280x1024_60.00"  109.00  1280 1368 1496 1712  1024 1027 1034 1063 -hsync +vsync
    Modeline "1024x768_60.00"   63.50  1024 1072 1176 1328  768 771 775 798 -hsync +vsync
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Card0"
    Monitor        "Monitor0"
    SubSection "Display"
        Modes       "1280x1024_60.00" "1024x768_60.00"
    EndSubSection
EndSection

Section "Device"
    Identifier    "Card0"
    Driver        "nvidia"
EndSection

Si vous ne connaissez pas le nom du pilote vidéo utilisé par votre système, vous pouvez obtenir le nom suivant (si vous avez une puce graphique Intel, le nom du pilote est juste "intel"):

lshw -class display | grep "driver"

Les modèles peuvent être générés avec cvt :

cvt <h-resolution> <v-resolution> [refresh]
    
réponse donnée Nimmermehr 01.10.2011 - 10:59
la source
60

Modifiez /etc/lightdm/lightdm.conf pour ajouter les options suivantes:

display-setup-script & gt; appelle votre mycustomloginvideo.sh avant que l'écran de connexion n'apparaisse

script de configuration de session & gt; appelle votre mycustomdesktopvideo.sh avant le démarrage de la session du bureau utilisateur

[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu
# for your login screen, e.g. LightDM (Ubuntu 11.10) or GDM (11.04 or earlier)
display-setup-script=/usr/share/mycustomloginvideo.sh
# for your desktop session
session-setup-script=/usr/share/mycustomdesktopvideo.sh

Vous pouvez avoir l'outil graphique "arandr" pour générer le script sh ci-dessus, en sélectionnant les paramètres de la configuration X de votre session en cours.

Assurez-vous que votre script shell est exécutable:

chmod a+x /usr/share/mycustom*video.sh

et vous pouvez tester que cela fonctionne (c’est-à-dire que vous n’avez pas d’erreurs de frappe ou de configuration dans votre commande xrandr) simplement en l’exécutant dans un terminal:

/usr/share/mycustomdesktopvideo.sh

Si le script de connexion ne fonctionne pas pour une raison quelconque, votre ordinateur risque de ne pas terminer le processus de démarrage vers l’écran de connexion. Si le script de bureau échoue, vous risquez de ne pas avoir de bureau après la connexion. Si vous configurez un moniteur externe, ces scripts échoueront lorsque vous le déconnecterez et la session X ne démarrera pas.

    
réponse donnée Jon Roberts 20.10.2011 - 00:17
la source
10

Quelqu'un a posté une autre solution, même si je dois dire que cela n'a pas fonctionné pour moi. Cela pourrait probablement fonctionner pour vous. Dans mon cas, cela brise l'unité et je ne peux que déplacer le curseur de ma souris. Le panneau supérieur de l'indicateur d'application semble vide, mais après avoir débranché mon écran LCD, j'ai pu supprimer les lignes ajoutées et tout est revenu à la normale.

éditez le fichier /usr/sbin/lightdm-session

Voici comment se présente la première partie de ce fichier:

#!/bin/sh
#
# LightDM wrapper to run around X sessions.

echo "Running X session wrapper"

# Load profile
for file in "/etc/profile" "$HOME/.profile" "/etc/xprofile" "$HOME/.xprofile"; do
  if [ -f  "$file" ]; then
     echo "Loading profile from $file";
     . "$file"
  fi
done

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

# Load resources

Notez que les paramètres Xrandr doivent être modifiés pour correspondre aux vôtres.

    
réponse donnée Meconio 21.11.2011 - 16:45
la source
5

J'essaie de résoudre un problème similaire depuis un certain temps et j'ai trouvé une solution qui fonctionne pour moi, alors j'espère que cela aidera ...

J'ai un ancien aspirant à un AOA110 que j'ai cassé trop souvent à l'écran et après avoir acheté un nouvel ordinateur portable, j'ai décidé d'essayer de le transformer en HTPC mais l'écran externe dont je dispose n'est pas reconnu par X ont dû le modifier plusieurs fois pour le faire fonctionner à la bonne résolution.

Voici ce que j'ai fait:

Après avoir utilisé ce tutoriel lien jusqu’à l’étape 5, j’ai pu trouver une résolution fonctionnelle et acceptable dans xrandr mais cela ne fonctionnait pas sur l'écran de connexion LightDM.

Ne suivez pas les étapes pour le rendre persistant dans la procédure ci-dessus, mais je pense que c'est la bonne façon de le faire en 11.10. J'ai trouvé ce post sur le lien ArchWiki que j'ai adapté à mes besoins.

Commencez par créer un fichier ici: /etc/X11/xorg.conf.d/10-monitor.conf

Ajoutez ensuite les détails X appropriés pour votre affichage, voici à quoi ressemblait le mien:

Section "ServerLayout"
Identifier     "DualSreen"
Screen       0 "Screen0"
Screen       1 "Screen1" RightOf "Screen0" #Screen1 at the right of Screen0
#Option         "Xinerama" "1" #To move windows between screens
EndSection

Section "Monitor"
Identifier     "LVDS1"
Option         "ignore" "true"
EndSection

Section "Monitor"
Identifier     "VGA1"
Option         "Enable" "true"
Modeline "1440x900_60.00"  106.47  1440 1520 1672 1904  900 901 904 932  -HSync +Vsync
EndSection

Section "Device"
Identifier     "Device0"
Driver         "intel"
Screen         0
EndSection

Section "Device"
Identifier     "Device1"
Driver         "intel"
Screen         1
EndSection

Section "Screen"
Identifier     "Screen0"
Device         "Device0"
Monitor        "VGA1"
DefaultDepth    24
Option         "TwinView" "0"
SubSection "Display"
    Depth          24
    Modes          "1440x900_60.00"
EndSubSection
EndSection

Section "Screen"
Identifier     "Screen1"
Device         "Device1"
Monitor        "LVDS1"
DefaultDepth   24
Option         "TwinView" "0"
SubSection "Display"
    Depth          24
EndSubSection
EndSection

Les bits importants à ajouter sont sous le Section "Monitor" approprié. Incluez le Modeline approprié que vous avez trouvé en utilisant gtf 1440 900 60.00 et ensuite sous le Section "Screen" correspondant, y compris le Modes correct.

Vous remarquerez que ce que je tentais de faire était non seulement de régler la connexion VGA1 sur une résolution appropriée, mais aussi de ne pas utiliser ma sortie LVDS1. De toute évidence, vous devrez modifier le vôtre de manière appropriée pour correspondre au bon nombre de sorties et aux bonnes sections Périphérique, Écran et Affichage pour votre configuration.

Désolé pour le post épique, je modifie les fichiers xorg.conf depuis quelque temps maintenant avec l’affichage Hannspree que j’utilise et les anciennes configurations de xorg.conf que j’avais utilisées avant la 11.10 ne fonctionnaient plus correctement c'est la seule solution que j'ai trouvée qui fonctionne.

Bonne chance!

    
réponse donnée faithinfriction 07.12.2011 - 18:02
la source
5

J'ai eu un problème similaire avec mon ordinateur portable comme ci-dessus, et je voulais ajouter quelque chose à la conversation. Si vous ne vous souciez pas de la résolution de connexion (mais que je ne le fais pas), mais que vous souhaitez que l'espace de travail soit correct, vous pouvez ajouter les informations de votre moniteur à LightDM sans activer la résolution complète jusqu'à votre connexion.

Je viens d'ajouter le script suivant pour mon moniteur dans un fichier: lighdmxrandr

xrandr --newmode "1440x900_60.00"  106.50  1440 1528 1672 1904  900 903 909 934 -hsync +vsync
xrandr --addmode VGA1 1440x900_60.00

alors je l'appelle en /etc/lightdm/lightdm.conf

display-setup-script=/usr/bin/lightdmxrandr

Une fois connecté, je peux configurer mon moniteur dans Affichages et cela fonctionne même après que je me connecte à nouveau (utilisé pour me donner une grosse erreur).

    
réponse donnée Karl 03.05.2012 - 20:07
la source
4

En amélioration de Jon Roberts, laissez-moi préciser que arandr n'inclut pas dans sa génération de script sh tous les paramètres fonctionnant dans la session en cours. Moniteur principal (si vous utilisez une configuration à deux moniteurs), par exemple, les paramètres de fréquence de rafraîchissement et gamma de chaque moniteur ne sont pas inclus. Mon script de session ressemble à ça:

#!/bin/sh
xrandr --output LVDS --mode 1366x768 --pos 1600x432 --rotate normal --output HDMI-0 --off --output DVI-0 --off --output VGA-1 --mode 1600x1200 --rate 85 --pos 0x0 --rotate normal --primary
xrandr --output VGA-1 --gamma 0.8:0.7:0.55 

J'ai ajouté manuellement les options --rate et --primary dans la première ligne, puis ajouté manuellement une deuxième ligne avec la correction gamma car, apparemment, les paramètres gamma xrandr sont perdus chaque fois que vous passez un moniteur primaire .

Je ne sais pas si ce comportement particulier avec les paramètres gamma lors de la création d’un moniteur primaire est destiné ou est un bogue.

De plus, le script shell de session n'est pas appelé par lightdm mais comme une application de démarrage, car il semble que lightdm appelle le script avant que les choses ne soient prêtes pour xrandr et que des choses étranges se produisent.

    
réponse donnée Hermes 08.05.2012 - 20:52
la source
4

J'ai eu le problème de vouloir un affichage étendu sur ma nouvelle boîte LXDE (pas un double clone), j'ai trouvé la commande correcte, mais je ne pouvais pas la rendre permanente.

xrandr --output VGA-0 --right-of DVI-0

Les méthodes ci-dessus semblaient toutes trop difficiles / pas la bonne façon de le faire.

J'ai finalement trouvé ceci: lien

Cela a fonctionné un régal, mais j'ai plutôt utilisé gedit:

gksu gedit /etc/xdg/lxsession/LXDE/autostart

Puis ajouté la ligne à la fin avec un symbole @ au début:

@xrandr --output VGA-0 --right-of DVI-0

J'espère que ça aide et merci à sudo-juice.

PS Notez le double - dans la commande xrandr -- (ne s’affiche pas trop clairement sur mon écran).

    
réponse donnée abisdad 12.01.2013 - 02:29
la source
2

Créez un nouveau document et nommez-le, par ex. /home/yourusername/yourscriptname.sh Tapez

#!/bin/bash
xrandr --newmode "1600x900_60.00"  118.25  1600 1696 1856 2112  900 903 908 934 -hsync +vsync
xrandr --addmode VGA1 1600x900_60.00
xrandr --output VGA1 --mode 1600x900_60.00
unity --replace

et enregistrez-le dans votre dossier personnel (cela définit la résolution sur 1600x900)

Ouvrez les applications de démarrage (ou exécutez gnome-session-properties ) et cliquez sur "ADD". Donnez un nom et tapez la ligne de commande:

bash /home/yourusername/yourscriptname.sh

Sauvegardez-le, et maintenant le script sera exécuté à chaque connexion, vous devrez donc vous déconnecter en premier pour qu'il prenne effet. Exécuter la commande (par exemple, bash /home/yourusername/yourscriptname.sh ) dans un terminal serait également une bonne idée de vérifier si le script fonctionne.

    
réponse donnée Nikhil 24.12.2012 - 04:57
la source
1

Sur la base des réponses obtenues, j'ai fait quelques tests et trouvé une méthode qui fonctionne, puis j'ai créé un script simple pour l’automatiser avec mes installations automatiques. Mais cela fonctionnera dans tous les autres cas.

Créer un scriptinstallxrandrfixed.sh Ajoutez ces lignes:

#Variables for lightdm script and xrandr script to setup fixed resolution for old displays: 
xrandrscript=/usr/local/bin/xrandrscript.sh
lightdmstartscript=/usr/share/lightdm/lightdm.conf.d/60-xrandrscript.conf

 #Added old style configuration for lightdm: 
 sudo  ln -s /usr/share/lightdm/lightdm.conf.d /etc/lightdm/lightdm.conf.d
 #A fix to some old displays in high school at Fray Bentos, fix to 1024x768
 #Some useful information comes from: https://ubuntuplace.info/questions/1177/comment-puis-je-rendre-la-personnalisation-de-xrandr-permane"echo '[SeatDefaults]' > $lightdmstartscript"
 # for your login screen, e.g. LightDM (Ubuntu 11.10) or GDM (11.04 or earlier)
 sudo sh -c "echo 'display-setup-script=$xrandrscript' >> $lightdmstartscript"
 # for your desktop session
 sudo sh -c "echo 'session-setup-script=$xrandrscript' >> $lightdmstartscript"
 sudo sh -c "echo 'xrandr --size 1024x768 --rate 60.0' > $xrandrscript"
 sudo chmod +x $xrandrscript

il va créer les scripts et les fichiers pour l'affichage et la session lightdm. n'oublie pas de lui donner la permission d'exécuter

  

chmod + x scriptinstallxrandrfixed.sh

Et exécuter

  

./ scriptinstallxrandrfixed.sh   (vous devez être placé dans le même répertoire que celui où vous avez le fichier.)

     

si ce n'est pas dans le même répertoire: /path/to/script/scriptinstallxrandrfixed.sh

Modifiez-le selon vos besoins. Sincères amitiés. Pablo.

    
réponse donnée pablodav 03.06.2014 - 22:29
la source

Lire d'autres questions sur les étiquettes