Ich habe Ihren Code gefunden und beharrte darauf, dass er funktioniert. Unter KEINEN Bedingungen könnte ich es mit einem Wenn-Wenn-Paradigma arbeiten lassen. das "xrandr | grep" war IMMER nicht wahr, wenn es als udev-Auslöser ausgeführt wurde, funktionierte jedoch, wenn es manuell ausgeführt wurde. Ich war gezwungen, es in zwei Skripte aufzuteilen.
Obwohl mein Gerät anders ist (StarTech CDPVGDVHDMDP), werde ich meine Version hier veröffentlichen.
Zunächst fand ich es hilfreich, die udev-Regeln bei der Fehlerbehebung neu zu laden:
sudo udevadm control --reload-rules
Mein Gerät war etwas anders, und ich fand, dass das Subsystem "hidraw" etwas war, von dem ich ausgelöst werden konnte. Außerdem musste ich / bin / bash / path / to / script "ausführen, sonst wurde es nicht ausgeführt. Dies ist meine udev-Regel (/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"
Dies ist mein Hotplug-Skript
#!/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
Dies ist mein Hot-Unplug-Skript
#!/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