Mauvaise résolution de l'écran de connexion

40

Parfois, après le redémarrage incorrect de mon ordinateur, la résolution de mon écran de connexion n'est pas la valeur par défaut 1440x900, mais je pense 1600x900. Maintenant, j'ai ce moniteur qui est vraiment mauvais pour gérer les résolutions qu'il n'est pas conçu pour gérer, et montrera une boîte de "mauvaise résolution" stupide sautant autour de l'écran.

Y a-t-il un moyen de faire en sorte que l'écran de connexion charge une résolution de 1440x900, peu importe quoi? J'utilise Ubuntu 11.10 avec Unity et LightDM.

    
posée Ruben Bakker 30.10.2011 - 15:10
la source

15 réponses

38

Vous pouvez créer un script pour cela (source Résolution LightDM ).

  1. Nous devons tout d'abord connaître l'identifiant de votre moniteur. Ouvrez un terminal, commencez à taper terminal dans votre tiret d'unité pour voir l'option ou appuyez sur Ctrl + Alt + T
  2. Tapez / copiez cette commande pour afficher les détails de votre écran:

    xrandr -q
    

    Si vous n’avez qu’un seul moniteur, vous verrez une ligne dans la sortie comme ci-dessous (probablement avec des valeurs différentes, c’est l’identifiant au début de notre recherche):

    DVI-0 connected 1680x1050+0+0 (normal left inverted right x axis y axis) 473mm x 296mm
    

    L'identificateur d'écran est DVI-0 dans ce cas

  3. Ouvrez votre éditeur de texte préféré, utilisons gedit pour cet exemple, appuyez sur Alt + F2 et tapez gedit

  4. Tapez / copiez ceci dans:

    #!/bin/sh
    xrandr --output DVI-0 --primary --mode 1440x900
    

    Enregistrez-le sur votre bureau sous le nom lightdmxrandr.sh

  5. Vous voudrez peut-être tester le script avant de le mettre en pratique. De retour dans le terminal, naviguez jusqu’à ce que nous venons de le sauvegarder:

    cd ~/Desktop
    

    Maintenant, nous devons le rendre exécutable:

    chmod a+rx lightdmxrandr.sh
    

    Maintenant, lancez-le:

    ./lightdmxrandr.sh
    

    (Si votre écran s’auto-corrige automatiquement après la connexion, vous ne verrez probablement pas de différence; vous pouvez donc utiliser une résolution de test différente mais vous savez que tout fonctionne pendant le test)

  6. Maintenant, déplaçons le petit script que nous avons créé:

    sudo mv ~/Desktop/lightdmxrandr.sh /usr/share/.
    

    Si vous n'utilisez pas sudo , vous risquez d'obtenir une erreur de permission (j'utilise ce dossier par préférence personnelle)

  7. Nous devons maintenant exécuter ceci dans lightdm, accédez au dossier approprié:

    cd /etc/lightdm
    
  8. Ouvrez le fichier conf lightdm:

    sudo gedit lightdm.conf
    
  9. Maintenant, ajoutez l'instruction pour exécuter votre script après la dernière ligne et enregistrez:

    display-setup-script=/usr/share/lightdmxrandr.sh
    

Maintenant redémarrez et cela devrait définir la résolution correcte sur votre écran de connexion lightdm.

(ces instructions peuvent paraître longues mais elles ne prennent pas longtemps du tout)

    
réponse donnée captain_G 02.11.2011 - 21:37
la source
36

J'ai trouvé une solution de contournement très simple qui fonctionne parfaitement pour moi en cours d'exécution 13.04. ( update : maintenant 13.10) sur un ordinateur portable avec un écran externe de 24 "qui n’est pas connecté en permanence.

Je vais simplement copier de ici

  
  1. connectez-vous
  2.   
  3. utilisez xrandr ou l’utilitaire de contrôle des affichages pour configurer vos moniteurs comme vous souhaitez qu’ils soient configurés dans l’écran de connexion
  4.   
  5. copier ~ / .config / surveille.xml dans /var/lib/lightdm/.config
  6.   

Comme mes moniteurs étaient déjà configurés correctement, je devais simplement faire l’étape 3.

Certaines autres réponses données ici ont fonctionné pour moi, mais uniquement dans un scénario spécifique, tout en risquant d’utiliser un système inutilisable dans d’autres scénarios (LOW GRAPHICS MODE ERROR). Par exemple, avec le moniteur externe connecté en permanence (réponse acceptée par @captain_G) ou avec toujours le même périphérique connecté à la sortie utilisée pour le moniteur externe (script par @Axlrod). Il semble que la réponse de @ MarcoV soit la solution la plus générique, mais elle implique toujours des règles de script.

    
réponse donnée Tobold 13.08.2013 - 10:39
la source
18

Au lieu de créer un script, vous pouvez simplement ajouter au fichier /etc/lightdm/lightdm.conf une ligne comme celle-ci:

display-setup-script=xrandr --output default --mode 1280x720

Avant d’insérer, assurez-vous que la commande fonctionne, car avec une commande incorrecte, lightdm ne démarrera pas.

    
réponse donnée eugeniy 11.06.2012 - 20:54
la source
2

Juste un petit peu amélioré le script Axlrod .

Tout ce que vous avez à faire est de spécifier quel moniteur utiliser primaire et quel est votre écran portable (LVDS).

#!/bin/bash
LVDS="LVDS-0"
PRIMARY="VGA-0"

function get_displays()
{
        xrandr -q | grep connected | awk '{print }'
}

function get_resolution()
{
        [[ -z "" ]] && return 0 || xrandr -q | grep -A1  | tail -1 | awk '{print }' | grep -e "^[0-9]"
}

for display in $(get_displays); do
        resolution='get_resolution $display'

        [[ $display == $PRIMARY ]] && arg="--primary";
        [[ -n $resolution ]] && mode="--mode $resolution";

        if [[ $display == $LVDS ]]; then
                xrandr --output $display --off
        elif [[ -n $mode ]]; then
                xrandr --output $display $arg $mode
        fi
        unset mode arg resolution;
done
    
réponse donnée Ikko 25.07.2014 - 07:25
la source
2

Pour une configuration multi-moniteur où vous pouvez déconnecter votre ordinateur portable et l'utiliser sans, voici une solution simple:

exécuter:

xrandr

Obtenir les périphériques que vous utilisez est généralement LVDS1, et pour moi, j'ai un DP2 (displayport 2), il pourrait s'agir de HDMI1 ou autre, trouvez ceux avec les résolutions indiquées à côté.

Créez ce petit fichier bash:

#!/bin/bash

mode="$(xrandr -q|grep -A1 "DP2 connected"| tail -1 |awk '{ print  }')"
if [ -n "$mode" ]; then
  xrandr --output LVDS1 --off
  xrandr --output DP2 --primary --mode 2540x1440
fi

Remplacez LVDS1 par la connexion de votre moniteur portable.

Remplacez DP2 par votre connexion de moniteur externe.

Placez le script bash dans / usr / bin / local /

chmod + x le script

éditez /etc/lightdm/lightdm.conf

Ajouter

display-setup-script=/path/to/my/script

Redémarrer.

Le changement de résolution ne se produira que lorsque vous vous trouvez actuellement sur cet écran.

Si vous avez plusieurs endroits avec différents moniteurs / résolutions sur le même connecteur, vous devrez ajouter plus d’intelligence dans votre script bash.

    
réponse donnée Alex R 14.06.2013 - 15:02
la source
1
sudo gedit /usr/share/X11/xorg.conf.d/52-myres.conf

puis dans le fichier:

Section "Monitor"
    Identifier "VGA1"
    Option "PreferredMode" "1152x864"
EndSection

Enregistrez et quittez. Les valeurs ont été obtenues à partir de la commande xrandr -q . VGA1 est le nom de mon connecteur et 1152x864 est le nom de la résolution.

Cela fonctionne pour Xubuntu 16.04. Il définit une résolution préférée et pour moi, il me permet de définir la résolution de l’écran de connexion, au lieu d’avoir la résolution par défaut la plus élevée prise en charge.

Modifié à partir des réponses ici

    
réponse donnée Michael Faraday 29.05.2017 - 10:20
la source
1

Ce que j'ai trouvé utile était un message sur le site Web du guide Ubuntu . J'ai essayé tellement de choses dans Ubuntu 11.10 et j'ai même essayé d'utiliser simplement GNOME Classic. La résolution était toujours de 1024x768 et quand je la définissais manuellement à 1440x900 elle était "virtuelle", je veux dire que je devais faire défiler avec la souris pour explorer l’ensemble du bureau au-delà des dimensions réelles de l’écran.

Dans le terminal, j'ai exécuté cette commande:

sudo gedit /etc/default/grub

L'éditeur de texte peut prendre un certain temps à charger. Une fois chargé, j'ai édité la ligne

GRUB_GFXMODE=1024x768

et changé pour:

GRUB_GFXMODE=1440x900

N'oubliez pas d'exécuter update-grub pour appliquer les modifications.

Après cela, j'ai essayé de réinstaller les pilotes VESA (sur cet ordinateur, j'ai une GeForce 260 GTX). Je sais que le meilleur moyen est d'utiliser les pilotes officiels de Nvidia, mais le problème était toujours le même… Bien sûr, je pense que la performance sera pire maintenant.

