Чи є спосіб вимкнути окремі екрани?


13

Я використовую xset, щоб вимкнути свої екрани так:

xset dpms force off

Чи є спосіб вимкнути один екран, якщо у вас більше одного, пов’язаного з тим же дисплеєм X?


@myrdd: Чи можете ви, будь ласка, пояснити, що б ви хотіли бачити покращеним?
Девід Фоерстер

Мені хотілося б дізнатися деталі: (а) Чи можлива бажана функція технічно? —Тобто, "вимкнути" окремі екрани (я не маю на увазі xrandr [...] --off) - (б) Чи існують залежності? - (c) Враховуючи, що потрібна функція ще не доступна (як команда CLI), які будуть наступні кроки?
myrdd

Відповіді:


4

Якщо ви використовуєте фондовий Ubuntu Desktop, ви повинні мати можливість використовувати Система> Налаштування> Монітори. Тут слід відобразити всі ваші монітори, натисніть на той, який ви хочете відключити, а потім скористайтеся перемикачами "вмикання / вимкнення", щоб вимкнути цей конкретний монітор.

Якщо ви хочете зробити це з командного рядка, ви повинні мати можливість xrandr --output <name> --offвідключити вихід, який повинен викликати монітор до вимкнення живлення.


1
Проблема полягає в тому, що коли ви використовуєте Nvidia TwinView, обидва екрани відображаються як один, і xrandr, і xset, тому ви не можете вимикати монітори окремо. Крім того, налаштування монітора Gnome вимкнено, і вам доведеться замість цього використовувати керування драйверами Nvidia. Якщо ви вимкнете один з моніторів із налаштуваннями nvidia, він повністю відключає монітор, заклинюючи всі ваші вікна на іншому екрані. Я просто хочу відключити один монітор для перегляду фільму на іншому.
Ніл

@Neil Напевно, корисно додати інформацію про обладнання до цього питання і позначити його також nvidia.
Хорхе Кастро

2
@JorgeCastro це не пов'язано з обладнанням та TwinView: Схоже, немає можливості вимкнути екран окремо, коли він знаходиться на одному $ DISPLAY, за винятком видалення / відключення його з конфігурації RandR. Ми хочемо вимкнути, наприклад, екран ноутбука, але зберегти будь-які вікна там.
синенький

@muru ви - мавпа-редактор! Я постійно бачу ваші зміни.
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

Ось один із трьох написаних сценаріїв:

#!/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тобто всі користувачі)

2
Спасибі за вашу відповідь. Я не знав xrandr [...] --brightnessваріанту. Зауважте, що ви говорили про дисплеї Sony зокрема, але вони --brightnessповинні працювати і на будь-якому іншому дисплеї. Я тестував --brightnessна своєму ноутбуці, і він спрацював. Однак --brightness 0не вимкнув підсвічування… - Я також перевірив --brightnessна своєму настільному комп’ютері: на жаль, екран (и) залишалися чорними лише 1 або 2 секунди . Через ці 1-2 секунди яскравість автоматично скидається. Я думаю, чи працює вона сильно залежить від комбінації драйверів + gpu +.
myrdd

1
@myrdd У мене є три сценарії Sony , Toshiba та Alien для двох зовнішніх дисплеїв та вбудованого дисплея ноутбука. Так, підсвічування не вимикається, тому ви не отримуєте "чистого чорного", але це дуже близька робота. Автоматичне скидання від 1 до 2 секунд не впливає на жодний з моїх дисплеїв, але я працював на драйверах nVidia для вбудованого порту HDMI nVidia та драйвері nVidia, які брали під контроль два екрани Intel HD530 iGPU - Thunderbolt3 та вбудований.
WinEunuuchs2Unix

сценарій не потрібен, просто запустіть xrandr, щоб знайти вихідний ідентифікатор, а потім xrandr --output HDMI-1 --brightness 0, будь ласка, спростіть відповідь
brauliobo

2
@brauliobo Замість того, щоб видалити більшу частину відповіді, я поставив коротку версію в саму верхню частину, що, на мою думку, є компромісом.
WinEunuuchs2Unix
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.