Update setup-assistant

1. Much better UX, close button actually closes instead of assuming yes
2. Code improvements/refactor
3. Add gnome boxes
4. Probably a lot of other things I can't remember
This commit is contained in:
TotallyNotElite 2020-12-17 17:50:29 +01:00
parent 8e5394cd1c
commit 8f9abe237e
13 changed files with 318 additions and 758 deletions

View File

@ -1,772 +1,245 @@
#!/bin/bash
function goto
function askYesNoQuestion
{
label=$1
cmd=$(sed -n "/^:[[:blank:]][[:blank:]]*${label}/{:a;n;p;ba};" $0 |
grep -v ':$')
eval "$cmd"
exit
yad \
--image="$1" \
--title="$2" \
--window-icon="$3" \
--geometry=700x100 \
--button=No:0 \
--button=Yes:1 \
--text-align=center \
--center \
--text "$4";
local code=$?
if [ "$code" -eq 252 ]; then
# The user doesn't want to continue here, they pressed the X button
exit 0
elif [ "$code" -eq 1 ]; then
return 1
# In case there is an unknown exit code, we assume No
else
return 0
fi
}
function askPackageSelectionQuestion
{
askPackageSelectionQuestion_out=()
local stdout
stdout=$(yad \
--image="$1" \
--title="$2" \
--window-icon="$3" \
--text "$4" \
--geometry=600x500 \
--list \
--checklist \
--column=Install \
--column="Package:hd" \
--column="$5" \
--center < "$6")
if [ "$?" -eq 252 ]; then
# The user doesn't want to continue here, they pressed the X button
exit 0
fi
while IFS= read -r line
do
local checked="$(echo "$line" | cut -d '|' -f1)"
local packages="$(echo "$line" | cut -d '|' -f2)"
if [ "$checked" == "TRUE" ]; then
for package in $packages
do
askPackageSelectionQuestion_out+=("$package")
done
fi
done < <(printf '%s\n' "$stdout")
}
function isOnline
{
# Because this can never be offline, right?
wget -q --spider http://garudalinux.org
return $?
}
function upgrade2ultimate
{
rm -rf /tmp/setup-assistant
mkdir -p /tmp/setup-assistant
PACKAGES=()
PREPARE=()
SETUP=()
clear
if ! yad \
--image='font-manager' \
--title="Upgrade to ULTIMATE" \
--window-icon='update' \
--geometry=700x100 \
--button=No:0 \
--button=Yes:1 \
--text-align=center \
--center \
--text "Do you need cjk font support (fixes missing characters)?"; then
echo "noto-fonts-cjk" >> /tmp/setup-assistant/pkgs.txt
if ! askYesNoQuestion "font-manager" "Upgrade to ULTIMATE" "update" "Do you need cjk font support (fixes missing characters)?"; then
PACKAGES+=("noto-fonts-cjk")
fi
if ! yad \
--image='printer' \
--title="Upgrade to ULTIMATE" \
--window-icon='update' \
--geometry=700x100 \
--button=No:0 \
--button=Yes:1 \
--text-align=center \
--center \
--text "Do you need Printer,Scanner and Samba Support?"; then
if pacman -Qs plasma-workspace > /dev/null ; then
echo "printer-support
scanner-support
samba-support
kdenetwork-filesharing
print-manager
skanlite" >> /tmp/setup-assistant/pkgs.txt
else
echo "printer-support
scanner-support
samba-support
gvfs-smb
simple-scan" >> /tmp/setup-assistant/pkgs.txt
fi
if ! askYesNoQuestion "printer" "Upgrade to ULTIMATE" "update" "Do you need Printer, Scanner and Samba Support?"; then
if pacman -Qs plasma-workspace > /dev/null ; then
PACKAGES+=("printer-support"
"scanner-support"
"samba-support"
"kdenetwork-filesharing"
"print-manager"
"skanlite")
else
PACKAGES+=("printer-support"
"scanner-support"
"samba-support"
"gvfs-smb"
"simple-scan")
fi
fi
if ! yad \
--image='wallpaper' \
--title="Upgrade to ULTIMATE" \
--window-icon='update' \
--geometry=700x100 \
--button=No:0 \
--button=Yes:1 \
--text-align=center \
--center \
--text "Do you want to install additional Garuda wallpapers?"; then
echo "garuda-wallpapers-extra" >> /tmp/setup-assistant/pkgs.txt
if ! askYesNoQuestion "wallpaper" "Upgrade to ULTIMATE" "update" "Do you want to install additional Garuda wallpapers?"; then
PACKAGES+=("garuda-wallpapers-extra")
fi
if ! yad \
--image='AppImageLauncher' \
--title="Upgrade to ULTIMATE" \
--window-icon='update' \
--geometry=700x100 \
--button=No:0 \
--button=Yes:1 \
--text-align=center \
--center \
--text "What about Snaps, Flatpak, Appimage and firmware update support?"; then
if ! askYesNoQuestion "AppImageLauncher" "Upgradpe to ULTIMATE" "update" "What about Snaps, Flatpak, Appimage and firmware update support?"; then
if pacman -Qs pamac-aur > /dev/null ; then
echo "sudo pacman --noconfirm -R pamac-aur" >> /tmp/setup-assistant/prepare.sh
PREPARE+=("sudo pacman --noconfirm -R pamac-aur")
fi
if pacman -Qs pamac-tray-appindicator > /dev/null ; then
echo "sudo pacman --noconfirm -R pamac-tray-appindicator" >> /tmp/setup-assistant/prepare.sh
PREPARE+=("pacman --noconfirm -R pamac-tray-appindicator")
fi
echo "pamac-all
appimagelauncher
fwupd
gnome-firmware
apparmor
snapd
snapd-glib
flatpak" >> /tmp/setup-assistant/pkgs.txt
echo "sudo systemctl enable --now snapd.socket" >> /tmp/setup-assistant/setup_root.sh
echo "sudo systemctl enable --now apparmor.service" >> /tmp/setup-assistant/setup_root.sh
echo "sudo systemctl enable --now snapd.apparmor.service" >> /tmp/setup-assistant/setup_root.sh
fi
PACKAGES+=("pamac-all"
"appimagelauncher"
"fwupd"
"gnome-firmware"
"apparmor"
"snapd"
"snapd-glib"
"flatpak")
SETUP+=("systemctl enable --now snapd.socket"
"systemctl enable --now apparmor.service"
"systemctl enable --now snapd.apparmor.service")
fi
if pacman -Qs plasma-desktop > /dev/null ; then
if ! yad \
--image='plasmashell' \
--title="Upgrade to ULTIMATE" \
--window-icon='update' \
--geometry=700x100 \
--button=No:0 \
--button=Yes:1 \
--text-align=center \
--center \
--text "Do you want to install additional KDE applications?"; then
echo "elisa
khelpcenter
krdc
krfb
kompare
krita
krename
ksystemlog
khotkeys
drkonqi
kscreen
kgamma5
ksshaskpass
kwrited
kmouth
lokalize
kup
kmag
kimtoy
kleopatra
qt5-imageformats
kimageformats
kdeplasma-addons
plasma-thunderbolt
plasma-vault
plasma-disks
plasma-meta
vlc" >> /tmp/setup-assistant/pkgs.txt
if ! askYesNoQuestion "plasmashell" "Upgrade to ULTIMATE" "update" "Do you want to install additional KDE applications?"; then
PACKAGES+=("elisa"
"khelpcenter"
"krdc"
"krfb"
"kompare"
"krita"
"krename"
"ksystemlog"
"khotkeys"
"drkonqi"
"kscreen"
"kgamma5"
"ksshaskpass"
"kwrited"
"kmouth"
"lokalize"
"kup"
"kmag"
"kimtoy"
"kleopatra"
"qt5-imageformats"
"kimageformats"
"kdeplasma-addons"
"plasma-thunderbolt"
"plasma-vault"
"plasma-disks"
"plasma-meta"
"vlc")
fi
fi
if pacman -Qs gnome-shell > /dev/null ; then
if ! yad \
--image='gnome-shell' \
--title="Upgrade to ULTIMATE" \
--window-icon='update' \
--geometry=700x100 \
--button=No:0 \
--button=Yes:1 \
--text-align=center \
--center \
--text "Do you want to install additional GNOME applications?"; then
echo "gpaste
eog-plugins
grilo-plugins
seahorse-nautilus
gtkhash-nautilus
gnome-logs
gnome-remote-desktop
gnome-sound-recorder
vino
rygel
shotwell
lollypop" >> /tmp/setup-assistant/pkgs.txt
if ! askYesNoQuestion "gnome-shell" "Upgrade to ULTIMATE" "update" "Do you want to install additional GNOME applications?"; then
PACKAGES+=("gpaste"
"eog-plugins"
"grilo-plugins"
"seahorse-nautilus"
"gtkhash-nautilus"
"gnome-logs"
"gnome-remote-desktop"
"gnome-sound-recorder"
"vino"
"rygel"
"shotwell"
"lollypop")
fi
fi
yad \
--image='libreoffice-main' \
--title="Upgrade to ULTIMATE" \
--window-icon='update' \
--text "There are a lot of office suites to choose from!" \
--geometry=600x500 \
--list \
--checklist \
--column=Install \
--column=Office \
--center < /usr/lib/setup-assistant/office.txt > /tmp/setup-assistant/office.txt
if grep -R "LibreOffice Fresh" /tmp/setup-assistant/office.txt; then
echo "libreoffice-fresh
libmythes" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "LibreOffice Still" /tmp/setup-assistant/office.txt; then
echo "libreoffice-still
libmythes" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "OnlyOffice" /tmp/setup-assistant/office.txt; then
echo "onlyoffice-bin" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "WPS Office" /tmp/setup-assistant/office.txt; then
echo "wps-office
wps-office-mime
ttf-wps-fonts" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Free Office" /tmp/setup-assistant/office.txt; then
echo "freeoffice" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Microsoft Office" /tmp/setup-assistant/office.txt; then
echo "ms-office-online" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Yozo Office" /tmp/setup-assistant/office.txt; then
echo "yozo-office
yozo-office-fonts" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Calligra Office" /tmp/setup-assistant/office.txt; then
echo "calligra" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Abiword" /tmp/setup-assistant/office.txt; then
echo "abiword" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Joplin" /tmp/setup-assistant/office.txt; then
echo "joplin-desktop-electron" >> /tmp/setup-assistant/pkgs.txt
askPackageSelectionQuestion 'libreoffice-main' "Upgrade to ULTIMATE" 'update' "What Office suites do you want?" "Office" "/usr/lib/setup-assistant/office.txt"
# Absolute HACK!
if [[ "${askPackageSelectionQuestion_out[@]}" =~ "libreoffice-fresh" ]] && [[ "${askPackageSelectionQuestion_out[@]}" =~ "libreoffice-still" ]] ; then
askPackageSelectionQuestion_out=( "${askPackageSelectionQuestion_out[@]/libreoffice-still}" )
fi
yad \
--image='firefox' \
--title="Upgrade to ULTIMATE" \
--window-icon='update' \
--text "Here are some browsers that you can choose from:" \
--geometry=600x400 \
--list \
--checklist \
--column=Install \
--column=Applications \
--center < /usr/lib/setup-assistant/browsers.txt > /tmp/setup-assistant/browsers.txt
PACKAGES=("${PACKAGES[@]}" "${askPackageSelectionQuestion_out[@]}")
if grep -R "Firefox" /tmp/setup-assistant/browsers.txt; then
echo "firefox" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Chromium" /tmp/setup-assistant/browsers.txt; then
echo "chromium" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Vivaldi" /tmp/setup-assistant/browsers.txt; then
echo "vivaldi
vivaldi-ffmpeg-codecs" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Opera" /tmp/setup-assistant/browsers.txt; then
echo "opera
opera-ffmpeg-codecs" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Tor Browser" /tmp/setup-assistant/browsers.txt; then
echo "torbrowser-launcher" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Otter Browser" /tmp/setup-assistant/browsers.txt; then
echo "otter-browser" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Brave" /tmp/setup-assistant/browsers.txt; then
echo "brave" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Falkon" /tmp/setup-assistant/browsers.txt; then
echo "falkon" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Ungoogled" /tmp/setup-assistant/browsers.txt; then
echo "ungoogled-chromium" >> /tmp/setup-assistant/pkgs.txt
askPackageSelectionQuestion 'firefox' "Upgrade to ULTIMATE" 'update' "What extra browsers do you want?" "Applications" "/usr/lib/setup-assistant/browsers.txt"
PACKAGES=("${PACKAGES[@]}" "${askPackageSelectionQuestion_out[@]}")
askPackageSelectionQuestion 'telegram-desktop' "Upgrade to ULTIMATE" 'update' "What communication software do you want?" "Applications" "/usr/lib/setup-assistant/communication.txt"
PACKAGES=("${PACKAGES[@]}" "${askPackageSelectionQuestion_out[@]}")
askPackageSelectionQuestion 'thunderbird' "Upgrade to ULTIMATE" 'update' "What email clients do you want?" "Applications" "/usr/lib/setup-assistant/mail.txt"
PACKAGES=("${PACKAGES[@]}" "${askPackageSelectionQuestion_out[@]}")
askPackageSelectionQuestion 'audacity' "Upgrade to ULTIMATE" 'update' "What audio software do you want?" "Applications" "/usr/lib/setup-assistant/audio.txt"
PACKAGES=("${PACKAGES[@]}" "${askPackageSelectionQuestion_out[@]}")
askPackageSelectionQuestion 'kdenlive' "Upgrade to ULTIMATE" 'update' "What video software do you want?" "Applications" "/usr/lib/setup-assistant/video.txt"
PACKAGES=("${PACKAGES[@]}" "${askPackageSelectionQuestion_out[@]}")
askPackageSelectionQuestion 'gimp' "Upgrade to ULTIMATE" 'update' "What graphics software do you want?" "Applications" "/usr/lib/setup-assistant/graphics.txt"
PACKAGES=("${PACKAGES[@]}" "${askPackageSelectionQuestion_out[@]}")
askPackageSelectionQuestion 'gimp' "Upgrade to ULTIMATE" 'update' "What multimedia software do you want?" "Applications" "/usr/lib/setup-assistant/multimedia.txt"
PACKAGES=("${PACKAGES[@]}" "${askPackageSelectionQuestion_out[@]}")
askPackageSelectionQuestion 'code' "Upgrade to ULTIMATE" 'update' "What developement software do you want?" "Applications" "/usr/lib/setup-assistant/development.txt"
PACKAGES=("${PACKAGES[@]}" "${askPackageSelectionQuestion_out[@]}")
# Absolute HACK!
if [[ "${askPackageSelectionQuestion_out[@]}" =~ "podman" ]]; then
SETUP+=("systemctl enable --now podman.socket")
fi
askPackageSelectionQuestion 'virtualbox' "Upgrade to ULTIMATE" 'update' "What virtualization software do you want?" "Applications" "/usr/lib/setup-assistant/virtualization.txt"
PACKAGES=("${PACKAGES[@]}" "${askPackageSelectionQuestion_out[@]}")
yad \
--image='nextcloud-client' \
--title="Upgrade to ULTIMATE" \
--window-icon='update' \
--text "Some general internet applications?" \
--geometry=600x500 \
--list \
--checklist \
--column=Install \
--column=Applications \
--center < /usr/lib/setup-assistant/internet.txt > /tmp/setup-assistant/internet.txt
if grep -R "Nextcloud-client" /tmp/setup-assistant/internet.txt; then
echo "nextcloud-client" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Firefox Bitwarden" /tmp/setup-assistant/internet.txt; then
echo "firefox-extension-bitwarden" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Firefox XDM" /tmp/setup-assistant/internet.txt; then
echo "firefox-extension-xdm-browser-monitor" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Syncthing-GTK" /tmp/setup-assistant/internet.txt; then
echo "syncthing-gtk" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Filezilla" /tmp/setup-assistant/internet.txt; then
echo "filezilla" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Putty" /tmp/setup-assistant/internet.txt; then
echo "putty" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Nitroshare" /tmp/setup-assistant/internet.txt; then
echo "nitroshare" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Jdownloader2" /tmp/setup-assistant/internet.txt; then
echo "jdownloader2" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Deluge" /tmp/setup-assistant/internet.txt; then
echo "deluge-gtk" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Qbittorrent" /tmp/setup-assistant/internet.txt; then
echo "qbittorrent" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Cockpit" /tmp/setup-assistant/internet.txt; then
echo "cockpit
cockpit-dashboard
cockpit-machines" >> /tmp/setup-assistant/pkgs.txt
echo "sudo systemctl enable --now cockpit.socket" >> /tmp/setup-assistant/setup_root.sh
fi
if grep -R "Twitch GUI" /tmp/setup-assistant/internet.txt; then
echo "streamlink-twitch-gui" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Remmina" /tmp/setup-assistant/internet.txt; then
echo "remmina" >> /tmp/setup-assistant/pkgs.txt
# Absolute HACK!
if [[ "${askPackageSelectionQuestion_out[@]}" =~ "virt-manager-meta" ]] || [[ "${askPackageSelectionQuestion_out[@]}" =~ "gnome-boxes" ]]; then
SETUP+=("systemctl enable --now libvirtd")
fi
yad \
--image='telegram-desktop' \
--title="Upgrade to ULTIMATE" \
--window-icon='update' \
--text "Do you need communication software?" \
--geometry=600x500 \
--list \
--checklist \
--column=Install \
--column=Applications \
--center < /usr/lib/setup-assistant/communication.txt > /tmp/setup-assistant/communication.txt
if grep -R "Telegram Desktop" /tmp/setup-assistant/communication.txt; then
echo "telegram-desktop" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Discord" /tmp/setup-assistant/communication.txt; then
echo "discord" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Element" /tmp/setup-assistant/communication.txt; then
echo "element-desktop" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Wire" /tmp/setup-assistant/communication.txt; then
echo "wire-desktop" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Signal" /tmp/setup-assistant/communication.txt; then
echo "signal-desktop" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Jitsi-Meet" /tmp/setup-assistant/communication.txt; then
echo "jitsi-meet" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Zoom" /tmp/setup-assistant/communication.txt; then
echo "zoom" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Skype" /tmp/setup-assistant/communication.txt; then
echo "skypeforlinux-stable-bin" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Slack" /tmp/setup-assistant/communication.txt; then
echo "slack-desktop" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Whatsapp" /tmp/setup-assistant/communication.txt; then
echo "whatsapp-nativefier" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Mumble" /tmp/setup-assistant/communication.txt; then
echo "mumble" >> /tmp/setup-assistant/pkgs.txt
fi
yad \
--image='thunderbird' \
--title="Upgrade to ULTIMATE" \
--window-icon='update' \
--text "Mail clients:" \
--geometry=600x500 \
--list \
--checklist \
--column=Install \
--column=Applications \
--center < /usr/lib/setup-assistant/mail.txt > /tmp/setup-assistant/mail.txt
if grep -R "Thunderbird" /tmp/setup-assistant/mail.txt; then
echo "thunderbird" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Kmail" /tmp/setup-assistant/mail.txt; then
echo "kmail" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Geary" /tmp/setup-assistant/mail.txt; then
echo "geary" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Trojita" /tmp/setup-assistant/mail.txt; then
echo "trojita" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Mailspring" /tmp/setup-assistant/mail.txt; then
echo "mailspring" >> /tmp/setup-assistant/pkgs.txt
fi
yad \
--image='audacity' \
--title="Upgrade to ULTIMATE" \
--window-icon='update' \
--text "What about audio software?" \
--geometry=600x500 \
--list \
--checklist \
--column=Install \
--column=Applications \
--center < /usr/lib/setup-assistant/audio.txt >> /tmp/setup-assistant/audio.txt
if grep -R "Olivia" /tmp/setup-assistant/audio.txt; then
echo "olivia" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Kwave" /tmp/setup-assistant/audio.txt; then
echo "kwave" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Cantata" /tmp/setup-assistant/audio.txt; then
echo "cantata" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Audacious" /tmp/setup-assistant/audio.txt; then
echo "audacious" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Audacity" /tmp/setup-assistant/audio.txt; then
echo "audacity" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Lollypop" /tmp/setup-assistant/audio.txt; then
echo "lollypop" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Ardour" /tmp/setup-assistant/audio.txt; then
echo "ardour" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "LMMS" /tmp/setup-assistant/audio.txt; then
echo "lmms" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Mixxx" /tmp/setup-assistant/audio.txt; then
echo "mixxx" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "MuseScore" /tmp/setup-assistant/audio.txt; then
echo "musescore" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Rosegarden" /tmp/setup-assistant/audio.txt; then
echo "rosegarden" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Strawberry" /tmp/setup-assistant/audio.txt; then
echo "strawberry" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Bitwig" /tmp/setup-assistant/audio.txt; then
echo "bitwig-studio" >> /tmp/setup-assistant/pkgs.txt
fi
yad \
--image='kdenlive' \
--title="Upgrade to ULTIMATE" \
--window-icon='update' \
--text "What about video software?" \
--geometry=600x500 \
--list \
--checklist \
--column=Install \
--column=Applications \
--center < /usr/lib/setup-assistant/video.txt >> /tmp/setup-assistant/video.txt
if grep -R "Kdenlive" /tmp/setup-assistant/video.txt; then
echo "kdenlive
movit
sox
opus-tools
frei0r-plugins" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Shotcut" /tmp/setup-assistant/video.txt; then
echo "shotcut" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Pitivi" /tmp/setup-assistant/video.txt; then
echo "pitivi
frei0r-plugins" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Openshot" /tmp/setup-assistant/video.txt; then
echo "openshot" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "OBS Studio" /tmp/setup-assistant/video.txt; then
echo "obs-studio" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "SMPlayer" /tmp/setup-assistant/video.txt; then
echo "smplayer
smplayer-skins
smplayer-themes" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Vlc" /tmp/setup-assistant/video.txt; then
echo "vlc" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Baka-Mplayer" /tmp/setup-assistant/video.txt; then
echo "baka-mplayer" >> /tmp/setup-assistant/pkgs.txt
fi
yad \
--image='gimp' \
--title="Upgrade to ULTIMATE" \
--window-icon='update' \
--text "What about graphics software?" \
--geometry=600x500 \
--list \
--checklist \
--column=Install \
--column=Applications \
--center < /usr/lib/setup-assistant/graphics.txt >> /tmp/setup-assistant/graphics.txt
if grep -R "GIMP" /tmp/setup-assistant/graphics.txt; then
echo "gimp" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Krita" /tmp/setup-assistant/graphics.txt; then
echo "krita
krita-plugin-gmic
opencolorio" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Kolourpaint" /tmp/setup-assistant/graphics.txt; then
echo "kolourpaint" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Digikam" /tmp/setup-assistant/graphics.txt; then
echo "digikam" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Inkscape" /tmp/setup-assistant/graphics.txt; then
echo "inkscape" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Blender" /tmp/setup-assistant/graphics.txt; then
echo "blender" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Pencil 2D" /tmp/setup-assistant/graphics.txt; then
echo "pencil2d" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Synfig Studio" /tmp/setup-assistant/graphics.txt; then
echo "synfigstudio" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "DarkTable" /tmp/setup-assistant/graphics.txt; then
echo "darktable" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "FontForge" /tmp/setup-assistant/graphics.txt; then
echo "fontforge" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "MyPaint" /tmp/setup-assistant/graphics.txt; then
echo "mypaint" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "ImageMagick" /tmp/setup-assistant/graphics.txt; then
echo "imagemagick" >> /tmp/setup-assistant/pkgs.txt
fi
yad \
--image='kodi' \
--title="Upgrade to ULTIMATE" \
--window-icon='update' \
--text "What about multimedia software?" \
--geometry=600x500 \
--list \
--checklist \
--column=Install \
--column=Applications \
--center < /usr/lib/setup-assistant/multimedia.txt >> /tmp/setup-assistant/multimedia.txt
if grep -R "Converseen" /tmp/setup-assistant/multimedia.txt; then
echo "converseen" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Transmageddon" /tmp/setup-assistant/multimedia.txt; then
echo "transmageddon" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Soundconverter" /tmp/setup-assistant/multimedia.txt; then
echo "soundconverter" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Stremio" /tmp/setup-assistant/multimedia.txt; then
echo "stremio" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Kodi" /tmp/setup-assistant/multimedia.txt; then
echo "kodi
kodi-platform
kodi-eventclients" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Mediaelch" /tmp/setup-assistant/multimedia.txt; then
echo "mediaelch" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Subtitlecomposer" /tmp/setup-assistant/multimedia.txt; then
echo "subtitlecomposer" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Kid3" /tmp/setup-assistant/multimedia.txt; then
echo "kid3" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "K3B" /tmp/setup-assistant/multimedia.txt; then
echo "k3b
cdparanoia
cdrdao
dvd+rw-tools
emovix
transcode
vcdimager
cdrtools" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "BRASERO" /tmp/setup-assistant/multimedia.txt; then
echo "brasero" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "XFBURN" /tmp/setup-assistant/multimedia.txt; then
echo "xfburn" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Easytag" /tmp/setup-assistant/multimedia.txt; then
echo "easytag" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Plex" /tmp/setup-assistant/multimedia.txt; then
echo "plex-media-player" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Handbrake" /tmp/setup-assistant/multimedia.txt; then
echo "handbrake" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Mystiq" /tmp/setup-assistant/multimedia.txt; then
echo "mystiq" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Hypnotix" /tmp/setup-assistant/multimedia.txt; then
echo "hypnotix" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Variety" /tmp/setup-assistant/multimedia.txt; then
echo "variety" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Conky" /tmp/setup-assistant/multimedia.txt; then
echo "conky-lua-nv
conky-manager" >> /tmp/setup-assistant/pkgs.txt
fi
yad \
--image='code' \
--title="Upgrade to ULTIMATE" \
--window-icon='update' \
--text "Are you a developer who needs one of these?" \
--geometry=600x500 \
--list \
--checklist \
--column=Install \
--column=Applications \
--center < /usr/lib/setup-assistant/development.txt >> /tmp/setup-assistant/development.txt
if grep -R "Visual Studio" /tmp/setup-assistant/development.txt; then
echo "code" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "GNU Emacs" /tmp/setup-assistant/development.txt; then
echo "emacs" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Atom" /tmp/setup-assistant/development.txt; then
echo "atom" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "IntelliJ-IDEA" /tmp/setup-assistant/development.txt; then
echo "intellij-idea-community-edition" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "PyCharm" /tmp/setup-assistant/development.txt; then
echo "pycharm-community-edition" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "QtCreator" /tmp/setup-assistant/development.txt; then
echo "qtcreator" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "GitHub" /tmp/setup-assistant/development.txt; then
echo "github-desktop-bin" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Plasma SDK" /tmp/setup-assistant/development.txt; then
echo "plasma-sdk" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Android Studio" /tmp/setup-assistant/development.txt; then
echo "android-studio
android-studio-launcher" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Docker" /tmp/setup-assistant/development.txt; then
echo "podman-docker
podman-compose
crun" >> /tmp/setup-assistant/pkgs.txt
echo "sudo systemctl enable --now podman.socket" >> /tmp/setup-assistant/setup_root.sh
fi
if grep -R "BlackArch" /tmp/setup-assistant/development.txt; then
echo "curl -O https://blackarch.org/strap.sh
chmod +x strap.sh
sudo ./strap.sh
rm strap.sh
sed -i 's/^# Server/Server/' /etc/pacman.d/blackarch-mirrorlist
sudo pacman -Syu" >> /tmp/setup-assistant/setup_root.sh
fi
yad \
--image='virtualbox' \
--title="Upgrade to ULTIMATE" \
--window-icon='update' \
--text "Are you rather a fan of Virtualbox or virt-manager?" \
--geometry=600x400 \
--list \
--checklist \
--column=Install \
--column=Applications \
--center < /usr/lib/setup-assistant/virtualization.txt >> /tmp/setup-assistant/virtualization.txt
if grep -R "Virtualbox" /tmp/setup-assistant/virtualization.txt; then
echo "virtualbox-meta" >> /tmp/setup-assistant/pkgs.txt
fi
if grep -R "Virt-manager" /tmp/setup-assistant/virtualization.txt; then
echo "virt-manager-meta" >> /tmp/setup-assistant/pkgs.txt
echo "sudo systemctl enable --now libvirtd" >> /tmp/setup-assistant/setup_root.sh
fi
alacritty -e sh /usr/lib/setup-assistant/apply.sh
if [ -e "/tmp/setup-assistant/setup_user.sh" ]; then
sh /tmp/setup-assistant/setup_user.sh
fi
rm -rf /tmp/setup-assistant
alacritty -e bash /usr/lib/setup-assistant/apply.sh <( IFS=$'\n'; echo "${PREPARE[*]}" ) <(printf '%s\n' "${PACKAGES[@]}") <( IFS=$'\n'; echo "${SETUP[*]}" )
}
# I'm kind of confused why this is not part of the installer?
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 &
: isup
wget -q --spider http://garudalinux.org
if [ $? -eq 0 ]; then
echo "Online"
else
if ! yad \
--image='update' \
--title="Setup Assistant" \
--window-icon='update' \
--geometry=700x100 \
--button=No:0 \
--button=Yes:1 \
--text-align=center \
--center \
--text "No internet connection available, try again?"; then
goto isup
else exit
while ! isOnline
do
if askYesNoQuestion "update" "Setup Assistant" "update" "No internet connection available, try again?"; then
exit 0
fi
done
if ! askYesNoQuestion "update" "Setup Assistant" "update" "Do you want to get a recent mirrorlist?"; then
reflector-simple >/dev/null 2>&1
fi
if ! yad \
--image='update' \
--title="Setup Assistant" \
--window-icon='update' \
--geometry=700x100 \
--button=No:0 \
--button=Yes:1 \
--text-align=center \
--center \
--text "Do you want to get a recent mirrorlist?"; then
reflector-simple >/dev/null 2>&1
if ! askYesNoQuestion "update" "Setup Assistant" "update" "Update the system? (recommended!)"; then
alacritty -e sudo pacman "-Syyu"
fi
if ! yad \
--image='update' \
--title="Setup Assistant" \
--window-icon='update' \
--geometry=700x100 \
--button=No:0 \
--button=Yes:1 \
--text-align=center \
--center \
--text "Update the system? (recommended!)"; then
alacritty -e sudo pacman "-Syyu"
if ! askYesNoQuestion "update" "Setup Assistant" "update" "Upgrade to Ultimate? (You can select which apps you want!)"; then
upgrade2ultimate
fi
if ! yad \
--image='pamac' \
--title="Setup Assistant" \
--window-icon='update' \
--geometry=700x100 \
--button=No:0 \
--button=Yes:1 \
--text-align=center \
--center \
--text "Upgrade to Ultimate? (You can select which apps you want!)"; then
upgrade2ultimate
fi

