#!/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 "sudo pacman -S garuda-asian" >> /tmp/setup-assistant/install-packages.sh fi clear echo "What about Snaps, Flatpak & Appimage support? (y,n)" echo "This enables you to use software not available in Chaotic-AUR." echo "If an application is available already we advise to use the version in the repo." read snap if [ $snap = "y" ]; then echo "sudo pacman -R pamac-aur pamac-tray-appindicator && sudo pacman -Syu --noconfirm pamac-all appimagelauncher fwupd apparmor snapd snapd-glib flatpak && sudo systemctl enable --now snapd" >> /tmp/setup-assistant/install-packages.sh echo "sudo systemctl enable --now snapd" >> /tmp/setup-assistant/install-packages.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 "sudo pacman -S garuda-gamer" >> /tmp/setup-assistant/install-packages.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 "sudo pacman -S garuda-alsa garuda-pulse garuda-pipewire pulseaudio-ctl playerctl" >> /tmp/setup-assistant/install-packages.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 "sudo pacman -S garuda-settings-samba system-config-samba garuda-printer garuda-scanner" >> /tmp/setup-assistant/install-packages.sh fi clear : office-selection echo "Now you are free to choose your favorite office suite." echo "There are quite a lot of them in our repo. A guideline for new users:" echo "LibreOffice is the most used office application in the Linux world (if you need a complete suite)" 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" read office if [ $office = "1" ]; then echo "sudo pacman -S libreoffice-fresh libmythes" >> /tmp/setup-assistant/install-packages.sh elif [ $office = "2" ]; then echo "sudo pacman -S onlyoffice-bin" >> /tmp/setup-assistant/install-packages.sh elif [ $office = "3" ]; then echo "sudo pacman -S wps-office wps-office-mime ttf-wps-fonts" >> /tmp/setup-assistant/install-packages.sh elif [ $office = "4" ]; then echo "sudo pacman -S freeoffice" >> /tmp/setup-assistant/install-packages.sh elif [ $office = "5" ]; then echo "sudo pacman -S yozo-office yozo-office-fonts" >> /tmp/setup-assistant/install-packages.sh elif [ $office = "6" ]; then echo "sudo pacman -S calligra" >> /tmp/setup-assistant/install-packages.sh elif [ $office = "7" ]; then echo "sudo pacman -S abiword" >> /tmp/setup-assistant/install-packages.sh 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 gaming if [ $gaming = "y" ]; then echo "sudo pacman -Syu --noconfirm --needed 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/install-packages.sh 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." read virt if [ $virt = "1" ]; then echo "sudo pacman -Syu garuda-virtualbox" >> /tmp/setup-assistant/install-packages.sh elif [ $virt = "2" ]; then echo "sudo pacman -Syu garuda-virt-manager" >> /tmp/setup-assistant/install-packages.sh else echo "Thats not a valid choice! ❌" goto "virt-selection" fi clear sudo sh /tmp/setup-assistant/install-packages.sh } 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