Правило udev применяется к действию add
по умолчанию. Правило udev действует на видеокарту, а не на монитор; поэтому оно запускается при добавлении видеокарты в систему, что на практике означает во время загрузки.
Подключение монитора приводит к действию change
, а не add
. Вы можете наблюдать это, выполнив udevadm monitor
и подключив монитор. Поэтому в правиле udev должно быть указано действие change
.
KERNEL=="card0", SUBSYSTEM=="drm", ACTION=="change", \
ENV{DISPLAY}=":0", ENV{XAUTHORITY}="/var/run/gdm/auth-for-vazquez-OlbTje/database", RUN+="/usr/bin/arandr"
Примеры, найденные в Интернете, подтверждают мое понимание, например, codingtony, чей monitor-hotplug.sh
скрипт может быть вам интересен.
Имя файла в /var/run
меняется при каждой перезагрузке, поэтому вы должны определить его автоматически внутри вашего скрипта. Этот ответ должен помочь.