Enable software properly

This commit is contained in:
Manuel Thalmann 2024-10-14 01:55:19 +02:00
parent 6f2583063c
commit a3b79159e6
14 changed files with 512 additions and 398 deletions

View file

@ -1,5 +1,8 @@
{ lib, ... }: { config, lib, ... }:
let inherit (lib) mkOption types; let
inherit (lib) mkOption types;
optionalAttrs = lib.attrsets.optionalAttrs;
hw = config.valhalla.hardware;
in { in {
options = { options = {
valhalla = { valhalla = {
@ -51,13 +54,22 @@ in {
description = "A value indicating whether an Elgato Wave device is present."; description = "A value indicating whether an Elgato Wave device is present.";
default = false; default = false;
}; };
};
};
};
logitechG = mkOption { config = {
type = types.bool; valhalla = {
description = "A value indicating whether a Logitech G device is present."; linux.programs = (optionalAttrs hw.nvidiaGPU {
default = false; nvidia-dkms.enable = true;
}; }) // (optionalAttrs hw.xoneReceiver {
}; xone.enable = true;
});
windows.programs = (optionalAttrs hw.eyeX {
tobii-gamehub.enable = lib.mkDefault true;
tobii-ghost.enable = lib.mkDefault true;
});
}; };
}; };
} }

View file

