diff --git a/usr/local/bin/snigdhaos-nvidia-settings b/usr/local/bin/snigdhaos-nvidia-settings new file mode 100644 index 0000000..58b118f --- /dev/null +++ b/usr/local/bin/snigdhaos-nvidia-settings @@ -0,0 +1,103 @@ +#!/bin/bash +echo +echo "Start Snigdha OS Nvidia Settings" +echo + +if [ -f /usr/share/waland-sessions/gnome-wayland.desktop ]; then + if pacman -Qi nvidia-dkms &> /dev/null; then + echo + echo "[Check] $package is installed!" + echo + + FIND='MODULES=""' + REPLACE='MODULES="nvidia nvidia_modset nvidia_uvm nvidia_drm"' + sed -i "s/$FIND/$REPLACE/g" /etc/mkinitcpio.conf + + if [ -f /etc/default/grub ]; then + if ! grep -q "nvidia-drm.modset=1" /etc/default/grub; then + echo + echo "Adding Option nvidia-drm.modset=1" + echo + sed -i "/^GRUB_CMDLINE_LINUX_DEFAULT=/s/'$/ nvidia-drm.modset=1'/" /etc/default/grub + fi + + echo + echo "Starting mkinitcpio -P" + echo + mkinitcpio -P + echo + echo "Updting Grub" + echo + grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=SnigdhaOS + grub-mkconfig -o /boot/grub/grub.cfg + + echo "Writing grub -> /bootloader" + echo "grub" | dd of="/bootloader" + fi + + if pacman -Qi snigdhaos-bootloader-systemd &> /dev/null; then + echo + echo "Adding Option nvidia-drm.modset=1" + echo + + EMPTY_DIR="/boot/efi/loader/entries/" + PARAM="nvidia-drm.modset=1" + for i in "$EMPTY_DIR"*.conf; do + if grep -q "nvidia-drm.modset=1" "$i"; then + echo + echo "Parameters set" + echo + else + sed -i "^/options / s/options /&$PARAM /" "$i" + echo + echo "Adding Parameters" + echo + fi + done + fi + + if [ -f /etc/default/grub ]; then + echo + echo "Removing nvidia-drm.modset=1" + echo + if grep -q "nvidia-drm.modset=1" /etc/default/grub; then + sed -i "s/ nvidia-drm.modset=1//" /etc/default/grub + echo "Removed nvidia-drm.modset=1" + grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=SnigdhaOS + grub-mkconfig -o /boot/grub/grub.cfg + else + echo + echo "nvidia-drm.modset=1 not found!" + echo + fi + echo "Writing grub -> /bootloader" + echo "grub" | dd of="/bootloader" + fi + + if [ -d /boot/efi/loader/entries/]; then + echo + echo "Removing nvidia-drm.modset=1" + echo + EMPTY_DIR="/boot/efi/loader/entries/" + PARAM="nvidia-drm.modset=1" + for i in "$EMPTY_DIR"*.conf; do + if grep -q "$PARAM" "$i"; then + sed -i "s/ $PARAM//" "$i" + echo + echo "Removed Parameter" + echo + else + echo + echo "nvidia-drm.modset=1 not found!" + echo + fi + done + echo "Writing grub -> /bootloader" + echo "grub" | dd of="/bootloader" + fi + fi +fi + +echo +echo "End Snigdha OS Dkms Settings" +echo \ No newline at end of file