¿Cómo restablecer la configuración del monitor a la predeterminada a través del terminal?

32

Tengo un problema complicado con respecto a varios monitores en KDE (Kubuntu). Tengo una computadora portátil que, en casa, está conectada a dos monitores: VGA y HDMI. Eso funciona solo cuando la pantalla del portátil incorporada está desactivada (al menos eso me dijeron).

El problema es que ahora saqué la computadora portátil y la encendí sin monitores externos conectados. El sistema recuerda que la pantalla integrada estaba desactivada, por lo que la desactiva aunque sea el único monitor conectado. Obviamente, eso hace que la computadora portátil sea prácticamente inutilizable. Cambiar a un terminal a través de Ctrl+ Alt+ F#funciona, puedo iniciar sesión; incluso Guest trabaja normalmente.

La pregunta es, ¿cómo (re) configuro la configuración del monitor de una cuenta a través de terminales, ya que no puedo usar la GUI?

Gracias

Martin Melka
fuente
3
Pregunta relacionada con una respuesta reciente xrandrque podría ser útil.
2
Esto ayudó cuando pude usar la consola en el segundo monitor, xrandr pudo establecer mi configuración. Sin embargo, cuando solo puedo usar el terminal sin interfaz gráfica de usuario, xrandr dice que no puede abrir la pantalla, por lo que es bastante inútil.
Martin Melka
¿Cómo deshabilitó la pantalla del portátil incorporado?
loco por natty
No sé si hay una diferencia relevante para KDE, pero en ubuntu estándar funciona bien para mí (con el monitor interno apagado a través de la GUI, con la tapa del portátil cerrada y el portátil sentado cómodamente en su estación de acoplamiento).
loco por natty
1
¿Quiere decir que tengo que establecer la configuración cada vez que uso la computadora portátil con y sin monitores externos? Si es así, eso apesta. De todos modos, necesito saber cómo hacerlo a través de tty
Martin Melka

Respuestas:

9

Buena pregunta. Un poco difícil de responder, pero aquí hay una oportunidad.

Respuesta básica

En realidad, hay una pequeña posibilidad de reinicio incluida en X11 . Lo puedes encontrar en /etc/X11/Xreset. Puede usar el directorio Xreset ( Xreset.d) para pegar un script que se ejecuta automáticamente cuando un usuario cierra sesión. El archivo 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.

Por lo tanto, podría a) agregar una secuencia de comandos de reinicio /etc/X11/Xreset.dyb) hacer una secuencia de comandos adjunta a un iniciador que configure sus pantallas externas duales. Como tal, cerraría la sesión y todo volvería a la normalidad, iniciaría sesión en su computadora portátil, golpearía el iniciador para las pantallas y disfrutaría de la vida.

Más información

  1. Es posible que desee investigar sudo dpkg-reconfigure -phigh xserver-xorgpara restablecer el servidor x o (probablemente mejor ver la respuesta que Mik sugirió en los comentarios).

  2. Un tipo de SuSE escribió un buen artículo sobre X.

  3. En un informe de error resuelto, alguien dice:

    Los administradores pueden colocar scripts en /etc/X11/Xreset.d/ para ejecutarlos después de que el usuario cierre sesión.

  4. Este es el contenido del archivo:

Puede encontrarlo en su propio sistema.

#!/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:
don.joey
fuente
Interesante. Sin embargo, el script de reinicio no hace nada. Lo ejecuté a través de tty, reinicié la computadora, pero todo fue igual. Lo mismo con ponerlo en la carpeta: | Traté de poner comandos xrandr dentro también, pero fue en vano
Martin Melka
El script de reinicio ejecuta lo que se encuentre en el directorio Xreset.d.
don.joey
1
Correcto. Al principio no funcionó para mí, porque olvidé agregar permiso ejecutable al script. Ahora funciona como un encanto! Gracias. Un pequeño comentario, sin embargo. Si pongo la computadora portátil en reposo y desconecto los monitores durante ese tiempo, no me he desconectado y la pantalla no se reiniciará. ¿Hay alguna manera de cerrar sesión a través de tty? Intenté iniciar sesión como el mismo usuario que usa X, pero logoffsolo me desconectó de tty, no de X.
Martin Melka
Hola martin. ¡Estoy feliz de que lo hayas hecho funcionar! ¿Intentaste algo como gnome-session-quit? Fuente: askubuntu.com/questions/15795/…
don.joey
17

Cada vez que apago mi computadora portátil Lubuntu cuando se muestra exclusivamente en mi televisor y la despierto después de haberla desenchufado, termino con una pantalla en negro porque se asigna una resolución incorrecta. Así que el mismo problema que usted, necesito configurar la resolución desde el terminal virtual TTY1 que puedo alcanzar con Ctrl-alt-F1, pero xrandr no parece funcionar. Recorrí páginas de resultados de búsqueda de Google antes de encontrar la solución, así que pensé en compartir.

La clave es que xrandr aparentemente solo funciona en la pantalla actualmente enfocada. Por lo tanto, debe encadenar un comando de suspensión antes del comando xrandr para darle tiempo para volver al servidor X con Ctlr-alt-F7 para que el comando se ejecute allí. De lo contrario, aparece un error como xrandr: Configure crtc 0 failed.

  1. Abra la terminal virtual con Ctrl-alt-F1 e inicie sesión

Para obtener los nombres de las pantallas conectadas (y suponiendo que su servidor X se esté ejecutando :0):

  1. $xrandr -d :0

