
Я использую 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/bin
vs~/bin
Когда вы создаете скрипты, /usr/local/bin
вы должны использовать sudo
полномочия. Лучшей альтернативой является использование каталога ~/bin
, который является сокращением для /home/YourUserID/bin
:
- создать каталог
~/bin
- закройте терминал и снова откройте его.
- Вновь созданный каталог теперь находится в вашем пути.
- Все скрипты, которые вы создаете,
~/bin
могут быть созданы с вашими обычными разрешениями. - чтобы разрешить выполнение ваших скриптов, вам просто нужно использовать
chmod +x
вместоchmod a+x
(a
имеется в виду все пользователи)