¿Activar la visualización a través de la consola tty?

¿Activar la visualización a través de la consola tty?

Tengo un script xrandr personalizado que habilita mis monitores externos y deshabilita el monitor de mi computadora portátil. Cuando desconecto mi monitor externo, no puedo habilitarlo porque mi pantalla está en blanco.

Me encantaría poder acceder a mi consola tty (ctrl-alt-f1) y activar xrandr para continuar (es decir xrandr --output eDP1 --auto). Ejecutar eso en mi tty dice "No se puede abrir la pantalla". ¿Algún consejo sobre cómo puedo hacer eso?

Respuesta1

No es necesario ingresar a la consola; puede lograr lo mismo agregando un método abreviado de teclado personalizado para volver a habilitar su pantalla interna.

Elija Configuración del sistema > Teclado > Atajos > Atajos personalizados, haga clic en + y agregue el comando a un atajo de su elección:

xrandr --output <screenname> --auto

Lo acabo de probar en mi sistema (portátil, 15.10); Apagué mi pantalla y la volví a habilitar exitosamente con el método abreviado de teclado, ejecutando el comando :)

Alternativamente

Podrías usar una versión editada deeste guión. La siguiente versión (pequeño script de fondo, verifica una vez cada cuatro segundos si hay una pantalla externa conectada) asegura que su pantalla interna esté encendida

#!/usr/bin/env python3
import subprocess
import time
# --- set your internal screen below (the example is my primary screen)
internal = "DVI-I-1"
#---

# don't change anything below
scr_info1 = 0

while True:
    time.sleep(4)
    # read the current screen setup from xrandr
    get_screens = subprocess.check_output("xrandr").decode("utf-8").splitlines()
    scr_data = [l for l in get_screens if " connected " in l]
    # count the number of connected screens
    scr_info2  = len(scr_data)
    # if the number of connected screens changes, 
    # switch off the internal one if there are two screens
    if scr_info2 != scr_info1:
        if scr_info2 == 2:
            ext = [s.split()[0] for s in scr_data if not internal in s][0]
            subprocess.Popen(["xrandr", "--output", internal, "--off", "--output", ext, "--auto"])
        else:
            subprocess.Popen(["xrandr", "--output", internal, "--auto"])

    scr_info1 = scr_info2

Como instalar

  1. Copie el script anterior en un archivo vacío, guárdelo comoswitch_screens.py
  2. En la sección principal de su secuencia de comandos, establezca el nombre de suinternopantalla. Para averiguarlo, abra una ventana de terminal y ejecute el comando xrandr(sin pantalla externa conectada). La línea con "conectado" muestra el nombre de su pantalla en la primera cadena, con un aspecto similar a: VGA-1o algo así.
  3. Pruebe: ejecútelo abriendo una ventana de terminal y escriba el comando:

    python3 /path/to/switch_screens.py
    

    Mientras se ejecuta el script, conecte su pantalla externa, espere a que su pantalla interna se apague y se desconecte nuevamente.

  4. Si todo funciona bien, agregue el siguiente comando a Aplicaciones de inicio: abra Dash > Aplicaciones de inicio > Agregar. Agregue el comando:

    /bin/bash -c "sleep 15 && python3 /path/to/switch_screens.py"
    

Cierra sesión y vuelve a iniciarla. Ahora tu pantalla interna se apaga automáticamente si se conecta una pantalla externa, y se vuelve a habilitar si la desconectas.

El script no añade ninguna carga notable a su sistema.

información relacionada