@ -3,9 +3,13 @@ let
inherit (lib) mkEnableOption mkDefault mkOption types; inherit (lib) mkEnableOption mkDefault mkOption types;
cfg = config.valhalla; cfg = config.valhalla;
mkUsersOption = osConfig: mkOption { mkUsersOption = programs: osConfig: mkOption {
type = types.attrsOf (types.submodule ( type = types.attrsOf (types.submodule (
{ ... }: { { ... }: {
options = {
inherit programs;
};
config = { config = {
programs = builtins.mapAttrs ( programs = builtins.mapAttrs (
name: config: { name: config: {
@ -15,25 +19,12 @@ let
})); }));
}; };
mkPrograms = infos: builtins.foldl' (info: programs: mkPrograms = infos: builtins.foldl' (programs: info:
programs // { programs // {
"${info.0}" = { ${builtins.elemAt info 0} = {
enable = mkEnableOption info.1; enable = mkEnableOption (builtins.elemAt info 1);
}; };
}) { } infos; }) { } infos;
in {
imports = [
./programs/git.nix
./programs/nextcloud.nix
./programs/oh-my-posh.nix
./programs/rclone.nix
];
options = {
valhalla = {
users = mkUsersOption cfg;
linux.users = mkUsersOption cfg.linux;
windows.users = mkUsersOption cfg.windows;
programs = mkPrograms [ programs = mkPrograms [
["aliae" "aliae"] ["aliae" "aliae"]
@ -41,9 +32,6 @@ in {
["discord" "Discord"] ["discord" "Discord"]
["docker" "docker"] ["docker" "docker"]
["firefox" "Firefox Web Browser"] ["firefox" "Firefox Web Browser"]
["git" "git"]
["nextcloud" "Nextcloud Client"]
["oh-my-posh" "Oh My Posh"]
["openssh" "OpenSSH"] ["openssh" "OpenSSH"]
["osu!lazer" "osu!lazer"] ["osu!lazer" "osu!lazer"]
["pennywise" "Pennywise"] ["pennywise" "Pennywise"]
@ -55,12 +43,11 @@ in {
["zoxide" "zoxide"] ["zoxide" "zoxide"]
]; ];
linux.programs = mkPrograms [ linuxPrograms = mkPrograms [
["bash" "Bash"] ["bash" "Bash"]
["fish" "fish"] ["fish" "fish"]
["icedtea" "IcedTea"] ["icedtea" "IcedTea"]
["grub" "GRUB"] ["grub" "GRUB"]
["lghub" "Logitech G Hub"]
["logo-ls" "logo-ls"] ["logo-ls" "logo-ls"]
["lutris" "Lutris"] ["lutris" "Lutris"]
["minegrub-theme" "Minegrub Theme"] ["minegrub-theme" "Minegrub Theme"]
@ -69,7 +56,6 @@ in {
["nvidia-dkms" "Nvidia Drivers"] ["nvidia-dkms" "Nvidia Drivers"]
["plasma" "Plasma"] ["plasma" "Plasma"]
["pyenv" "pyenv"] ["pyenv" "pyenv"]
["rclone" "rclone"]
["sddm" "SDDM"] ["sddm" "SDDM"]
["vim" "Vim"] ["vim" "Vim"]
["virt-manager" "Virtual Machine Manager"] ["virt-manager" "Virtual Machine Manager"]
@ -77,11 +63,13 @@ in {
["xone" "xone"] ["xone" "xone"]
]; ];
windows.programs = mkPrograms [ windowsPrograms = mkPrograms [
["lghub" "Logitech G Hub"]
["maniaplanet" "ManiaPlanet"] ["maniaplanet" "ManiaPlanet"]
["msedge-redirect" "MSEdgeRedirect"] ["msedge-redirect" "MSEdgeRedirect"]
["nvs" "Node Version Switcher"] ["nvs" "Node Version Switcher"]
["osu!" "Osu!"] ["osu!" "Osu!"]
["posh-git" "posh-git"]
["putty" "PuTTY"] ["putty" "PuTTY"]
["rewasd" "reWASD"] ["rewasd" "reWASD"]
["terminal-icons" "Terminal Icons"] ["terminal-icons" "Terminal Icons"]
@ -93,6 +81,23 @@ in {
["visualstudio" "Visual Studio"] ["visualstudio" "Visual Studio"]
["winscp" "WinSCP"] ["winscp" "WinSCP"]
]; ];
in {
imports = [
./programs/git.nix
./programs/nextcloud.nix
./programs/oh-my-posh.nix
./programs/rclone.nix
];
options = {
valhalla = {
users = mkUsersOption programs cfg;
linux.users = mkUsersOption linuxPrograms cfg.linux;
windows.users = mkUsersOption windowsPrograms cfg.windows;
inherit programs;
linux.programs = linuxPrograms;
windows.programs = windowsPrograms;
}; };
}; };
} }

View file

@ -1,27 +1,36 @@
{ lib, config, ... }: { lib, ... }:
let let inherit (lib) mkOption types;
inherit (lib) mkOption types; in {
cfg = config.valhalla;
in {
imports = [ imports = [
./programs.nix ./programs.nix
]; ];
options = { options = {
valhalla = { valhalla = mkOption {
software = let type = types.submodule (
inherit (cfg.software) coding common desktopExperience school server; { config, ... }:
let
optionalAttrs = lib.attrsets.optionalAttrs;
cfg = config;
inherit (cfg.software) coding desktopExperience essential gaming socialMedia;
mkPrograms = programs: builtins.foldl' (
programs: name: programs // {
${name}.enable = true;
}) {} programs;
in { in {
options = {
software = {
essential = mkOption { essential = mkOption {
type = types.bool; type = types.bool;
description = "A value indicating whether essentials should be installed."; description = "A value indicating whether essentials should be installed.";
default = true; default = false;
}; };
common = mkOption { common = mkOption {
type = types.bool; type = types.bool;
description = "A value indicating whether common software should be installed."; description = "A value indicating whether common software should be installed.";
default = true; default = false;
}; };
server = mkOption { server = mkOption {
@ -33,13 +42,7 @@ in {
desktopExperience = mkOption { desktopExperience = mkOption {
type = types.bool; type = types.bool;
description = "A value indicating whether GUI apps should be installed."; description = "A value indicating whether GUI apps should be installed.";
default = common && !server; default = false;
};
fileSync = mkOption {
type = types.bool;
description = "A value indicating whether file syncs should be installed.";
default = common && !server;
}; };
school = mkOption { school = mkOption {
@ -51,39 +54,101 @@ in {
productivity = mkOption { productivity = mkOption {
type = types.bool; type = types.bool;
description = "A value indicating whether productivity apps should be installed."; description = "A value indicating whether productivity apps should be installed.";
default = common || school; default = false;
}; };
socialMedia = mkOption { socialMedia = mkOption {
type = types.bool; type = types.bool;
description = "A value indicating whether social media apps should be installed."; description = "A value indicating whether social media apps should be installed.";
default = common && desktopExperience; default = false;
}; };
media = mkOption { media = mkOption {
type = types.bool; type = types.bool;
description = "A value indicating whether media apps should be installed."; description = "A value indicating whether media apps should be installed.";
default = common && desktopExperience; default = false;
}; };
gaming = mkOption { gaming = mkOption {
type = types.bool; type = types.bool;
description = "A value indicating whether gaming apps should be installed."; description = "A value indicating whether gaming apps should be installed.";
default = common && desktopExperience; default = false;
}; };
coding = mkOption { coding = mkOption {
type = types.bool; type = types.bool;
description = "A value indicating whether development apps should be installed."; description = "A value indicating whether development apps should be installed.";
default = common; default = false;
};
};
}; };
python = mkOption { config = {
type = types.bool; programs = (optionalAttrs essential (mkPrograms [
description = "A value indicating whether apps for coding python should be installed."; "aliae"
default = coding; "git"
"oh-my-posh"
"openssh"
"powershell"
"zoxide"
])) // (optionalAttrs desktopExperience (mkPrograms [
"brave"
"firefox"
"pennywise"
"thunderbird"
])) // (optionalAttrs socialMedia (mkPrograms [
"discord"
])) // (optionalAttrs coding (mkPrograms [
"docker"
"vscode"
])) // (optionalAttrs gaming (mkPrograms [
"osu!lazer"
"retroarch"
"steam"
]));
linux.programs = (optionalAttrs essential (mkPrograms [
"bash"
"logo-ls"
"minegrub-theme"
"nuke-usb"
"vim"
])) // (optionalAttrs desktopExperience (mkPrograms [
"icedtea"
"plasma"
"sddm"
"waydroid"
"virt-manager"
])) // (optionalAttrs coding (mkPrograms [
"nodejs-n"
"pyenv"
])) // (optionalAttrs gaming (mkPrograms [
"lutris"
]));
# Essentials
windows.programs = (optionalAttrs essential (mkPrograms [
"posh-git"
"terminal-icons"
# Desktop Experience
])) // (optionalAttrs desktopExperience (mkPrograms [
"msedge-redirect"
"putty"
"winscp"
# Development
])) // (optionalAttrs coding (mkPrograms [
"nvs"
"visualstudio"
# Gaming
])) // (optionalAttrs gaming (mkPrograms [
"maniaplanet"
"osu!"
"rewasd"
"tm-nations-forever"
"tm-united-forever"
]));
};
});
}; };
}; };
}; }
};
}

