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

13

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

xset dpms force off

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

Нил
источник
@myrdd: Не могли бы вы объяснить, что конкретно вы хотели бы видеть улучшенным?
Дэвид Фёрстер
Я хотел бы узнать подробности: (а) технически возможна ли желаемая функция? То есть «отключить» отдельные экраны (я не имею в виду xrandr [...] --off); (б) есть ли какие-то зависимости? Чипсет видеокарты и / или драйвер должны иметь определенную функцию? - (c) Учитывая, что требуемая функция еще не доступна (как команда CLI), каковы будут следующие шаги?
Мирдд

Ответы:

4

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

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

Энди
источник
1
Проблема в том, что при использовании Nvidia TwinView оба экрана отображаются как один для xrandr и xset, поэтому вы не можете отключить мониторы по отдельности. Кроме того, Gnome Monitor Preferences отключен, и вы должны использовать вместо него элемент управления Nvidia. Когда вы отключаете один из мониторов с помощью nvidia-settings, он полностью отключает монитор, блокируя все ваши окна на другом экране. Я просто хочу отключить один монитор, чтобы посмотреть фильм на другом.
Нил
@Neil Вероятно, полезно добавить информацию о вашем оборудовании и пометить ее с помощью nvidia.
Хорхе Кастро
2
@JorgeCastro это не связано с аппаратным обеспечением и TwinView: кажется, что нет возможности отключить экран по отдельности, когда он находится на том же $ DISPLAY, кроме как удалить / отключить его из конфигурации RandR. Мы хотим выключить, например, экран ноутбука, но держать там все окна.
синеватый
@ Муру ты обезьяна редактирования! Я продолжаю видеть ваши правки.
MathCubes
4

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

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

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

На ноутбуке вы можете управлять яркостью с помощью графической карты, управляющей ЖК-панелью. С внешними телевизорами и мониторами вам нужно программное решение, чтобы уменьшить яркость до 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

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

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

  • создать каталог ~/bin
  • закройте свой терминал и снова откройте его.
  • Недавно созданный каталог находится на вашем пути.
  • все сценарии, в которых вы создаете, ~/binмогут быть созданы с вашими обычными разрешениями.
  • чтобы включить выполнение ваших скриптов, вам просто нужно использовать, chmod +xа не chmod a+x(то aесть все пользователи)
WinEunuuchs2Unix
источник
2
Спасибо за ваш ответ. Я не знал xrandr [...] --brightnessвариант. Обратите внимание, что вы, в частности, говорили о дисплеях Sony, но --brightnessдолжны работать и с любым другим дисплеем. Я проверил --brightnessна своем ноутбуке, и это сработало. Однако --brightness 0не отключил подсветку… - Я также тестировал --brightnessна своем настольном компьютере: к сожалению, экран (ы) оставался черным только в течение 1 или 2 секунд . После этих 1-2 секунд яркость автоматически сбрасывается. Полагаю, работает ли он, сильно зависит от комбинации gpu + драйвер + экран.
Myrdd
1
@myrdd я на самом деле есть три сценария сони , проведенного корпорацией TOSHIBA и чужеродные для двух внешних дисплеев и встроенный портативный дисплей. Да, подсветка не выключается, поэтому вы не получаете «чисто черный», но это обходной путь. Автоматический сброс от 1 до 2 секунд не влияет ни на один из моих дисплеев, но я использовал драйверы nVidia для проводного порта nVidia HDMI и драйвер nVidia, управляющие двумя экранами Intel HD530 iGPU - Thunderbolt3 и встроенным.
WinEunuuchs2Unix
нет сценария необходимо просто запустить XRandR , чтобы найти выход идентификатор , а затем xrandr --output HDMI-1 --brightness 0, пожалуйста , упрощать ответ
brauliobo
2
@brauliobo Вместо того, чтобы удалить большую часть ответа, я поместил короткую версию в самый верх, что я считаю компромиссом.
WinEunuuchs2Unix