Para modificar la configuración de visualización:

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

Sustituya LVDS1 por la salida que desea modificar y --auto por los parámetros xrandr que desee usar.

  1. Cambie al servidor X con Ctrl-alt-F7 antes de que transcurra el retraso de suspensión que configuró en el comando anterior.

Tiene que haber una mejor manera de hacer esto. Pero funciona.

Fuente original de la solución: http://www.lgqyc.com/server-14-04-3-lts-display-orientation/

Echa un vistazo a este comentario para una posible mejora de mi solución (no me probé).

Gabriel Morin
fuente
Esta fue la única respuesta que funcionó para mí. Una loca coincidencia, un tema de 3 años tenía la única respuesta funcional enviada hace 11 horas :). EDITAR: oh complemento, EXACTAMENTE hace 3 años. Extraño ...
Adam Plocher
Guau. Esto me ha estado volviendo loco por años. Su respuesta parece ridícula (¿dormir? ¿En serio?), Pero funciona, ¡así que gracias!
Tyler
66
Resulta que hay un poco mejor manera de hacer esto: chvt 7; xrandr --output LVDS1 --auto -d :0. chvt 7 cambia al VT7 por usted, por lo que no necesita dormir / Ctrl-Alt-F7. Es posible que necesite un sleep 5entre las llamadas chvty xrandr, pero aun así guarda las pulsaciones de teclas manuales.
Tyler
Una opción sería crear un .xsessionrcejecutable en su directorio personal e incluir un comando xrandr --autopara forzar la reconfiguración automática de todas las pantallas cada vez que inicie sesión.
Mikko Rantalainen
16

El comando xrandr -s 0debería restablecer sus pantallas en la terminal. Se puede encontrar más en el siguiente sitio o desde la man xrandrterminal.

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

Miguel
fuente
Bienvenido a Ask Ubuntu! Si bien esto responde a la pregunta, sería preferible incluir aquí las partes esenciales de la respuesta y proporcionar el enlace para referencia.
guntbert
44
Si, esto funciona. Las otras respuestas son demasiado hinchadas, complicadas o no eficientes. También podría ser útil tener en cuenta que si experimenta una pantalla en negro (y no puede ver nada), puede abrir su terminal con teclas de acceso directo y escribir a ciegas "xrandr -s 0". Eso es lo que hice :)
kodeart
Tenga en cuenta que en configuraciones de dos monitores, este comando puede desactivar el segundo monitor, en lugar de configurar ambos monitores a su resolución predeterminada.
Darien
En mi sistema, el comando desactiva ambos monitores externos, pero también restablece su configuración predeterminada, lo que corrige la detección de VGA DCC que se rompe de vez en cuando. Después de lo cual solo necesito volver a habilitar las pantallas y reposicionarlas usando la herramienta de pantallas. No es ideal, pero es muy viable y mejor que mi solución anterior, que era suspender y reactivar la computadora varias veces hasta que restablezca el puerto VGA.
Guss
4

has intentado

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

de un diferente tty(por ejemplo, tty1),

a través de la cual puede acceder Ctrl Alt F1y volver a (el gráfico estándar) tty7 con Ctrl Alt F7?

loco por natty
fuente
1
Esto me da xrandr: Configure crtc 1 failedcuando intento --salir HDMI1 - apagado. --auto no dice nada, hasta que lo apago manualmente. Entonces --auto arroja el mismo error
Martin Melka
necesitaría investigar más de cerca; Soy positivo que podría trabajar, con el tiempo ...
nuez sobre Natty
2

Una cosa que no he mencionado todavía, pero que podría ser crítica: si estuviera usando una computadora portátil Thinkpad , la solución sería sencilla: Fn+ F7. Si está utilizando una computadora portátil de otro fabricante, es muy probable que haya alguna otra tecla de tipo Fn que alternará entre las salidas de pantalla / pantalla (por ejemplo, proyector, monitor externo, pantalla interna, espejo, encendido / apagado, y similares) en el nivel de BIOS (supongo - Editar : consulte ¿Cómo funcionan las teclas Fn? para obtener más detalles sobre esto ).

Por lo tanto, no habría necesidad de restablecer nada dentro de Linux, por así decirlo.

loco por natty
fuente
1
Tengo una IdeaPad, pero las teclas Fn + no funcionan (la única que sí funciona es Sleep)
Martin Melka
Mi presentimiento es: ¡sigue con este! No tengo tiempo para investigar a fondo a mí mismo en la actualidad, aunque hay una posibilidad buena que pude hacer alguna optimización en este campo en mi IBM Thinkpad X41, pero -por lo que es worth- mayoría de las teclas Fn hacen trabajo en mi sistema (tanto en mi portátil, así como en mi teclado externo "thinkvantage" sk-8855): en el centro de software ubuntu (o sináptico) a primera vista superficial, al menos esta cosa está instalada tp-smapi-dkms 0.41-1 . Por lo tanto, puede intentar instalarlo, buscarlo y / o alternativas similares que harán que sus teclas Fn finalmente cobren vida.
loco por natty
también echa un vistazo a tpctl.sourceforge.net
nutty about
Difícil de creer, pero esto fue todo. Cambiar pantallas - Fn+ F8en Dell Latitude. Después de sacarlo de la estación de acoplamiento, a veces no enciende la pantalla integrada. (Utilizo solo una pantalla VGA externa con la estación de acoplamiento). Intentar cambiar la pantalla parecía una tontería, pero encendió la pantalla incorporada.
Ferdinand Prantl