304 lines
8 KiB
Fish
304 lines
8 KiB
Fish
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/../Software/btrfs/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
|
|
|
|
# Server
|
|
and source "$dir/../Software/nginx/main.fish" $argv
|
|
|
|
# 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
|