Eu encontrei seu código e persisti em tentar fazê-lo funcionar. Em condições NÃO poderia fazê-lo funcionar com um paradigma "se então". o "xrandr | grep" ALWAYS falhou ao ser verdadeiro quando executado como disparador do udev, mas funcionou se eu o executasse manualmente. Fui forçado a dividi-lo em dois scripts.
Embora meu dispositivo seja diferente (StarTech CDPVGDVHDMDP), postarei minha versão aqui.
Primeiro, achei útil recarregar as regras do udev ao solucionar problemas:
sudo udevadm control --reload-rules
Meu dispositivo era um pouco diferente e descobri que o subsistema "hidraw" era algo que eu poderia ativar. Além disso, fui forçado a executar / bin / bash / path / to / script "; caso contrário, ele não foi executado. Esta é a regra do udev (/etc/udev/rules.d/95-monitor-hotplug.rules):
ACTION=="remove", SUBSYSTEM=="hidraw", RUN+="/bin/bash /home/user/scripts/hotunplug-displayport.sh"
ACTION=="add", SUBSYSTEM=="hidraw", RUN+="/bin/bash /home/user/scripts/hotplug-displayport.sh"
Este é o meu script hotplug
#!/bin/bash
export XAUTHORITY=/home/user/.Xauthority
DISPLAY=:0 /usr/bin/xrandr --addmode DP-1 1680x1050
DISPLAY=:0 /usr/bin/xrandr --output DP-1 --right-of eDP-1 --mode 1680x1050
echo "$(date) : Hotplug Connect DP-1" >> /var/log/hotplug.txt
DISPLAY=:0 /usr/bin/xrandr --addmode DP-2 1680x1050
DISPLAY=:0 /usr/bin/xrandr --output DP-2 --right-of eDP-1 --mode 1680x1050
echo "$(date) : Hotplug Connect DP-2" >> /var/log/hotplug.txt
Este é meu script de desconexão a quente
#!/bin/bash
export XAUTHORITY=/home/user/.Xauthority
DISPLAY=:0 /usr/bin/xrandr --output DP-1 --off
echo "$(date) : Hotplug Disconnect DP-1" >> /var/log/hotplug.txt
DISPLAY=:0 /usr/bin/xrandr --output DP-2 --off
echo "$(date) : Hotplug Disconnect DP-2" >> /var/log/hotplug.txt