Problema con la respuesta existente

Problema con la respuesta existente

Utilizo xset para apagar mis pantallas de esta manera:

xset dpms force off

¿Hay alguna manera de apagar una sola pantalla cuando tienes más de una asociada con la misma pantalla X?

Respuesta1

Si está utilizando Ubuntu Desktop, debería poder usar Sistema> Preferencias> Monitores. Esto debería mostrar todos sus monitores, haga clic en el que desea desactivar y luego use los botones de radio "encendido/apagado" para desactivar ese monitor específico.

Si desea hacer esto desde la línea de comando, debería poder usar xrandr --output <name> --offpara deshabilitar la salida, lo que debería hacer que el monitor se apague.

Respuesta2

Problema con la respuesta existente

Aunque hubo una respuesta hace siete años con tres votos a favor, no fue aceptada porque hace que todas las ventanas abiertas en la pantalla apagada migren a las pantallas activas restantes.

Brillo basado en software

En una computadora portátil puedes controlar el brillo a través de la tarjeta gráfica que controla el panel LCD. Con televisores y monitores externos, necesita una solución de software para reducir el brillo a 0. Ponerlo a cero es lo más parecido a la ilusión de apagarlo mientras se mantienen las ventanas activas en esa pantalla externa.

Version corta

Desde la línea de comando (sin scripts) use:

$ xrandr | grep " connected"
HDMI-0 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 1107mm x 623mm
eDP-1-1 connected primary 1920x1080+3840+2160 (normal left inverted right x axis y axis) 382mm x 215mm
DP-1-1 connected 3840x2160+1920+0 (normal left inverted right x axis y axis) 1600mm x 900mm

Esto le muestra la lista de nombres de monitores asignados por xrandr. Ahora, si desea desactivar DP-1-1el brillo, utilice:

xrandr --output DP-1-1 --brightness 0

Guión de bash de TV Sony

Aquí está uno de los tres guiones que he escrito:

#!/bin/bash

# NAME: sony
# PATH: /mnt/e/bin
# DESC: Set brightness of Sony TV
# DATE: Dec 9, 2017.

if [[ $# -ne 1 ]]; then
    xrandr --verbose | grep -A5 "^HDMI-0" > /tmp/sony
    head -n1 /tmp/sony
    echo "$(tput setaf 1)" ; tail -n1 /tmp/sony ; echo "$(tput sgr0)"
    rm /tmp/sony
    echo 'One argument required for brightness level, e.g. "sony .63"'
    echo 'will set brightness level of Sony TV to level .63 using xrandr'
    exit 1
fi

xrandr --output HDMI-0  --brightness "$1"

Para apagar la pantalla usaríassony 0

Llamar al script sin parámetros

Cuando llama al script sin parámetros, muestra el xrandrnombre de la pantalla junto con el brillo actual en rojo. Puedes cambiar el color rojo a otro modificando esta línea:

echo "$(tput setaf 1)" ; tail -n1 /tmp/sony ; echo "$(tput sgr0)"

Después de setafcambiar a 1:

  • 2para verde
  • 3para naranja
  • 4para azul, etc.

Modificar e instalar script

Cambie las dos apariciones de HDMI-0para que coincidan con su nombre de usuario. Puede obtener una lista de todas sus pantallas escribiendo xrandren la terminal.

Coloque el script en un directorio en su ruta, como por ejemplo:

/usr/local/bin/sony

Marque el script como ejecutable usando:

sudo chmod a+x /usr/local/bin/sony

Elegir qué directorio: /usr/local/binvs~/bin

Cuando creas scripts /usr/local/bindebes usar sudopoderes. Una mejor alternativa es utilizar el directorio ~/binque es una abreviatura de /home/YourUserID/bin:

  • crear el directorio~/bin
  • Cierra tu terminal y vuelve a abrirla.
  • el directorio recién creado ahora está en su ruta.
  • Todos los scripts que cree ~/binse pueden crear con sus permisos habituales.
  • para permitir la ejecución de sus scripts solo necesita usar chmod +xen lugar de chmod a+x( aes decir, todos los usuarios)

información relacionada