External hdmi udev rule not triggering

Hi all,
I’m trying to setup a udev rule to execute when I plug/unplug my external monitor. I’m not sure what I’m doing wrong / how else to debug it, but I can’t seem to get it to trigger.

This is my current rule which runs date command and output to /tmp/test.log (which I don’t see):

cat /etc/udev/rules.d/95-monitor-hotplug.rules
KERNEL=="card0", ACTION=="change", SUBSYSTEM=="drm", RUN+="/usr/bin/date > /tmp/test.log"

Here are a couple of my udevadm monitor logs:

> udevadm monitor -k -s drm -p
KERNEL[526.300605] change   /devices/pci0000:00/0000:00:02.0/drm/card0 (drm)
ACTION=change
DEVPATH=/devices/pci0000:00/0000:00:02.0/drm/card0
SUBSYSTEM=drm
HOTPLUG=1
DEVNAME=/dev/dri/card0
DEVTYPE=drm_minor
SEQNUM=4255
MAJOR=226
MINOR=0

KERNEL[527.273363] change   /devices/pci0000:00/0000:00:02.0/drm/card0 (drm)
ACTION=change
DEVPATH=/devices/pci0000:00/0000:00:02.0/drm/card0
SUBSYSTEM=drm
HOTPLUG=1
DEVNAME=/dev/dri/card0
DEVTYPE=drm_minor
SEQNUM=4256
MAJOR=226
MINOR=0
> udevadm monitor -k -s drm -p --environment --udev
monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent

KERNEL[852.817446] change   /devices/pci0000:00/0000:00:02.0/drm/card0 (drm)
ACTION=change
DEVPATH=/devices/pci0000:00/0000:00:02.0/drm/card0
SUBSYSTEM=drm
HOTPLUG=1
DEVNAME=/dev/dri/card0
DEVTYPE=drm_minor
SEQNUM=4257
MAJOR=226
MINOR=0

UDEV  [852.837972] change   /devices/pci0000:00/0000:00:02.0/drm/card0 (drm)
ACTION=change
DEVPATH=/devices/pci0000:00/0000:00:02.0/drm/card0
SUBSYSTEM=drm
HOTPLUG=1
DEVNAME=/dev/dri/card0
DEVTYPE=drm_minor
SEQNUM=4257
USEC_INITIALIZED=3603644
ID_PATH=pci-0000:00:02.0
ID_PATH_TAG=pci-0000_00_02_0
ID_FOR_SEAT=drm-pci-0000_00_02_0
MAJOR=226
MINOR=0
DEVLINKS=/dev/dri/by-path/pci-0000:00:02.0-card
TAGS=:master-of-seat:seat:uaccess:
CURRENT_TAGS=:master-of-seat:seat:uaccess:

KERNEL[856.264643] change   /devices/pci0000:00/0000:00:02.0/drm/card0 (drm)
ACTION=change
DEVPATH=/devices/pci0000:00/0000:00:02.0/drm/card0
SUBSYSTEM=drm
HOTPLUG=1
DEVNAME=/dev/dri/card0
DEVTYPE=drm_minor
SEQNUM=4258
MAJOR=226
MINOR=0

UDEV  [856.266791] change   /devices/pci0000:00/0000:00:02.0/drm/card0 (drm)
ACTION=change
DEVPATH=/devices/pci0000:00/0000:00:02.0/drm/card0
SUBSYSTEM=drm
HOTPLUG=1
DEVNAME=/dev/dri/card0
DEVTYPE=drm_minor
SEQNUM=4258
USEC_INITIALIZED=3603644
ID_PATH=pci-0000:00:02.0
ID_PATH_TAG=pci-0000_00_02_0
ID_FOR_SEAT=drm-pci-0000_00_02_0
MAJOR=226
MINOR=0
DEVLINKS=/dev/dri/by-path/pci-0000:00:02.0-card
TAGS=:master-of-seat:seat:uaccess:
CURRENT_TAGS=:master-of-seat:seat:uaccess:

Thanks!

Hello,

Have you checked this ? udev - ArchWiki

Thanks! I added the DISPLAY and XUATHORITY environments before but it didn’t work (dont see my log file, not sure why) but I updated the run command to run a script to adjust the screen for the connected monitor and that worked fine!