Skip to content

Instantly share code, notes, and snippets.

@rst0git
Last active March 16, 2026 11:44
Show Gist options
  • Select an option

  • Save rst0git/6735b24623917ae31b329a762d192c83 to your computer and use it in GitHub Desktop.

Select an option

Save rst0git/6735b24623917ae31b329a762d192c83 to your computer and use it in GitHub Desktop.
Fix NVIDIA external monitor detection
# /etc/udev/rules.d/80-nvidia-no-suspend.rules
# Prevent the NVIDIA dGPU from entering runtime suspend. This is needed for external
# display ports (HDMI, DP) that are wired to the NVIDIA GPU. When the GPU runtime-suspends,
# its connectors are disabled and it cannot detect that a monitor was plugged in.
# So the hotplug event in 99-force-hotplug.rules would never fire. This rule keeps
# the GPU awake so detection works.
# /usr/lib/udev/rules.d/60-nvidia.rules sets power/control=auto on "bind", which suspends
# the GPU and disables its connectors. We match "add|bind" to override that.
ACTION=="add|bind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030000", ATTR{power/control}="on"
ACTION=="add|bind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030200", ATTR{power/control}="on"
# /etc/udev/rules.d/99-force-hotplug.rules
# When the NVIDIA GPU detects a monitor plug/unplug, the kernel fires a DRM
# "change" event on card0. However, GNOME/Mutter only reacts to events that
# carry HOTPLUG=1. Without this rule, Mutter silently ignores the event and
# the external display never appears in Settings.
ACTION=="change", KERNEL=="card0", SUBSYSTEM=="drm", ENV{HOTPLUG}="1"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment