Comment puis-je rendre la personnalisation xrandr permanente?

66

J'avais l'habitude d'éditer le script de démarrage du GDM (/ etc / gdm / Init / Default) pour changer de façon permanente ma résolution d'affichage.

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

Edocastillo
la source
ajouter à .xprofile dans votre dossier personnel. Consultez le site askubuntu.com/questions/63863/… pour obtenir un guide de base sur le réglage de la résolution et l’ajout à .xprofile
duffydack

Réponses:

22

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

Si vous n'en avez pas xorg.conf, vous pouvez utiliser les éléments suivants comme base. Vous devez remplacer les entrées avec les noms Modeline, Driveret Modesavec les entrées correctes pour votre système. Selon votre matériel, vous aurez peut-être besoin d'entrées supplémentaires, par exemple si votre système dispose de 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 obtiendrez le nom suivant (si vous avez une puce graphique Intel, le nom du pilote est simplement "intel"):

lshw -class display | grep "driver"

Les modelines peuvent être générés avec cvt:

cvt <h-resolution> <v-resolution> [refresh]
Nimmermehr
la source
J'ai essayé cela et il ne voulait pas démarrer pour une raison quelconque. J'ai utilisé le modeline généré à partir de la cvtcommande et le pilote de l'autre (et j'ai essayé vesaaussi), mais cela ne fonctionnait plus, sans message d'erreur. La solution de Jon Roberts a parfaitement fonctionné pour moi et ne dépend pas d'éléments tels que le pilote de carte vidéo que vous mentionnez ici et qui pourraient facilement mal tourner pour les débutants. C'est pourquoi je vote sa réponse.
Mike
1
Cela ne semble pas aider pour quelque chose comme --rotate.
Jherico
2
Cette réponse est obsolète. Voir la réponse de John Roberts
con-f-use
+1 parfait-o! Utiliser GDM avec Gnome 3.16, ce qui a permis à mon GDm de reconnaître les moniteurs 1080p. Je vous remercie!
eduncan911
Sur mon ordinateur, la lshwsortie i915, quel que soit le pilote utilisé, est intel.
user202729
63

Modifier /etc/lightdm/lightdm.confpour ajouter les options suivantes:

display-setup-script> appelle votre mycustomloginvideo.sh avant que l'écran de connexion ne s'affiche

session-setup-script> appelle mycustomdesktopvideo.sh avant le début de la session de bureau de l'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 faire en sorte que l’interface graphique «arandr» génère le script sh ci-dessus, en sélectionnant des paramètres dans la configuration X de votre session actuelle.

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

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