Ainsi, en vérifiant le panneau Paramètres de Nvidia X Server, j'ai vérifié que ma résolution avait été ajoutée et, en y basculant, elle a rendu l'écran correct. En fait, j'utilise Ubuntu 11.10 mais dans GNOME Classic.

Je suis un débutant de Linux, alors j'espère que j'ai écrit des choses décentes.

    
réponse donnée Valinux 29.02.2012 - 09:08
la source
0

Ne vous contentez pas de scripts ou de fichiers de configuration pouvant rendre votre écran de connexion inutilisable!

Au lieu de cela, connectez-vous et définissez vos paramètres d'écran préférés *, puis exécutez cette commande:

sudo ln ~/.config/monitors.xml /var/lib/lightdm/.config/monitors.xml

Votre résolution de connexion reflète désormais toujours les paramètres de l’utilisateur auquel vous êtes actuellement connecté.

* N'oubliez pas de cliquer sur "Appliquer"

    
réponse donnée Nathan J. Brauer 26.01.2015 - 21:35
la source
0

Le script d'Axelrod est un peu défectueux, car un grep pour 'connected' saisit également tous les affichages 'déconnectés' ... pas ce que nous voulons ...

En outre, l’utilisation de grep avec awk et tail, etc. De plus, dans get_resolution, nous modifions le code de retour à 1, car un code de retour égal à zéro indique généralement l'absence d'erreurs. Nous utilisons donc 1 si le premier paramètre est absent.