View file

@ -18,6 +18,10 @@
microsoftAccount = true; microsoftAccount = true;
groups = [ "Administrators" ]; groups = [ "Administrators" ];
}; };
programs = {
lghub.enable = true;
};
}; };
partition.os.partitions = { partition.os.partitions = {
@ -45,7 +49,6 @@
eyeX = true; eyeX = true;
amdCPU = true; amdCPU = true;
nvidiaGPU = true; nvidiaGPU = true;
logitechG = true;
corsairDevice = true; corsairDevice = true;
elgatoWave = true; elgatoWave = true;
}; };

View file

@ -45,6 +45,19 @@ in {
}; };
}; };
software = {
essential = true;
common = true;
desktopExperience = true;
productivity = true;
socialMedia = true;
media = true;
gaming = true;
coding = true;
};
linux.programs.grub.enable = true;
programs = { programs = {
git = let defaultBranch = "main"; git = let defaultBranch = "main";
in { in {
@ -86,6 +99,8 @@ in {
}; };
}; };
}; };
windows.programs.ubiquiti-unifi-controller.enable = true;
}; };
}; };
} }

View file

@ -3,6 +3,14 @@
config = { config = {
valhalla = { valhalla = {
programs = {
nextcloud.enable = true;
};
linux.programs = {
rclone.enable = true;
};
users.manuel = { users.manuel = {
displayName = "Manuel Thalmann"; displayName = "Manuel Thalmann";
mailAddress = "m@nuth.ch"; mailAddress = "m@nuth.ch";

View file

@ -31,5 +31,5 @@ begin
sudo secure-grub-install sudo secure-grub-install
end end
runInstaller $argv runInstaller --force $argv
end end

View file

@ -40,5 +40,5 @@ begin
fish "$dir/../../Software/grub/main.fish" configure fish "$dir/../../Software/grub/main.fish" configure
end end
runInstaller $argv runInstaller --force $argv
end end

View file

@ -21,6 +21,6 @@ begin
sudo systemctl enable --global surface-dtx-userd.service sudo systemctl enable --global surface-dtx-userd.service
end end
runInstaller $argv runInstaller --force $argv
fish "$dir/../Surface/main.fish" $argv fish "$dir/../Surface/main.fish" $argv
end end

View file

@ -45,8 +45,7 @@ function deploySoftware -d "Deploys a the specified software action" -a action
yayinst bt-dualboot yayinst bt-dualboot
end end
and if collectionActive essential and if collectionActive essential && $isInstall
if $isInstall
yayinst \ yayinst \
mkinitcpio-firmware \ mkinitcpio-firmware \
neofetch \ neofetch \
@ -63,6 +62,11 @@ function deploySoftware -d "Deploys a the specified software action" -a action
rar rar
and sudo pkgfile --update and sudo pkgfile --update
yayinst \
tldr \
btop \
terminal-parrot
end end
and source "$dir/../../Common/Software/bash/main.fish" $argv and source "$dir/../../Common/Software/bash/main.fish" $argv
@ -78,22 +82,13 @@ function deploySoftware -d "Deploys a the specified software action" -a action
# GRUB Shenanigans - if that's not essential I don't know what is! # GRUB Shenanigans - if that's not essential I don't know what is!
and source "$dir/../Software/minegrub-theme/main.fish" $argv and source "$dir/../Software/minegrub-theme/main.fish" $argv
end
and if collectionActive common # Desktop Experience
if $isInstall
yayinst \
tldr \
btop \
terminal-parrot
end
end
and if collectionActive desktopExperience
source "$dir/../Software/plasma/main.fish" $argv source "$dir/../Software/plasma/main.fish" $argv
and source "$dir/../Software/sddm/main.fish" $argv and source "$dir/../Software/sddm/main.fish" $argv
and source "$dir/../Software/icedtea/main.fish" $argv
and if $isInstall and if collectionActive desktopExperience && $isInstall
yayinst \ yayinst \
maliit-keyboard \ maliit-keyboard \
dconf-editor \ dconf-editor \
@ -140,8 +135,7 @@ function deploySoftware -d "Deploys a the specified software action" -a action
libreoffice-fresh \ libreoffice-fresh \
naps2-bin \ naps2-bin \
pdfarranger \ pdfarranger \
protonmail-bridge \ protonmail-bridge
thunderbird
and yayinst \ and yayinst \
texlive \ texlive \
@ -149,14 +143,19 @@ function deploySoftware -d "Deploys a the specified software action" -a action
# Virtualization # Virtualization
and yayinst propertree-git # mac .plist config file editor and yayinst propertree-git # mac .plist config file editor
end
and if collectionActive school and if isProgramEnabled "thunderbird" && $isInstall
yayinst thunderbird
end
# School & Studies
and if collectionActive school && $isInstall
yayinst \ yayinst \
teams-for-linux \ teams-for-linux \
xournalpp-git \ xournalpp-git \
rnote rnote
end end
end
# Internet Access # Internet Access
and source "$dir/../Software/firefox/main.fish" $argv and source "$dir/../Software/firefox/main.fish" $argv
@ -167,20 +166,9 @@ function deploySoftware -d "Deploys a the specified software action" -a action
and source "$dir/../Software/waydroid/main.fish" $argv and source "$dir/../Software/waydroid/main.fish" $argv
and source "$dir/../Software/virt-manager/main.fish" $argv and source "$dir/../Software/virt-manager/main.fish" $argv
and if collectionActive coding and if $isInstall
if $isInstall if collectionActive server
yayinst \
devdocs-desktop \
godot-mono
end
and source "$dir/../Software/vscode/main.fish" $argv
end
end
and if collectionActive server
else else
if $isInstall
# Energy Saving # Energy Saving
yayinst power-profiles-daemon yayinst power-profiles-daemon
and sudo systemctl enable --now power-profiles-daemon and sudo systemctl enable --now power-profiles-daemon
@ -191,23 +179,18 @@ function deploySoftware -d "Deploys a the specified software action" -a action
networkmanager-openconnect \ networkmanager-openconnect \
proton-vpn-gtk-app \ proton-vpn-gtk-app \
protonvpn-cli-community protonvpn-cli-community
end
and if collectionActive common and if collectionActive common
if $isInstall yayinst \
and yayinst \
img2pdf \ img2pdf \
numbat-bin \ numbat-bin \
nvtop \ nvtop \
pdf2svg \ pdf2svg \
tnef tnef
end end
and source "$dir/../Software/icedtea/main.fish" $argv
end
end end
and if collectionActive media && $isInstall and if collectionActive media
yayinst \ yayinst \
ytmdesktop-bin \ ytmdesktop-bin \
netflix \ netflix \
@ -219,18 +202,16 @@ function deploySoftware -d "Deploys a the specified software action" -a action
audius-client-bin audius-client-bin
end end
and if collectionActive fileSync and if isProgramEnabled "nextcloud"
if $isInstall
yayinst nextcloud-client yayinst nextcloud-client
end end
end
and source "$dir/../Software/rclone/main.fish" $argv and source "$dir/../Software/rclone/main.fish" $argv
end
and if collectionActive socialMedia && $isInstall if $isInstall
yayinst \ if collectionActive socialMedia
signal-desktop \ yayinst signal-desktop
vesktop-bin
and begin and begin
yes y | runYay threema-desktop yes y | runYay threema-desktop
@ -241,20 +222,28 @@ function deploySoftware -d "Deploys a the specified software action" -a action
end end
end end
and if collectionActive productivity && $isInstall and if isProgramEnabled discord
yayinst vesktop-bin
end
and if collectionActive productivity
yayinst \ yayinst \
anki-bin anki-bin
end end
end
and if collectionActive school && $isInstall and if collectionActive school
if $isInstall
yayinst \ yayinst \
jdk17-temurin \ jdk17-temurin \
gradle \ gradle \
jetbrains-toolbox jetbrains-toolbox
end
and source "$dir/../../Common/Software/udev/ct-board.fish" and source "$dir/../../Common/Software/udev/ct-board.fish"
end end
# Development
and if collectionActive coding and if collectionActive coding
if $isInstall if $isInstall
yayinst \ yayinst \
@ -267,39 +256,43 @@ function deploySoftware -d "Deploys a the specified software action" -a action
# AsciiDocs # AsciiDocs
) python-docutils ( ) python-docutils (
# reStructuredText # reStructuredText
) esbonio ) esbonio \
end devdocs-desktop \
godot-mono \
and source "$dir/../Software/nodejs-n/main.fish" $argv
and source "$dir/../Software/docker/main.fish" $argv
end
and if collectionActive python
if $isInstall
yayinst \
python \ python \
python-pip \ python-pip \
python-pipenv python-pipenv
end end
and source "$dir/../Software/pyenv/main.fish" $argv
end end
and if collectionActive gaming 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 if $isInstall
yayinst \ yayinst \
chiaki-ng \ chiaki-ng \
osu-lazer-bin \
libretro \
supertux \ supertux \
gamepad-tool-bin gamepad-tool-bin
and sudo flatpak install -y flathub com.usebottles.bottles and sudo flatpak install -y flathub com.usebottles.bottles
end 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/lutris/main.fish" $argv
and source "$dir/../Software/steam/main.fish" $argv and source "$dir/../Software/steam/main.fish" $argv
end
and if collectionActive essential && $isInstall and if collectionActive essential && $isInstall
yayinst bb yayinst bb

View file

@ -8,5 +8,5 @@ begin
addInputConfig 1133 16519 "Logitech G903 LS" "PointerAccelerationProfile=1" addInputConfig 1133 16519 "Logitech G903 LS" "PointerAccelerationProfile=1"
end end
runInstaller $argv runInstaller --force $argv
end end

View file

@ -8,5 +8,5 @@ begin
addInputConfig 1118 2338 "Microsoft Surface Keyboard Touchpad" "NaturalScroll=true" addInputConfig 1118 2338 "Microsoft Surface Keyboard Touchpad" "NaturalScroll=true"
end end
runInstaller $argv runInstaller --force $argv
end end

View file

@ -1,5 +1,6 @@
. "$PSScriptRoot/PowerManagement.ps1"; . "$PSScriptRoot/PowerManagement.ps1";
. "$PSScriptRoot/SoftwareManagement.ps1"; . "$PSScriptRoot/SoftwareManagement.ps1";
. "$PSScriptRoot/../../Common/Scripts/Config.ps1";
. "$PSScriptRoot/../../Common/Scripts/SoftwareManagement.ps1"; . "$PSScriptRoot/../../Common/Scripts/SoftwareManagement.ps1";
. "$PSScriptRoot/../../Common/Types/InstallerAction.ps1"; . "$PSScriptRoot/../../Common/Types/InstallerAction.ps1";
@ -93,12 +94,8 @@ function Deploy-SoftwareAction {
# Windows Config # Windows Config
& "$softwarePath/windows/Main.ps1" @arguments; & "$softwarePath/windows/Main.ps1" @arguments;
if ($hardware.logitechG) { # Driver Programs
& "$softwarePath/lghub/Main.ps1" @arguments; & "$softwarePath/lghub/Main.ps1" @arguments;
}
# Essentials
if ($collections.essential) {
& "$softwarePath/aliae/Main.ps1" @arguments; & "$softwarePath/aliae/Main.ps1" @arguments;
& "$softwarePath/git/Main.ps1" @arguments; & "$softwarePath/git/Main.ps1" @arguments;
& "$softwarePath/openssh/Main.ps1" @arguments; & "$softwarePath/openssh/Main.ps1" @arguments;
@ -113,6 +110,8 @@ function Deploy-SoftwareAction {
& "$softwarePath/ext4fsd/Main.ps1" @arguments; & "$softwarePath/ext4fsd/Main.ps1" @arguments;
} }
# Essentials
if ($collections.essential) {
if ($install) { if ($install) {
Install-ChocoPackage ` Install-ChocoPackage `
procexp ` procexp `
@ -126,11 +125,11 @@ function Deploy-SoftwareAction {
} }
# Common Software # Common Software
if ($collections.common) {
& "$softwarePath/winscp/Main.ps1" @arguments; & "$softwarePath/winscp/Main.ps1" @arguments;
& "$softwarePath/thunderbird/Main.ps1" @arguments; & "$softwarePath/thunderbird/Main.ps1" @arguments;
& "$softwarePath/putty/Main.ps1" @arguments; & "$softwarePath/putty/Main.ps1" @arguments;
if ($collections.common) {
if ($install) { if ($install) {
Install-ChocoPackage ` Install-ChocoPackage `
7zip ` 7zip `
@ -149,17 +148,28 @@ function Deploy-SoftwareAction {
} }
} }
# Internet Access
if ($install) {
if (Test-Program "brave") {
Install-WingetPackage Brave.Brave;
Remove-DesktopIcon "*Brave*";
Remove-TaskbarItem "*Brave*";
}
if (Test-Program "pennywise") {
Install-WingetPackage kamranahmedse.pennywise;
Remove-DesktopIcon "Pennywise*";
}
}
& "$softwarePath/firefox/Main.ps1" @arguments;
& "$softwarePath/msedge-redirect/Main.ps1" @arguments;
if ($collections.desktopExperience) { if ($collections.desktopExperience) {
if ($install) { if ($install) {
# Fonts # Fonts
Install-ChocoPackage nerd-fonts-CascadiaCode; Install-ChocoPackage nerd-fonts-CascadiaCode;
# Internet Access
Install-WingetPackage Brave.Brave kamranahmedse.pennywise;
Remove-DesktopIcon "*Brave*";
Remove-TaskbarItem "*Brave*";
Remove-DesktopIcon "Pennywise*";
# Tools # Tools
Install-SetupPackage -Source "https://github.com/mRemoteNG/mRemoteNG/releases/download/2023.03.03-v1.77.3-nb/mRemoteNG-Installer-1.77.3.nb-1784.msi" -ArgumentList "/Quiet"; Install-SetupPackage -Source "https://github.com/mRemoteNG/mRemoteNG/releases/download/2023.03.03-v1.77.3-nb/mRemoteNG-Installer-1.77.3.nb-1784.msi" -ArgumentList "/Quiet";
Remove-DesktopIcon "mRemoteNG*"; Remove-DesktopIcon "mRemoteNG*";
@ -196,18 +206,11 @@ function Deploy-SoftwareAction {
Remove-DesktopIcon "JDownloader*"; Remove-DesktopIcon "JDownloader*";
} }
}
# ToDo: Consider hiding behind own config? # ToDo: Consider hiding behind own config?
& "$softwarePath/ubiquiti-unifi-controller/Main.ps1" @arguments; & "$softwarePath/ubiquiti-unifi-controller/Main.ps1" @arguments;
# Internet Access
& "$softwarePath/firefox/Main.ps1" @arguments;
& "$softwarePath/msedge-redirect/Main.ps1" @arguments;
if ($collections.fileSync) {
& "$softwarePath/nextcloud/Main.ps1" @arguments; & "$softwarePath/nextcloud/Main.ps1" @arguments;
}
}
if ($collections.socialMedia) { if ($collections.socialMedia) {
if ($install) { if ($install) {
@ -221,9 +224,9 @@ function Deploy-SoftwareAction {
Remove-DesktopIcon "*Element*"; Remove-DesktopIcon "*Element*";
Remove-DesktopIcon "*TeamSpeak*"; Remove-DesktopIcon "*TeamSpeak*";
} }
}
. "$softwarePath/discord/Main.ps1" @arguments; . "$softwarePath/discord/Main.ps1" @arguments;
}
if ($collections.media) { if ($collections.media) {
if ($install) { if ($install) {
@ -249,24 +252,36 @@ function Deploy-SoftwareAction {
github-desktop ` github-desktop `
ida-free ` ida-free `
HxD ` HxD `
docker-desktop `
imhex ` imhex `
dotpeek ` dotpeek `
; ;
Remove-DesktopIcon "IDA *"; Remove-DesktopIcon "IDA *";
Remove-DesktopIcon "GitHub*"; Remove-DesktopIcon "GitHub*";
if (Test-Program "docker") {
Install-ChocoPackage docker-desktop;
Remove-DesktopIcon "Docker*"; Remove-DesktopIcon "Docker*";
} }
}
}
& "$softwarePath/vscode/Main.ps1" @arguments; & "$softwarePath/vscode/Main.ps1" @arguments;
& "$softwarePath/visualstudio/Main.ps1" @arguments; & "$softwarePath/visualstudio/Main.ps1" @arguments;
# Node.js # Node.js
& "$softwarePath/nvs/Main.ps1" @arguments; & "$softwarePath/nvs/Main.ps1" @arguments;
}
# Gaming # Gaming
if (Test-Program "steam") {
Install-ChocoPackage `
steam `
-ArgumentList "--ignore-checksums" `
;
Remove-DesktopIcon "*Steam*";
}
if ($collections.gaming) { if ($collections.gaming) {
if ($install) { if ($install) {
Install-ChocoPackage ` Install-ChocoPackage `
@ -280,17 +295,16 @@ function Deploy-SoftwareAction {
Remove-DesktopIcon "*PPSSPP *-Bit*"; Remove-DesktopIcon "*PPSSPP *-Bit*";
Install-ChocoPackage ` Install-ChocoPackage `
steam `
ubisoft-connect ` ubisoft-connect `
-ArgumentList "--ignore-checksums" ` -ArgumentList "--ignore-checksums" `
; ;
Remove-DesktopIcon "*Steam*";
Remove-DesktopIcon "*Ubisoft Connect*"; Remove-DesktopIcon "*Ubisoft Connect*";
Install-WingetPackage ElectronicArts.EADesktop; Install-WingetPackage ElectronicArts.EADesktop;
Remove-DesktopIcon "EA.*"; Remove-DesktopIcon "EA.*";
} }
}
& "$softwarePath/tm-nations-forever/Main.ps1" @arguments; & "$softwarePath/tm-nations-forever/Main.ps1" @arguments;
& "$softwarePath/tm-united-forever/Main.ps1" @arguments; & "$softwarePath/tm-united-forever/Main.ps1" @arguments;
@ -299,6 +313,5 @@ function Deploy-SoftwareAction {
& "$softwarePath/osu!lazer/Main.ps1" @arguments; & "$softwarePath/osu!lazer/Main.ps1" @arguments;
& "$softwarePath/retroarch/Main.ps1" @arguments; & "$softwarePath/retroarch/Main.ps1" @arguments;
& "$softwarePath/rewasd/Main.ps1" @arguments; & "$softwarePath/rewasd/Main.ps1" @arguments;
}
}; };
} }

View file

@ -3,7 +3,7 @@ using namespace Microsoft.Win32;
. "$PSScriptRoot/../../../Common/Scripts/Software.ps1"; . "$PSScriptRoot/../../../Common/Scripts/Software.ps1";
. "$PSScriptRoot/../../../Common/Software/powershell/Profile.ps1"; . "$PSScriptRoot/../../../Common/Software/powershell/Profile.ps1";
Start-SoftwareInstaller @args ` Start-SoftwareInstaller -Force @args `
-Configurator { -Configurator {
param([string] $Name) param([string] $Name)
[string] $backup = $null; [string] $backup = $null;