refactor: split systems into archetypes

refactor(module): move kernel config to module

refactor(module): move nix config to module

refactor(module): move networking config to module

refactor(module): move nix config to module

refactor(module): move grub config to module
This commit is contained in:
Jo 2024-09-06 17:43:30 +02:00
parent 067bc992b6
commit b43660c227
9 changed files with 228 additions and 66 deletions

View file

@ -0,0 +1,40 @@
{
lib,
pkgs,
inputs,
namespace, # The flake namespace, set in flake.nix. If not set, defaults to "internal".
system, # The system architecture for this host (eg. `x86_64-linux`).
target, # The Snowfall Lib target for this system (eg. `x86_64-iso`).
format, # A normalized name for the system target (eg. `iso`).
virtual, # A boolean to determine whether this system is a virtual target using nixos-generators.
systems, # An attribute map of your defined hosts.
config,
...
}: with lib; with lib.${namespace};
let
cfg = config.${namespace}.archetypes.workstation;
in {
options.${namespace}.archetypes.workstation = { enable = mkEnableOption "Enable the workstation archetype for your current system"; };
config = mkIf cfg.enable {
environment.sessionVariables = {
NIXOS_OZONE_WL = "1"; # Chromium/Electron native Wayland support
MOZ_ENABLE_WAYLAND = "1"; # Firefox native Wayland support
};
# Enable modules
puzzlevision = {
common = {
nix.enable = true; # Standard Nix configuration
grub.enable = true; # Bootloader grub
networking.enable = true; # Networkmanager configuration
kernel.enable = true; # Kernel modifications
bluetooth.enable = true; # Bluetooth support
};
desktop.gnome.enable = true;
};
};
}