En conclusion, en instanciant une partie de la partie principale du script, celle-ci peut être extraite et exécutée à tout moment si nécessaire dans une bibliothèque de fonctions, ainsi que pour l’utilisation de variables locales qui n’ont pas besoin être désarmé.

function get_displays()
{
    xrandr -q | awk '( == "connected") {print ;}'
};

# the "\" and c/r were added for readability on this website
# I do not have them in my code variant that I use.
function get_resolution()
{
    [[ -z "" ]] && return 1;
    xrandr -q | \
    awk -v display="" '( == display &&  == "connected") {getline; print ;}';
};

function setup_displays()
{
    local   primary=${2:-"VGA-0"};
    local   lvds=${3:-"LVDS-0"};

    for display in $(get_displays);
    do
            local   resolution=${1:-"$(get_resolution $display)"};

            [[ $display == $primary ]] && local arg="--primary";
            [[ -n $resolution ]] && local mode="--mode $resolution";

            if [[ $display == $lvds ]];
            then
                    xrandr --output $display --off;
            elif [[ -n $mode ]];
            then
                    xrandr --output $display $arg $mode;
            fi;
    done;
};

setup_displays;
    
réponse donnée blake private_last_name 20.05.2016 - 18:12
la source
0

C'est comme ça que je l'ai fait fonctionner dans Xubuntu 16.04.

Vous devez obtenir le long de la chaîne pour la résolution souhaitée. Ceci est dans le résultat de la commande:

xrandr --verbose

Maintenant, choisissez la pièce avec la résolution souhaitée. Cela ressemblera à quelque chose comme:

1152x864 (0xa6) 108.000MHz +HSync +VSync
    h: width  1152 start 1216 end 1344 total 1600 skew    0 clock  67.50KHz
    v: height  864 start  865 end  868 total  900           clock  75.00Hz

À partir des données ci-dessus, vous devriez obtenir la chaîne 108.000 1152 1216 1344 1600 864 865 868 900 +HSync +VSync .

Pour trouver le nom de votre sortie, recherchez également une ligne similaire:

VGA1 connected 1152x864+0+0 (0xa4) normal (normal left inverted right x axis y axis) 306mm x 230mm

Ici, ma sortie est nommée VGA1 .

