From 021ab24e79ecc3ac4abb894afe8fb779b73a3c8a Mon Sep 17 00:00:00 2001 From: William Date: Thu, 13 Mar 2025 13:33:41 -0300 Subject: [PATCH] refactoring for iServer and isWorkstation: part 2 --- hosts/desktops/common/default.nix | 9 ---- hosts/desktops/common/home-manager.nix | 10 ---- hosts/desktops/common/impermanence.nix | 24 ---------- hosts/desktops/common/stylix.nix | 47 ------------------ hosts/desktops/io.nix | 5 +- hosts/desktops/rotterdam.nix | 6 +-- hosts/modules/default.nix | 2 + hosts/modules/impermanence.nix | 37 +++++++++++++++ hosts/modules/stylix.nix | 66 ++++++++++++++++++++++++++ hosts/modules/users.nix | 9 ++++ hosts/servers/common/boot.nix | 4 -- hosts/servers/common/default.nix | 10 ---- hosts/servers/common/home-manager.nix | 10 ---- hosts/servers/common/nix.nix | 4 -- hosts/servers/common/services.nix | 4 -- 15 files changed, 116 insertions(+), 131 deletions(-) delete mode 100644 hosts/desktops/common/default.nix delete mode 100644 hosts/desktops/common/home-manager.nix delete mode 100644 hosts/desktops/common/impermanence.nix delete mode 100644 hosts/desktops/common/stylix.nix create mode 100644 hosts/modules/impermanence.nix create mode 100644 hosts/modules/stylix.nix delete mode 100644 hosts/servers/common/boot.nix delete mode 100644 hosts/servers/common/default.nix delete mode 100644 hosts/servers/common/home-manager.nix delete mode 100644 hosts/servers/common/nix.nix delete mode 100644 hosts/servers/common/services.nix diff --git a/hosts/desktops/common/default.nix b/hosts/desktops/common/default.nix deleted file mode 100644 index e752783..0000000 --- a/hosts/desktops/common/default.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ ... }: - -{ - imports = [ - ./home-manager.nix - ./impermanence.nix - ./stylix.nix - ]; -} diff --git a/hosts/desktops/common/home-manager.nix b/hosts/desktops/common/home-manager.nix deleted file mode 100644 index 6e88ad7..0000000 --- a/hosts/desktops/common/home-manager.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ ... }: - -{ - home-manager = { - useGlobalPkgs = true; - useUserPackages = true; - backupFileExtension = "bkp"; - users.user = import ../../../users/desktops/user.nix; - }; -} diff --git a/hosts/desktops/common/impermanence.nix b/hosts/desktops/common/impermanence.nix deleted file mode 100644 index aebf0a1..0000000 --- a/hosts/desktops/common/impermanence.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ ... }: - -{ - environment.persistence.main = { - persistentStoragePath = "/persistent"; - files = [ - "/etc/machine-id" - "/etc/ssh/ssh_host_ed25519_key" - "/etc/ssh/ssh_host_ed25519_key.pub" - "/etc/ssh/ssh_host_rsa_key" - "/etc/ssh/ssh_host_rsa_key.pub" - ]; - directories = [ - "/etc/NetworkManager/system-connections" - "/var/lib/bluetooth" - "/var/lib/flatpak" - "/var/lib/nixos" - "/var/lib/systemd/coredump" - "/var/lib/systemd/timers" - "/var/lib/tailscale" - "/var/log" - ]; - }; -} diff --git a/hosts/desktops/common/stylix.nix b/hosts/desktops/common/stylix.nix deleted file mode 100644 index f1760b1..0000000 --- a/hosts/desktops/common/stylix.nix +++ /dev/null @@ -1,47 +0,0 @@ -{ config, pkgs, ... }: - -{ - stylix = { - enable = true; - image = pkgs.fetchurl { - url = "https://w.wallhaven.cc/full/dp/wallhaven-dpwvl3.jpg"; - sha256 = "sha256-h9UeYj8jSRgSv8XL+zgds4KtooLlJ+IqwxZbQEXdCh4="; - }; - base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml"; - cursor = { - package = pkgs.kdePackages.breeze-icons; - name = "Breeze_Light"; - size = 24; - }; - opacity = { - applications = 1.0; - desktop = 0.8; - popups = config.stylix.opacity.desktop; - terminal = 1.0; - }; - fonts = { - serif = { - package = pkgs.source-serif; - name = "Source Serif 4 Display"; - }; - sansSerif = { - package = pkgs.inter; - name = "Inter"; - }; - monospace = { - package = pkgs.nerd-fonts.fira-code; - name = "FiraCode Nerd Font"; - }; - emoji = { - package = pkgs.noto-fonts-emoji; - name = "Noto Color Emoji"; - }; - sizes = { - applications = 10; - desktop = config.stylix.fonts.sizes.applications; - popups = config.stylix.fonts.sizes.applications; - terminal = 12; - }; - }; - }; -} diff --git a/hosts/desktops/io.nix b/hosts/desktops/io.nix index 5d9c9ff..fccc7f2 100644 --- a/hosts/desktops/io.nix +++ b/hosts/desktops/io.nix @@ -17,10 +17,7 @@ let in { imports = [ - # Host-common imports - ../common - # Desktop-common imports - ./common + ../modules # Host-specific imports ./io ]; diff --git a/hosts/desktops/rotterdam.nix b/hosts/desktops/rotterdam.nix index c98696d..8004665 100644 --- a/hosts/desktops/rotterdam.nix +++ b/hosts/desktops/rotterdam.nix @@ -30,12 +30,8 @@ let in { imports = [ - # Host-common imports - ../modules - # Desktop-common imports - ./common - # Host-specific imports ./rotterdam + ../modules ]; networking.hostName = "rotterdam"; diff --git a/hosts/modules/default.nix b/hosts/modules/default.nix index 4d419e6..1dbed53 100644 --- a/hosts/modules/default.nix +++ b/hosts/modules/default.nix @@ -5,12 +5,14 @@ ./boot.nix ./console.nix ./desktop.nix + ./impermanence.nix ./locale.nix ./networking.nix ./nix.nix ./programs.nix ./security.nix ./services.nix + ./stylix.nix ./users.nix ./virtualisation.nix ]; diff --git a/hosts/modules/impermanence.nix b/hosts/modules/impermanence.nix new file mode 100644 index 0000000..65e6139 --- /dev/null +++ b/hosts/modules/impermanence.nix @@ -0,0 +1,37 @@ +{ hostType, lib, ... }: + +{ + config = lib.mkMerge [ + # Common configuration + { + } + + # Server specific configuration + (lib.mkIf hostType.isServer { + }) + + # Workstation specific configuration + (lib.mkIf hostType.isWorkstation { + environment.persistence.main = { + persistentStoragePath = "/persistent"; + files = [ + "/etc/machine-id" + "/etc/ssh/ssh_host_ed25519_key" + "/etc/ssh/ssh_host_ed25519_key.pub" + "/etc/ssh/ssh_host_rsa_key" + "/etc/ssh/ssh_host_rsa_key.pub" + ]; + directories = [ + "/etc/NetworkManager/system-connections" + "/var/lib/bluetooth" + "/var/lib/flatpak" + "/var/lib/nixos" + "/var/lib/systemd/coredump" + "/var/lib/systemd/timers" + "/var/lib/tailscale" + "/var/log" + ]; + }; + }) + ]; +} diff --git a/hosts/modules/stylix.nix b/hosts/modules/stylix.nix new file mode 100644 index 0000000..b90d621 --- /dev/null +++ b/hosts/modules/stylix.nix @@ -0,0 +1,66 @@ +{ + config, + hostType, + lib, + pkgs, + ... +}: + +{ + config = lib.mkMerge [ + # Common configuration + { + } + + # Server specific configuration + (lib.mkIf hostType.isServer { + }) + + # Workstation specific configuration + (lib.mkIf hostType.isWorkstation { + stylix = { + enable = true; + image = pkgs.fetchurl { + url = "https://w.wallhaven.cc/full/dp/wallhaven-dpwvl3.jpg"; + sha256 = "sha256-h9UeYj8jSRgSv8XL+zgds4KtooLlJ+IqwxZbQEXdCh4="; + }; + base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml"; + cursor = { + package = pkgs.kdePackages.breeze-icons; + name = "Breeze_Light"; + size = 24; + }; + opacity = { + applications = 1.0; + desktop = 0.8; + popups = config.stylix.opacity.desktop; + terminal = 1.0; + }; + fonts = { + serif = { + package = pkgs.source-serif; + name = "Source Serif 4 Display"; + }; + sansSerif = { + package = pkgs.inter; + name = "Inter"; + }; + monospace = { + package = pkgs.nerd-fonts.fira-code; + name = "FiraCode Nerd Font"; + }; + emoji = { + package = pkgs.noto-fonts-emoji; + name = "Noto Color Emoji"; + }; + sizes = { + applications = 10; + desktop = config.stylix.fonts.sizes.applications; + popups = config.stylix.fonts.sizes.applications; + terminal = 12; + }; + }; + }; + }) + ]; +} diff --git a/hosts/modules/users.nix b/hosts/modules/users.nix index fd9ef02..4546cfe 100644 --- a/hosts/modules/users.nix +++ b/hosts/modules/users.nix @@ -33,10 +33,17 @@ hashedPassword = "!"; }; }; + + home-manager = { + useGlobalPkgs = true; + useUserPackages = true; + backupFileExtension = "bkp"; + }; } # Server specific configuration (lib.mkIf hostType.isServer { + home-manager.users.user = import ../../users/servers/user.nix; }) # Workstation specific configuration @@ -66,6 +73,8 @@ hashedPassword = "$y$j9T$yHLUDvj6bDIP19dchU.aA/$OY4qeFNtx/GvI.VUYx4LapHiiVwi0MEvs8AT0HN7j58"; }; }; + + home-manager.users.user = import ../../users/desktops/user.nix; }) ]; } diff --git a/hosts/servers/common/boot.nix b/hosts/servers/common/boot.nix deleted file mode 100644 index a67ca90..0000000 --- a/hosts/servers/common/boot.nix +++ /dev/null @@ -1,4 +0,0 @@ -{ pkgs, ... }: - -{ -} diff --git a/hosts/servers/common/default.nix b/hosts/servers/common/default.nix deleted file mode 100644 index db2cb46..0000000 --- a/hosts/servers/common/default.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ ... }: - -{ - imports = [ - ./boot.nix - ./home-manager.nix - ./nix.nix - ./services.nix - ]; -} diff --git a/hosts/servers/common/home-manager.nix b/hosts/servers/common/home-manager.nix deleted file mode 100644 index 20186df..0000000 --- a/hosts/servers/common/home-manager.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ ... }: - -{ - home-manager = { - useGlobalPkgs = true; - useUserPackages = true; - backupFileExtension = "bkp"; - users.user = import ../../../users/servers/user.nix; - }; -} diff --git a/hosts/servers/common/nix.nix b/hosts/servers/common/nix.nix deleted file mode 100644 index e0d65f1..0000000 --- a/hosts/servers/common/nix.nix +++ /dev/null @@ -1,4 +0,0 @@ -{ inputs, ... }: - -{ -} diff --git a/hosts/servers/common/services.nix b/hosts/servers/common/services.nix deleted file mode 100644 index 04618ac..0000000 --- a/hosts/servers/common/services.nix +++ /dev/null @@ -1,4 +0,0 @@ -{ ... }: - -{ -}