¿Hay alguna manera de apagar pantallas individuales?

13

Yo uso xset para apagar mis pantallas así:

xset dpms force off

¿Hay alguna forma de desactivar una sola pantalla cuando tiene más de una asociada con la misma pantalla X?

Neil
fuente
@myrdd: ¿Podría explicar lo que le gustaría ver mejorado específicamente?
David Foerster
Me gustaría conocer los detalles: (a) ¿Es técnicamente posible la característica deseada? —Es decir, "apagar" pantallas individuales (no me refiero xrandr [...] --off) - (b) ¿Hay alguna dependencia? ¿El chipset de la tarjeta gráfica y / o el controlador deben tener una función específica? (c) Dada que la función deseada aún no está disponible (como un comando CLI), ¿cuáles serían los siguientes pasos?
myrdd

Respuestas:

4

Si usa Ubuntu Desktop de serie, debería poder usar Sistema> Preferencias> Monitores. Esto debería mostrar todos sus monitores, haga clic en el que desea deshabilitar, y luego use los botones de radio 'on / off' para deshabilitar ese monitor específico.

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

Andy
fuente
1
El problema es que cuando usa Nvidia TwinView, ambas pantallas aparecen como una para xrandr y xset, por lo que no puede apagar los monitores individualmente. Además, las preferencias de Monitor de Gnome están deshabilitadas y, en su lugar, debe usar el control del controlador Nvidia. Cuando deshabilita uno de los monitores con configuración de nvidia, deshabilita completamente el monitor, bloqueando todas sus ventanas en la otra pantalla. Solo quiero apagar un monitor para ver una película en el otro.
Neil
@Neil Probablemente sea útil agregar su información de hardware a la pregunta y etiquetarla también con nvidia.
Jorge Castro el
2
@JorgeCastro no está relacionado con el hardware y TwinView: parece que no hay forma de apagar una pantalla individualmente cuando está en la misma $ DISPLAY, excepto por eliminarla / desactivarla de la configuración RandR. Queremos apagar, por ejemplo, la pantalla del portátil, pero mantener las ventanas allí.
azulado
@muru eres un mono de edición! Sigo viendo tus ediciones.
MathCubes
4

Problema con la respuesta existente

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

Brillo basado en software

En una computadora portátil puede 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. Girarlo a cero es lo más cercano que he llegado a la ilusión de apagarlo mientras mantiene 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 monitor asignados por xrandr. Ahora, si desea DP-1-1desactivar el uso del brillo:

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

Guión Sony TV bash

Aquí hay 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ía sony 0

Script de llamada sin parámetros

Cuando llama al script sin parámetros, muestra el xrandrnombre de la pantalla junto con el brillo actual en rojo. Puede 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 el 1a:

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

Modificar e instalar script

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

Coloque el script en un directorio en su ruta como:

/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 en /usr/local/bindebes usar sudopoderes. Una mejor alternativa es usar el directorio ~/binque es la abreviatura de /home/YourUserID/bin:

  • crear el directorio ~/bin
  • cierre su terminal y vuelva a abrirlo.
  • el directorio recién creado ahora está en su camino.
  • Todas las secuencias de comandos que cree ~/binse pueden crear con sus permisos habituales.
  • para permitir la ejecución de sus scripts solo necesita usar en chmod +xlugar de chmod a+x(el asignificado de todos los usuarios)
WinEunuuchs2Unix
fuente
2
Gracias por su respuesta. No conocía la xrandr [...] --brightnessopción. Tenga en cuenta que ha hablado sobre las pantallas de Sony en particular, pero también --brightnessdebería funcionar para cualquier otra pantalla. Lo probé --brightnessen mi computadora portátil y funcionó. Sin embargo, --brightness 0no apagó la luz de fondo ... —También lo probé --brightnessen mi computadora de escritorio: desafortunadamente, la (s) pantalla (s) se mantuvieron en negro solo durante 1 o 2 segundos . Después de esos 1–2 segundos, el brillo se restablece automáticamente. Supongo que si funciona depende en gran medida de la combinación de gpu + controlador + pantalla.
myrdd
1
@myrdd De hecho, tengo tres scripts sony , toshiba y alien para dos pantallas externas y una pantalla de computadora portátil incorporada. Sí, la luz de fondo no se apaga, por lo que no se obtiene "negro puro", pero es una solución alternativa. El reinicio automático de 1 a 2 segundos no afecta a ninguna de mis pantallas, pero estaba ejecutando los controladores nVidia para el puerto HDMI nVidia cableado y el controlador nVidia que toma el control de las dos pantallas Intel HD530 iGPU: Thunderbolt3 e incorporado.
WinEunuuchs2Unix
sin guión es necesario, basta con ejecutar xrandr para encontrar Identificación del producto y, a continuación xrandr --output HDMI-1 --brightness 0, por favor simplificar la respuesta
brauliobo
2
@brauliobo En lugar de eliminar la mayor parte de la respuesta, puse una versión corta en la parte superior, lo que creo que es un compromiso.
WinEunuuchs2Unix