Enable software properly
This commit is contained in:
parent
6f2583063c
commit
a3b79159e6
14 changed files with 512 additions and 398 deletions
|
@ -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;
|
||||||
|
});
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -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"
|
||||||
|
]));
|
||||||
|
};
|
||||||
|
});
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
}
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
|
@ -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;
|
||||||
};
|
};
|
||||||
|
|
|
@ -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;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -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";
|
||||||
|
|
|
@ -31,5 +31,5 @@ begin
|
||||||
sudo secure-grub-install
|
sudo secure-grub-install
|
||||||
end
|
end
|
||||||
|
|
||||||
runInstaller $argv
|
runInstaller --force $argv
|
||||||
end
|
end
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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;
|
||||||
}
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
|
Loading…
Reference in a new issue