function deploySoftware -d "Deploys a the specified software action" -a action set -l dir (status dirname) . "$dir/software.fish" . "$dir/../../lib/settings.fish" if [ -z "$action" ] set action install end set -l isInstall ( if [ "$action" = "install" ] echo true else echo false end ) if isOSEnabled secureBoot source "$dir/../Config/SecureBoot/main.fish" $argv end and if isOSEnabled hardware.surfaceBook source "$dir/../Drivers/SurfaceBook2/main.fish" $argv end and if isOSEnabled hardware.nvidiaGPU source "$dir/../Software/nvidia-dkms/main.fish" $argv end and if isOSEnabled hardware.xoneReceiver source "$dir/../Software/xone/main.fish" $argv end and for component in (getOSConfig hardware.components --json | jq '.[]' --raw-output0 | string split0 || true) switch "$component" case "Logitech G903" source "$dir/../../Common/Drivers/Logitech G903/main.fish" $argv case "ROG Zenith Extreme Alpha" if $isInstall sudo systemctl mask "dev-tpmrm0.device" end end end and if isEnabled valhalla.windows.dualboot.enable && $isInstall yayinst bt-dualboot end and if collectionActive essential && $isInstall yayinst \ mkinitcpio-firmware \ neofetch \ bash-completion \ wget \ screen \ tmux \ htop \ lsof \ zsh \ fish \ pkgfile \ sl \ rar and sudo pkgfile --update yayinst \ tldr \ btop \ terminal-parrot end and source "$dir/../../Common/Software/bash/main.fish" $argv and source "$dir/../../Common/Software/nuke-usb/main.fish" $argv and source "$dir/../Software/sudo/main.fish" $argv and source "$dir/../Software/aliae/main.fish" $argv and source "$dir/../Software/oh-my-posh/main.fish" $argv and source "$dir/../Software/openssh/main.fish" $argv and source "$dir/../Software/vim/main.fish" $argv and source "$dir/../Software/git/main.fish" $argv and source "$dir/../Software/zoxide/main.fish" $argv and source "$dir/../Software/logo-ls/main.fish" $argv and source "$dir/../../Common/Software/linux/main.fish" $argv # GRUB Shenanigans - if that's not essential I don't know what is! and source "$dir/../Software/minegrub-theme/main.fish" $argv # Desktop Experience and source "$dir/../Software/plasma/main.fish" $argv and source "$dir/../Software/sddm/main.fish" $argv and source "$dir/../Software/icedtea/main.fish" $argv and if collectionActive desktopExperience && $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 and yayinst \ ttf-cascadia-code-nerd \ ttf-ms-win11-auto \ otf-cascadia-code \ ttf-droid # Password Management and yayinst \ bitwarden \ keepass \ keepassxc # Tools and yayinst \ android-tools \ blackbox-terminal \ cpu-x \ gnome-calculator \ yubikey-manager-qt \ wireshark-qt \ linux-wifi-hotspot # Remote Access and yayinst \ remmina ( # RDP support for Remmina ) freerdp # Creativity and yayinst \ gimp \ inkscape # Office stuff and yayinst \ libreoffice-fresh \ naps2-bin \ pdfarranger \ protonmail-bridge and yayinst \ texlive \ texlive-langgerman # Virtualization and yayinst propertree-git # mac .plist config file editor end and if isProgramEnabled thunderbird && $isInstall yayinst thunderbird end # School & Studies and if collectionActive school && $isInstall yayinst \ teams-for-linux \ xournalpp-git \ rnote end # Internet Access and source "$dir/../Software/firefox/main.fish" $argv and source "$dir/../Software/brave/main.fish" $argv and source "$dir/../Software/pennywise/main.fish" $argv # Virtualization and source "$dir/../Software/waydroid/main.fish" $argv and source "$dir/../Software/virt-manager/main.fish" $argv and if $isInstall if collectionActive server else # Energy Saving yayinst power-profiles-daemon and sudo systemctl enable --now power-profiles-daemon # Networking and yayinst \ networkmanager-openvpn \ networkmanager-openconnect \ proton-vpn-gtk-app \ protonvpn-cli-community \ img2pdf \ numbat-bin \ nvtop \ pdf2svg \ tnef end and if collectionActive media yayinst \ ytmdesktop-bin \ netflix \ spotube-bin \ stremio \ tidal-dl-ng \ tidal-hifi-bin \ nuclear-player-bin \ audius-client-bin end and if isProgramEnabled nextcloud yayinst nextcloud-client end end and source "$dir/../Software/rclone/main.fish" $argv if $isInstall if collectionActive socialMedia yayinst signal-desktop and begin yes y | runYay threema-desktop end and begin yes y | runYay nodejs end end and if isProgramEnabled discord yayinst vesktop-bin end and if collectionActive productivity yayinst \ anki-bin end end and if collectionActive school if $isInstall yayinst \ jdk17-temurin \ gradle \ jetbrains-toolbox end and source "$dir/../../Common/Software/udev/ct-board.fish" end # Development and if collectionActive coding if $isInstall yayinst \ archiso \ wimlib ( # ISO support for wimlib ) cdrkit \ tea \ woodpecker-cli ( # AsciiDocs ) python-docutils ( # reStructuredText ) esbonio \ devdocs-desktop \ godot-mono \ python \ python-pip \ python-pipenv end end and source "$dir/../Software/pyenv/main.fish" $argv and source "$dir/../Software/nodejs-n/main.fish" $argv and source "$dir/../Software/docker/main.fish" $argv and source "$dir/../Software/vscode/main.fish" $argv if $isInstall if collectionActive gaming if $isInstall yayinst \ supertux \ gamepad-tool-bin and yayinst chiaki-ng || true and sudo flatpak install -y flathub com.usebottles.bottles end end and if isProgramEnabled "osu!lazer" yayinst osu-lazer-bin end and if isProgramEnabled retroarch yayinst libretro end end and source "$dir/../Software/lutris/main.fish" $argv and source "$dir/../Software/steam/main.fish" $argv and if collectionActive essential && $isInstall yayinst bb end end deploySoftware $argv