View File

@ -1,22 +1,21 @@
#!/bin/bash
if [ -e "/tmp/setup-assistant/prepare.sh" ]; then
if [ -e "$1" ]; then
echo "Running pre-installation stuff.."
echo ""
sudo sh /tmp/setup-assistant/prepare.sh
sudo bash - <$1
fi
cat /tmp/setup-assistant/pkgs.txt | sed '/^$/d;s/[[:blank:]]//g' > /tmp/setup-assistant/pkgs-install.txt
echo ""
echo "Installing packages.."
echo ""
sudo pacman --needed -S - < /tmp/setup-assistant/pkgs-install.txt
sudo pacman --needed -S $(cat - <$2)
if [ -e "/tmp/setup-assistant/setup_root.sh" ]; then
if [ -e "$3" ]; then
echo ""
echo "Enabling services.."
echo ""
sh /tmp/setup-assistant/setup_root.sh
sudo bash - <$3
fi
echo ""

View File

@ -1,28 +1,39 @@
true
olivia
Olivia (Audio player with YouTube support)
false
audacious
Audacious
false
cantata
Cantata (Frontend for mpd)
false
kwave
Kwave (Sound editor by KDE)
false
lollypop
Lollypop (GNOME music player)
false
audacity
Audacity (Record/edit audio)
false
ardour
Ardour (proffesional-grade audio workstation)
false
lmms
LMMS (The Linux MultiMedia Studio)
false
mixxx
Mixxx (Digital DJ'ing)
false
musescore
MuseScore (Sheet music notation)
false
rosegarden
Rosegarden (MIDI/audio sequencer)
false
strawberry
Strawberry Player (aimed at collectors)
false
bitwig-studio
Bitwig Studio (Digital audio workstation)
false
None of them

View File

@ -1,20 +1,24 @@
true
Firefox (recommended)
false
chromium
Chromium
false
vivaldi vivaldi-ffmpeg-codecs
Vivaldi
false
opera opera-ffmpeg-codecs
Opera
false
torbrowser-launcher
Tor Browser (The Onion Router)
false
otter-browser
Otter Browser
false
brave
Brave (Based on Chromium + privacy stuff)
false
falkon
Falkon (KDE browser)
false
ungoogled-chromium
Ungoogled Chromium
false
None of them

View File

@ -1,24 +1,33 @@
true
telegram-desktop
Telegram Desktop
false
discord
Discord
false
element-desktop
Element (Matrix client)
false
wire-desktop
Wire (E2EE messenger)
false
signal-desktop
Signal Desktop
false
jitsi-meet
Jitsi-Meet (Open source webconferencing)
false
zoom
Zoom (Proprietary webconferencing)
false
skypeforlinux-stable-bin
Skype
false
slack-desktop
Slack (Messenger)
false
whatsapp-nativefier
Whatsapp (nativefier)
false
mumble
Mumble (Open source Teamspeak clone)
false
None of them

View File

@ -1,24 +1,30 @@
true
code
Visual Studio Code
false
github-desktop-bin
GitHub Desktop
false
emacs
GNU Emacs
false
atom
Atom
false
intellij-idea-community-edition
IntelliJ-IDEA (Community Edition)
false
pycharm-community-edition
PyCharm (Community Edition)
false
android-studio android-studio-launcher
Android Studio
false
podman-docker podman-compose crun
Podman (Docker, usable with docker commands)
false
BlackArch Repository (Pentesting repo)
false
plasma-sdk
Plasma SDK
false
qtcreator
QtCreator
false
None of them

View File

@ -1,26 +1,36 @@
true
gimp
GIMP (Advanced image manipulation program)
false
krita krita-plugin-gmic opencolorio
Krita (Paint application by KDE)
false
kolourpaint
Kolourpaint (Paint application)
false
digikam
Digikam (Photo management app)
false
inkscape
Inkscape (Vector graphics)
false
blender
Blender (full featured 3D creation suite)
false
pencil2d
Pencil 2D (2D handdrawn animations)
false
synfigstudio
Synfig Studio (2D vector animation)
false
darktable
DarkTable (Organize and develop raw images)
false
fontforge
FontForge (Outline and font editor)
false
mypaint
MyPaint (Digital painting)
false
imagemagick
ImageMagick (Edit bmp and svg images)
false
None of them

View File

@ -1,30 +1,42 @@
true
nextcloud-client
Nextcloud-client (Use our Garuda Cloud to sync dotfiles)
true
firefox-extension-bitwarden
Firefox Bitwarden extension (password manager)
true
xdman
Xtreme Download Manager
true
firefox-extension-xdm-browser-monitor
Firefox XDM extension (download manager)
false
cockpit cockpit-dashboard cockpit-machines
Cockpit (Access some system settings at localhost:9090)
false
syncthing-gtk
Syncthing-GTK (sync files between devices)
false
remmina
Remmina (Remote access client)
false
filezilla
Filezilla (FTP client)
false
putty
Putty (SSH/Telnet client)
false
nitroshare
Nitroshare (Network file sharing via LAN)
false
jdownloader2
Jdownloader2 (Advanced download manager)
false
deluge-gtk
Deluge (GTK torrent client)
false
qbittorrent
Qbittorrent (QT torrent client)
false
streamlink-twitch-gui
Twitch GUI
false
None of them

View File

@ -1,12 +1,15 @@
true
thunderbird
Thunderbird
false
kmail
Kmail (KDE mail client)
false
geary
Geary (GNOME mail client)
false
trojita
Trojita (Qt mail client)
false
mailspring
Mailspring
false
No mail client

View File

@ -1,38 +1,54 @@
false
converseen
Converseen (Image converter)
false
handbrake
Handbrake (Video format transcoder)
false
mystiq
Mystiq (QT Video converter)
false
transmageddon
Transmageddon (GTK Video converter)
false
Soundkonvertor (Audio converter)
soundconverter
Soundconvertor (Audio converter)
false
stremio
Stremio (One-stop hub for video content aggregation)
false
kodi kodi-platform kodi-eventclients
Kodi (Entertainment hub)
false
mediaelch
Mediaelch (Media manager for Kodi)
false
plex-media-player
Plex desktop client
false
hypnotix
Hypnotix (An IPTV app for watching live tv)
false
subtitlecomposer
Subtitlecomposer (A KDE subtitle editor)
false
kid3
Kid3 (KDE Tag editor)
false
easytag
Easytag (Audio tag editor)
false
k3b cdparanoia cdrdao dvd+rw-tools emovix transcode vcdimager cdrtools
K3B (CD burning application for KDE)
false
brasero
BRASERO (CD burning application for GTK)
false
xfburn
XFBURN (CD burning application for XFCE)
false
variety
Variety (Wallpaper changer)
false
conky-lua-nv conky-manager
Conky (System monitor)
false
None of them

View File

@ -1,22 +1,30 @@
true
libreoffice-fresh libmythes
LibreOffice Fresh (Recommended, full featured office suite)
false
libreoffice-still libmythes
LibreOffice Still (The same than above, more stable version)
false
onlyoffice-bin
OnlyOffice (Aims to be compatible with Microsoft Office)
false
wps-office wps-office-mime ttf-wps-fonts
WPS Office
false
ms-office-online
Microsoft Office (Online wrapper)
false
freeoffice
Free Office
false
yozo-office yozo-office-fonts
Yozo Office
false
Calligra Suite
calligra
Calligra Suite
false
Abiword (Simple wordprocessor, recommended for simple writing)
abiword
Abiword (Simple wordprocessor, recommended for simple writing)
false
joplin-desktop-electron
Joplin (Is able to sync notes to Garuda cloud)
false
None of them

View File

@ -1,18 +1,24 @@
true
kdenlive movit sox opus-tools frei0r-plugins
Kdenlive (Video editor by KDE)
false
shotcut
Shotcut (Qt-based video editor)
false
pitivi frei0r-plugins
Pitivi
false
openshot
Openshot
false
obs-studio
OBS Studio (Video recording/streaming)
false
smplayer smplayer-skins smplayer-themes
SMPlayer (Build-in codecs, high compatability video player)
false
vlc
Vlc
false
baka-mplayer
Baka-Mplayer (libmpv and Qt based video player)
false
None of them

View File

@ -1,6 +1,9 @@
false
virtualbox-meta
Virtualbox (most likely easier for beginners)
false
Virt-manager
gnome-boxes
GNOME Boxes (Easy KVM)
false
None of them
virt-manager-meta
Virt-manager