Compare commits
13 commits
1f893ef6eb
...
3065e12d87
Author | SHA1 | Date | |
---|---|---|---|
Manuel Thalmann | 3065e12d87 | ||
Manuel Thalmann | 5d09707639 | ||
Manuel Thalmann | 3967e5c475 | ||
Manuel Thalmann | e071bcdc88 | ||
Manuel Thalmann | 72624de2b5 | ||
Manuel Thalmann | 623f8e2be5 | ||
Manuel Thalmann | 59dffb6eaf | ||
Manuel Thalmann | 2232bbd80f | ||
Manuel Thalmann | b24cadda75 | ||
Manuel Thalmann | 507747fee1 | ||
Manuel Thalmann | baa61111d1 | ||
Manuel Thalmann | 64c039aad5 | ||
Manuel Thalmann | d2779bbef0 |
|
@ -34,9 +34,8 @@
|
||||||
};
|
};
|
||||||
})) // {
|
})) // {
|
||||||
valhalla = {
|
valhalla = {
|
||||||
"DerGeret Windows" = import ./profiles/DerGeret/config.nix;
|
DerGeret = import ./profiles/machines/manuel/DerGeret/Arch/config.nix;
|
||||||
"der-geret Arch Linux" = import ./profiles/DerGeret/Arch/config.nix;
|
ManuSurface = import ./profiles/machines/manuel/ManuSurface/Arch/config.nix;
|
||||||
"manu-surface Arch Linux" = import ./profiles/ManuSurface/Arch/config.nix;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
15
lib/eval-attribute.nix
Normal file
15
lib/eval-attribute.nix
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
let
|
||||||
|
inherit (nixpkgs) lib;
|
||||||
|
nixpkgs = import <nixpkgs> { config = {}; overlay = []; };
|
||||||
|
property = (builtins.getEnv "PROPERTY");
|
||||||
|
processor = if (builtins.stringLength property > 0)
|
||||||
|
then
|
||||||
|
(_: lib.attrsets.getAttrFromPath (lib.strings.splitString "." property) _)
|
||||||
|
else
|
||||||
|
(_: _);
|
||||||
|
in
|
||||||
|
_: processor (lib.evalModules {
|
||||||
|
modules = [
|
||||||
|
_
|
||||||
|
];
|
||||||
|
}).config
|
|
@ -1,19 +0,0 @@
|
||||||
#!/bin/bash -e
|
|
||||||
function install() {
|
|
||||||
function installDrivers() {
|
|
||||||
. "../../../scripts/Arch/Config/SecureBoot/install.sh";
|
|
||||||
. "../../../scripts/Arch/Software/nvidia-dkms/install.sh";
|
|
||||||
. "../../../scripts/Arch/Software/xone/install.sh";
|
|
||||||
. "../../../scripts/Arch/Software/bt-dualboot/install.sh";
|
|
||||||
}
|
|
||||||
|
|
||||||
function initializeConfig() {
|
|
||||||
. "../../../scripts/Unix/Devices/Logitech G903/install.sh";
|
|
||||||
}
|
|
||||||
|
|
||||||
pushd "$dir" > /dev/null;
|
|
||||||
. "../../../scripts/Arch/OS/install.sh";
|
|
||||||
popd > /dev/null;
|
|
||||||
}
|
|
||||||
|
|
||||||
install;
|
|
|
@ -1,6 +0,0 @@
|
||||||
#!/bin/pwsh
|
|
||||||
$env:WIN_COMPUTER_NAME = "DerGeret";
|
|
||||||
$env:SETUP_SCRIPT_NAME = "$PSScriptRoot/Restore.ps1";
|
|
||||||
$env:CONFIG_MODULE = "$PSScriptRoot/../config.nix";
|
|
||||||
|
|
||||||
. "$PSScriptRoot/../../../scripts/Windows/OS/Setup.ps1";
|
|
|
@ -1,13 +0,0 @@
|
||||||
#!/bin/pwsh
|
|
||||||
. "$PSScriptRoot/../../../scripts/Common/Scripts/Context.ps1";
|
|
||||||
. "$PSScriptRoot/../../../scripts/Windows/OS/Manage.ps1";
|
|
||||||
. "$PSScriptRoot/../../../scripts/Windows/Collections/Generic.ps1"
|
|
||||||
|
|
||||||
function Restore-Apps {
|
|
||||||
param([Context] $context)
|
|
||||||
Restore-GenericApps $context;
|
|
||||||
}
|
|
||||||
|
|
||||||
[Context]$context = [Context]::new();
|
|
||||||
Invoke-WindowsInstallation $context;
|
|
||||||
Restart-Computer -Force;
|
|
|
@ -1,6 +0,0 @@
|
||||||
#!/bin/pwsh
|
|
||||||
$env:WIN_COMPUTER_NAME ??= "win11";
|
|
||||||
$env:SETUP_SCRIPT_NAME ??= "$PSScriptRoot/Install.ps1";
|
|
||||||
$env:CONFIG_MODULE ??= "$PSScriptRoot/../config.nix";
|
|
||||||
|
|
||||||
. "$PSScriptRoot/../../../scripts/Windows/OS/Setup.ps1";
|
|
|
@ -1,4 +0,0 @@
|
||||||
#!/bin/pwsh
|
|
||||||
$env:SETUP_SCRIPT_NAME ??= "$PSScriptRoot/Install.ps1";
|
|
||||||
|
|
||||||
. "$PSScriptRoot/../../Generic/Windows/Setup.ps1";
|
|
|
@ -1,5 +0,0 @@
|
||||||
#!/bin/env fish
|
|
||||||
begin
|
|
||||||
set -l dir (status dirname)
|
|
||||||
source "$dir/../../../scripts/Arch/OS/install.fish"
|
|
||||||
end
|
|
|
@ -1,26 +0,0 @@
|
||||||
#!/bin/bash -e
|
|
||||||
function install() {
|
|
||||||
function installDrivers() {
|
|
||||||
. "../../../scripts/Arch/Config/SecureBoot/install.sh";
|
|
||||||
. "../../../scripts/Arch/Drivers/SurfaceBook2/install.sh";
|
|
||||||
}
|
|
||||||
|
|
||||||
function installSoftware() {
|
|
||||||
. "../../../scripts/Arch/Collections/school.sh";
|
|
||||||
}
|
|
||||||
|
|
||||||
function initializeConfig() {
|
|
||||||
. "../../../scripts/Common/Config/Steam/hidpi.sh";
|
|
||||||
. "../../../scripts/Unix/Devices/Surface Book 2/install.sh";
|
|
||||||
. "../../../scripts/Unix/Devices/Logitech G903/install.sh";
|
|
||||||
|
|
||||||
# Because, as it looks, Surface Books are fucking stupid.
|
|
||||||
. "../../../scripts/Common/Config/GRUB/verbose.sh";
|
|
||||||
}
|
|
||||||
|
|
||||||
pushd "${BASH_SOURCE%/*}" > /dev/null;
|
|
||||||
. "../../../scripts/Arch/OS/install.sh";
|
|
||||||
popd > /dev/null;
|
|
||||||
}
|
|
||||||
|
|
||||||
install;
|
|
|
@ -1,16 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
pushd "${BASH_SOURCE%/*}" > /dev/null;
|
|
||||||
# Set Hostname
|
|
||||||
sudo hostnamectl set-hostname ManuSurface;
|
|
||||||
|
|
||||||
source "../../../scripts/PopOS/Scripts/preinstall.sh";
|
|
||||||
source "../../../scripts/PopOS/OS/install.sh";
|
|
||||||
source "../../../scripts/Debian/Drivers/SurfaceBook2/Setup/install.sh";
|
|
||||||
source "../../../scripts/PopOS/Software/Collections/school.sh";
|
|
||||||
INSTALL_FONTS=1 NEXTCLOUD_DIR="${NEXTCLOUD_DIR}" source "../../../scripts/Common/Config/UserProfile/install.sh";
|
|
||||||
|
|
||||||
# Install equalizer
|
|
||||||
source "../../../scripts/Common/Config/EasyEffects/SurfaceBook2/install.sh";
|
|
||||||
|
|
||||||
source "../../../scripts/PopOS/Scripts/postinstall.sh";
|
|
||||||
popd > /dev/null;
|
|
|
@ -1,12 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
pushd "${BASH_SOURCE%/*}" > /dev/null;
|
|
||||||
|
|
||||||
# Set Hostname
|
|
||||||
sudo hostnamectl set-hostname ManuPopOSLive;
|
|
||||||
source "../../scripts/PopOS/Scripts/prepare.sh";
|
|
||||||
source "../../scripts/PopOS/OS/install.sh";
|
|
||||||
source "../../scripts/PopOS/Software/Collections/personal.sh";
|
|
||||||
INSTALL_FONTS=1 NEXTCLOUD_DIR="${NEXTCLOUD_DIR}" source "../../scripts/Common/Config/UserProfile/personal.sh";
|
|
||||||
|
|
||||||
source "../../scripts/PopOS/Scripts/postinstall.sh";
|
|
||||||
popd > /dev/null;
|
|
19
profiles/machines/manuel/DerGeret/Arch/install.sh
Executable file
19
profiles/machines/manuel/DerGeret/Arch/install.sh
Executable file
|
@ -0,0 +1,19 @@
|
||||||
|
#!/bin/bash -e
|
||||||
|
function install() {
|
||||||
|
function installDrivers() {
|
||||||
|
. "../../../../../scripts/Arch/Config/SecureBoot/install.sh";
|
||||||
|
. "../../../../../scripts/Arch/Software/nvidia-dkms/install.sh";
|
||||||
|
. "../../../../../scripts/Arch/Software/xone/install.sh";
|
||||||
|
. "../../../../../scripts/Arch/Software/bt-dualboot/install.sh";
|
||||||
|
}
|
||||||
|
|
||||||
|
function initializeConfig() {
|
||||||
|
. "../../../../../scripts/Unix/Devices/Logitech G903/install.sh";
|
||||||
|
}
|
||||||
|
|
||||||
|
pushd "$dir" > /dev/null;
|
||||||
|
. "../../../../../scripts/Arch/OS/install.sh";
|
||||||
|
popd > /dev/null;
|
||||||
|
}
|
||||||
|
|
||||||
|
install;
|
|
@ -6,8 +6,8 @@ begin
|
||||||
echo "$dir/install.fish"
|
echo "$dir/install.fish"
|
||||||
end
|
end
|
||||||
|
|
||||||
CONFIG_MODULE="$dir/config.nix" \
|
CONFIG_NAME="DerGeret" \
|
||||||
ARCH_HOSTNAME="der-geret" \
|
ARCH_HOSTNAME="der-geret" \
|
||||||
USER_DISPLAYNAME="Manuel Thalmann" \
|
USER_DISPLAYNAME="Manuel Thalmann" \
|
||||||
source "$(status dirname)/../../../scripts/Arch/OS/setup.fish"
|
source "$(status dirname)/../../../../../scripts/Arch/OS/setup.fish"
|
||||||
end
|
end
|
|
@ -4,6 +4,6 @@ pushd "${BASH_SOURCE%/*}" > /dev/null;
|
||||||
CONFIG_MODULE="./config.nix" \
|
CONFIG_MODULE="./config.nix" \
|
||||||
ARCH_HOSTNAME="der-geret" \
|
ARCH_HOSTNAME="der-geret" \
|
||||||
USER_DISPLAYNAME="Manuel Thalmann" \
|
USER_DISPLAYNAME="Manuel Thalmann" \
|
||||||
. "../../../scripts/Arch/OS/setup.sh";
|
. "../../../../../scripts/Arch/OS/setup.sh";
|
||||||
|
|
||||||
popd > /dev/null;
|
popd > /dev/null;
|
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/pwsh
|
#!/bin/pwsh
|
||||||
$null = New-Module {
|
$null = New-Module {
|
||||||
. "$PSScriptRoot/../../../scripts/Common/Scripts/Context.ps1";
|
. "$PSScriptRoot/../../../../../scripts/Common/Scripts/Context.ps1";
|
||||||
. "$PSScriptRoot/../../../scripts/Windows/OS/Legacy.ps1";
|
. "$PSScriptRoot/../../../../../scripts/Windows/OS/Legacy.ps1";
|
||||||
|
|
||||||
Write-Host "Starting Backup of Windows";
|
Write-Host "Starting Backup of Windows";
|
||||||
$context = [Context]::new();
|
$context = [Context]::new();
|
|
@ -1,12 +1,12 @@
|
||||||
#!/bin/pwsh
|
#!/bin/pwsh
|
||||||
. "$PSScriptRoot/../../../scripts/Common/Scripts/Context.ps1";
|
. "$PSScriptRoot/../../../../../scripts/Common/Scripts/Context.ps1";
|
||||||
|
|
||||||
function Install-PortValhallaDrivers {
|
function Install-PortValhallaDrivers {
|
||||||
param(
|
param(
|
||||||
[Context] $context
|
[Context] $context
|
||||||
)
|
)
|
||||||
|
|
||||||
$winPath = "$PSScriptRoot/../../../scripts/Windows";
|
$winPath = "$PSScriptRoot/../../../../../scripts/Windows";
|
||||||
$driverPath = "$winPath/Drivers";
|
$driverPath = "$winPath/Drivers";
|
||||||
$mbDriverPath = "$driverPath/ROG Zenith Extreme Alpha";
|
$mbDriverPath = "$driverPath/ROG Zenith Extreme Alpha";
|
||||||
$context.RegisterReboot();
|
$context.RegisterReboot();
|
||||||
|
@ -38,7 +38,7 @@ function Install-PersonalDrivers {
|
||||||
[Context] $context
|
[Context] $context
|
||||||
)
|
)
|
||||||
|
|
||||||
$softwarePath = "$PSScriptRoot/../../../scripts/Windows/Software";
|
$softwarePath = "$PSScriptRoot/../../../../../scripts/Windows/Software";
|
||||||
. "$softwarePath/TobiiGhost/Install.ps1" $context;
|
. "$softwarePath/TobiiGhost/Install.ps1" $context;
|
||||||
. "$softwarePath/TobiiGameHub/Install.ps1" $context;
|
. "$softwarePath/TobiiGameHub/Install.ps1" $context;
|
||||||
}
|
}
|
|
@ -1,8 +1,8 @@
|
||||||
#!/bin/pwsh
|
#!/bin/pwsh
|
||||||
. "$PSScriptRoot/Drivers.ps1";
|
. "$PSScriptRoot/Drivers.ps1";
|
||||||
. "$PSScriptRoot/../../../scripts/Common/Scripts/Context.ps1";
|
. "$PSScriptRoot/../../../../../scripts/Common/Scripts/Context.ps1";
|
||||||
. "$PSScriptRoot/../../../scripts/Windows/Collections/Personal.ps1"
|
. "$PSScriptRoot/../../../../../scripts/Windows/Collections/Personal.ps1"
|
||||||
. "$PSScriptRoot/../../../scripts/Windows/OS/Manage.ps1";
|
. "$PSScriptRoot/../../../../../scripts/Windows/OS/Manage.ps1";
|
||||||
|
|
||||||
function Initialize-Configuration {
|
function Initialize-Configuration {
|
||||||
# Fix synchronization between Linux and Windows clock
|
# Fix synchronization between Linux and Windows clock
|
5
profiles/machines/manuel/DerGeret/Windows/Setup.ps1
Normal file
5
profiles/machines/manuel/DerGeret/Windows/Setup.ps1
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#!/bin/pwsh
|
||||||
|
$env:WIN_COMPUTER_NAME = "DerGeret";
|
||||||
|
$env:CONFIG_NAME = $env:WIN_COMPUTER_NAME;
|
||||||
|
|
||||||
|
. "$PSScriptRoot/../../../../../scripts/Windows/OS/Setup.ps1";
|
|
@ -1,9 +1,9 @@
|
||||||
{ ... }: {
|
{ ... }: {
|
||||||
imports = [
|
imports = [
|
||||||
../Generic/config.nix
|
../defaults.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
valhalla = {
|
valhalla = {
|
||||||
windows = {
|
windows = {
|
||||||
dualboot = {
|
dualboot = {
|
|
@ -3,11 +3,11 @@ function install() {
|
||||||
local dir="$(realpath "${BASH_SOURCE%/*}")";
|
local dir="$(realpath "${BASH_SOURCE%/*}")";
|
||||||
|
|
||||||
function installDrivers() {
|
function installDrivers() {
|
||||||
. "$dir/../../../scripts/Arch/Config/SecureBoot/install.sh";
|
. "$dir/../../../../../scripts/Arch/Config/SecureBoot/install.sh";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
. "../../../scripts/Arch/OS/install.sh";
|
. "../../../../../scripts/Arch/OS/install.sh";
|
||||||
}
|
}
|
||||||
|
|
||||||
install;
|
install;
|
|
@ -4,6 +4,6 @@ pushd "${BASH_SOURCE%/*}" > /dev/null;
|
||||||
ARCH_MOUNT_ROOT="/mnt" \
|
ARCH_MOUNT_ROOT="/mnt" \
|
||||||
ARCH_HOSTNAME="archlinux" \
|
ARCH_HOSTNAME="archlinux" \
|
||||||
USER_DISPLAYNAME="Manuel Thalmann" \
|
USER_DISPLAYNAME="Manuel Thalmann" \
|
||||||
. "../../../scripts/Arch/OS/setup.sh";
|
. "../../../../../scripts/Arch/OS/setup.sh";
|
||||||
|
|
||||||
popd > /dev/null;
|
popd > /dev/null;
|
13
profiles/machines/manuel/Generic/Windows/Install.ps1
Normal file
13
profiles/machines/manuel/Generic/Windows/Install.ps1
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
#!/bin/pwsh
|
||||||
|
. "$PSScriptRoot/../../../../../scripts/Common/Scripts/Context.ps1";
|
||||||
|
. "$PSScriptRoot/../../../../../scripts/Windows/OS/Manage.ps1";
|
||||||
|
. "$PSScriptRoot/../../../../../scripts/Windows/Collections/Generic.ps1"
|
||||||
|
|
||||||
|
function Restore-Apps {
|
||||||
|
param([Context] $context)
|
||||||
|
Restore-GenericApps $context;
|
||||||
|
}
|
||||||
|
|
||||||
|
[Context]$context = [Context]::new();
|
||||||
|
Invoke-WindowsInstallation $context;
|
||||||
|
Restart-Computer -Force;
|
5
profiles/machines/manuel/Generic/Windows/Setup.ps1
Normal file
5
profiles/machines/manuel/Generic/Windows/Setup.ps1
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#!/bin/pwsh
|
||||||
|
$env:WIN_COMPUTER_NAME ??= "win11";
|
||||||
|
$env:CONFIG_MODULE ??= "$PSScriptRoot/../config.nix";
|
||||||
|
|
||||||
|
. "$PSScriptRoot/../../../../../scripts/Windows/OS/Setup.ps1";
|
|
@ -1,10 +1,9 @@
|
||||||
{ lib, config, ... }:
|
{ lib, config, ... }:
|
||||||
let
|
let
|
||||||
fs = import ../../lib/modules/partition/fs.nix;
|
fs = import ../../../../lib/modules/partition/fs.nix;
|
||||||
in {
|
in {
|
||||||
imports = [
|
imports = [
|
||||||
../manuel/config.nix
|
../defaults.nix
|
||||||
../../lib/modules/valhalla.nix
|
|
||||||
];
|
];
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
|
@ -36,53 +35,6 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
users = {
|
|
||||||
manuel = {
|
|
||||||
displayName = "Manuel Thalmann";
|
|
||||||
mailAddress = "m@nuth.ch";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
linux.users.manuel = {
|
|
||||||
defaultShell = "fish";
|
|
||||||
|
|
||||||
groups = [
|
|
||||||
"wheel"
|
|
||||||
"nix-users"
|
|
||||||
];
|
|
||||||
|
|
||||||
rclone = {
|
|
||||||
configurations = {
|
|
||||||
nextcloud = {
|
|
||||||
dirName = "Nextcloud";
|
|
||||||
};
|
|
||||||
proton = {
|
|
||||||
dirName = "Proton";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
windows.users.manuel = {
|
|
||||||
nextcloud = {
|
|
||||||
folderSyncs =
|
|
||||||
let
|
|
||||||
localPath = "C:/tools/RetroArch-Win64";
|
|
||||||
remotePath = "/Saved Games/RetroArch";
|
|
||||||
in [
|
|
||||||
{
|
|
||||||
remotePath = "${remotePath}/Saves";
|
|
||||||
localPath = "${localPath}/saves";
|
|
||||||
virtualFiles = false;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
remotePath = "${remotePath}/System";
|
|
||||||
localPath = "${localPath}/system";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
timeZone = "Europe/Zurich";
|
timeZone = "Europe/Zurich";
|
||||||
keyMap = "de_CH-latin1";
|
keyMap = "de_CH-latin1";
|
||||||
keyboardLayout = "ch";
|
keyboardLayout = "ch";
|
|
@ -14,4 +14,4 @@ function Install-PortValhallaDrivers {
|
||||||
choco install -y spice-agent;
|
choco install -y spice-agent;
|
||||||
}
|
}
|
||||||
|
|
||||||
. "$PSScriptRoot/../../Generic/Windows/Install.ps1";
|
. "$PSScriptRoot/../../../../Generic/Windows/Install.ps1";
|
2
profiles/machines/manuel/KVM/Windows/Setup.ps1
Normal file
2
profiles/machines/manuel/KVM/Windows/Setup.ps1
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
#!/bin/pwsh
|
||||||
|
. "$PSScriptRoot/../../../../Generic/Windows/Setup.ps1";
|
5
profiles/machines/manuel/ManuSurface/Arch/install.fish
Executable file
5
profiles/machines/manuel/ManuSurface/Arch/install.fish
Executable file
|
@ -0,0 +1,5 @@
|
||||||
|
#!/bin/env fish
|
||||||
|
begin
|
||||||
|
set -l dir (status dirname)
|
||||||
|
source "$dir/../../../../../scripts/Arch/OS/install.fish"
|
||||||
|
end
|
26
profiles/machines/manuel/ManuSurface/Arch/install.sh
Executable file
26
profiles/machines/manuel/ManuSurface/Arch/install.sh
Executable file
|
@ -0,0 +1,26 @@
|
||||||
|
#!/bin/bash -e
|
||||||
|
function install() {
|
||||||
|
function installDrivers() {
|
||||||
|
. "../../../../../scripts/Arch/Config/SecureBoot/install.sh";
|
||||||
|
. "../../../../../scripts/Arch/Drivers/SurfaceBook2/install.sh";
|
||||||
|
}
|
||||||
|
|
||||||
|
function installSoftware() {
|
||||||
|
. "../../../../../scripts/Arch/Collections/school.sh";
|
||||||
|
}
|
||||||
|
|
||||||
|
function initializeConfig() {
|
||||||
|
. "../../../../../scripts/Common/Config/Steam/hidpi.sh";
|
||||||
|
. "../../../../../scripts/Unix/Devices/Surface Book 2/install.sh";
|
||||||
|
. "../../../../../scripts/Unix/Devices/Logitech G903/install.sh";
|
||||||
|
|
||||||
|
# Because, as it looks, Surface Books are fucking stupid.
|
||||||
|
. "../../../../../scripts/Common/Config/GRUB/verbose.sh";
|
||||||
|
}
|
||||||
|
|
||||||
|
pushd "${BASH_SOURCE%/*}" > /dev/null;
|
||||||
|
. "../../../../../scripts/Arch/OS/install.sh";
|
||||||
|
popd > /dev/null;
|
||||||
|
}
|
||||||
|
|
||||||
|
install;
|
|
@ -3,7 +3,7 @@ begin
|
||||||
set -l dir (status dirname)
|
set -l dir (status dirname)
|
||||||
|
|
||||||
function installDrivers -V dir -S
|
function installDrivers -V dir -S
|
||||||
source "$dir/../../../scripts/Common/Scripts/config.fish"
|
source "$dir/../../../../../scripts/Common/Scripts/config.fish"
|
||||||
pacstrap -K (getConfig valhalla.partition.rootDir) linux-firmware-marvell;
|
pacstrap -K (getConfig valhalla.partition.rootDir) linux-firmware-marvell;
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -11,8 +11,8 @@ begin
|
||||||
echo "$dir/install.fish"
|
echo "$dir/install.fish"
|
||||||
end
|
end
|
||||||
|
|
||||||
CONFIG_MODULE="$(status dirname)/config.nix" \
|
CONFIG_NAME="ManuSurface" \
|
||||||
ARCH_HOSTNAME="manu-surface" \
|
ARCH_HOSTNAME="manu-surface" \
|
||||||
USER_DISPLAYNAME="Manuel Thalmann" \
|
USER_DISPLAYNAME="Manuel Thalmann" \
|
||||||
source "$(status dirname)/../../../scripts/Arch/OS/setup.fish";
|
source "$(status dirname)/../../../../../scripts/Arch/OS/setup.fish";
|
||||||
end
|
end
|
16
profiles/machines/manuel/ManuSurface/PopOS/setup.sh
Executable file
16
profiles/machines/manuel/ManuSurface/PopOS/setup.sh
Executable file
|
@ -0,0 +1,16 @@
|
||||||
|
#!/bin/bash
|
||||||
|
pushd "${BASH_SOURCE%/*}" > /dev/null;
|
||||||
|
# Set Hostname
|
||||||
|
sudo hostnamectl set-hostname ManuSurface;
|
||||||
|
|
||||||
|
source "../../../../../scripts/PopOS/Scripts/preinstall.sh";
|
||||||
|
source "../../../../../scripts/PopOS/OS/install.sh";
|
||||||
|
source "../../../../../scripts/Debian/Drivers/SurfaceBook2/Setup/install.sh";
|
||||||
|
source "../../../../../scripts/PopOS/Software/Collections/school.sh";
|
||||||
|
INSTALL_FONTS=1 NEXTCLOUD_DIR="${NEXTCLOUD_DIR}" source "../../../../../scripts/Common/Config/UserProfile/install.sh";
|
||||||
|
|
||||||
|
# Install equalizer
|
||||||
|
source "../../../../../scripts/Common/Config/EasyEffects/SurfaceBook2/install.sh";
|
||||||
|
|
||||||
|
source "../../../../../scripts/PopOS/Scripts/postinstall.sh";
|
||||||
|
popd > /dev/null;
|
12
profiles/machines/manuel/PopOSLive/setup.sh
Executable file
12
profiles/machines/manuel/PopOSLive/setup.sh
Executable file
|
@ -0,0 +1,12 @@
|
||||||
|
#!/bin/bash
|
||||||
|
pushd "${BASH_SOURCE%/*}" > /dev/null;
|
||||||
|
|
||||||
|
# Set Hostname
|
||||||
|
sudo hostnamectl set-hostname ManuPopOSLive;
|
||||||
|
source "../../../../scripts/PopOS/Scripts/prepare.sh";
|
||||||
|
source "../../../../scripts/PopOS/OS/install.sh";
|
||||||
|
source "../../../../scripts/PopOS/Software/Collections/personal.sh";
|
||||||
|
INSTALL_FONTS=1 NEXTCLOUD_DIR="${NEXTCLOUD_DIR}" source "../../../../scripts/Common/Config/UserProfile/personal.sh";
|
||||||
|
|
||||||
|
source "../../../../scripts/PopOS/Scripts/postinstall.sh";
|
||||||
|
popd > /dev/null;
|
6
profiles/machines/manuel/defaults.nix
Normal file
6
profiles/machines/manuel/defaults.nix
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{ ... }: {
|
||||||
|
imports = [
|
||||||
|
../../users/manuel/config.nix
|
||||||
|
../../../lib/modules/valhalla.nix
|
||||||
|
];
|
||||||
|
}
|
|
@ -1,23 +0,0 @@
|
||||||
{ ... }: {
|
|
||||||
imports = [
|
|
||||||
../../lib/modules/valhalla.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
config = {
|
|
||||||
valhalla = {
|
|
||||||
users.manuel = {
|
|
||||||
oh-my-posh = {
|
|
||||||
theme = {
|
|
||||||
source = ./manuel.omp.json;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
partition = {
|
|
||||||
os = {
|
|
||||||
partitions = { };
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
66
profiles/users/manuel/config.nix
Normal file
66
profiles/users/manuel/config.nix
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
{ ... }: {
|
||||||
|
imports = [
|
||||||
|
../../../lib/modules/valhalla.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
config = {
|
||||||
|
valhalla = {
|
||||||
|
users.manuel = {
|
||||||
|
displayName = "Manuel Thalmann";
|
||||||
|
mailAddress = "m@nuth.ch";
|
||||||
|
|
||||||
|
oh-my-posh = {
|
||||||
|
theme = {
|
||||||
|
source = ./manuel.omp.json;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
linux.users.manuel = {
|
||||||
|
defaultShell = "fish";
|
||||||
|
|
||||||
|
groups = [
|
||||||
|
"wheel"
|
||||||
|
"nix-users"
|
||||||
|
];
|
||||||
|
|
||||||
|
rclone = {
|
||||||
|
configurations = {
|
||||||
|
nextcloud = {
|
||||||
|
dirName = "Nextcloud";
|
||||||
|
};
|
||||||
|
proton = {
|
||||||
|
dirName = "Proton";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
windows.users.manuel = {
|
||||||
|
nextcloud = {
|
||||||
|
folderSyncs =
|
||||||
|
let
|
||||||
|
localPath = "C:/tools/RetroArch-Win64";
|
||||||
|
remotePath = "/Saved Games/RetroArch";
|
||||||
|
in [
|
||||||
|
{
|
||||||
|
remotePath = "${remotePath}/Saves";
|
||||||
|
localPath = "${localPath}/saves";
|
||||||
|
virtualFiles = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
remotePath = "${remotePath}/System";
|
||||||
|
localPath = "${localPath}/system";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
partition = {
|
||||||
|
os = {
|
||||||
|
partitions = { };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -24,7 +24,7 @@ if [ (id -u) -eq 0 ]
|
||||||
echo "$name ALL=(ALL:ALL) NOPASSWD: ALL"
|
echo "$name ALL=(ALL:ALL) NOPASSWD: ALL"
|
||||||
end > "$sudoConfig"
|
end > "$sudoConfig"
|
||||||
|
|
||||||
and sudo --preserve-env="CONFIG_MODULE" --user "$name" "$INSTALLER_SCRIPT"
|
and sudo --preserve-env="CONFIG_NAME" --user "$name" "$INSTALLER_SCRIPT"
|
||||||
rm "$sudoConfig"
|
rm "$sudoConfig"
|
||||||
userdel -r "$name"
|
userdel -r "$name"
|
||||||
else
|
else
|
||||||
|
|
|
@ -39,7 +39,7 @@ function runSetup
|
||||||
function wrapScript -S
|
function wrapScript -S
|
||||||
printf %s\n \
|
printf %s\n \
|
||||||
"cd $PROJECT_CLONE_ROOT" \
|
"cd $PROJECT_CLONE_ROOT" \
|
||||||
"export CONFIG_MODULE=$(string escape (getCloneFile "$CONFIG_MODULE"))" \
|
"export CONFIG_NAME=$(string escape (getCloneFile "$CONFIG_NAME"))" \
|
||||||
"$argv"
|
"$argv"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -15,18 +15,10 @@ $null = New-Module {
|
||||||
)
|
)
|
||||||
|
|
||||||
if (-not ("OpenQA.Selenium.Firefox.FirefoxDriver" -as [type])) {
|
if (-not ("OpenQA.Selenium.Firefox.FirefoxDriver" -as [type])) {
|
||||||
$zipFile = [System.IO.Compression.ZipFile]::OpenRead((Get-Package Selenium.WebDriver).Source);
|
$packageRoot = Split-Path -Parent (Get-Package Selenium.WebDriver).Source;
|
||||||
$webDriver = ($zipFile.Entries | Where-Object { $_.FullName -like "lib/net6.0/WebDriver.dll" })[0];
|
$file = Join-Path $packageRoot "lib/netstandard2.0/WebDriver.dll";
|
||||||
$stream = [System.IO.MemoryStream]::new();
|
$env:SE_MANAGER_PATH = Join-Path $packageRoot "manager" ($IsWindows ? "windows" : "linux") "selenium-manager$($IsWindows ? ".exe" : '')";
|
||||||
$reader = [System.IO.StreamReader]($webDriver).Open();
|
$null = [System.Reflection.Assembly]::LoadFile($file);
|
||||||
$reader.BaseStream.CopyTo($stream);
|
|
||||||
[byte[]]$bytes = $stream.ToArray();
|
|
||||||
$reader.Close();
|
|
||||||
$reader.Dispose();
|
|
||||||
$stream.Close();
|
|
||||||
$stream.Dispose();
|
|
||||||
$zipFile.Dispose();
|
|
||||||
$null = [System.Reflection.Assembly]::Load($bytes);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
& $Action;
|
& $Action;
|
||||||
|
|
|
@ -1,10 +1,12 @@
|
||||||
using namespace Microsoft.Win32;
|
using namespace Microsoft.Win32;
|
||||||
|
using namespace System.Management.Automation.Host;
|
||||||
using namespace System.Security.AccessControl;
|
using namespace System.Security.AccessControl;
|
||||||
using namespace System.Security.Principal;
|
using namespace System.Security.Principal;
|
||||||
|
|
||||||
enum WindowsInstallerStage {
|
enum WindowsInstallerStage {
|
||||||
Initialize
|
Initialize
|
||||||
Run
|
Run
|
||||||
|
Cleanup
|
||||||
Completed
|
Completed
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -31,6 +33,54 @@ $null = New-Module {
|
||||||
[string] $finishedOption = "Finished";
|
[string] $finishedOption = "Finished";
|
||||||
[RegistryKey] $key = $null;
|
[RegistryKey] $key = $null;
|
||||||
|
|
||||||
|
<#
|
||||||
|
.SYNOPSIS
|
||||||
|
Prompts the user to select a profile to act on.
|
||||||
|
#>
|
||||||
|
function Show-ProfileNamePrompt {
|
||||||
|
. "$PSScriptRoot/../../Windows/Types/WindowsInstallerAction.ps1";
|
||||||
|
|
||||||
|
$profiles = & {
|
||||||
|
. "$PSScriptRoot/SoftwareManagement.ps1";
|
||||||
|
|
||||||
|
if (Test-Command "wsl") {
|
||||||
|
return Invoke-ConfigScript "getProfiles";
|
||||||
|
} else {
|
||||||
|
return Get-ChildItem "$PSScriptRoot/../../../.config" | ForEach-Object { Split-Path -LeafBase $_ };
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
$choice = $Host.UI.PromptForChoice(
|
||||||
|
"Select Profile",
|
||||||
|
(& {
|
||||||
|
switch (Get-Stage) {
|
||||||
|
([WindowsInstallerAction]::Backup) {
|
||||||
|
"Which profile do you wish to back up?";
|
||||||
|
}
|
||||||
|
([WindowsInstallerAction]::Install) {
|
||||||
|
"Which profile do you wish to install?";
|
||||||
|
}
|
||||||
|
$null {
|
||||||
|
"Which profile do you wish to set up?";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
(& {
|
||||||
|
for ($i = 0; $i -lt $profiles.Count; $i++) {
|
||||||
|
[ChoiceDescription]"&$i - $($profiles[$i])";
|
||||||
|
}
|
||||||
|
|
||||||
|
[ChoiceDescription]"&Abort";
|
||||||
|
}),
|
||||||
|
$profiles.Count);
|
||||||
|
|
||||||
|
if ($choice -eq $profiles.Count) {
|
||||||
|
exit;
|
||||||
|
} else {
|
||||||
|
$env:CONFIG_NAME = $profiles[$choice];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
<#
|
<#
|
||||||
.SYNOPSIS
|
.SYNOPSIS
|
||||||
Converts the specified path to linux and escapes it for the use in a script.
|
Converts the specified path to linux and escapes it for the use in a script.
|
||||||
|
@ -114,16 +164,29 @@ $null = New-Module {
|
||||||
|
|
||||||
$scriptPath = "$PSScriptRoot/../../Common/Scripts/config.fish";
|
$scriptPath = "$PSScriptRoot/../../Common/Scripts/config.fish";
|
||||||
|
|
||||||
if ($env:CONFIG_MODULE) {
|
if ($env:CONFIG_NAME) {
|
||||||
$output = & {
|
$output = & {
|
||||||
if (-not $IsWindows) {
|
if (-not $IsWindows) {
|
||||||
$escapedPath = (fish -c 'string escape $argv' "$scriptPath");
|
$escapedPath = (fish -c 'string escape $argv' "$scriptPath");
|
||||||
fish -c ". $escapedPath; $Script";
|
fish -c ". $escapedPath; $Script";
|
||||||
} else {
|
} else {
|
||||||
|
$cleanup = { };
|
||||||
|
$projectRoot = "$PSScriptRoot/../../..";
|
||||||
|
$archisoDir = "$projectRoot/archiso";
|
||||||
|
|
||||||
function fish {
|
function fish {
|
||||||
wsl --shell-type login -- nix --extra-experimental-features "nix-command flakes" run nixpkgs`#fish -- $args
|
wsl --shell-type login -- nix --extra-experimental-features "nix-command flakes" run nixpkgs`#fish -- $args
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (Test-Path -PathType Container "$archisoDir") {
|
||||||
|
$git = {
|
||||||
|
git -C "$projectRoot" -c safe.directory="$("$(Resolve-Path $projectRoot)".Replace("\", "/"))" @args;
|
||||||
|
};
|
||||||
|
|
||||||
|
& $git rm -r --cached "$archisoDir" *> $null;
|
||||||
|
$cleanup = { & $git restore --staged "$archisoDir" };
|
||||||
|
}
|
||||||
|
|
||||||
$output = fish -c ". $(ConvertTo-LinuxPath $scriptPath); $Script";
|
$output = fish -c ". $(ConvertTo-LinuxPath $scriptPath); $Script";
|
||||||
|
|
||||||
if (-not $?) {
|
if (-not $?) {
|
||||||
|
@ -131,6 +194,8 @@ $null = New-Module {
|
||||||
} else {
|
} else {
|
||||||
$output;
|
$output;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
& $cleanup *> $null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -442,21 +507,6 @@ $null = New-Module {
|
||||||
Set-SetupOption $finishedOption $true;
|
Set-SetupOption $finishedOption $true;
|
||||||
}
|
}
|
||||||
|
|
||||||
<#
|
|
||||||
.SYNOPSIS
|
|
||||||
Checks whether the specified software collection is enabled.
|
|
||||||
|
|
||||||
.PARAMETER Name
|
|
||||||
The name of the collection to check.
|
|
||||||
#>
|
|
||||||
function Test-Collection {
|
|
||||||
param(
|
|
||||||
[string] $Name
|
|
||||||
)
|
|
||||||
|
|
||||||
Get-Config "$(Get-ConfigRootName).software.$Name";
|
|
||||||
}
|
|
||||||
|
|
||||||
<#
|
<#
|
||||||
.SYNOPSIS
|
.SYNOPSIS
|
||||||
Checks whether the running system is a QEMU virtual machine.
|
Checks whether the running system is a QEMU virtual machine.
|
||||||
|
|
|
@ -27,6 +27,35 @@ $null = New-Module {
|
||||||
Set-SetupOption $taskOption ([string]$Task);
|
Set-SetupOption $taskOption ([string]$Task);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
<#
|
||||||
|
.SYNOPSIS
|
||||||
|
Gets the PowerShell modules required for operating.
|
||||||
|
#>
|
||||||
|
function Get-RequiredModules {
|
||||||
|
$modules = @(
|
||||||
|
@("PSScriptAnalyzer")
|
||||||
|
) + (& {
|
||||||
|
if (-not $IsWindows) {
|
||||||
|
@()
|
||||||
|
} else {
|
||||||
|
@(
|
||||||
|
@("KnownFolders"),
|
||||||
|
@("PSWindowsUpdate"),
|
||||||
|
@("LocalAccounts", $true),
|
||||||
|
@("NuGet")
|
||||||
|
)
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
for ($i = 0; $i -lt $modules.Count; $i++) {
|
||||||
|
if ($modules[$i] -is [string]) {
|
||||||
|
$modules[$i] = @($modules[$i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $modules;
|
||||||
|
}
|
||||||
|
|
||||||
function Start-Operation {
|
function Start-Operation {
|
||||||
param(
|
param(
|
||||||
[switch] $NonInteractive,
|
[switch] $NonInteractive,
|
||||||
|
@ -51,12 +80,7 @@ $null = New-Module {
|
||||||
$Global:ErrorActionPreference = $NonInteractive.IsPresent ? 'Continue' : 'Inquire';
|
$Global:ErrorActionPreference = $NonInteractive.IsPresent ? 'Continue' : 'Inquire';
|
||||||
|
|
||||||
if ($IsWindows) {
|
if ($IsWindows) {
|
||||||
$env:WSLENV = "CONFIG_MODULE/p";
|
$env:WSLENV = "CONFIG_NAME";
|
||||||
|
|
||||||
if ($env:CONFIG_MODULE) {
|
|
||||||
$env:CONFIG_MODULE = Resolve-Path $env:CONFIG_MODULE;
|
|
||||||
}
|
|
||||||
|
|
||||||
New-Alias -Force "sudo" gsudo;
|
New-Alias -Force "sudo" gsudo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -121,7 +145,7 @@ $null = New-Module {
|
||||||
Start-Sleep 0.1;
|
Start-Sleep 0.1;
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($name in @("CONFIG_MODULE", "INSTALLER_SCRIPT")) {
|
foreach ($name in @("INSTALLER_SCRIPT")) {
|
||||||
$variable = Get-Item "Env:\$name";
|
$variable = Get-Item "Env:\$name";
|
||||||
|
|
||||||
$path = Join-Path `
|
$path = Join-Path `
|
||||||
|
@ -205,7 +229,7 @@ $null = New-Module {
|
||||||
|
|
||||||
if (-not (Test-PSPackage Selenium.WebDriver)) {
|
if (-not (Test-PSPackage Selenium.WebDriver)) {
|
||||||
Write-Host "Installing browser automation tools…";
|
Write-Host "Installing browser automation tools…";
|
||||||
$null = Install-Package -Force Selenium.WebDriver -RequiredVersion 4.10.0 -SkipDependencies;
|
$null = Install-Package -Force Selenium.WebDriver -RequiredVersion 4.24.0 -SkipDependencies;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -215,22 +239,7 @@ $null = New-Module {
|
||||||
}
|
}
|
||||||
|
|
||||||
Invoke-Hook "Install-PSModules" -Fallback {
|
Invoke-Hook "Install-PSModules" -Fallback {
|
||||||
$modules = @(
|
foreach ($module in (Get-RequiredModules)) {
|
||||||
@("PSScriptAnalyzer")
|
|
||||||
) + (& {
|
|
||||||
if (-not $IsWindows) {
|
|
||||||
@()
|
|
||||||
} else {
|
|
||||||
@(
|
|
||||||
@("KnownFolders"),
|
|
||||||
@("PSWindowsUpdate"),
|
|
||||||
@("LocalAccounts", $true),
|
|
||||||
@("NuGet")
|
|
||||||
)
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
foreach ($module in $modules) {
|
|
||||||
$parameters = @{ };
|
$parameters = @{ };
|
||||||
|
|
||||||
if ($module -is [string]) {
|
if ($module -is [string]) {
|
||||||
|
@ -403,6 +412,14 @@ $null = New-Module {
|
||||||
function Clear-OperationResources {
|
function Clear-OperationResources {
|
||||||
if ($IsWindows) {
|
if ($IsWindows) {
|
||||||
Uninstall-WslDistribution;
|
Uninstall-WslDistribution;
|
||||||
|
$null = Uninstall-Package Selenium.WebDriver -ErrorAction Continue;
|
||||||
|
Uninstall-ChocoPackage 7zip.portable gsudo selenium-gecko-driver yq;
|
||||||
|
Uninstall-WingetPackage AutoHotkey.AutoHotkey;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($module in (Get-RequiredModules)) {
|
||||||
|
Remove-Module -Force $module[0];
|
||||||
|
Uninstall-Module -Force -Name $module[0] -ErrorAction SilentlyContinue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -9,6 +9,70 @@ $null = New-Module {
|
||||||
. "$PSScriptRoot/../Types/InstallerAction.ps1";
|
. "$PSScriptRoot/../Types/InstallerAction.ps1";
|
||||||
$userArgument = "name";
|
$userArgument = "name";
|
||||||
|
|
||||||
|
$chocoRunner = {
|
||||||
|
param(
|
||||||
|
[string] $Action = 'install',
|
||||||
|
[string[]] $ArgumentList,
|
||||||
|
[scriptblock] $Guard = { $true },
|
||||||
|
[Parameter(Position = 0)]
|
||||||
|
[string] $Name,
|
||||||
|
[Parameter(ValueFromRemainingArguments = $true)]
|
||||||
|
[string[]] $AdditionalNames = @()
|
||||||
|
)
|
||||||
|
|
||||||
|
[System.Collections.ArrayList] $Names = @();
|
||||||
|
$null = $Names.Add($Name);
|
||||||
|
$Names.AddRange($AdditionalNames);
|
||||||
|
|
||||||
|
if (-not ($Force.IsPresent)) {
|
||||||
|
for ($i = $Names.Count - 1; $i -ge 0; $i--) {
|
||||||
|
$name = $Names[$i];
|
||||||
|
|
||||||
|
if (-not (& $Guard $name)) {
|
||||||
|
$Names.RemoveAt($i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($Names.Count -ge 1) {
|
||||||
|
choco $Action -y @ArgumentList @Names;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
$wingetRunner = {
|
||||||
|
param(
|
||||||
|
[string] $Action = 'install',
|
||||||
|
[string[]] $ArgumentList,
|
||||||
|
[scriptblock] $Guard = { $true },
|
||||||
|
[Parameter(Position = 0)]
|
||||||
|
[string] $Name,
|
||||||
|
[Parameter(ValueFromRemainingArguments = $true)]
|
||||||
|
[string[]] $AdditionalNames = @()
|
||||||
|
)
|
||||||
|
|
||||||
|
[System.Collections.ArrayList] $Names = @();
|
||||||
|
$null = $Names.Add($Name);
|
||||||
|
$Names.AddRange($AdditionalNames);
|
||||||
|
|
||||||
|
[string[]] $arguments = $ArgumentList + (& {
|
||||||
|
if ($Action -eq 'install') {
|
||||||
|
@("--accept-package-agreements")
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
foreach ($name in $Names) {
|
||||||
|
if ($Force.IsPresent -or (& $Guard $name $PSBoundParameters)) {
|
||||||
|
winget $Action `
|
||||||
|
--accept-source-agreements `
|
||||||
|
--source winget `
|
||||||
|
@arguments `
|
||||||
|
--exact --id $name ;
|
||||||
|
} else {
|
||||||
|
Write-Host "Package ``$name`` is already installed"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
<#
|
<#
|
||||||
.SYNOPSIS
|
.SYNOPSIS
|
||||||
Installs the specified packages using chocolatey.
|
Installs the specified packages using chocolatey.
|
||||||
|
@ -26,24 +90,39 @@ $null = New-Module {
|
||||||
[string[]] $AdditionalNames = @()
|
[string[]] $AdditionalNames = @()
|
||||||
)
|
)
|
||||||
|
|
||||||
[System.Collections.ArrayList] $Names = @();
|
& $chocoRunner @PSBoundParameters -Guard {
|
||||||
$null = $Names.Add($Name);
|
param($Name)
|
||||||
$Names.AddRange($AdditionalNames);
|
if (Test-ChocoPackage $Name) {
|
||||||
|
Write-Host "Package ``$Name`` is already installed"
|
||||||
if (-not ($Force.IsPresent)) {
|
$false;
|
||||||
for ($i = $Names.Count - 1; $i -ge 0; $i--) {
|
} else {
|
||||||
$name = $Names[$i];
|
$true;
|
||||||
|
|
||||||
if (Test-ChocoPackage $name) {
|
|
||||||
Write-Host "Package ``$name`` is already installed"
|
|
||||||
$Names.RemoveAt($i);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
}
|
||||||
|
|
||||||
if ($Names.Count -ge 1) {
|
<#
|
||||||
choco install -y @ArgumentList @Names;
|
.SYNOPSIS
|
||||||
}
|
Uninstalls the specified packages using chocolatey.
|
||||||
|
#>
|
||||||
|
function Uninstall-ChocoPackage {
|
||||||
|
param(
|
||||||
|
[string[]] $ArgumentList,
|
||||||
|
[Parameter(Position=0)]
|
||||||
|
[string] $Name,
|
||||||
|
[Parameter(ValueFromRemainingArguments = $true)]
|
||||||
|
[string[]] $AdditionalNames = @()
|
||||||
|
)
|
||||||
|
|
||||||
|
& $chocoRunner @PSBoundParameters -Action 'uninstall' -Guard {
|
||||||
|
param($Name)
|
||||||
|
if (Test-ChocoPackage $Name) {
|
||||||
|
$true;
|
||||||
|
} else {
|
||||||
|
Write-Host "Package ``$Name`` is not installed";
|
||||||
|
$false;
|
||||||
|
}
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
<#
|
<#
|
||||||
|
@ -63,21 +142,40 @@ $null = New-Module {
|
||||||
[string[]] $AdditionalNames = @()
|
[string[]] $AdditionalNames = @()
|
||||||
)
|
)
|
||||||
|
|
||||||
[System.Collections.ArrayList] $Names = @();
|
& $wingetRunner @PSBoundParameters `
|
||||||
$null = $Names.Add($Name);
|
-Guard {
|
||||||
$Names.AddRange($AdditionalNames);
|
param($Name, $Parameters)
|
||||||
|
if (Test-WingetPackage @Parameters) {
|
||||||
|
Write-Host "Package ``$Name`` is already installed"
|
||||||
|
$false;
|
||||||
|
} else {
|
||||||
|
$true;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
foreach ($name in $Names) {
|
<#
|
||||||
if ($Force.IsPresent -or -not (Test-WingetPackage @PSBoundParameters)) {
|
.SYNOPSIS
|
||||||
winget install `
|
Uninstalls the specified packages using `winget`.
|
||||||
--accept-source-agreements --accept-package-agreements `
|
#>
|
||||||
--source winget `
|
function Uninstall-WingetPackage {
|
||||||
$ArgumentList `
|
param(
|
||||||
--exact --id $name ;
|
[string[]] $ArgumentList,
|
||||||
|
[Parameter(Position=0)]
|
||||||
|
[string] $Name,
|
||||||
|
[Parameter(ValueFromRemainingArguments = $true)]
|
||||||
|
[string[]] $AdditionalNames = @()
|
||||||
|
)
|
||||||
|
|
||||||
|
& $wingetRunner @PSBoundParameters -Action 'uninstall' -Guard {
|
||||||
|
param($Name, $Parameters)
|
||||||
|
if (Test-WingetPackage @Parameters) {
|
||||||
|
$true;
|
||||||
} else {
|
} else {
|
||||||
Write-Host "Package ``$name`` is already installed"
|
Write-Host "Package ``$Name`` is not installed"
|
||||||
|
$false;
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
<#
|
<#
|
||||||
|
|
|
@ -1,11 +1,16 @@
|
||||||
#!/bin/env fish
|
#!/bin/env fish
|
||||||
function isConfigured -S
|
function isConfigured -S
|
||||||
set -q "$CONFIG_MODULE"
|
set -q "$CONFIG_NAME"
|
||||||
|
end
|
||||||
|
|
||||||
|
function getProfiles -S
|
||||||
|
source "$(status dirname)/eval-flake.fish";
|
||||||
|
evalFlake "" "" --apply "builtins.attrNames" --json
|
||||||
end
|
end
|
||||||
|
|
||||||
function getConfig -S -a property
|
function getConfig -S -a property
|
||||||
source "$(status dirname)/eval-module.fish"
|
source "$(status dirname)/eval-flake.fish"
|
||||||
evalModule "$CONFIG_MODULE" "$property" $argv[2..]
|
evalFlake "$CONFIG_NAME" "$property" $argv[2..]
|
||||||
end
|
end
|
||||||
|
|
||||||
function getAttributes -S -a property
|
function getAttributes -S -a property
|
||||||
|
|
27
scripts/Common/Scripts/eval-flake.fish
Executable file
27
scripts/Common/Scripts/eval-flake.fish
Executable file
|
@ -0,0 +1,27 @@
|
||||||
|
#!/bin/env fish
|
||||||
|
function evalFlake --argument-names config property
|
||||||
|
set -l argv $argv[3..]
|
||||||
|
argparse --ignore-unknown "apply=" "json" -- $argv
|
||||||
|
|
||||||
|
if [ -z "$_flag_json" ]
|
||||||
|
set -a argv --raw
|
||||||
|
else
|
||||||
|
set -a argv --json
|
||||||
|
end
|
||||||
|
|
||||||
|
if [ -z "$_flag_apply" ]
|
||||||
|
set _flag_apply "_: _"
|
||||||
|
end
|
||||||
|
|
||||||
|
if [ -n "$config" ]
|
||||||
|
set config ".$config"
|
||||||
|
set _flag_apply "_: ($_flag_apply) ((import $(status dirname)/../../../lib/eval-attribute.nix) _)"
|
||||||
|
end
|
||||||
|
|
||||||
|
ROOT="$(realpath (status dirname))/../../.." \
|
||||||
|
PROPERTY="$property" \
|
||||||
|
nix eval --impure --extra-experimental-features "nix-command flakes" \
|
||||||
|
--apply "$_flag_apply" \
|
||||||
|
"$(status dirname)/../../..#valhalla$config" \
|
||||||
|
$argv
|
||||||
|
end
|
|
@ -48,10 +48,10 @@ Start-SoftwareInstaller @PSBoundParameters `
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($IsWindows) {
|
if ($IsWindows) {
|
||||||
[System.Environment]::SetEnvironmentVariable($varName, $path, "User");
|
[System.Environment]::SetEnvironmentVariable($varName, "%AppData%/$([System.IO.Path]::GetRelativePath($env:AppData, $path))", "User");
|
||||||
} else {
|
} else {
|
||||||
. "$PSScriptRoot/../aliae/Manage.ps1";
|
. "$PSScriptRoot/../aliae/Manage.ps1";
|
||||||
Add-EnvironmentVariable -User $Arguments.Name $varName $path;
|
Add-EnvironmentVariable -User $Arguments.Name $varName ($path).Replace("~", "{{ .Home }}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -28,20 +28,7 @@ $null = New-Module {
|
||||||
$configArgs = @("--system");
|
$configArgs = @("--system");
|
||||||
}
|
}
|
||||||
|
|
||||||
<#
|
$config = Get-Config "$root.git";
|
||||||
.SYNOPSIS
|
|
||||||
Gets the specified git configuration.
|
|
||||||
|
|
||||||
.PARAMETER Name
|
|
||||||
THe name of the configuration to get.
|
|
||||||
#>
|
|
||||||
function Get-GitConfig {
|
|
||||||
param(
|
|
||||||
[string] $Name
|
|
||||||
)
|
|
||||||
|
|
||||||
Get-Config "$root.git.$Name";
|
|
||||||
}
|
|
||||||
|
|
||||||
<#
|
<#
|
||||||
.SYNOPSIS
|
.SYNOPSIS
|
||||||
|
@ -52,7 +39,7 @@ $null = New-Module {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((-not $IsWindows) -or $User) {
|
if ((-not $IsWindows) -or $User) {
|
||||||
$branch = Get-GitConfig "defaultBranch";
|
$branch = $config.defaultBranch;
|
||||||
|
|
||||||
if ($branch) {
|
if ($branch) {
|
||||||
Set-GitConfig "init.defaultBranch" $branch;
|
Set-GitConfig "init.defaultBranch" $branch;
|
||||||
|
@ -76,8 +63,8 @@ $null = New-Module {
|
||||||
. {
|
. {
|
||||||
$dir = New-TemporaryDirectory;
|
$dir = New-TemporaryDirectory;
|
||||||
$key = "flow";
|
$key = "flow";
|
||||||
$mainBranch = Get-GitConfig "$key.mainBranch";
|
$mainBranch = $config."$key".mainBranch;
|
||||||
$devBranch = Get-GitConfig "$key.devBranch";
|
$devBranch = $config."$key".devBranch;
|
||||||
|
|
||||||
& {
|
& {
|
||||||
git -C "$dir" init;
|
git -C "$dir" init;
|
||||||
|
@ -103,7 +90,7 @@ $null = New-Module {
|
||||||
};
|
};
|
||||||
|
|
||||||
# Aliases
|
# Aliases
|
||||||
[PSCustomObject] $aliases = Get-GitConfig "aliases";
|
[PSCustomObject] $aliases = $config.aliases;
|
||||||
|
|
||||||
if ($aliases) {
|
if ($aliases) {
|
||||||
foreach ($alias in ($aliases | Get-Member -MemberType Properties)) {
|
foreach ($alias in ($aliases | Get-Member -MemberType Properties)) {
|
||||||
|
|
|
@ -26,7 +26,7 @@ begin
|
||||||
"Terminal=false" (
|
"Terminal=false" (
|
||||||
printf "%s " \
|
printf "%s " \
|
||||||
"Exec=env" \
|
"Exec=env" \
|
||||||
"CONFIG_MODULE=$(echo "$CONFIG_MODULE" | string escape)" \
|
"CONFIG_NAME=$(echo "$CONFIG_NAME" | string escape)" \
|
||||||
"konsole -e fish $(realpath (status filename) | string escape) userConfig"
|
"konsole -e fish $(realpath (status filename) | string escape) userConfig"
|
||||||
)
|
)
|
||||||
end | sudo -u "$name" tee "$entryPoint" > /dev/null
|
end | sudo -u "$name" tee "$entryPoint" > /dev/null
|
||||||
|
@ -36,7 +36,7 @@ begin
|
||||||
rm "$entryPoint"
|
rm "$entryPoint"
|
||||||
rm ~"$name"/.config/plasma-welcomerc
|
rm ~"$name"/.config/plasma-welcomerc
|
||||||
else if [ -n "$name" ] && [ "$name" != "$USER" ]
|
else if [ -n "$name" ] && [ "$name" != "$USER" ]
|
||||||
sudo -Eu "$name" CONFIG_MODULE="$CONFIG_MODULE" fish "$(status filename)" userConfig
|
sudo -Eu "$name" CONFIG_NAME="$CONFIG_NAME" fish "$(status filename)" userConfig
|
||||||
else
|
else
|
||||||
systemctl --user enable rclone.service
|
systemctl --user enable rclone.service
|
||||||
echo "Please complete the setup of your rclone configurations!"
|
echo "Please complete the setup of your rclone configurations!"
|
||||||
|
|
3
scripts/Windows/OS/Install.ps1
Normal file
3
scripts/Windows/OS/Install.ps1
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
#!/bin/pwsh
|
||||||
|
. "$PSScriptRoot/Manage.ps1";
|
||||||
|
Start-WindowsInstallation;
|
|
@ -20,6 +20,7 @@ $null = New-Module {
|
||||||
. "$PSScriptRoot/../Types/WindowsInstallerAction.ps1";
|
. "$PSScriptRoot/../Types/WindowsInstallerAction.ps1";
|
||||||
. "$PSScriptRoot/../../Common/Scripts/Config.ps1";
|
. "$PSScriptRoot/../../Common/Scripts/Config.ps1";
|
||||||
. "$PSScriptRoot/../../Common/Scripts/Operations.ps1";
|
. "$PSScriptRoot/../../Common/Scripts/Operations.ps1";
|
||||||
|
. "$PSScriptRoot/../../Common/Scripts/Scripting.ps1";
|
||||||
. "$PSScriptRoot/../../Common/Scripts/Software.ps1";
|
. "$PSScriptRoot/../../Common/Scripts/Software.ps1";
|
||||||
. "$PSScriptRoot/../../Common/Scripts/SoftwareManagement.ps1";
|
. "$PSScriptRoot/../../Common/Scripts/SoftwareManagement.ps1";
|
||||||
. "$PSScriptRoot/../../Common/Types/InstallerAction.ps1";
|
. "$PSScriptRoot/../../Common/Types/InstallerAction.ps1";
|
||||||
|
@ -129,7 +130,36 @@ $null = New-Module {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Set-Stage ([WindowsInstallerStage]::Cleanup);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
([WindowsInstallerStage]::Cleanup) {
|
||||||
|
$taskName = "PortValhalla Cleaner";
|
||||||
|
$setupUser = Get-SetupUser;
|
||||||
|
Clear-OperationResources;
|
||||||
|
Remove-Item -Recurse -Force "C:\ProgramData\PortValhalla";
|
||||||
|
Get-SetupConfigKey | Remove-Item -Recurse -Force;
|
||||||
|
Disable-Autologin;
|
||||||
|
Disable-LocalUser $setupUser;
|
||||||
|
|
||||||
|
$script = {
|
||||||
|
param(
|
||||||
|
$TaskName,
|
||||||
|
$UserName
|
||||||
|
)
|
||||||
|
|
||||||
|
$user = Get-LocalUser $UserName;
|
||||||
|
[string] $sid = $user.SID;
|
||||||
|
Remove-LocalUser $user;
|
||||||
|
Get-CimInstance Win32_UserProfile | Where-Object { $_.SID -eq $sid } | Remove-CimInstance;
|
||||||
|
Unregister-ScheduledTask -Confirm:$false $TaskName;
|
||||||
|
};
|
||||||
|
|
||||||
|
$trigger = New-ScheduledTaskTrigger -AtStartup;
|
||||||
|
$task = New-ScheduledTaskAction -Execute "pwsh" -Argument "-Command & { $script } $(ConvertTo-Injection $taskName) $(ConvertTo-Injection $setupUser)";
|
||||||
|
$null = Register-ScheduledTask -Force $taskName -Action $task -Trigger $trigger -RunLevel Highest -User "SYSTEM";
|
||||||
Set-Stage ([WindowsInstallerStage]::Completed);
|
Set-Stage ([WindowsInstallerStage]::Completed);
|
||||||
|
Restart-Intermediate -NoRegister;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,16 +2,18 @@
|
||||||
. "$PSScriptRoot/../../Common/Scripts/Scripting.ps1";
|
. "$PSScriptRoot/../../Common/Scripts/Scripting.ps1";
|
||||||
|
|
||||||
function Start-Setup {
|
function Start-Setup {
|
||||||
|
param($ConfigurationName)
|
||||||
|
. "$PSScriptRoot/../../Common/Scripts/Config.ps1";
|
||||||
. "$PSScriptRoot/../../Common/Scripts/Scripting.ps1";
|
. "$PSScriptRoot/../../Common/Scripts/Scripting.ps1";
|
||||||
$Global:InformationPreference = "Continue";
|
$Global:InformationPreference = "Continue";
|
||||||
$Global:ErrorActionPreference = "Inquire";
|
$Global:ErrorActionPreference = "Inquire";
|
||||||
|
$env:CONFIG_NAME ??= $ConfigurationName;
|
||||||
$null = $env:WIN_COMPUTER_NAME;
|
$null = $env:WIN_COMPUTER_NAME;
|
||||||
$null = $env:SETUP_SCRIPT_NAME;
|
$null = $env:SETUP_SCRIPT_NAME ??= "$PSScriptRoot/Install.ps1";
|
||||||
$null = $env:CONFIG_MODULE;
|
$env:WSLENV = "CONFIG_NAME";
|
||||||
$env:WSLENV = "CONFIG_MODULE/p";
|
|
||||||
|
|
||||||
$valhallaConfig = ConvertFrom-Json (Get-Content "$env:CONFIG_MODULE.json");
|
|
||||||
|
|
||||||
|
Show-ProfileNamePrompt;
|
||||||
|
$valhallaConfig = ConvertFrom-Json (Get-Content "$PSScriptRoot/../../../.config/$env:CONFIG_NAME.json");
|
||||||
[xml]$unattendedConfig = [xml]::new();
|
[xml]$unattendedConfig = [xml]::new();
|
||||||
$unattendedConfig.PreserveWhitespace = $true;
|
$unattendedConfig.PreserveWhitespace = $true;
|
||||||
|
|
||||||
|
@ -233,7 +235,7 @@ function Start-Setup {
|
||||||
($env:DEBUG ? "`$env:DEBUG = $([int]$env:DEBUG);" : "") +
|
($env:DEBUG ? "`$env:DEBUG = $([int]$env:DEBUG);" : "") +
|
||||||
"`$env:PWSH_PATH = $(Get-PathInjection $env:PWSH_PATH);" +
|
"`$env:PWSH_PATH = $(Get-PathInjection $env:PWSH_PATH);" +
|
||||||
"`$env:INSTALLER_SCRIPT = $(Get-ScriptPathInjection $env:SETUP_SCRIPT_NAME);" +
|
"`$env:INSTALLER_SCRIPT = $(Get-ScriptPathInjection $env:SETUP_SCRIPT_NAME);" +
|
||||||
"`$env:CONFIG_MODULE = $(Get-ScriptPathInjection $env:CONFIG_MODULE);" +
|
"`$env:CONFIG_NAME = $(ConvertTo-Injection $env:CONFIG_NAME);" +
|
||||||
"& (Join-Path `$env:PWSH_PATH pwsh) `$env:INSTALLER_SCRIPT;") `
|
"& (Join-Path `$env:PWSH_PATH pwsh) `$env:INSTALLER_SCRIPT;") `
|
||||||
-Description "Install PowerShell Core and git and run setup script";
|
-Description "Install PowerShell Core and git and run setup script";
|
||||||
|
|
||||||
|
@ -264,4 +266,4 @@ function Start-Setup {
|
||||||
& "$SETUP_DRIVE\setup.exe" /Unattend:$unattendedConfigFile;
|
& "$SETUP_DRIVE\setup.exe" /Unattend:$unattendedConfigFile;
|
||||||
}
|
}
|
||||||
|
|
||||||
Start-Setup
|
Start-Setup @args;
|
||||||
|
|
|
@ -24,13 +24,16 @@ function Deploy-SoftwareAction {
|
||||||
$install = $true;
|
$install = $true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$hardware = Get-Config "valhalla.hardware";
|
||||||
|
$collections = Get-Config "valhalla.windows.software";
|
||||||
|
|
||||||
# Drivers
|
# Drivers
|
||||||
& {
|
& {
|
||||||
$driverPath = "$PSScriptRoot/../Drivers";
|
$driverPath = "$PSScriptRoot/../Drivers";
|
||||||
$mbPath = "$driverPath/ROG Zenith Extreme Alpha";
|
$mbPath = "$driverPath/ROG Zenith Extreme Alpha";
|
||||||
|
|
||||||
if ($install) {
|
if ($install) {
|
||||||
if (Get-Config "valhalla.hardware.elgatoWave") {
|
if ($hardware.elgatoWave) {
|
||||||
if (-not (Test-ChocoPackage wavelink)) {
|
if (-not (Test-ChocoPackage wavelink)) {
|
||||||
Install-ChocoPackage wavelink -ArgumentList '--install-arguments="/norestart"';
|
Install-ChocoPackage wavelink -ArgumentList '--install-arguments="/norestart"';
|
||||||
Remove-DesktopIcon "*Wave Link*";
|
Remove-DesktopIcon "*Wave Link*";
|
||||||
|
@ -40,7 +43,7 @@ function Deploy-SoftwareAction {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($component in (Get-Config "valhalla.hardware.components")) {
|
foreach ($component in $hardware.components) {
|
||||||
switcH ($component) {
|
switcH ($component) {
|
||||||
("ROG Zenith Extreme Alpha") {
|
("ROG Zenith Extreme Alpha") {
|
||||||
& "$mbPath/MarvellEthernet/Manage.ps1" @arguments;
|
& "$mbPath/MarvellEthernet/Manage.ps1" @arguments;
|
||||||
|
@ -56,22 +59,22 @@ function Deploy-SoftwareAction {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($install) {
|
if ($install) {
|
||||||
if (Get-Config "valhalla.hardware.amdCPU") {
|
if ($hardware.amdCPU) {
|
||||||
Install-ChocoPackage amd-ryzen-master;
|
Install-ChocoPackage amd-ryzen-master;
|
||||||
# ToDo: backup Ryzen energy saving plan
|
# ToDo: backup Ryzen energy saving plan
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Get-Config "valhalla.hardware.nvidiaGPU") {
|
if ($hardware.nvidiaGPU) {
|
||||||
Install-ChocoPackage geforce-game-ready-driver;
|
Install-ChocoPackage geforce-game-ready-driver;
|
||||||
Remove-DesktopIcon "*Geforce*";
|
Remove-DesktopIcon "*Geforce*";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Get-Config "valhalla.hardware.corsairDevice") {
|
if ($hardware.corsairDevice) {
|
||||||
Install-ChocoPackage icue;
|
Install-ChocoPackage icue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Get-Config "valhalla.hardware.eyeX") {
|
if ($hardware.eyeX) {
|
||||||
& "$driverPath/Tobii EyeX/Manage.ps1" @arguments;
|
& "$driverPath/Tobii EyeX/Manage.ps1" @arguments;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -83,12 +86,12 @@ function Deploy-SoftwareAction {
|
||||||
# Windows Config
|
# Windows Config
|
||||||
& "$softwarePath/Windows/Manage.ps1" @arguments;
|
& "$softwarePath/Windows/Manage.ps1" @arguments;
|
||||||
|
|
||||||
if (Get-Config "valhalla.hardware.logitechG") {
|
if ($hardware.logitechG) {
|
||||||
& "$softwarePath/LGHub/Manage.ps1" @arguments;
|
& "$softwarePath/LGHub/Manage.ps1" @arguments;
|
||||||
}
|
}
|
||||||
|
|
||||||
# Essentials
|
# Essentials
|
||||||
if (Test-Collection "essential") {
|
if ($collections.essential) {
|
||||||
& "$softwarePath/aliae/Main.ps1" @arguments;
|
& "$softwarePath/aliae/Main.ps1" @arguments;
|
||||||
& "$softwarePath/OpenSSH/Manage.ps1" @arguments;
|
& "$softwarePath/OpenSSH/Manage.ps1" @arguments;
|
||||||
& "$softwarePath/PowerShell/Manage.ps1" @arguments;
|
& "$softwarePath/PowerShell/Manage.ps1" @arguments;
|
||||||
|
@ -115,7 +118,7 @@ function Deploy-SoftwareAction {
|
||||||
}
|
}
|
||||||
|
|
||||||
# Common Software
|
# Common Software
|
||||||
if (Test-Collection "common") {
|
if ($collections.common) {
|
||||||
& "$softwarePath/WinSCP/Manage.ps1" @arguments;
|
& "$softwarePath/WinSCP/Manage.ps1" @arguments;
|
||||||
& "$softwarePath/Thunderbird/Manage.ps1" @arguments;
|
& "$softwarePath/Thunderbird/Manage.ps1" @arguments;
|
||||||
& "$softwarePath/PuTTY/Manage.ps1" @arguments;
|
& "$softwarePath/PuTTY/Manage.ps1" @arguments;
|
||||||
|
@ -137,7 +140,7 @@ function Deploy-SoftwareAction {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Test-Collection "desktopExperience") {
|
if ($collections.desktopExperience) {
|
||||||
if ($install) {
|
if ($install) {
|
||||||
# Fonts
|
# Fonts
|
||||||
Install-ChocoPackage nerd-fonts-CascadiaCode;
|
Install-ChocoPackage nerd-fonts-CascadiaCode;
|
||||||
|
@ -170,7 +173,7 @@ function Deploy-SoftwareAction {
|
||||||
Remove-DesktopIcon "GIMP*";
|
Remove-DesktopIcon "GIMP*";
|
||||||
Remove-DesktopIcon "GPU-Z*";
|
Remove-DesktopIcon "GPU-Z*";
|
||||||
Remove-DesktopIcon "WinDirStat*";
|
Remove-DesktopIcon "WinDirStat*";
|
||||||
Remove-DesktopIcon "*HWMonior*";
|
Remove-DesktopIcon "*HWMonitor*";
|
||||||
Remove-DesktopIcon "ImgBurn*";
|
Remove-DesktopIcon "ImgBurn*";
|
||||||
Remove-DesktopIcon "InkScape*";
|
Remove-DesktopIcon "InkScape*";
|
||||||
Remove-DesktopIcon "Krita*";
|
Remove-DesktopIcon "Krita*";
|
||||||
|
@ -192,12 +195,12 @@ function Deploy-SoftwareAction {
|
||||||
& "$softwarePath/Firefox/Manage.ps1" @arguments;
|
& "$softwarePath/Firefox/Manage.ps1" @arguments;
|
||||||
& "$softwarePath/MSEdgeRedirect/Manage.ps1" @arguments;
|
& "$softwarePath/MSEdgeRedirect/Manage.ps1" @arguments;
|
||||||
|
|
||||||
if (Test-Collection "fileSync") {
|
if ($collections.fileSync) {
|
||||||
& "$softwarePath/Nextcloud/Main.ps1" @arguments;
|
& "$softwarePath/Nextcloud/Main.ps1" @arguments;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Test-Collection "socialMedia") {
|
if ($collections.socialMedia) {
|
||||||
if ($install) {
|
if ($install) {
|
||||||
Install-ChocoPackage `
|
Install-ChocoPackage `
|
||||||
signal `
|
signal `
|
||||||
|
@ -214,7 +217,7 @@ function Deploy-SoftwareAction {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Test-Collection "media") {
|
if ($collections.media) {
|
||||||
if ($install) {
|
if ($install) {
|
||||||
Install-ChocoPackage `
|
Install-ChocoPackage `
|
||||||
k-litecodecpackmega `
|
k-litecodecpackmega `
|
||||||
|
@ -230,7 +233,7 @@ function Deploy-SoftwareAction {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Test-Collection "coding") {
|
if ($collections.coding) {
|
||||||
if ($install) {
|
if ($install) {
|
||||||
& "$softwarePath/vscode/Main.ps1" @arguments;
|
& "$softwarePath/vscode/Main.ps1" @arguments;
|
||||||
|
|
||||||
|
@ -256,7 +259,7 @@ function Deploy-SoftwareAction {
|
||||||
}
|
}
|
||||||
|
|
||||||
# Gaming
|
# Gaming
|
||||||
if (Test-Collection "gaming") {
|
if ($collections.gaming) {
|
||||||
if ($install) {
|
if ($install) {
|
||||||
Install-ChocoPackage `
|
Install-ChocoPackage `
|
||||||
goggalaxy `
|
goggalaxy `
|
||||||
|
|
|
@ -55,7 +55,7 @@ $null = New-Module {
|
||||||
($env:DEBUG ? "`$env:DEBUG = $([int]$env:DEBUG);" : "") +
|
($env:DEBUG ? "`$env:DEBUG = $([int]$env:DEBUG);" : "") +
|
||||||
($env:BACKUP_ARCHIVE ? "`$env:BACKUP_ARCHIVE = $(ConvertTo-Injection (Resolve-Path $env:BACKUP_ARCHIVE));" : "") +
|
($env:BACKUP_ARCHIVE ? "`$env:BACKUP_ARCHIVE = $(ConvertTo-Injection (Resolve-Path $env:BACKUP_ARCHIVE));" : "") +
|
||||||
"`$env:INSTALLER_SCRIPT = $(ConvertTo-Injection (Resolve-Path $env:INSTALLER_SCRIPT));" +
|
"`$env:INSTALLER_SCRIPT = $(ConvertTo-Injection (Resolve-Path $env:INSTALLER_SCRIPT));" +
|
||||||
"`$env:CONFIG_MODULE = $(ConvertTo-Injection (Resolve-Path $env:CONFIG_MODULE));" +
|
"`$env:CONFIG_NAME = $(ConvertTo-Injection $env:CONFIG_NAME);" +
|
||||||
"& `$env:INSTALLER_SCRIPT;";
|
"& `$env:INSTALLER_SCRIPT;";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -54,6 +54,10 @@ function Test-WslDistribution {
|
||||||
#>
|
#>
|
||||||
function Install-Wsl {
|
function Install-Wsl {
|
||||||
wsl --install --no-launch;
|
wsl --install --no-launch;
|
||||||
|
# Microsoft broke WSL - Quelle surprise!
|
||||||
|
# ToDo: Remove this workaround once it's unbroken
|
||||||
|
. "$PSScriptRoot/../../Common/Scripts/Software.ps1";
|
||||||
|
Install-SetupPackage "https://github.com/microsoft/WSL/releases/download/2.3.17/wsl.2.3.17.0.x64.msi" -ArgumentList "/Quiet";
|
||||||
}
|
}
|
||||||
|
|
||||||
<#
|
<#
|
||||||
|
|
|
@ -209,9 +209,11 @@ begin
|
||||||
begin
|
begin
|
||||||
source "$dir/../scripts/Common/Scripts/config.fish"
|
source "$dir/../scripts/Common/Scripts/config.fish"
|
||||||
|
|
||||||
find "$projectPath/profiles" -type f -name "*.nix" | while read -l file
|
for name in (getProfiles | jq '.[]' --raw-output0 | string split0)
|
||||||
set -l CONFIG_MODULE "$file"
|
set -l CONFIG_NAME "$name"
|
||||||
getConfig "valhalla.windows.config" --json > "$file.json"
|
set -l file "$projectPath/.config/$name.json"
|
||||||
|
mkdir -p (dirname $file)
|
||||||
|
getConfig "valhalla.windows.config" --json > "$file"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -1,2 +1,3 @@
|
||||||
$env:SETUP_DRIVE = (ConvertFrom-Csv ((wmic volume where "Label='$env:SETUP_LABEL'" get DriveLetter) | ForEach-Object { "$_".Trim(); })).DriveLetter;
|
$env:SETUP_DRIVE = (ConvertFrom-Csv ((wmic volume where "Label='$env:SETUP_LABEL'" get DriveLetter) | ForEach-Object { "$_".Trim(); })).DriveLetter;
|
||||||
Set-Location (Join-Path $env:SETUP_DRIVE $env:LOCAL_PROJECT_PATH)
|
Set-Location (Join-Path $env:SETUP_DRIVE $env:LOCAL_PROJECT_PATH)
|
||||||
|
& ./scripts/Windows/OS/Setup.ps1;
|
||||||
|
|
Loading…
Reference in a new issue