mirror of
https://github.com/Snigdha-OS/snigdhaos-system-installation.git
synced 2025-09-21 13:54:56 +02:00
⚡️ perf(readability): made some major improvements
This commit is contained in:
@@ -1,104 +1,68 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
echo
|
|
||||||
echo "Start Snigdha OS Nvidia Settings"
|
|
||||||
echo
|
|
||||||
|
|
||||||
if [ -f /usr/share/waland-sessions/gnome-wayland.desktop ]; then
|
# Define constants
|
||||||
if pacman -Qq | grep -q "^nvidia"; then
|
MKINITCPIO_CONF="/etc/mkinitcpio.conf"
|
||||||
echo
|
GRUB_DEFAULT="/etc/default/grub"
|
||||||
# shellcheck disable=SC2154
|
GRUB_CFG="/boot/grub/grub.cfg"
|
||||||
echo "[Check] $package is installed!"
|
BOOTLOADER="/bootloader"
|
||||||
echo
|
EFI_DIR="/boot/efi"
|
||||||
|
LOADER_ENTRIES_DIR="/boot/efi/loader/entries/"
|
||||||
|
|
||||||
|
# Check if required files exist
|
||||||
|
if [ ! -f "$MKINITCPIO_CONF" ] || [ ! -f "$GRUB_DEFAULT" ]; then
|
||||||
|
echo "Required files not found. Exiting."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if NVIDIA driver is installed
|
||||||
|
if ! pacman -Qq | grep -q "^nvidia"; then
|
||||||
|
echo "NVIDIA driver not installed. Exiting."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Update mkinitcpio.conf
|
||||||
FIND='MODULES=""'
|
FIND='MODULES=""'
|
||||||
REPLACE='MODULES="nvidia nvidia_modset nvidia_uvm nvidia_drm"'
|
REPLACE='MODULES="nvidia nvidia_modset nvidia_uvm nvidia_drm"'
|
||||||
sed -i "s/$FIND/$REPLACE/g" /etc/mkinitcpio.conf
|
sed -i "s/$FIND/$REPLACE/g" "$MKINITCPIO_CONF"
|
||||||
|
|
||||||
if [ -f /etc/default/grub ]; then
|
# Update GRUB settings
|
||||||
if ! grep -q "nvidia-drm.modset=1" /etc/default/grub; then
|
if ! grep -q "nvidia-drm.modset=1" "$GRUB_DEFAULT"; then
|
||||||
echo
|
sed -i "/^GRUB_CMDLINE_LINUX_DEFAULT=/s/'$/ nvidia-drm.modset=1'/" "$GRUB_DEFAULT"
|
||||||
echo "Adding Option nvidia-drm.modset=1"
|
|
||||||
echo
|
|
||||||
sed -i "/^GRUB_CMDLINE_LINUX_DEFAULT=/s/'$/ nvidia-drm.modset=1'/" /etc/default/grub
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo
|
# Run mkinitcpio and update GRUB
|
||||||
echo "Starting mkinitcpio -P"
|
|
||||||
echo
|
|
||||||
mkinitcpio -P
|
mkinitcpio -P
|
||||||
echo
|
grub-install --target=x86_64-efi --efi-directory="$EFI_DIR" --bootloader-id=SnigdhaOS
|
||||||
echo "Updting Grub"
|
grub-mkconfig -o "$GRUB_CFG"
|
||||||
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
|
|
||||||
|
|
||||||
|
# Update systemd-boot settings (if installed)
|
||||||
if pacman -Qi snigdhaos-bootloader-systemd &> /dev/null; then
|
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"
|
PARAM="nvidia-drm.modset=1"
|
||||||
for i in "$EMPTY_DIR"*.conf; do
|
for file in "$LOADER_ENTRIES_DIR"*.conf; do
|
||||||
if grep -q "nvidia-drm.modset=1" "$i"; then
|
if ! grep -q "$PARAM" "$file"; then
|
||||||
echo
|
sed -i "^/options / s/options /&$PARAM /" "$file"
|
||||||
echo "Parameters set"
|
|
||||||
echo
|
|
||||||
else
|
|
||||||
sed -i "^/options / s/options /&$PARAM /" "$i"
|
|
||||||
echo
|
|
||||||
echo "Adding Parameters"
|
|
||||||
echo
|
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -f /etc/default/grub ]; then
|
# Remove nvidia-drm.modset=1 from GRUB settings
|
||||||
echo
|
if grep -q "nvidia-drm.modset=1" "$GRUB_DEFAULT"; then
|
||||||
echo "Removing nvidia-drm.modset=1"
|
sed -i "s/ nvidia-drm.modset=1//" "$GRUB_DEFAULT"
|
||||||
echo
|
grub-install --target=x86_64-efi --efi-directory="$EFI_DIR" --bootloader-id=SnigdhaOS
|
||||||
if grep -q "nvidia-drm.modset=1" /etc/default/grub; then
|
grub-mkconfig -o "$GRUB_CFG"
|
||||||
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
|
fi
|
||||||
|
|
||||||
if [ -d /boot/efi/loader/entries/ ]; then
|
# Remove nvidia-drm.modset=1 from systemd-boot settings (if installed)
|
||||||
echo
|
if [ -d "$LOADER_ENTRIES_DIR" ]; then
|
||||||
echo "Removing nvidia-drm.modset=1"
|
|
||||||
echo
|
|
||||||
EMPTY_DIR="/boot/efi/loader/entries/"
|
|
||||||
PARAM="nvidia-drm.modset=1"
|
PARAM="nvidia-drm.modset=1"
|
||||||
for i in "$EMPTY_DIR"*.conf; do
|
for file in "$LOADER_ENTRIES_DIR"*.conf; do
|
||||||
if grep -q "$PARAM" "$i"; then
|
if grep -q "$PARAM" "$file"; then
|
||||||
sed -i "s/ $PARAM//" "$i"
|
sed -i "s/ $PARAM//" "$file"
|
||||||
echo
|
|
||||||
echo "Removed Parameter"
|
|
||||||
echo
|
|
||||||
else
|
|
||||||
echo
|
|
||||||
echo "nvidia-drm.modset=1 not found!"
|
|
||||||
echo
|
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
echo "Writing grub -> /bootloader"
|
|
||||||
echo "grub" | dd of="/bootloader"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo
|
# Write GRUB to bootloader
|
||||||
|
echo "grub" | dd of="$BOOTLOADER"
|
||||||
|
|
||||||
echo "End Snigdha OS Dkms Settings"
|
echo "End Snigdha OS Dkms Settings"
|
||||||
echo
|
|
Reference in New Issue
Block a user