#!/bin/bash # nvidia -> nouveau set -e # check if root if [[ $EUID -ne 0 ]]; then echo "You must be root to run this script. Aborting..."; exit 1; fi echo "Switching MODULES line in /etc/mkinitcpio.conf" sed -i 's/#*MODULES="dm-mod nouveau"/MODULES="dm-mod nouveau"/' /etc/mkinitcpio.conf sed -i 's/MODULES="dm-mod nvidia"/#MODULES="dm-mod nvidia"/' /etc/mkinitcpio.conf echo "Uninstalling nvidia drivers, installing nouveau drivers." declare -i NVIDIAINSTALL NVIDIART=$(pacman -Qi|grep Name|grep nvidia-rt) if [[ -n "$NVIDIART" ]]; then NVIDIAINSTALL=$NVIDIAINSTALL+1 echo "Seems that nvidia-rt is installed. Marked for removal." fi case $NVIDIAINSTALL in 0) pacman -Rdds --noconfirm nvidia nvidia-libgl lib32-nvidia-libgl ;; 1) pacman -Rdds --noconfirm nvidia nvidia-rt nvidia-libgl lib32-nvidia-libgl ;; esac pacman -S --noconfirm nouveau-dri xf86-video-nouveau lib32-nouveau-dri echo "Switching X11 settings." NVIDIACONF="/etc/X11/xorg.conf.d/20-nvidia.conf" NOUVEAUCONF="/etc/X11/xorg.conf.d/20-nouveau.conf" BKP=".bkp" if [ -f $NVIDIACONF ]; then mv $NVIDIACONF "$NVIDIACONF$BKP" fi if [[ -f "$NOUVEAUCONF$BKP" ]]; then mv "$NOUVEAUCONF$BKP" $NOUVEAUCONF fi echo "Building new initramfs images." mkinitcpio -p linux if [[ -f "/etc/mkinitcpio.d/linux-rt.preset" ]]; then mkinitcpio -p linux-rt fi if [[ -f "/etc/mkinitcpio.d/linux-mainline.preset" ]]; then mkinitcpio -p linux-rt fi