Linux при отключении монитора

Автоматическое определение подключения\отключения второго монитора

Всем, доброго времени суток.

По сути, к реализации этой маленькой автоматизации меня сподвигла лень.

Собственно, с чего все началось.

У меня есть ноутбук с установленной gentoo, и i3wm оконным менеджером. Так же есть несколько мониторов(дома, на работе и т д). Разрешения на всех мониторах разные, способы подключения тоже (VGA, HDMI, DVI) разные. Активно, использую первые два.

Раньше, при подключении второго монитора, приходилось вызывать команды, которые инициализировали этот самый монитор. Запуск команды с автоматическим ключом, не всегда давал, желаемого результата(не угадывал разрешение).

Потому, приходилось запускать эту же команду, но с набором других ключей, разрешение например.

И хотя, в xrandr для каждого монитора у меня есть несколько вариантов разрешений, есть одно (максимальное для данного монитора, которое удовлетворяет), но на каждом мониторе оно разное(так как сами мониторы разные).

Потому пришлось искать решение…

Первым делом, мне нужно было как то решить вопрос, с выявлением ситуации подключения\отключения второго монитора.
Как оказалось, тут сложного ничего не было.

Все, что нам нужно, это заглянуть в директорию /etc/udev/rules.d , где собственно и будут храниться наши правила для монитора.

Далее нужно создать там файл. Создание файлов в этой директории, подчиняются парочке маленьких правил. А именно, то, что имена файлов должны иметь расширение .rules. И второе, не столь важное в данной ситуации. Все файлы расположены в алфавитном порядке, что влияет на порядок выполнения файла.

Я назвал свой файл так — 70-persistent-monitor.rules — лишь по аналогии с файлами, что уже были в этой папке.
Содержимое файла следующее

Для получения значений KERNEL и SUBSYSTEM выполните команду:

И подключите \отключите второй монитор

ACTION — указывает на какие действия реагировать, в данном случае на оба включение и отключение. И собственно RUN — тот скрипт который мы будем запускать. Из примера видно, что файл называется change_monitor.sh и находится в /usr/bin/. Хотя расположение, может быть и другим. Например /home/user/bin

Ну и собственно сам файл

Возможно, реализация не очень и красивая, но рабочая. Мы стараемся получить максимально установленное разрешение для подключенного монитора из output команды xrandr. В том случае, если монитор подключен, то строка /VGA1 connected будет найдена. Если нет то она будет VGA1 disconnected и ничего найдено не будет.

P.S на разных системах именование устройств (VGA1 HDMI1) — могут отличаться. для того, что бы увидеть, достаточно набрать в консоли xrandr

Источник

Отключить монитор с помощью командной строки

Я запускаю Ubuntu Server на своем ноутбуке. Там действительно нет причин для включения экрана. Я пытался использовать эту команду для отключения экрана:

Проблема в том, что я получаю следующую ошибку

Любая идея, что происходит / что не так ? Любые другие предложения о том, как это сделать?

8 ответов

Чтобы выключить монитор в консоли, команда выглядит следующим образом:

Чтобы вернуть контроль над консолью при нажатии клавиши Enter, я предлагаю

Команда xset , упомянутая в других ответах, отключит все мониторы, если у вас настроено несколько мониторов. Однако, если вы хотите отключить только один или несколько мониторов, вам следует использовать xrandr .

Читайте также:  Windows search ищет не все

Сначала запустите команду xrandr -q , которая выведет список всех мониторов и их текущий дисплей. настройки. В начале каждой информации о мониторе вы найдете имя монитора, установленное системой. Вы должны это отслеживать.

У меня есть два монитора (один подключен к порту DVI, а другой — к порту VGA), и когда я запускаю команду, я вижу следующее:

В этом выводе монитор, подключенный к порту DVI, является обозначен как DFP1 , а другой как CRT1 . Итак, если я хочу выключить вторичный монитор (например, CRT1 ), я выполнил эту команду:

, если вы хотите снова включить этот монитор, вы выполнили эту команду:

Если у вас несколько мониторов, используйте это:

Выключение второго монитора:
(Предполагая, что CRT-0 — ваш левый монитор, а CRT-1 — ваш правый монитор)
xrandr —output CRT-1 —off
Включение второго монитора:
xrandr —output CRT-1 —right-of CRT-0 —auto
Таким образом, xrandr знает, что не нужно дублировать первый экран.

Я только что установил Ubuntu Server 18.04.1 (без графического интерфейса, X и ничего графического), и, сломав спину прошлой ночью, пытаясь выключить экран, я наконец нашел волшебную команду :

После выполнения команды экран будет автоматически отключаться каждую минуту (в режиме ожидания).

И даже лучше, если вы хотите, чтобы команда выполнялась автоматически при загрузке, вы можете добавить ее в GRUB командная строка , для этого мы должны отредактировать следующий файл:

Оказавшись там, просто добавьте consoleblank = 60 в GRUB_CMDLINE_DEFAULT , он должен выглядеть так:

Затем закройте файл и сохраните его, после чего просто запустите sudo update-grub и voila , каждый раз при загрузке экран будет автоматически отключаться каждые 60 секунд. (опять же, в режиме ожидания).

И этот способ (добавление консоли в GRUB) работает даже с удаленных терминалов (ssh).

Источник

Отключить монитор с помощью командной строки

Я запускаю Ubuntu Server на своем ноутбуке. Там действительно нет причин для включения экрана. Я пытался использовать эту команду, чтобы выключить экран:

Проблема в том, что я получаю следующую ошибку

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

Чтобы отключить монитор в консоли, введите следующую команду:

Чтобы восстановить контроль над консолью при нажатии клавиши Enter , я предлагаю

Попробуйте эти команды .

Если ваш дисплей выключается, а затем сразу включается, попробуйте следующее, что добавляет задержку в 1 секунду перед выключением экрана. Это дает возможность обрабатывать все события X-сервером перед выключением дисплея.

Команда, xset упомянутая в других ответах, отключит все мониторы, если у вас есть несколько мониторов. Однако, если вы хотите отключить только один или несколько мониторов, вы должны использовать xrandr .

Сначала запустите xrandr -q команду, которая выведет список всех мониторов и их текущие настройки дисплея. В начале каждой детали монитора вы найдете имя монитора, установленное системой. Вы должны следить за этим.

У меня есть два монитора (один подключен к порту DVI, а другой к порту VGA), и когда я запускаю команду, я вижу это:

В этом выводе монитор, подключенный к порту DVI, помечен как, DFP1 а другой — как CRT1 . Поэтому, если я хочу отключить дополнительный монитор (т.е. CRT1 ), я запустил эту команду:

если вы хотите снова включить этот монитор, вы запустили эту команду:

Я только что установил Ubuntu Server 18.04.1 (без графического интерфейса, X или чего-либо графического), и вчера вечером, сломав спину, пытаясь выключить экран, я наконец нашел волшебную команду:

Читайте также:  Восстание системы windows all

После выполнения команды экран будет автоматически отключаться каждую минуту (в режиме ожидания).

И что еще лучше, если вы хотите, чтобы команда выполнялась автоматически при загрузке, вы можете добавить ее в командную строку GRUB , для этого нам нужно отредактировать следующий файл:

Оказавшись там, просто добавить consoleblank=60 к GRUB_CMDLINE_DEFAULT , это должно выглядеть следующим образом :

Затем закройте файл и сохраните его, после этого просто запустите sudo update-grub и вуаля , при каждой загрузке экран будет автоматически отключаться каждые 60 секунд. (опять же, в режиме ожидания).

И этот способ (добавление консоли в GRUB) работает даже с удаленных терминалов (ssh).

Источник

XRandR: настройка режимов работы с дисплеями (мониторами) в GNU/Linux

Дата добавления: 31 марта 2012

Возможные названия интерфейсов:

  • LVDS1 — экран ноутбука;
  • VGA1 — экран, подключаемый через VGA;
  • DVI1 — экран, подключаемый через DVI;

Названия интерфейсов могут отличаться в зависимости от используемой видеокарты. Для последующей работы с конкретным интерфейсом, необходимо запомнить его название (например, VGA1 если мы работам на видео от Intel и подключаем монитор по VGA, который и хотим настроить через XRandR).

Изменение разрешения
Лучше всего рассмотреть пример:

Режимы работы с несколькими мониторами
Отключение дисплея
Отключить не нужный в данный момент дисплей можно с помощью опции —off:

После этого у вас будет виртуальное разрешение 1280×720 при 1024×600 физическом.

Поворот
Используйте следующие опции применительно к нужному интерфейсу:

  • —rotate normal
  • —rotate left
  • —rotate right
  • —rotate inverted (поворот на 180°)

Сохранение настроек
Для активации необходимых настроек при старте, создайте файл

/ указывает на расположение в домашней директории) и внесите в него необходимые строки команд xrandr.

Статья частично основана по материалам англоязычной документации.

Автор: Alex, дата: 13 августа 2013 , время: 20:02:58 (MSK).
Добрый день. Вот что мек выдает xrandr:
«Screen 0: minimum 320 x 200, current 3280 x 1200, maximum 3120 x 3120
DFP1 disconnected (normal left inverted right x axis y axis)
DFP2 disconnected (normal left inverted right x axis y axis)
DFP3 disconnected (normal left inverted right x axis y axis)
DFP4 disconnected (normal left inverted right x axis y axis)
DFP5 disconnected (normal left inverted right x axis y axis)
DFP6 disconnected (normal left inverted right x axis y axis)
DFP7 disconnected (normal left inverted right x axis y axis)
DFP8 disconnected (normal left inverted right x axis y axis)
DFP9 connected 1680×1050+0+0 (normal left inverted right x axis y axis) 473mm x 296mm
1680×1050 60.0*+
1400×1050 60.0
1280×1024 75.0 60.0
1440×900 75.0 59.9
1280×960 60.0
1280×800 60.0
1152×864 60.0 75.0
1280×768 60.0
1280×720 60.0
1024×768 75.0 70.1 60.0
800×600 72.2 75.0 60.3 56.2
640×480 75.0 72.8 67.0 59.9
DFP10 disconnected (normal left inverted right x axis y axis)
CRT1 connected 1600×1200+1680+0 (normal left inverted right x axis y axis) 0mm x 0mm
1600×1200 60.0*+
1400×1050 60.0
1600×900 60.0
1280×1024 60.0
1440×900 59.9
1280×960 60.0
1366×768 59.8
1360×768 60.0
1280×800 59.8
1152×864 60.0
1280×768 59.9
1280×720 60.0
1024×768 60.0
800×600 60.3
720×480 60.0
640×480 59.9″

что и как мне надо изменить, чтобы CRT1 работал в резолюции 1920х1080. В данный момент 1600 — это максимальная резолюция.

/.xprofile должен быть исполняемым. В англоязычной версии это описано. Я, как новичок, этого не сделал. И, как следствие, при запуске системы разрешение не устанавливается на нужное автоматически. А таких новичков много в сети.

Читайте также:  Как устанавливать кодеки для windows media player

/.xprofile (можно использовать редактор nano).

Автор: Margo, дата: 05 января 2016 , время: 20:54:07 (MSK).
Спасибо за быстрый ответ,
в консоль перешла, но у меня такого файла нет.
Где еще оно может быть закопано?

Сходила логическим путем: если у вас «Отключить не нужный в данный момент дисплей можно с помощью опции —off:
xrandr —output LVDS1 —off»
— то включить решила с помощью «всё то же самое —on». Ан нет, размечталась, не так просто.

xrandr вообще отвечает Can’t open display.

А вот как xrandr выглядит в другой системе (зашла со спас.диска):

$ xrandr
Screen 0: minimum 320 x 200, current 1024 x 768, maximum 4096 x 4096
VGA-1 connected 1024×768+0+0 (normal left inverted right x axis y axis) 350mm x 260mm
1600×1200 60.0 60.0
1280×1024 75.0 59.9
1024×768 85.0 75.1 60.0*
800×600 100.0 85.1 75.0 60.3
640×480 85.0 60.0
720×400 70.1
DVI-I-1 disconnected (normal left inverted right x axis y axis)
TV-1 connected 1024×768+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
720×576 50.0 +
1024×768 50.0*
800×600 50.0
720×480 50.0
640×480 50.0
400×300 100.0
320×240 100.0
320×200 100.0

Я так понимаю, VGA-1 это и есть тот монитор, который я убила в своей основной системе? черт побери, один случайный клик мышкой. 🙁

/.xprofile с командой xrandr —output VGA-1 —mode 1600×1200 и перезагрузить.

Автор: Margo, дата: 06 января 2016 , время: 03:14:50 (MSK).
Вроде выкрутилась.

Первый способ:
в начале загрузки выбрать recovery mode,
в recovery mode выбрать resume normal boot,
выйдет предупреждение, что это типа Safe mode и не все графические драйверы могут работать,
кликнула ОК, загрузка продолжилась, пришла куда хотела, всё работает как всегда.
Правда, при перезагрузке та же засада, монитор отключается, т.е. recovery mode теперь пожизненно, если не переписать config файл (но КАКОЙ именно. ).
Ну и ладно, всё равно новую ставить пора, сейчас у меня Минт14 Надя, если кому интересно.

Второй способ:
дождаться конца загрузки, перейти в терминал Ctrl+Alt+F2 (у меня F1 тоже годится, да и остальные, наверно, просто не проверяла),
залогиниться, зайти под рутом, скомандовать startx
(если не под рутом, то монитор опять выключится),
далее имею первозданное окно Линукс Минт как только что с диска, т.е. без моих гламурных настроек и почему-то. без мозиллы! Все остальное, установленное за последний год, на месте (включая игры), и всё работает штатно. Исчезла только мозилла, а она-то самое главное, сотни закладок и паролей. Не исключаю, впрочем, что получила бы свою мозиллу со всеми закладками, если б попробовала ее заново установить через синаптик или Оперу — через recovery mode она же загружается! значит, она где-то тут — просто уже не было времени на эксперименты.

Теперь спокойненько, с кофе и булочкой, бэкапнула закладки и попробую создать файл по вашему совету. 🙂
Спасибо, что поддержали!

$ xrandr
Screen 0: minimum 8 x 8, current 1024 x 768, maximum 32767 x 32767
DP1 disconnected (normal left inverted right x axis y axis)
HDMI1 disconnected (normal left inverted right x axis y axis)
VGA1 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)
user@ubuntu:

$ xrandr -s 1600×900
Size 1600×900 not found in available modes
user@ubuntu:

Источник

Оцените статью