Мониторинг горячего подключения через правило udev и xrandr - PullRequest
0 голосов
/ 18 октября 2018

Я пытаюсь добиться следующего:
Когда я подключаю свой ноутбук к док-станции, я хочу, чтобы внешний дисплей был подключен к док-станции.

Для этого я используюПравило udev, которое запускает скрипт, который, как я знаю, на самом деле запускается, когда он должен.Сценарий устанавливает переменные env XAUTHORITY и DISPLAY, соответствующие их значениям в моем xsesison до выполнения команд xrandr.Команды, которые я выполняю, прекрасно вызываются из моего xsession.Однако при вызове из scipt я сталкиваюсь со следующей ошибкой:
«Не удалось настроить crtc 0».

Выполнение xrandr для другого tty (с установленными переменными XAUTHORITY и DISPLAY приводит к той же ошибке.

Есть идеи на этот счет?

переменные env в xsession:

> echo $XAUTHORITY 
/run/user/1000/gdm/Xauthority
> echo $DISPLAY 
:0

мой сценарий:

#!/bin/bash

export XAUTHORITY=/run/user/1000/gdm/Xauthority
export DISPLAY=:0

HDMI_2_STATUS=$(</sys/class/drm/card0/card0-HDMI-A-2/status )

if [ "connected" == "$HDMI_2_STATUS" ]; then
  # is connected

  # video
  xrandr --output LVDS-1 --off
  xrandr --output HDMI-2 --auto

  # debug
  # echo $? >> /tmp/foo
else
  # not connected

  # video
  xrandr --output HDMI-2 --off
  xrandr --output LVDS-1 --auto

  # debug
  # echo $? >> /tmp/foo
fi
...