Upload files to ''
This commit is contained in:
parent
06baf12042
commit
de2d81cbc4
62
opti-sw.sh
Normal file
62
opti-sw.sh
Normal file
@ -0,0 +1,62 @@
|
||||
#! /usr/bin/env sh
|
||||
|
||||
[ "$USER" = "root" ] && echo "Please DO NOT run this script as root" && exit 1
|
||||
|
||||
usage() {
|
||||
echo "Usage:"
|
||||
echo " nvidia-switch.sh (i)ntel | (n)vidia"
|
||||
}
|
||||
|
||||
checkinst() {
|
||||
which $1 >/dev/null 2>/dev/null && return 0 || return 1
|
||||
}
|
||||
|
||||
rc_msg() {
|
||||
TERM_WIDTH=$(stty size | cut -d" " -f2)
|
||||
|
||||
printf "%${TERM_WIDTH}s" | tr " " "_"
|
||||
printf "\n\n"
|
||||
echo "If you haven't done so already, please put the following line as the top of your display manager or XOrg init script (for example ~/.xinitrc for startx or /usr/share/sddm/scripts/Xsetup for SDDM):"
|
||||
echo "sh $HOME/.local/lib/nvidia-switch-rc.sh"
|
||||
printf "%${TERM_WIDTH}s" | tr " " "_"
|
||||
}
|
||||
|
||||
su_run() {
|
||||
sh -c "$SU_PROG sh -c '$1'"
|
||||
}
|
||||
|
||||
[ ! -e ~/.local/lib/nvidia-switch-rc.sh ] && mkdir -p ~/.local/lib/ && touch ~/.local/lib/nvidia-switch-rc.sh && chmod +x ~/.local/lib/nvidia-switch-rc.sh
|
||||
|
||||
if checkinst "sudo"; then
|
||||
SU_PROG="sudo"
|
||||
elif checkinst "doas"; then
|
||||
SU_PROG="doas"
|
||||
else
|
||||
SU_PROG="su -c"
|
||||
fi
|
||||
|
||||
case $1 in
|
||||
i|intel)
|
||||
su_run "modprobe -r nvidia"
|
||||
[ -e /etc/X11/xorg.conf ] &&
|
||||
su_run "mv -f /etc/X11/xorg.conf /etc/X11/xorg.conf.nvidia" &&
|
||||
echo "Backed up existing XOrg config file /etc/X11/xorg.conf to /etc/X11/xorg.conf.nvidia"
|
||||
echo " " > ~/.local/lib/nvidia-switch-rc.sh
|
||||
|
||||
echo "Switched to Intel GPU"
|
||||
;;
|
||||
n|nvidia)
|
||||
rc_msg
|
||||
# It will complain about the XOrg config file missing, so I am supressing all output, including errors
|
||||
su_run "nvidia-xconfig --prime" >/dev/null 2>/dev/null
|
||||
su_run "modprobe nvidia"
|
||||
echo -e "xrandr --setprovideroutputsource modesetting NVIDIA-0\nxrandr --auto" > ~/.local/lib/nvidia-switch-rc.sh
|
||||
|
||||
su_run "mkdir -p /etc/modules-load.d"
|
||||
su_run "echo nvidia > /etc/modules-load.d/video.conf"
|
||||
|
||||
echo "Switched to NVIDIA GPU. You will probably need to restart."
|
||||
;;
|
||||
*) usage; exit 1
|
||||
;;
|
||||
esac
|
Loading…
Reference in New Issue
Block a user