web-dev-qa-db-fra.com

Comment réinitialiser les paramètres du moniteur aux paramètres par défaut via le terminal?

J'ai un problème épineux concernant plusieurs moniteurs sur KDE (Kubuntu). J'ai un ordinateur portable qui, à la maison, est connecté à deux écrans - VGA et HDMI. Cela ne fonctionne que lorsque l'écran d'ordinateur portable intégré est désactivé (au moins, on m'a dit cela).

Le problème est que maintenant, j'ai pris l'ordinateur portable et l'ai démarré sans aucun moniteur externe connecté. Le système se souvient que l'affichage intégré était désactivé, il le désactive même s'il s'agit du seul moniteur connecté. Évidemment, cela rend l'ordinateur portable pratiquement inutilisable. Passer à un terminal via Ctrl+Alt+F# fonctionne, je peux me connecter; même Guest fonctionne normalement.

La question est, comment puis-je (re) configurer les paramètres de contrôle d'un compte via des terminaux, puisque je ne peux pas utiliser l'interface graphique?

Merci

32
Martin Melka

Bonne question. Un peu délicat à répondre, mais voici un essai.

Réponse de base

Il existe en fait une petite possibilité de réinitialisation incluse dans X11 . Vous pouvez le trouver à /etc/X11/Xreset. Vous pouvez utiliser le répertoire Xreset (Xreset.d) pour coller un script qui s'exécute automatiquement lorsqu'un utilisateur se déconnecte. Le fichier README:

# Scripts in this directory are executed as root when a user log out from
# a display manager using /etc/X11/Xreset.
# The username of the user logging out is provided in the $USER environment
# variable.

Vous pouvez donc a) ajouter un script de réinitialisation dans /etc/X11/Xreset.d et b) créer un script associé à un programme de lancement qui configure votre double affichage externe. En tant que tel, vous vous déconnecteriez et tout serait revenu à la normale, vous vous connecteriez à votre ordinateur portable, vous lanceriez dans le lanceur pour les écrans et vous profiteriez de la vie.

Plus d'information

  1. Vous voudrez peut-être regarder dans Sudo dpkg-reconfigure -phigh xserver-xorg pour réinitialiser le serveur x ou (probablement mieux regarder le réponse Mik suggéré dans les commentaires).

  2. Un type de SuSE a écrit un Nice article à propos de X.

  3. Dans un rapport de bogue résolu, quelqu'un déclare:

    les administrateurs peuvent déposer des scripts dans /etc/X11/Xreset.d/ pour s'exécuter après la déconnexion de l'utilisateur.

  4. Voici le contenu du fichier:

Vous pouvez le trouver sur votre propre système.

#!/bin/sh
#
# /etc/X11/Xreset
#
# global Xreset file -- for use by display managers

# $Id: Xsession 967 2005-12-27 07:20:55Z dnusinow $

set -e

PROGNAME=Xreset
SYSSESSIONDIR=/etc/X11/Xreset.d

if [ ! -d "$SYSSESSIONDIR" ]; then
  # Nothing to do, exiting
  exit 0
fi

# use run-parts to source every file in the session directory; we source
# instead of executing so that the variables and functions defined above
# are available to the scripts, and so that they can pass variables to each
# other
SESSIONFILES=$(run-parts --list $SYSSESSIONDIR)
if [ -n "$SESSIONFILES" ]; then
  set +e
  for SESSIONFILE in $SESSIONFILES; do
    . $SESSIONFILE
  done
  set -e
fi 

exit 0

# vim:set ai et sts=2 sw=2 tw=80:
9
don.joey

Chaque fois que je mets mon ordinateur portable Lubuntu en veille lorsqu'il est affiché exclusivement sur mon téléviseur et que je le réveille après l'avoir débranché, je me retrouve avec un écran noir car la résolution attribuée est incorrecte. Donc, même problème que vous, je dois régler la résolution du terminal virtuel TTY1 que je peux atteindre avec Ctrl-alt-F1, mais xrandr ne semble pas fonctionner. J'ai parcouru des pages de résultats de recherche Google avant de trouver la solution. J'ai donc pensé partager.

L'essentiel est que xrandr ne fonctionne apparemment que sur l'affichage actuellement ciblé. Vous devez donc enchaîner une commande de veille avant votre commande xrandr pour vous donner le temps de revenir au serveur X avec Ctlr-alt-F7 pour que la commande soit exécutée à cet endroit. Sinon, vous obtenez une erreur comme xrandr: Configure crtc 0 failed.

  1. Ouvrir un terminal virtuel avec Ctrl-alt-F1 et se connecter

Pour obtenir les noms des écrans connectés (et en supposant que votre serveur X s'exécute sur :0):

  1. $xrandr -d :0

Pour modifier les paramètres d'affichage:

  1. $sleep 5; xrandr --output LVDS1 --auto -d :0

Remplacez LVDS1 par la sortie que vous souhaitez modifier et --auto par les paramètres xrandr que vous souhaitez utiliser.

  1. Basculez sur le serveur X avec Ctrl-alt-F7 avant l'expiration du délai de veille défini dans la commande ci-dessus.

Il doit y avoir un meilleur moyen de le faire. Mais ça marche.

Source originale de la solution: http://www.lgqyc.com/server-14-04-3-lts-display-orientation/

Découvrez ce commentaire pour une possible amélioration de ma solution (non testé moi-même).

17
Gabriel Morin

La commande xrandr -s 0 devrait réinitialiser vos affichages dans le terminal. Plus peut être trouvé sur le site suivant ou de man xrandr dans le terminal.

https://linuxacademy.com/blog/linux/solution-resetting-your-screen-resolution-with-xrandr/

16
Miguel

as-tu essayé (qc aime)

DISPLAY=:0 xrandr --output LVDS1 --auto

depuis un tty différent (par exemple, tty1),

auquel vous pouvez accéder via Ctrl Alt F1 et revenir au tty7 (graphique standard) avec Ctrl Alt F7?

4

Une chose que je n'ai pas encore mentionnée, mais qui pourrait être critique: si vous utilisiez un ordinateur portable Thinkpad , la solution serait simple: Fn+F7. Si vous utilisez un ordinateur portable d'un autre fabricant, il y aura vraisemblablement une autre clé de type Fn qui basculera entre les sorties d'affichage/d'écran (par exemple, beamer, moniteur externe, écran interne; miroir, marche/arrêt, etc.). et ainsi de suite) au niveau du BIOS (je supposerais - Edit : Voir Comment fonctionnent les touches Fn? pour plus de détails à ce sujet ).

Il ne serait donc pas nécessaire de réinitialiser quoi que ce soit dans Linux, pour ainsi dire.

2