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

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

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

xset dpms force off

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

решение1

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

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

решение2

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

Хотя семь лет назад был ответ, набравший три голоса «за», он не был принят, поскольку он приводит к тому, что все открытые окна на выключенном дисплее переносятся на оставшийся активный дисплей(и).

Яркость на основе программного обеспечения

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

Укороченная версия

Из командной строки (без скриптов) используйте:

$ 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

Это показывает вам список названий мониторов, назначенных xrandr. Теперь, если вы хотите DP-1-1отключить яркость, используйте:

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

Скрипт bash для Sony TV

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

#!/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/binvs~/bin

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

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

Связанный контент