et vous pouvez vérifier que cela fonctionne (c'est-à-dire que vous n'avez aucune faute de frappe ou d'erreur 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 sur l'écran de connexion. Si le script de bureau échoue, vous risquez de ne plus avoir de bureau après vous être connecté. Si vous configurez un moniteur externe, ces scripts échouent lorsque vous le déconnectez et la session X ne démarre pas.

Jon Roberts
la source
Pour Mint 13 XFCE utilisant mdm, modifiez / etc / mdm / Init / Default. Appelez votre script avant la "sortie 0"
StackUnder
Evnn fonctionne sur Fedora ... il ne manquait que le display-setup-scriptscript, car Xfce l'avait déjà défini dans les paramètres d'affichage session-setup-script.
Wilf
10

Quelqu'un a posté une autre solution de contournement, bien que je dois dire que cela n'a pas fonctionné pour moi. Cela pourrait probablement fonctionner pour vous. Dans mon cas, ça casse l'unité et je ne peux que déplacer le curseur de la souris. Le panneau supérieur de l'indicateur de l'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.

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

Voici à quoi ressemble 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 de Xrandr doivent être modifiés pour correspondre aux vôtres.

Meconio
la source
Cette solution a très bien fonctionné pour lubuntu 17.x sur une vieille machine. Cela n'affecte que la session. L'écran de connexion de greeter ne s'affiche donc pas avec la résolution souhaitée.
laconbass
6

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

J'ai un vieux aspirateur AOA110 sur lequel j'ai cassé l'écran trop de fois et après avoir acheté un nouvel ordinateur portable, j'ai décidé d'essayer de le transformer en HTPC, mais l'affichage externe que j'ai n'a pas été reconnu par X; ajustez-le plusieurs fois pour qu'il fonctionne à la bonne résolution.

Voici ce que j'ai fait:

Après avoir utilisé ce tutoriel http://ubuntuforums.org/showthread.php?t=1112186 jusqu'à l'étape 5, j'ai réussi à trouver une résolution satisfaisante et acceptable dans xrandr, mais cela ne fonctionnait pas dans l'écran de connexion LightDM.

Ne suivez pas les étapes pour le rendre persistant dans ce qui précède, cela peut fonctionner, mais je pense que c'est la bonne façon de le faire dans 11.10. J'ai trouvé ce message sur le site ArchWiki https://wiki.archlinux.org/index.php/Xorg 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 se trouvent sous l' Section "Monitor"inclusion appropriée Modelineque vous avez trouvée lors de l'utilisation gtf 1440 900 60.00, puis sous l' Section "Screen"inclusion correspondante Modes.

Vous remarquerez que ce que j'essayais de faire était non seulement de régler la connexion VGA1 sur une résolution appropriée, mais également de lui dire de ne pas utiliser ma sortie LVDS1. Évidemment, vous devrez ajuster le vôtre de manière appropriée afin de faire correspondre le bon nombre de sorties et les bonnes sections Périphérique, Écran et Affichage pour votre configuration.

Désolé pour ce billet épique, je peaufine depuis un certain temps déjà les fichiers xorg.conf avec l’affichage Hannspree que j’utilise et les anciennes configurations de xorg.conf que j’utilisais avant la version 11.10 ne fonctionnent tout simplement plus, c’est le seule solution que j'ai trouvée qui fonctionne.

Bonne chance!

foiinfriction
la source
Utiliser xrandr -qdevrait vous donner la bonne information sur l’affichage utilisé et les modes possibles.
foi
Un fichier de configuration de base peut être généré en exécutant Xorg :1 -configure, ce qui crée un nouveau serveur X et génère un fichier de configuration à partir de celui-ci - celui-ci peut être copié de /root/xorg.conf.newvers /etc/X11/xorg.conf. J'ai trouvé un meilleur moyen de répondre à la question ci-dessus
Wilf
5

J'ai eu un problème similaire avec mon ordinateur portable ci-dessus, et je voulais ajouter quelque chose à la conversation. Si vous ne vous souciez pas de la résolution de connexion (mais pas du tout), mais que vous voulez que l'espace de travail réel soit la bonne résolution, vous pouvez ajouter les informations relatives à votre moniteur à LightDM, mais pas activer la résolution complète tant que vous n'êtes pas connecté.

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 dans /etc/lightdm/lightdm.conf

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

Une fois que je me suis connecté, je peux configurer mon moniteur dans Displays et cela fonctionne même après une nouvelle connexion (utilisé pour me donner une grosse erreur laide).

Karl
la source
Cela a fonctionné comme souhaité mais il a fallu redémarrer pour ne pas vous reconnecter ...
CrandellWS
4

Pour améliorer la réponse de Jon Roberts, permettez-moi de 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 (dans le cas où vous utilisez une configuration à deux moniteurs), les paramètres de fréquence de rafraîchissement et gamma de chaque moniteur ne sont pas inclus, par exemple. 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 une deuxième ligne avec correction de gamma manuellement, car les paramètres gamma xrandr sont apparemment perdus lorsque vous basculez un moniteur en mode principal .

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

De plus, le script de session n'est pas appelé par lightdm, mais en tant qu'application de démarrage, car il semble que lightdm appelle le script avant que tout soit prêt pour xrandr et que des choses étranges se produisent.

Hermès
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 / la meilleure façon de le faire.

J'ai finalement trouvé ceci: http://www.sudo-juice.com/change-lxde-screen-resolution-ubuntu-lubuntu/

Cela a fonctionné, mais j'ai utilisé gedit à la place:

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 --( n'apparaît pas trop clairement sur mon écran).

Abisdad
la source
2

Créez un nouveau document et nommez-le, par exemple /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 (la résolution est définie sur 1600x900)

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

bash /home/yourusername/yourscriptname.sh

Enregistrez-le et le script sera exécuté à chaque fois que vous vous connecterez. Vous devrez donc vous déconnecter avant de prendre effet. L'exécution de 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.

Nikhil
la source
Ceci a été édité (à la place, s'il a été supprimé) par le PO de cette réponse, telle qu'elle a été publiée ici plutôt que d' ici . sera probablement remplacé par les commandes xrandr utilisées pour obtenir la bonne configuration.
Wilf
Sur mon écran à double moniteur, l'EDID de mon écran HDMI-0 est en cours de lecture, mais l'EDID de mon DVI-0 n'est pas en cours de lecture. Pointant sur un script de configuration stocké dans /usr/binne fonctionnait pas, mais l'ajout de ce script à mes applications de démarrage à l'aide gnome-session-propertiesréussissait!
noobninja
1

Sur la base des réponses ci-dessus, j’ai fait quelques tests et trouvé une méthode utile, puis j’ai créé un script simple pour l’automatiser avec mes installations automatiques. Mais cela fonctionnera dans d'autres cas.

Créez 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: http://askubuntu.com/questions/63681/how-can-i-make-xrandr-customization-permanent
 sudo sh -c "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 créera les scripts et les fichiers pour l’affichage et la session lightdm. ne pas oublié 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.)

sinon dans le même répertoire: /path/to/script/scriptinstallxrandrfixed.sh

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

pablodav
la source