diff options
Diffstat (limited to 'data/61-gdm.rules.in')
-rw-r--r-- | data/61-gdm.rules.in | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/data/61-gdm.rules.in b/data/61-gdm.rules.in index 6b36bcbc..02a10e9c 100644 --- a/data/61-gdm.rules.in +++ b/data/61-gdm.rules.in @@ -22,6 +22,18 @@ KERNEL!="nvidia", GOTO="gdm_nvidia_end" SUBSYSTEM!="module", GOTO="gdm_nvidia_end" ACTION!="add", GOTO="gdm_nvidia_end" RUN+="/usr/bin/touch /run/udev/gdm-machine-has-vendor-nvidia-driver" + +# Check if suspend/resume services necessary for working wayland support is available +TEST{0711}!="/usr/bin/nvidia-sleep.sh", GOTO="gdm_disable_wayland" +TEST{0711}!="/usr/lib/systemd/system-sleep/nvidia", GOTO="gdm_disable_wayland" +IMPORT{program}="/bin/sh -c \"sed -e 's/: /=/g' -e 's/\([^[:upper:]]\)\([[:upper:]]\)/\1_\2/g' -e 's/[[:lower:]]/\U&/g' -e 's/^/NVIDIA_/' /proc/driver/nvidia/params\"" +ENV{NVIDIA_PRESERVE_VIDEO_MEMORY_ALLOCATIONS}!="1", GOTO="gdm_disable_wayland" +IMPORT{program}="/bin/sh -c 'echo NVIDIA_HIBERNATE=`systemctl is-enabled nvidia-hibernate`'" +ENV{NVIDIA_HIBERNATE}!="enabled", GOTO="gdm_disable_wayland" +IMPORT{program}="/bin/sh -c 'echo NVIDIA_RESUME=`systemctl is-enabled nvidia-resume`'" +ENV{NVIDIA_RESUME}!="enabled", GOTO="gdm_disable_wayland" +IMPORT{program}="/bin/sh -c 'echo NVIDIA_SUSPEND=`systemctl is-enabled nvidia-suspend`'" +ENV{NVIDIA_SUSPEND}!="enabled", GOTO="gdm_disable_wayland" LABEL="gdm_nvidia_end" # If this machine has an internal panel, take note, since it's probably a laptop |