function deploySoftware -d "Deploys a the specified software action" -a action set -l dir (status dirname) . "$dir/software.fish" if [ -z "$action" ] set action "install" end set -l isInstall ( if [ "$action" = "install" ] echo true else echo false end ) if collectionActive essential if $isInstall yayinst \ mkinitcpio-firmware \ neofetch \ bash-completion \ wget \ oh-my-posh-bin \ screen \ tmux \ htop \ lsof \ zsh \ fish \ pkgfile \ sl \ rar sudo pkgfile --update end source "$dir/../../Common/Software/bash/main.fish" $action source "$dir/../Software/openssh/main.fish" $action source "$dir/../Software/vim/main.fish" $action source "$dir/../Software/git/main.fish" $action source "$dir/../Software/zoxide/main.fish" $action source "$dir/../Software/logo-ls/main.fish" $action # GRUB Shenanigans - if that's not essential I don't know what is! source "$dir/../Software/minegrub-theme/main.fish" $action end if collectionActive common if $isInstall yayinst \ tldr \ btop \ terminal-parrot end source "$dir/../Software/aliae/main.fish" $action end if collectionActive desktopExperience source "$dir/../Software/KDE/main.fish" $action source "$dir/../Software/sddm/main.fish" $action if $isInstall yayinst \ maliit-keyboard \ dconf-editor \ flatpak ( # Fixes: https://www.reddit.com/r/flatpak/comments/168tav2/how_to_fix_blurry_flatpaks_on_high_resolution/ ) xdg-desktop-portal-gtk # Fonts yayinst \ ttf-cascadia-code-nerd \ ttf-ms-win11-auto \ otf-cascadia-code \ ttf-droid # Password Management yayinst \ bitwarden \ keepass \ keepassxc # Tools yayinst \ android-tools \ blackbox-terminal \ cpu-x \ gnome-calculator \ yubikey-manager-qt \ wireshark-qt \ linux-wifi-hotspot # Remote Access yayinst \ remmina ( # RDP support for Remmina ) freerdp # Creativity yayinst \ gimp \ inkscape # Office stuff yayinst \ libreoffice-fresh \ naps2-bin \ pdfarranger \ protonmail-bridge \ thunderbird yayinst \ texlive \ texlive-langgerman # Virtualization yayinst propertree-git # mac .plist config file editor if collectionActive school yayinst \ teams-for-linux \ xournalpp-git \ rnote end end # Internet Access source "$dir/../Software/Firefox/main.fish" $action source "$dir/../Software/brave/main.fish" $action source "$dir/../Software/Pennywise/main.fish" $action # Virtualization source "$dir/../Software/waydroid/main.fish" $action source "$dir/../Software/Virtual Machine Manager/main.fish" $action if collectionActive coding if $isInstall yayinst \ devdocs-desktop \ godot-mono end source "$dir/../Software/vscode/main.fish" $action end end if collectionActive server else if $isInstall # Energy Saving yayinst power-profiles-daemon sudo systemctl enable --now power-profiles-daemon # Networking yayinst \ networkmanager-openvpn \ networkmanager-openconnect \ proton-vpn-gtk-app \ protonvpn-cli-community end if collectionActive common if $isInstall yayinst \ img2pdf \ numbat-bin \ nvtop \ pdf2svg \ tnef end source "$dir/../Software/IcedTea/main.fish" $action end end if collectionActive media && $isInstall yayinst \ ytmdesktop-bin \ netflix \ spotube-bin \ stremio \ tidal-dl-ng \ tidal-hifi-bin \ nuclear-player-bin \ audius-client-bin end if collectionActive fileSync if $isInstall yayinst nextcloud-client end source "$dir/../Software/rclone/main.fish" $action end if collectionActive socialMedia && $isInstall yayinst \ signal-desktop \ threema-desktop \ vesktop-bin end if collectionActive productivity && $isInstall yayinst \ anki-bin end if collectionActive school && $isInstall yayinst \ jdk17-temurin \ gradle \ jetbrains-toolbox source "$dir/../../Common/Software/udev/ct-board.fish" end if collectionActive coding if $isInstall yayinst \ archiso \ wimlib ( # ISO support for wimlib ) cdrkit \ tea \ woodpecker-cli ( # AsciiDocs ) python-docutils ( # reStructuredText ) esbonio end source "$dir/../Software/n/main.fish" $action end if collectionActive python if $isInstall yayinst \ python \ python-pip \ python-pipenv end source "$dir/../Software/pyenv/main.fish" $action end if collectionActive gaming if $isInstall yayinst \ steam \ chiaki-ng \ osu-lazer-bin \ libretro \ supertux \ gamepad-tool-bin sudo flatpak install -y flathub com.usebottles.bottles end source "$dir/../Software/Lutris/main.fish" $action end if collectionActive essential && $isInstall yayinst bb end end deploySoftware $argv