223 lines
7.4 KiB
Bash
Executable file
223 lines
7.4 KiB
Bash
Executable file
#!/bin/bash
|
|
function goto
|
|
{
|
|
label=$1
|
|
cmd=$(sed -n "/^:[[:blank:]][[:blank:]]*${label}/{:a;n;p;ba};" $0 |
|
|
grep -v ':$')
|
|
eval "$cmd"
|
|
exit
|
|
}
|
|
|
|
function upgrade2ultimate
|
|
{
|
|
rm -rf /tmp/setup-assistant
|
|
mkdir -p /tmp/setup-assistant
|
|
|
|
clear
|
|
echo "We are going to ask you several questions so you can decide if you want a piece of software or not."
|
|
echo "Do you need asian font support? (y,n)"
|
|
echo ""
|
|
read asian
|
|
if [ $asian = "y" ]; then
|
|
echo "garuda-asian" >> /tmp/setup-assistant/pkgs.txt
|
|
fi
|
|
|
|
clear
|
|
echo "What about Snaps, Flatpak & Appimage support? (y,n)"
|
|
echo "This enables you to use software not available in our repos."
|
|
echo "If an application is available we advise to use the native version!"
|
|
read snap
|
|
if [ $snap = "y" ]; then
|
|
echo "sudo pacman -R pamac-aur pamac-tray-appindicator" >> /tmp/setup-assistant/prepare.sh
|
|
echo "pamac-all
|
|
appimagelauncher
|
|
fwupd
|
|
apparmor
|
|
snapd
|
|
snapd-glib
|
|
flatpak" >> /tmp/setup-assistant/pkgs.txt
|
|
echo "sudo systemctl enable --now snapd.socket" >> /tmp/setup-assistant/setup.sh
|
|
echo "sudo systemctl enable --now apparmor.service" >> /tmp/setup-assistant/setup.sh
|
|
echo "sudo systemctl enable --now snapd.apparmor.service" >> /tmp/setup-assistant/setup.sh
|
|
|
|
fi
|
|
|
|
clear
|
|
echo "Do you need gaming applications installed? 🎮 (y,n)"
|
|
echo "This will install the Garuda Gamer app in which every component needed to game can be enabled."
|
|
echo ""
|
|
read gaming
|
|
if [ $gaming = "y" ]; then
|
|
echo "garuda-gamer" >> /tmp/setup-assistant/pkgs.txt
|
|
echo "systemctl --user enable --now gamemoded >/dev/null 2>&1 &" >> /tmp/setup-assistant/setup.sh
|
|
echo "sudo setup_dxvk install 2>&1 &" >> /tmp/setup-assistant/setup.sh
|
|
fi
|
|
|
|
clear
|
|
echo "What about complete audio support? (y,n)"
|
|
echo "Saying yes will install PulseAudio, Alsa & Pipewire packages with its companion apps."
|
|
echo ""
|
|
read audio
|
|
if [ $audio = "y" ]; then
|
|
echo "garuda-alsa
|
|
garuda-pulse
|
|
garuda-pipewire
|
|
pulseaudio-ctl
|
|
playerctl" >> /tmp/setup-assistant/pkgs.txt
|
|
echo "sudo systemctl enable --now bluetooth-autoconnect" >> /tmp/setup-assistant/setup.sh
|
|
echo "systemctl enable pulseaudio-bluetooth-autoconnect --user" >> /tmp/setup-assistant/setup.sh
|
|
fi
|
|
|
|
clear
|
|
echo "Are you printing and scanning with this machine? 🖨"
|
|
echo "Also, do you need Samba support? (y,n)"
|
|
echo ""
|
|
read gaming
|
|
if [ $gaming = "y" ]; then
|
|
echo "garuda-settings-samba
|
|
system-config-samba
|
|
garuda-printer
|
|
garuda-scanner" >> /tmp/setup-assistant/pkgs.txt
|
|
fi
|
|
|
|
: office-selection
|
|
clear
|
|
echo "Now you are free to choose your favorite office suite."
|
|
echo "There are quite a lot of them to choose from. A guideline for new users:"
|
|
echo "LibreOffice is the most used and complete office application in the Linux world."
|
|
echo "If a simpler word processor is fine for you Abiword might also be a good choice."
|
|
echo ""
|
|
echo "1) LibreOffice"
|
|
echo "2) Onlyoffice"
|
|
echo "3) WPS Office"
|
|
echo "4) Free Office"
|
|
echo "5) Yozo Office"
|
|
echo "6) Calligra Office"
|
|
echo "7) Abiword"
|
|
echo ""
|
|
echo "Who needs office anyway? (n)"
|
|
read office
|
|
if [ $office = "1" ]; then
|
|
echo "libreoffice-fresh
|
|
libmythes" >> /tmp/setup-assistant/pkgs.txt
|
|
elif [ $office = "2" ]; then
|
|
echo "onlyoffice-bin" >> /tmp/setup-assistant/pkgs.txt
|
|
elif [ $office = "3" ]; then
|
|
echo "wps-office
|
|
wps-office-mime
|
|
ttf-wps-fonts" >> /tmp/setup-assistant/pkgs.txt
|
|
elif [ $office = "4" ]; then
|
|
echo "freeoffice" >> /tmp/setup-assistant/pkgs.txt
|
|
elif [ $office = "5" ]; then
|
|
echo "yozo-office
|
|
yozo-office-fonts" >> /tmp/setup-assistant/pkgs.txt
|
|
elif [ $office = "6" ]; then
|
|
echo "calligra" >> /tmp/setup-assistant/pkgs.txt
|
|
elif [ $office = "7" ]; then
|
|
echo "abiword" >> /tmp/setup-assistant/pkgs.txt
|
|
elif [ $office = "n" ]; then
|
|
echo "nooffice" >/dev/null 2>&1 &
|
|
else echo "Thats not a valid choice! ❌"
|
|
goto "office-selection"
|
|
fi
|
|
|
|
clear
|
|
echo "This question is about general desktop applications. ☁️"
|
|
echo "It contains apps such as Telegram, Nextcloud-client & Syncthing."
|
|
echo "Are these going to be installed? (y,n)"
|
|
read general
|
|
if [ $general = "y" ]; then
|
|
echo "telegram-desktop
|
|
joplin
|
|
murmur
|
|
mumble
|
|
discord
|
|
streamlink-twitch-gui
|
|
syncthing-gtk
|
|
nextcloud-client
|
|
firefox-extension-bitwarden
|
|
fractal
|
|
firefox-extension-xdm-browser-monitor" >> /tmp/setup-assistant/pkgs.txt
|
|
fi
|
|
|
|
: virt-selection
|
|
clear
|
|
echo "Are you rather a fan of virtualbox or virt-manager? 💻"
|
|
echo ""
|
|
echo "1) Virtualbox all the way!"
|
|
echo "2) Id rather choose Virt-manager."
|
|
echo ""
|
|
echo "I dont need virtualisation software! (n)"
|
|
read virt
|
|
if [ $virt = "1" ]; then
|
|
echo "garuda-virtualbox" >> /tmp/setup-assistant/pkgs.txt
|
|
echo "sudo usermod -aG vboxusers $USER" >> /tmp/setup-assistant/setup.sh
|
|
elif [ $virt = "2" ]; then
|
|
echo "garuda-virt-manager" >> /tmp/setup-assistant/pkgs.txt
|
|
echo "sudo systemctl enable --now libvirtd" >> /tmp/setup-assistant/setup.sh
|
|
echo "sudo usermod -aG libvirt $USER" >> /tmp/setup-assistant/setup.sh
|
|
echo "sudo usermod -aG kvm $USER" >> /tmp/setup-assistant/setup.sh
|
|
elif [ $virt = "n" ]; then
|
|
echo "novirt" >/dev/null 2>&1 &
|
|
else echo "Thats not a valid choice! ❌"
|
|
goto "virt-selection"
|
|
fi
|
|
|
|
clear
|
|
sh /tmp/setup-assistant/prepare.sh
|
|
cat /tmp/setup-assistant/pkgs.txt | sed '/^$/d;s/[[:blank:]]//g' > /tmp/setup-assistant/pkgs-install.txt
|
|
sudo pacman --needed -S - < /tmp/setup-assistant/pkgs-install.txt
|
|
sh /tmp/setup-assistant/setup.sh
|
|
|
|
rm -rf /tmp/setup-assistant
|
|
}
|
|
|
|
systemctl --user enable psd >/dev/null 2>&1 &
|
|
systemctl --user start psd >/dev/null 2>&1 &
|
|
|
|
libinput-gestures-setup autostart >/dev/null 2>&1 &
|
|
libinput-gestures-setup start >/dev/null 2>&1 &
|
|
|
|
: start
|
|
clear
|
|
echo "What do you want to do?"
|
|
echo ""
|
|
echo "1) Get initial mirrorlist & download list of packages"
|
|
echo "2) Update the system"
|
|
echo "3) Enable systemwide adblocking / HiDPI mode"
|
|
echo "4) Disable CPU migitations / change boot options"
|
|
echo "5) Install additional (Ultimate) packages by choosing which ones you need"
|
|
echo ""
|
|
echo "6) Exit"
|
|
|
|
read selection
|
|
|
|
if [ $selection = "1" ]; then
|
|
clear
|
|
echo "Select the right mirrors in Reflector Simple!"
|
|
echo "If no mirrors were found select german servers. ☝🏻"
|
|
reflector-simple >/dev/null 2>&1
|
|
sudo pacman -Syy
|
|
goto "start"
|
|
elif [ $selection = "2" ]; then
|
|
clear
|
|
sudo pacman -Syu
|
|
goto "start"
|
|
elif [ $selection = "3" ]; then
|
|
clear
|
|
echo "Find it in the settings tab. 🖥"
|
|
garuda-welcome >/dev/null 2>&1
|
|
goto "start"
|
|
elif [ $selection = "4" ]; then
|
|
clear
|
|
echo "Disabling CPU mitiations increases performance but can possibly lead to security issues."
|
|
echo "Use it with caution! 🛑"
|
|
sudo garuda-boot-options >/dev/null 2>&1
|
|
goto "start"
|
|
elif [ $selection = "5" ]; then
|
|
upgrade2ultimate
|
|
elif [ $selection = "6" ]; then
|
|
exit
|
|
else "Thats not a valid choice! ❌"
|
|
goto "start"
|
|
fi
|