Cambiar monitores desde la línea de comando

21

Como encontré un método diferente para lograr mi objetivo y no se publicó ninguna respuesta a mi pregunta anterior, he cambiado la pregunta para que coincida con la respuesta que encontré.

¿Hay alguna manera de apagar el monitor de mi computadora portátil y encender el monitor externo (y viceversa) completamente desde la línea de comandos?

Malabarba
fuente
Estaba buscando en Google exactamente lo mismo y me topé con esta pregunta que me preguntaste hace solo 7 minutos. Eso es increíble. Espero que obtengas una respuesta.
JD Long
Sé que puede colocar un básico xorg.confen el /root/yorg.conf.newdirectorio raíz ( ), si inicia en modo de recuperación y ejecuta X --configure(o similar).
Bobby
El problema (al menos para mí) es que no quiero escribir un xorg.conf a mano. Quiero volcar mi configuración actual en formato xorg.conf, luego cambiar la configuración con la GUI y luego volcarla en un archivo. Entonces puedo escribir un script para cambiar entre las dos configuraciones realmente fácil. En este momento tengo que ir a la GUI y hacer clic media docena de veces para cambiar mi configuración.
JD Long
@JD Long: Eso es exactamente lo que estoy tratando de hacer también. Asegúrese de escribir aquí si alguna vez encuentra la manera. Las únicas dos cosas que faltan para mi script son los archivos xorg.conf y un comando para actualizar las pantallas actuales (sin tener que reiniciar gdm).
Malabarba
He estado experimentando con Disper hoy ( willem.engen.nl/projects/disper ). El archivo de ayuda muestra una opción -p que se supone que debe exportarse. Solo ese interruptor no está implementado. triste trombón
JD Long

Respuestas:

28

Con los comandos

xrandr --output VGA-0 --auto
xrandr --output LVDS --off 

La pantalla se transfiere automáticamente a la pantalla externa. Ni siquiera necesita poderes sudo. Para averiguar el nombre de las pantallas solo haz:

xrandr -q

Lo que debería dar algo como:

VGA-0 connected 1280x1024+0+0 (normal left inverted right x axis y axis) 338mm x 270mm
...
LVDS connected (normal left inverted right x axis y axis)
...

La ampliación de las pantallas probablemente se puede lograr de manera similar.

Malabarba
fuente
Recibo el mensaje "No se puede abrir la pantalla" cuando ejecuto xrandr (con alguna marca). cual puede ser la razon?
brandizzi
44
Si xrandr -qda LVDS1Y VGA1: Sólo externa: xrandr --output VGA1 --auto --output LVDS1 --off. Extended principal izquierdo, interno: xrandr --output VGA1 --auto --left-of LVDS1 --output LVDS1 --auto --primary. Extended primaria izquierda, exterior: xrandr --output VGA1 --auto --left-of LVDS1 --primary --output LVDS1 --auto. Sólo interno: xrandr --output VGA1 --off --output LVDS1 --auto.
¡buena respuesta! ¿Quizás valga la pena explicar para los principiantes cuál será generalmente el interno y el externo entre VGA y LVDS?
Matifou
4

Esto ciertamente no es una respuesta directa a su pregunta. Pero lo encontré útil en mi caso de uso. Esto no es una exportación del archivo de configuración, pero muestra cómo automatizar Disper en un script de shell. Estoy configurando esto para que se ejecute cada vez que conecto / desengancho y parece estar solucionando mis problemas de visualización al acoplar y desacoplar mi computadora portátil:

Tienes que tener disper y Python instalados.

#!/bin/sh
#
# Detect displays and move panels to the primary display
#

PYTHON=python2.6
DISPER=/usr/bin/disper

# disper command will detect and configure monitors
$PYTHON $DISPER --displays=auto -e -t left

# parse output from disper tool how many displays we have attached
# disper prints 2 lines per displer
lines=`$PYTHON $DISPER -l|wc -l`

display_count=$((lines / 2))

echo $display_count

echo "Detected display count:" $display_count

# Make sure that we move panels to the correct display based
# on the display count
if [ $display_count = 1 ] ; then
    echo "Moving panels to the internal LCD display"
    gconftool-2 \
    --set "/apps/panel/toplevels/bottom_panel_screen0/monitor" \
    --type integer "0"
    gconftool-2 \
    --set "/apps/panel/toplevels/top_panel_screen0/monitor" \
    --type integer "0"
    sleep 5
    pkill gnome-panel
else
    echo "Moving panels to the external display"
    gconftool-2 \
    --set "/apps/panel/toplevels/top_panel_screen0/monitor" \
    --type integer "1"
    gconftool-2 \
    --set "/apps/panel/toplevels/bottom_panel_screen0/monitor" \
    --type integer "1"
    sleep 5
    pkill gnome-panel
fi
JD Long
fuente
Disper parece una herramienta útil. Lo investigaré y veré si puedo hacer que se ajuste a mi caso. La única diferencia es que quiero deshabilitar el monitor de la computadora portátil, en lugar de extenderlo. Es un poco más suave en mi computadora portátil de gama baja, y se ocupa de los paneles automáticamente.
Malabarba
Pensándolo bien, mi tarjeta de video ati podría no ser compatible, ya que solo afirman ser compatibles con nvidia.
Malabarba
Ok, la página diper me llevó a esta página: thinkwiki.org/wiki/Sample_Fn-F7_script Resulta que es bastante fácil cambiar monitores con el comando xrandr.
Malabarba
gracias por publicar el enlace xrandr. Investigaré eso. Estoy dando vueltas con las mismas cosas. FWIW, mi computadora portátil tiene una tarjeta Intel y estoy usando disper sin problemas.
JD Long