Linux: Як запустити скрипт, коли підключено зовнішній монітор?


10

Як я можу виявити, коли зовнішній монітор підключений у Linux?

Мені потрібно запустити різні сценарії, щоб налаштувати свою робочу область.

Чи є якийсь розумний спосіб зняти сценарій, коли стан монітора змінився?

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


Хакітським способом було б написати скрипт, який запитує про зміни у виході xrandrкожні пару секунд, і запускає сценарій (и), якщо він помічає різницю.
new123456

В ідеалі ви можете сказати udev запустити сценарій. Я не сподіваюся, що працювати з драйверами nvidia, поки KMS не буде підтримано, хоча я не намагався. stackoverflow.com/questions/5469828/…
Енді

Відповіді:


3

Існує набір інструментів, званих read-edid, які можуть аналізувати розширені ідентифікаційні дані дисплея (EDID). Якщо ваш зовнішній монітор справді виявлений цими інструментами, ви можете періодично перевіряти на виявлення та використовувати вихід для запуску сценаріїв тощо.

Ви не згадали, хоч чи потрібно це робити незалежно від того, чи працює X.


Правильно, мені це потрібно лише в X. У мене є ще й інші інструменти, які визначатимуть дисплеї (наприклад, дисперсні), але я сподівався уникнути необхідності писати демон :)
Joernsn,

1

Я шукав ту саму відповідь: /
Я використовую дисперс ( 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, можливо, вам доведеться просто попросити запропонувати новий123456 опитувати такий інструмент, як xrandrдля зміни розміру екрана.

У моїй системі я ще не знаходжу способу змусити nVidia правильно оголосити, xrandrщо у мене є два монітори 1280x1024, а не один - 2560x1024 ... який, як ви здогадаєтесь, робить повноекранний ігровий центр на обох моніторах, коли я забороняю їх від зміни резолюції. (Це викреслює мої стільниці)

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