9

Как я могу определить, когда внешний монитор подключен в Linux?

Мне нужно запустить различные сценарии, чтобы настроить мое рабочее пространство.

Есть ли какой-нибудь умный способ запустить скрипт, когда состояние монитора изменилось?

Я использую драйвер дисплея Nvidia.

4 ответа4

2

Существует набор инструментов, называемых read-edid, которые могут анализировать расширенные идентификационные данные дисплея (EDID). Если ваш внешний монитор фактически обнаружен этими инструментами, вы можете периодически проверять обнаружение и использовать выходные данные для запуска сценариев и т.д.

Вы не упомянули, нужно ли вам делать это независимо от того, запущен ли X.

1

Вы должны использовать события udev ... возможное правило может выглядеть так:

KERNEL=="card0", SUBSYSTEM=="drm", ENV{DISPLAY}=":0", ENV{XAUTHORITY}="/home/ninette/.Xauthority", RUN+="/usr/local/bin/0x_hw_hotplug_monitor.sh"

(Источник https://bbs.archlinux.org/viewtopic.php?pid=1329375#p1329375)

1

Я искал тот же ответ:/
Я использую disper (http://willem.engen.nl/projects/disper) и gconftool для включения / отключения моего второго монитора вместе со второй панелью gnome на нем.
disper -l выводит список всех подключенных мониторов, чтобы вы могли опрашивать их в качестве последнего средства.

# only primary display
disper -s
gconftool-2 --type int --set  /apps/panel/toplevels/panel_1/screen -- -1


# dual display (nvidia twinview)
disper -e
gconftool-2 --type int --set  /apps/panel/toplevels/panel_1/screen 0
killall gnome-panel
0

Учитывая, что по состоянию на 270.18 двоичные драйверы nVidia, похоже, по-прежнему не реализуют современный XRandR, вам, возможно, придется просто согласиться с предложением new123456 опросить такой инструмент, как xrandr предмет изменения размера экрана.

В моей системе мне еще не удалось найти способ, чтобы nVidia правильно объявила xrandr что у меня два монитора 1280x1024, а не один 2560x1024 ... что, как вы можете догадаться, делает полноэкранные игровые центры центральными на обоих мониторах, когда я запретить им изменять разрешение. (Это испортило мои настольные наклейки)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .