Есть ли способ отключить отдельные экраны?

10

Я использую xset, чтобы отключить мои экраны следующим образом:

xset dpms force off

Есть ли способ отключить один экран, если у вас более одного связанного с одним и тем же дисплеем X?

    
задан Neil 16.11.2010 в 01:16
источник

2 ответа

4

Если вы используете запас Ubuntu Desktop, вы должны иметь возможность использовать System > Предпочтения > Мониторы. Это должно показать все ваши мониторы, нажать на тот, который вы хотите отключить, а затем использовать переключатели «вкл. / Выкл.», Чтобы отключить этот конкретный монитор.

Если вы хотите сделать это из командной строки, вы сможете использовать xrandr --output <name> --off , чтобы отключить вывод, который должен вызывать отключение монитора.

    
ответ дан Andy 18.11.2010 в 10:01
2

Проблема с существующим ответом

Несмотря на то, что семь лет назад был ответ с тремя перевыпусками, он не был принят, поскольку он заставлял все открытые окна на экране отключения мигрировать на оставшиеся активные дисплеи.

Программная яркость

На ноутбуке вы можете управлять яркостью через графическую карту, управляющую ЖК-панелью. С внешними телевизорами и мониторами вам нужно программное решение, чтобы превратить яркость в 0. Повернув его на ноль, я ближе всего к иллюзии отключения его, сохраняя активные окна на этом внешнем дисплее.

Сценарий Sony TV bash

Вот один из трех написанных мной сценариев:

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

Чтобы отключить дисплей, вы должны использовать sony 0

Вызов сценария без параметров

Когда вы вызываете скрипт без параметров, он отображает имя экрана xrandr вместе с текущей яркостью красного цвета. Вы можете изменить красный цвет на другой, изменив эту строку:

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

После того, как setaf измените 1 на:

  • 2 для зеленого
  • 3 для апельсина.
  • 4 для синего и т. д.

Изменение и установка скрипта

Измените два вхождения HDMI-0 в соответствии с вашим именем экрана. Вы можете получить список всех ваших экранов, набрав xrandr в терминале.

Поместите сценарий в каталог на вашем пути, например:

/usr/local/bin/sony

Отметьте сценарий как исполняемый файл, используя:

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

Выбор каталога: /usr/local/bin vs ~/bin

При создании скриптов в /usr/local/bin вы должны использовать sudo полномочий. Лучшей альтернативой является использование каталога ~/bin , который является сокращением для /home/YourUserID/bin :

  • создать каталог ~/bin
  • закройте терминал и снова его закройте.
  • вновь созданный каталог теперь находится на вашем пути.
  • все созданные вами скрипты в ~/bin могут быть созданы с вашими регулярными разрешениями.
  • , чтобы включить выполнение ваших сценариев, вам просто нужно использовать chmod +x , а не chmod a+x ( a означает всех пользователей)
ответ дан WinEunuuchs2Unix 21.12.2017 в 02:02