15 votes

Y a-t-il un moyen de désactiver les écrans individuels ?

J'utilise xset pour éteindre mes écrans comme ceci :

xset dpms force off

Existe-t-il un moyen d'éteindre un seul écran lorsque plusieurs sont associés au même affichage X ?

0 votes

@myrdd : Pourriez-vous expliquer ce que vous souhaiteriez voir améliorer spécifiquement ?

0 votes

J'aimerais connaître les détails : (a) La fonction souhaitée est-elle techniquement possible, c'est-à-dire qu'il est possible de "désactiver" des écrans individuels (je ne le fais pas) ? no moyenne xrandr [...] --off )- (b) Existe-t-il des dépendances ? En d'autres termes, le chipset de la carte graphique et/ou le pilote doivent-ils posséder une fonctionnalité spécifique ? (c) Étant donné que la fonctionnalité souhaitée n'est pas encore disponible (en tant que commande CLI), quelles seraient les prochaines étapes ?

8voto

Andy Points 822

Si vous utilisez le bureau Ubuntu standard, vous devriez pouvoir utiliser Système > Préférences > Moniteurs. Cliquez sur celui que vous souhaitez désactiver, puis utilisez les boutons radio "on/off" pour désactiver ce moniteur spécifique.

Si vous voulez faire cela à partir de la ligne de commande, vous devriez pouvoir utiliser xrandr --output <name> --off pour désactiver la sortie qui devrait déclencher la mise hors tension du moniteur.

1 votes

Le problème est que lorsque vous utilisez Nvidia TwinView, les deux écrans apparaissent comme un seul à la fois pour xrandr et xset, et vous ne pouvez donc pas éteindre les moniteurs individuellement. De plus, les préférences de moniteur de Gnome sont désactivées et vous devez utiliser le contrôle du pilote Nvidia à la place. Lorsque vous désactivez un des moniteurs avec nvidia-settings, il désactive complètement le moniteur, bloquant tout votre Windows sur l'autre écran. Je veux juste pouvoir éteindre un moniteur pour regarder un film sur l'autre.

0 votes

@Neil Il est probablement utile d'ajouter vos informations matérielles à la question et de la taguer avec nvidia également.

2 votes

@JorgeCastro ce n'est pas lié au matériel et à TwinView : il semble qu'il n'y ait aucun moyen d'éteindre un écran individuellement lorsqu'il se trouve sur le même $DISPLAY, sauf en le supprimant/le désactivant dans la configuration RandR. Nous voulons éteindre l'écran de l'ordinateur portable, par exemple, tout en conservant l'accès à Windows.

6voto

WinEunuuchs2Unix Points 91128

Problème avec la réponse existante

Bien qu'il y ait eu une réponse il y a sept ans avec trois votes positifs, elle n'a pas été acceptée parce qu'elle fait migrer toutes les fenêtres ouvertes sur l'écran éteint vers le ou les écrans actifs restants.

Luminosité basée sur le logiciel

Sur un ordinateur portable, vous pouvez contrôler la luminosité grâce à la carte graphique qui contrôle l'écran LCD. Avec les téléviseurs et les moniteurs externes, vous avez besoin d'une solution logicielle pour réduire la luminosité à zéro. La réduction de la luminosité à zéro est ce qui se rapproche le plus de l'illusion de l'éteindre tout en gardant Windows actif sur cet écran externe.

Version courte

À partir de la ligne de commande (sans scripts), utilisez :

$ 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

Cela vous montre la liste des noms de moniteurs attribués par xrandr . Maintenant, si vous voulez définir DP-1-1 la luminosité hors utilisation :

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

Sony TV bash script

Voici l'un des trois scripts que j'ai écrits :

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

Pour éteindre l'affichage, vous devez utiliser sony 0

Appel de script sans paramètres

Lorsque vous appelez le script sans paramètres, il affiche l'écran xrandr le nom de l'écran ainsi que la luminosité actuelle en rouge. Vous pouvez changer la couleur rouge en une autre en modifiant cette ligne :

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

Après setaf changer le 1 à :

  • 2 pour le vert
  • 3 pour l'orange
  • 4 pour le bleu, etc.

Modifier et installer le script

Changez les deux occurrences de HDMI-0 pour correspondre à votre pseudonyme. Vous pouvez obtenir une liste de tous vos écrans en tapant xrandr dans le terminal.

Placez le script dans un répertoire de votre chemin d'accès tel que :

/usr/local/bin/sony

Marquer le script comme exécutable en utilisant :

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

Choix du répertoire : /usr/local/bin vs ~/bin

Lorsque vous créez des scripts en /usr/local/bin vous devez utiliser sudo pouvoirs. Une meilleure alternative est d'utiliser le répertoire ~/bin qui est un raccourci pour /home/YourUserID/bin :

  • créer le répertoire ~/bin
  • fermez votre terminal et rouvrez-le.
  • le répertoire nouvellement créé est maintenant dans votre chemin.
  • tous les scripts que vous créez dans ~/bin peuvent être créés avec vos autorisations habituelles.
  • pour permettre l'exécution de vos scripts il suffit d'utiliser chmod +x よりも chmod a+x (le a c'est-à-dire tous les utilisateurs)

2 votes

Je vous remercie pour votre réponse. Je ne connaissais pas le xrandr [...] --brightness option. Notez que vous avez parlé des écrans Sony en particulier, mais --brightness devrait également fonctionner pour tout autre écran. J'ai testé --brightness sur mon ordinateur portable, et ça a marché. Cependant, --brightness 0 n'a pas éteint le rétro-éclairage -J'ai également testé --brightness sur mon ordinateur de bureau : malheureusement, les écrans sont restés noirs. seulement pendant 1 ou 2 secondes . Après ces 1 ou 2 secondes, la luminosité se réinitialise automatiquement. Je suppose que le fait que cela fonctionne dépend fortement de la combinaison gpu+pilote+écran.

1 votes

@myrdd J'ai en fait trois scripts. sony , toshiba y extraterrestre pour deux écrans externes et l'écran intégré de l'ordinateur portable. Oui, le rétroéclairage ne s'éteint pas et vous n'obtenez pas un "noir pur", mais c'est une solution proche. La réinitialisation automatique de 1 à 2 secondes n'affecte aucun de mes écrans mais j'utilisais les pilotes nVidia pour le port HDMI nVidia câblé et le pilote nVidia prenant le contrôle de l'Intel HD530 iGPU pour deux écrans : Thunderbolt3 et intégré.

0 votes

Aucun script n'est nécessaire, il suffit de lancer xrandr pour trouver l'id de sortie et ensuite xrandr --output HDMI-1 --brightness 0 s'il vous plaît, simplifiez la réponse

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X