C'è un modo per disattivare i singoli schermi?


13

Uso xset per disattivare i miei schermi in questo modo:

xset dpms force off

C'è un modo per spegnere un singolo schermo quando ne hai più di uno associato allo stesso display X?


@myrdd: Potresti spiegare cosa vorresti vedere migliorato in modo specifico?
David Foerster,

Vorrei conoscere i dettagli: (a) La funzionalità desiderata è tecnicamente possibile? —Così, per "disattivare" i singoli schermi ( non intendo xrandr [...] --off) - (b) Ci sono dipendenze? Il chipset della scheda grafica e / o il driver devono avere una funzione specifica? - (c) Dato che la funzione desiderata non è ancora disponibile (come comando CLI), quali sarebbero i prossimi passi?
myrdd,

Risposte:


4

Se si utilizza Ubuntu Desktop di serie, si dovrebbe essere in grado di utilizzare Sistema> Preferenze> Monitor. Questo dovrebbe mostrare tutti i tuoi monitor, fare clic su quello che desideri disabilitare, quindi utilizzare i pulsanti di opzione "on / off" per disabilitare quel monitor specifico.

Se vuoi farlo dalla riga di comando, dovresti essere in grado xrandr --output <name> --offdi disabilitare l'uscita che dovrebbe far spegnere il monitor.


1
Il problema è che quando si utilizza Nvidia TwinView, entrambe le schermate appaiono come una sia su xrandr che su xset, quindi non è possibile spegnere i monitor singolarmente. Inoltre, le Preferenze di Gnome Monitor sono disabilitate e devi invece usare il controllo driver Nvidia. Quando disabiliti uno dei monitor con le impostazioni di nvidia, disabilita completamente il monitor, bloccando tutte le finestre sull'altro schermo. Voglio solo spegnere un monitor per guardare un film sull'altro.
Neil,

@Neil Probabilmente è utile aggiungere le tue informazioni hardware alla domanda e taggarle anche con nvidia.
Jorge Castro,

2
@JorgeCastro non è correlato all'hardware e a TwinView: sembra che non ci sia modo di spegnere uno schermo singolarmente quando si trova sullo stesso $ DISPLAY, tranne che rimuoverlo / disabilitarlo dalla configurazione RandR. Vogliamo spegnere, ad esempio, lo schermo del laptop, ma mantenere le finestre lì.
azzurrato l'

@muru sei una scimmia editrice! Continuo a vedere le tue modifiche.
MathCubes,

4

Problema con la risposta esistente

Sebbene ci sia stata una risposta sette anni fa con tre voti positivi, non è stata accettata perché fa migrare tutte le finestre aperte sul display spento ai rimanenti display attivi.

Luminosità basata su software

Su un laptop è possibile controllare la luminosità tramite la scheda grafica che controlla il pannello LCD. Con TV e monitor esterni hai bisogno di una soluzione software per abbassare la luminosità a 0. Portandola a zero è la più vicina Sono arrivato all'illusione di spegnerla mantenendo le finestre attive su quel display esterno.

Versione breve

Dalla riga di comando (senza script) utilizzare:

$ 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

Questo mostra l'elenco dei nomi dei monitor assegnati da xrandr. Ora, se si desidera DP-1-1disattivare la luminosità, utilizzare:

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

Script TV di Sony TV

Ecco uno dei tre script che ho scritto:

#!/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"

Per disattivare il display si utilizzerà sony 0

Chiamata di script senza parametri

Quando si chiama lo script senza parametri, viene visualizzato il xrandrnome della schermata insieme alla luminosità corrente in rosso. Puoi cambiare il colore rosso in un altro modificando questa riga:

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

Dopo aver setafmodificato il 1in:

  • 2 per il verde
  • 3 per l'arancia
  • 4 per blu, ecc.

Modifica e installazione di script

Modificare le due occorrenze di HDMI-0in modo che corrispondano al nome visualizzato. È possibile ottenere un elenco di tutte le schermate digitando xrandrnel terminale.

Inserisci lo script in una directory nel tuo percorso come:

/usr/local/bin/sony

Contrassegna lo script come eseguibile utilizzando:

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

Scegliere quale directory: /usr/local/binvs~/bin

Quando si creano script, /usr/local/binè necessario utilizzare i sudopoteri. Un'alternativa migliore è usare la directory ~/binche è una scorciatoia per /home/YourUserID/bin:

  • creare la directory ~/bin
  • chiudi il tuo terminale e riaprilo.
  • la directory appena creata è ora nel tuo percorso.
  • tutti gli script che crei ~/binpossono essere creati con le tue autorizzazioni regolari.
  • per abilitare l'esecuzione dei tuoi script devi solo usare chmod +xpiuttosto che chmod a+x(il asignificato di tutti gli utenti)

2
La ringrazio per la risposta. Non conoscevo l' xrandr [...] --brightnessopzione. Nota che hai parlato in particolare dei display Sony, ma --brightnessdovrebbe funzionare anche con qualsiasi altro display. Ho provato --brightnesssul mio laptop e ha funzionato. Tuttavia, --brightness 0non ho spento la retroilluminazione ... —Ho anche testato --brightnesssul mio computer desktop: sfortunatamente, gli schermi sono rimasti neri solo per 1 o 2 secondi . Dopo questi 1-2 secondi la luminosità viene ripristinata automaticamente. Suppongo che funzioni molto dipende dalla combinazione gpu + driver + schermo.
myrdd il

1
@myrdd In realtà ho tre script sony , toshiba e alien per due display esterni e display per laptop integrato. Sì, la retroilluminazione non si spegne, quindi non si ottiene "nero puro" ma si tratta di una stretta soluzione. Il ripristino automatico da 1 a 2 secondi non influisce su nessuno dei miei display ma stavo eseguendo driver nVidia per la porta HDMI nVidia cablata e il driver nVidia prendendo il controllo di Intel HD530 iGPU due schermi: Thunderbolt3 e integrato.
WinEunuuchs2Unix il

nessuno script è necessario, basta eseguire xrandr per trovare l'ID di output e quindi xrandr --output HDMI-1 --brightness 0, per favore semplifica la risposta
brauliobo

2
@brauliobo Piuttosto che cancellare la maggior parte della risposta, ho messo una versione breve in cima che penso sia un compromesso.
WinEunuuchs2Unix
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.