Maintenant, créez un script:

sudo gedit /usr/share/lightdmxrandr.sh

Ensuite, écrivez ce qui suit dans le fichier:

#!/bin/sh
xrandr --newmode "1152x864_75.00"  108.000  1152 1216 1344 1600  864 865 868 900 +HSync +VSync
xrandr --addmode VGA1 "1152x864_75.00"
xrandr --output VGA1 --mode 1152x864_75.00 --pos 0x0 --rotate normal

Enregistrez et fermez le fichier. Rendre le script exécutable:

sudo chmod a+rx /usr/share/lightdmxrandr.sh

Créez un fichier de configuration pour appeler le script que vous venez de créer.

sudo gedit /etc/lightdm/lightdm.conf.d/00-myres.conf

dans ce fichier entrez:

[Seat:*]
display-setup-script=/usr/share/lightdmxrandr.sh

Enregistrez et fermez le fichier. Redémarrez et j'espère que la résolution que vous avez choisie sera à votre connexion.

En pratique, c’est le seul moyen qui a fonctionné pour moi, même si la recréation de résolutions existantes n’est pas logique.

Réponse modifiée depuis cet question .

note

Une autre façon d’obtenir la chaîne de résolution longue est le programme cvt . Pour obtenir une chaîne pour la résolution 1152x864, taux de rafraîchissement 75.00:

cvt 1152 864 75

Cela m'a donné une résolution légèrement différente de la résolution de mon bureau, et c'est la raison pour laquelle je n'ai pas inclus la méthode dans la réponse principale.

    
réponse donnée Michael Faraday 28.05.2017 - 18:38
la source
0

Si vous utilisez l'écriture GTK de LightDM, vous pouvez exécuter xrandr -q pour trouver les noms de vos moniteurs puis éditer /etc/lightdm/lightdm-gtk-greeter et définir la propriété active-monitor comme décrit dans les commentaires à l'intérieur de ce fichier. Cette propriété peut prendre plusieurs valeurs ordonnées, notamment #cursor pour le moniteur affichant actuellement le curseur de la souris.

    
réponse donnée Dzamo Norton 04.04.2018 - 04:59
la source
0

j'aime joindre mon script qui configure les moniteurs sur l'une des touches multimédia de mon clavier que je n'utilise pas autrement. Actuellement, j'ai le bouton étiqueté «Windows Media Center» forcer mes écrans dans leur configuration préférée. De cette façon, si vous volez à l'aveuglette et que vos moniteurs ne se synchronisent pas avec la résolution souhaitée, écrasez simplement le raccourci clavier et tout est corrigé.

    
réponse donnée cryptozoologist 17.04.2018 - 01:03
la source
-1

"Modes d'écran préférés" pourrait être le problème

Je suppose que votre moniteur indique que la résolution d'écran élevée est préférable. Maintenant, vous souhaitez remplacer cette préférence par défaut . Voir ma réponse à une question très similaire pour plus de détails sur la manière de procéder.

J'ai eu le problème inverse: j'ai toujours eu une résolution d'écran inférieure (1280x1024) à celle que je voulais (1600x1200). J'espère que le correctif que j'ai trouvé (et décrit dans la réponse liée) sera applicable de manière analogue à votre problème.

    
réponse donnée Chriki 12.10.2014 - 16:15
la source
-2

J'ai eu le même problème sur mon MacBook Pro mi-2014 (11,1) sous Xenial. J'ai essayé toutes les solutions mentionnées ci-dessus sous différentes formes, mais invariablement, X était en train de passer en mode faible niveau de sécurité (mais affiché dans la résolution que je souhaitais définir comme valeur par défaut.

Après de longues querelles sur les forums et sur Google, il s’est avéré que j’avais oublié la solution la plus simple et potentielle: nomodeset. Cela a résolu le problème.

TL; DR: N'oubliez pas d'essayer le nomodeset! Esp. sur un MacbookPro 11,1.

    
réponse donnée IanGa 21.02.2016 - 14:45
la source
-3

J'ai créé ce script pour le rendre plus dynamique (plusieurs espaces de travail / différents moniteurs).

Seulement ennui: lorsque vous vous connectez à partir de lightdm, l'écran clignote toujours comme s'il voulait changer de résolution: s

    
réponse donnée Leon 19.12.2011 - 07:56
la source

Lire d'autres questions sur les étiquettes