Linux: как запустить скрипт при подключении внешнего монитора?

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

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

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

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

26
задан Hennes
29.04.2023 6:35 Количество просмотров материала 3374
Распечатать страницу

4 ответа

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

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

2
отвечен Rolf 2023-04-30 14:23

Я искал такой же ответ:/

Я использую 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
1
отвечен Vindolin 2023-04-30 16:40

вы должны использовать 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
отвечен 0x1ad1b88 2023-04-30 18:57

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

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

0
отвечен ssokolow 2023-04-30 21:14

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх