web-dev-qa-db-fra.com

Comment puis-je rendre la personnalisation xrandr permanente?

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?

62
Edocastillo

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

Si vous n'avez pas de xorg.conf, vous pouvez utiliser ce qui suit comme base. Vous devez remplacer les entrées par les noms Modelinename__, Driveret Modespar 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 modèles peuvent être générés avec cvtname__:

cvt <h-resolution> <v-resolution> [refresh]
20
Nimmermehr

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

62
Jon Roberts

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 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.

10
Meconio

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 vieil 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; "Tweak" plusieurs fois pour le faire fonctionner à la bonne résolution.

Voici ce que j'ai fait:

Après avoir utilisé ceci http://ubuntuforums.org/showthread.php?t=1112186 tutoriel jusqu’à l’étape 5, j’ai pu trouver une résolution satisfaisante et acceptable dans xrandr mais cela ne fonctionnait pas sur la É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 post sur le 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 le Section "Monitor" approprié, y compris le Modeline que vous avez trouvé lors de l’utilisation de gtf 1440 900 60.00, puis sous le Section "Screen" correspondant, y compris le Modes correct.

Vous remarquerez que ce que j'essayais de faire, c'é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!

6
faithinfriction

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 la connexion (mais pas de la résolution du problème), mais que vous souhaitez que l'espace de travail réel présente 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).

5
Karl

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'apparaissait pas trop clairement sur mon écran).

4
abisdad

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 à la première ligne, puis une deuxième ligne avec correction de gamma, car apparemment les paramètres gamrand de xrandr sont perdus chaque fois que 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 Shell 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.

4
Hermes

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 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 pour vérifier si le script fonctionne.

2
Nikhil

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.

1
pablodav