Автор Гілка: Як виконати команду, коли підключається, або відключається HDMI кабель  (Прочитано 6396 раз)

Відсутній SapGreen

  • Новачок
  • *
  • дописів: 8
  • Карма: +0/-0
Добрий день.
Я хочу виконувати певний скрипт кожного разу, коли підключається, або відключається HDMI кабель.
Для цього я написав таке udev правило
KERNEL=="card0", SUBSYSTEM=="drm", ACTION=="change", ENV{DISPLAY}=":0", ENV{XAUTHORITY}="/home/sapgreen/.Xauthority", RUN+="/bin/bash /root/hdmi.sh"І воно працює файно. Але є одна проблема.
Воно реагує не на фізичне підключення і відключення HDMI кабелю, а на якісь внутрішні зміни drm, і тому, коли ноутбук йде в сон сам по собі, або коли я виконую команду suspend - то воно думає, шо в цей момент HDMI кабель відключається, і виконує скрипта.
Як можна запобігти цьому?

Відсутній gen

  • Новачок
  • *
  • дописів: 4
  • Карма: +2/-0
Вітаю.

Окрім цього способу, є ще один, яким я також користуюся: autorandr. Команда дає змогу запам'ятати певні конфігурації наявних екранів, щоб пізніше їх розпізнавати і перемикатися на них. Є systemd-unit який можна увімкнути щоб він автоматично це робив. Не досліджував, наскільки відмінні принципи роботи цього метода порівняно з вашим (яким я теж користувався), але інтерфейс простіший і здається, працює доволі надійно.

Про всяк випадок завжди тримаю скрипти для ручного перемикання, згенеровані графічною утилітою arandr.

(Це все доречно якщо все, що ваш скрипт робить - це перемикання конфігурації дисплеїв.)
« Змінено: 2022-05-26 12:47:15 від gen »

Відсутній SapGreen

  • Новачок
  • *
  • дописів: 8
  • Карма: +0/-0
Воно так виглядає, шо autorandr так само юзає udev rules, бо в мене після виходу з режиму сплячки всі вікна в awesomewm на перший тег пересунулись.