1
0
Fork 0
mirror of synced 2024-11-22 18:15:37 -05:00
garuda-common-settings/usr/bin/setup-assistant
2020-11-11 21:21:27 +01:00

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 asisan 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