From 8ca5a886ae509d383f7ec0ffbc5f1497f1fdfbce Mon Sep 17 00:00:00 2001 From: Manuel Thalmann Date: Wed, 19 Jun 2024 14:09:48 +0200 Subject: [PATCH] Improve the grub manipulation script --- scripts/Common/Config/nvidia-dkms/install.sh | 36 +++++++++++++++----- 1 file changed, 27 insertions(+), 9 deletions(-) diff --git a/scripts/Common/Config/nvidia-dkms/install.sh b/scripts/Common/Config/nvidia-dkms/install.sh index 8e48283b..53037fd3 100755 --- a/scripts/Common/Config/nvidia-dkms/install.sh +++ b/scripts/Common/Config/nvidia-dkms/install.sh @@ -1,11 +1,29 @@ #!/bin/bash -# According to: https://wiki.archlinux.org/title/NVIDIA/Tips_and_tricks -{ - echo "options nvidia NVreg_PreserveVideoMemoryAllocations=1"; - echo "options nvidia NVreg_TemporaryFilePath=/var/tmp"; -} | sudo tee /etc/modprobe.d/nvidia-power-management.conf > /dev/null; -sudo systemctl enable \ - nvidia-suspend.service \ - nvidia-hibernate.service \ - nvidia-resume.service; +function install() { + local cmdindicator="GRUB_CMDLINE_LINUX_DEFAULT=\""; + local config="nvidia_drm.fbdev=1"; + + # According to: https://wiki.archlinux.org/title/NVIDIA/Tips_and_tricks + { + echo "options nvidia NVreg_PreserveVideoMemoryAllocations=1"; + echo "options nvidia NVreg_TemporaryFilePath=/var/tmp"; + } | sudo tee /etc/modprobe.d/nvidia-power-management.conf > /dev/null; + + sudo systemctl enable \ + nvidia-suspend.service \ + nvidia-hibernate.service \ + nvidia-resume.service; + + if ! cat /etc/default/grub | grep "$cmdindicator.*$config" > /dev/null; + then + sudo sed -i /etc/default/grub \ + -e "/$cmdindicator/{" \ + -e "s/\($cmdindicator.*[^ ]\)\(\"\)/\1 \2/" \ + -e "s/\($cmdindicator.*\)\(\"\)/\1$config\2/" \ + -e "}" \ + ; + fi; +} + +install;