From 9f8c3bb9234d87f9cd0ac93a4da1009e48b37bc6 Mon Sep 17 00:00:00 2001 From: Mohammad Rafiq Date: Mon, 31 Mar 2025 04:41:56 +0800 Subject: [PATCH] refactor(flake): move nixos configs into flake --- configs/default.nix | 51 ------------------ flake.nix | 45 ++++++++++++++-- {configs => modules}/boot.nix | 5 +- .../bootloaders/systemd-boot.nix | 0 .../filesystems/hw-nemesis.nix | 0 .../filesystems/impermanence.nix | 0 {configs => modules}/graphical.nix | 0 {configs => modules}/hardware/audio.nix | 0 {configs => modules}/hardware/bluetooth.nix | 0 {configs => modules}/hardware/cpu_amd.nix | 0 {configs => modules}/hardware/cpu_intel.nix | 0 {configs => modules}/hardware/nvidia.nix | 0 {configs => modules}/networking.nix | 0 {configs => modules}/nix-config.nix | 0 {configs => modules}/programs/ags.nix | 0 {configs => modules}/programs/ags/test | 0 {configs => modules}/programs/aichat.nix | 0 {configs => modules}/programs/clipse.nix | 0 {configs => modules}/programs/comma.nix | 0 {configs => modules}/programs/direnv.nix | 0 {configs => modules}/programs/dunst.nix | 0 .../programs/editorconfig.nix | 0 {configs => modules}/programs/firefox.nix | 0 {configs => modules}/programs/fuzzel.nix | 0 {configs => modules}/programs/fzf.nix | 0 {configs => modules}/programs/getty.nix | 0 {configs => modules}/programs/git.nix | 0 {configs => modules}/programs/hyprland.nix | 0 {configs => modules}/programs/hyprlock.nix | 0 {configs => modules}/programs/hyprshade.nix | 0 {configs => modules}/programs/kitty.nix | 0 .../programs/media/wallpaper.jpg | Bin {configs => modules}/programs/nh.nix | 0 {configs => modules}/programs/nvf.nix | 0 {configs => modules}/programs/nvf/input.nix | 0 .../programs/nvf/languages.nix | 0 {configs => modules}/programs/nvf/ui.nix | 0 .../programs/nvf/utilities.nix | 0 .../programs/scripts/byebye.sh | 0 .../programs/scripts/default.nix | 0 .../programs/scripts/deploy.sh | 0 .../programs/scripts/git-extract.py | 0 .../programs/scripts/rebuild.sh | 0 {configs => modules}/programs/spicetify.nix | 0 {configs => modules}/programs/starship.nix | 0 {configs => modules}/programs/stylix.nix | 0 {configs => modules}/programs/tealdeer.nix | 0 .../programs/themes/colourschemes/3024.nix | 0 .../themes/colourschemes/black-metal.nix | 0 .../programs/themes/colourschemes/bright.nix | 0 .../themes/colourschemes/catppuccin-mocha.nix | 0 .../themes/colourschemes/darkviolet.nix | 0 .../programs/themes/cursors/banana-cursor.nix | 0 .../programs/themes/fonts/0xProto.nix | 0 .../programs/themes/fonts/3270.nix | 0 .../programs/themes/fonts/sauce-code-pro.nix | 0 .../programs/themes/fonts/terminess.nix | 0 {configs => modules}/programs/yazi.nix | 0 .../programs/yazi/starship.toml | 0 {configs => modules}/programs/zellij.nix | 0 {configs => modules}/programs/zoxide.nix | 0 {configs => modules}/programs/zsh.nix | 0 {configs => modules}/secrets/.sops.yaml | 0 {configs => modules}/secrets/secrets.yaml | 0 {configs => modules}/security.nix | 0 {configs => modules}/shell.nix | 0 {configs => modules}/users.nix | 0 67 files changed, 45 insertions(+), 56 deletions(-) delete mode 100644 configs/default.nix rename {configs => modules}/boot.nix (75%) rename {configs => modules}/bootloaders/systemd-boot.nix (100%) rename {configs => modules}/filesystems/hw-nemesis.nix (100%) rename {configs => modules}/filesystems/impermanence.nix (100%) rename {configs => modules}/graphical.nix (100%) rename {configs => modules}/hardware/audio.nix (100%) rename {configs => modules}/hardware/bluetooth.nix (100%) rename {configs => modules}/hardware/cpu_amd.nix (100%) rename {configs => modules}/hardware/cpu_intel.nix (100%) rename {configs => modules}/hardware/nvidia.nix (100%) rename {configs => modules}/networking.nix (100%) rename {configs => modules}/nix-config.nix (100%) rename {configs => modules}/programs/ags.nix (100%) rename {configs => modules}/programs/ags/test (100%) rename {configs => modules}/programs/aichat.nix (100%) rename {configs => modules}/programs/clipse.nix (100%) rename {configs => modules}/programs/comma.nix (100%) rename {configs => modules}/programs/direnv.nix (100%) rename {configs => modules}/programs/dunst.nix (100%) rename {configs => modules}/programs/editorconfig.nix (100%) rename {configs => modules}/programs/firefox.nix (100%) rename {configs => modules}/programs/fuzzel.nix (100%) rename {configs => modules}/programs/fzf.nix (100%) rename {configs => modules}/programs/getty.nix (100%) rename {configs => modules}/programs/git.nix (100%) rename {configs => modules}/programs/hyprland.nix (100%) rename {configs => modules}/programs/hyprlock.nix (100%) rename {configs => modules}/programs/hyprshade.nix (100%) rename {configs => modules}/programs/kitty.nix (100%) rename {configs => modules}/programs/media/wallpaper.jpg (100%) rename {configs => modules}/programs/nh.nix (100%) rename {configs => modules}/programs/nvf.nix (100%) rename {configs => modules}/programs/nvf/input.nix (100%) rename {configs => modules}/programs/nvf/languages.nix (100%) rename {configs => modules}/programs/nvf/ui.nix (100%) rename {configs => modules}/programs/nvf/utilities.nix (100%) rename {configs => modules}/programs/scripts/byebye.sh (100%) rename {configs => modules}/programs/scripts/default.nix (100%) rename {configs => modules}/programs/scripts/deploy.sh (100%) rename {configs => modules}/programs/scripts/git-extract.py (100%) rename {configs => modules}/programs/scripts/rebuild.sh (100%) rename {configs => modules}/programs/spicetify.nix (100%) rename {configs => modules}/programs/starship.nix (100%) rename {configs => modules}/programs/stylix.nix (100%) rename {configs => modules}/programs/tealdeer.nix (100%) rename {configs => modules}/programs/themes/colourschemes/3024.nix (100%) rename {configs => modules}/programs/themes/colourschemes/black-metal.nix (100%) rename {configs => modules}/programs/themes/colourschemes/bright.nix (100%) rename {configs => modules}/programs/themes/colourschemes/catppuccin-mocha.nix (100%) rename {configs => modules}/programs/themes/colourschemes/darkviolet.nix (100%) rename {configs => modules}/programs/themes/cursors/banana-cursor.nix (100%) rename {configs => modules}/programs/themes/fonts/0xProto.nix (100%) rename {configs => modules}/programs/themes/fonts/3270.nix (100%) rename {configs => modules}/programs/themes/fonts/sauce-code-pro.nix (100%) rename {configs => modules}/programs/themes/fonts/terminess.nix (100%) rename {configs => modules}/programs/yazi.nix (100%) rename {configs => modules}/programs/yazi/starship.toml (100%) rename {configs => modules}/programs/zellij.nix (100%) rename {configs => modules}/programs/zoxide.nix (100%) rename {configs => modules}/programs/zsh.nix (100%) rename {configs => modules}/secrets/.sops.yaml (100%) rename {configs => modules}/secrets/secrets.yaml (100%) rename {configs => modules}/security.nix (100%) rename {configs => modules}/shell.nix (100%) rename {configs => modules}/users.nix (100%) diff --git a/configs/default.nix b/configs/default.nix deleted file mode 100644 index 549988e..0000000 --- a/configs/default.nix +++ /dev/null @@ -1,51 +0,0 @@ -{ - inputs, - lib, - hostname, - type, - modulesPath, - ... -}: -{ - imports = builtins.concatLists [ - # Common options for all machines. - [ - (modulesPath + "/installer/scan/not-detected.nix") - ./boot.nix - ./bootloaders/systemd-boot.nix - ./networking.nix - ./nix-config.nix - ./security.nix - ./shell.nix - ./users.nix - ] - # Options for graphical systems. - (lib.optionals (type == "desktop") [ - ./graphical.nix - ]) - # Options for specific hostnames. - (lib.optionals (hostname == "nemesis") [ - ./filesystems/hw-nemesis.nix - # (import ./filesystems/impermanence.nix { - # inherit inputs lib; - # device = "nvme-nvme.c0a9-323332354536453737343334-435432303030503353534438-00000001"; - # }) - ./hardware/cpu_amd.nix - ./hardware/nvidia.nix - ]) - (lib.optionals (hostname == "mellinoe") [ - (import ./filesystems/impermanence.nix { - inherit inputs lib; - device = "/dev/disk/by-id/nvme-eui.01000000000000008ce38e04019a68ab"; - }) - ./hardware/cpu_intel.nix - ]) - (lib.optionals (hostname == "apollo") [ - (import ./filesystems/impermanence.nix { - inherit inputs lib; - device = "/dev/disk/by-id/nvme-eui.002538d221b47b01"; - }) - ./hardware/cpu_intel.nix - ]) - ]; -} diff --git a/flake.nix b/flake.nix index 2763d58..063ad81 100644 --- a/flake.nix +++ b/flake.nix @@ -5,6 +5,12 @@ ... }@inputs: let + inherit (inputs.nixpkgs) lib; + mkDiskConfig = device: { + imports = [ + (import ./modules/filesystems/impermanence.nix { inherit inputs lib device; }) + ]; + }; mkSystem = type: hostname: { name = "${hostname}"; value = @@ -20,16 +26,47 @@ in inputs.nixpkgs.lib.nixosSystem { specialArgs = args; - modules = [ - ./configs + modules = builtins.concatLists [ + # Common options for all machines. + [ + ./modules/boot.nix + ./modules/bootloaders/systemd-boot.nix + ./modules/networking.nix + ./modules/nix-config.nix + ./modules/security.nix + ./modules/shell.nix + ./modules/users.nix + ] + # Options for graphical systems. + (lib.optionals (type == "graphical") [ + ./modules/graphical.nix + ]) + # Options for specific hostnames. + (lib.optionals (hostname == "nemesis") [ + # mkDiskConfig + # "nvme-nvme.c0a9-323332354536453737343334-435432303030503353534438-00000001" + ./modules/filesystems/hw-nemesis.nix + ./modules/hardware/cpu_amd.nix + ./modules/hardware/nvidia.nix + ]) + (lib.optionals (hostname == "mellinoe") [ + mkDiskConfig + "/dev/disk/by-id/nvme-eui.01000000000000008ce38e04019a68ab" + ./modules/hardware/cpu_intel.nix + ]) + (lib.optionals (hostname == "apollo") [ + mkDiskConfig + "/dev/disk/by-id/nvme-eui.002538d221b47b01" + ./modules/hardware/cpu_intel.nix + ]) ]; }; }; in { nixosConfigurations = builtins.listToAttrs [ - (mkSystem "desktop" "nemesis") - (mkSystem "desktop" "mellinoe") + (mkSystem "graphical" "nemesis") + (mkSystem "graphical" "mellinoe") (mkSystem "headless" "apollo") ]; }; diff --git a/configs/boot.nix b/modules/boot.nix similarity index 75% rename from configs/boot.nix rename to modules/boot.nix index 8587d0a..c33b1fe 100644 --- a/configs/boot.nix +++ b/modules/boot.nix @@ -1,5 +1,8 @@ -{ pkgs, ... }: +{ pkgs, modulesPath, ... }: { + imports = [ + (modulesPath + "/installer/scan/not-detected.nix") + ]; boot = { loader = { timeout = 5; diff --git a/configs/bootloaders/systemd-boot.nix b/modules/bootloaders/systemd-boot.nix similarity index 100% rename from configs/bootloaders/systemd-boot.nix rename to modules/bootloaders/systemd-boot.nix diff --git a/configs/filesystems/hw-nemesis.nix b/modules/filesystems/hw-nemesis.nix similarity index 100% rename from configs/filesystems/hw-nemesis.nix rename to modules/filesystems/hw-nemesis.nix diff --git a/configs/filesystems/impermanence.nix b/modules/filesystems/impermanence.nix similarity index 100% rename from configs/filesystems/impermanence.nix rename to modules/filesystems/impermanence.nix diff --git a/configs/graphical.nix b/modules/graphical.nix similarity index 100% rename from configs/graphical.nix rename to modules/graphical.nix diff --git a/configs/hardware/audio.nix b/modules/hardware/audio.nix similarity index 100% rename from configs/hardware/audio.nix rename to modules/hardware/audio.nix diff --git a/configs/hardware/bluetooth.nix b/modules/hardware/bluetooth.nix similarity index 100% rename from configs/hardware/bluetooth.nix rename to modules/hardware/bluetooth.nix diff --git a/configs/hardware/cpu_amd.nix b/modules/hardware/cpu_amd.nix similarity index 100% rename from configs/hardware/cpu_amd.nix rename to modules/hardware/cpu_amd.nix diff --git a/configs/hardware/cpu_intel.nix b/modules/hardware/cpu_intel.nix similarity index 100% rename from configs/hardware/cpu_intel.nix rename to modules/hardware/cpu_intel.nix diff --git a/configs/hardware/nvidia.nix b/modules/hardware/nvidia.nix similarity index 100% rename from configs/hardware/nvidia.nix rename to modules/hardware/nvidia.nix diff --git a/configs/networking.nix b/modules/networking.nix similarity index 100% rename from configs/networking.nix rename to modules/networking.nix diff --git a/configs/nix-config.nix b/modules/nix-config.nix similarity index 100% rename from configs/nix-config.nix rename to modules/nix-config.nix diff --git a/configs/programs/ags.nix b/modules/programs/ags.nix similarity index 100% rename from configs/programs/ags.nix rename to modules/programs/ags.nix diff --git a/configs/programs/ags/test b/modules/programs/ags/test similarity index 100% rename from configs/programs/ags/test rename to modules/programs/ags/test diff --git a/configs/programs/aichat.nix b/modules/programs/aichat.nix similarity index 100% rename from configs/programs/aichat.nix rename to modules/programs/aichat.nix diff --git a/configs/programs/clipse.nix b/modules/programs/clipse.nix similarity index 100% rename from configs/programs/clipse.nix rename to modules/programs/clipse.nix diff --git a/configs/programs/comma.nix b/modules/programs/comma.nix similarity index 100% rename from configs/programs/comma.nix rename to modules/programs/comma.nix diff --git a/configs/programs/direnv.nix b/modules/programs/direnv.nix similarity index 100% rename from configs/programs/direnv.nix rename to modules/programs/direnv.nix diff --git a/configs/programs/dunst.nix b/modules/programs/dunst.nix similarity index 100% rename from configs/programs/dunst.nix rename to modules/programs/dunst.nix diff --git a/configs/programs/editorconfig.nix b/modules/programs/editorconfig.nix similarity index 100% rename from configs/programs/editorconfig.nix rename to modules/programs/editorconfig.nix diff --git a/configs/programs/firefox.nix b/modules/programs/firefox.nix similarity index 100% rename from configs/programs/firefox.nix rename to modules/programs/firefox.nix diff --git a/configs/programs/fuzzel.nix b/modules/programs/fuzzel.nix similarity index 100% rename from configs/programs/fuzzel.nix rename to modules/programs/fuzzel.nix diff --git a/configs/programs/fzf.nix b/modules/programs/fzf.nix similarity index 100% rename from configs/programs/fzf.nix rename to modules/programs/fzf.nix diff --git a/configs/programs/getty.nix b/modules/programs/getty.nix similarity index 100% rename from configs/programs/getty.nix rename to modules/programs/getty.nix diff --git a/configs/programs/git.nix b/modules/programs/git.nix similarity index 100% rename from configs/programs/git.nix rename to modules/programs/git.nix diff --git a/configs/programs/hyprland.nix b/modules/programs/hyprland.nix similarity index 100% rename from configs/programs/hyprland.nix rename to modules/programs/hyprland.nix diff --git a/configs/programs/hyprlock.nix b/modules/programs/hyprlock.nix similarity index 100% rename from configs/programs/hyprlock.nix rename to modules/programs/hyprlock.nix diff --git a/configs/programs/hyprshade.nix b/modules/programs/hyprshade.nix similarity index 100% rename from configs/programs/hyprshade.nix rename to modules/programs/hyprshade.nix diff --git a/configs/programs/kitty.nix b/modules/programs/kitty.nix similarity index 100% rename from configs/programs/kitty.nix rename to modules/programs/kitty.nix diff --git a/configs/programs/media/wallpaper.jpg b/modules/programs/media/wallpaper.jpg similarity index 100% rename from configs/programs/media/wallpaper.jpg rename to modules/programs/media/wallpaper.jpg diff --git a/configs/programs/nh.nix b/modules/programs/nh.nix similarity index 100% rename from configs/programs/nh.nix rename to modules/programs/nh.nix diff --git a/configs/programs/nvf.nix b/modules/programs/nvf.nix similarity index 100% rename from configs/programs/nvf.nix rename to modules/programs/nvf.nix diff --git a/configs/programs/nvf/input.nix b/modules/programs/nvf/input.nix similarity index 100% rename from configs/programs/nvf/input.nix rename to modules/programs/nvf/input.nix diff --git a/configs/programs/nvf/languages.nix b/modules/programs/nvf/languages.nix similarity index 100% rename from configs/programs/nvf/languages.nix rename to modules/programs/nvf/languages.nix diff --git a/configs/programs/nvf/ui.nix b/modules/programs/nvf/ui.nix similarity index 100% rename from configs/programs/nvf/ui.nix rename to modules/programs/nvf/ui.nix diff --git a/configs/programs/nvf/utilities.nix b/modules/programs/nvf/utilities.nix similarity index 100% rename from configs/programs/nvf/utilities.nix rename to modules/programs/nvf/utilities.nix diff --git a/configs/programs/scripts/byebye.sh b/modules/programs/scripts/byebye.sh similarity index 100% rename from configs/programs/scripts/byebye.sh rename to modules/programs/scripts/byebye.sh diff --git a/configs/programs/scripts/default.nix b/modules/programs/scripts/default.nix similarity index 100% rename from configs/programs/scripts/default.nix rename to modules/programs/scripts/default.nix diff --git a/configs/programs/scripts/deploy.sh b/modules/programs/scripts/deploy.sh similarity index 100% rename from configs/programs/scripts/deploy.sh rename to modules/programs/scripts/deploy.sh diff --git a/configs/programs/scripts/git-extract.py b/modules/programs/scripts/git-extract.py similarity index 100% rename from configs/programs/scripts/git-extract.py rename to modules/programs/scripts/git-extract.py diff --git a/configs/programs/scripts/rebuild.sh b/modules/programs/scripts/rebuild.sh similarity index 100% rename from configs/programs/scripts/rebuild.sh rename to modules/programs/scripts/rebuild.sh diff --git a/configs/programs/spicetify.nix b/modules/programs/spicetify.nix similarity index 100% rename from configs/programs/spicetify.nix rename to modules/programs/spicetify.nix diff --git a/configs/programs/starship.nix b/modules/programs/starship.nix similarity index 100% rename from configs/programs/starship.nix rename to modules/programs/starship.nix diff --git a/configs/programs/stylix.nix b/modules/programs/stylix.nix similarity index 100% rename from configs/programs/stylix.nix rename to modules/programs/stylix.nix diff --git a/configs/programs/tealdeer.nix b/modules/programs/tealdeer.nix similarity index 100% rename from configs/programs/tealdeer.nix rename to modules/programs/tealdeer.nix diff --git a/configs/programs/themes/colourschemes/3024.nix b/modules/programs/themes/colourschemes/3024.nix similarity index 100% rename from configs/programs/themes/colourschemes/3024.nix rename to modules/programs/themes/colourschemes/3024.nix diff --git a/configs/programs/themes/colourschemes/black-metal.nix b/modules/programs/themes/colourschemes/black-metal.nix similarity index 100% rename from configs/programs/themes/colourschemes/black-metal.nix rename to modules/programs/themes/colourschemes/black-metal.nix diff --git a/configs/programs/themes/colourschemes/bright.nix b/modules/programs/themes/colourschemes/bright.nix similarity index 100% rename from configs/programs/themes/colourschemes/bright.nix rename to modules/programs/themes/colourschemes/bright.nix diff --git a/configs/programs/themes/colourschemes/catppuccin-mocha.nix b/modules/programs/themes/colourschemes/catppuccin-mocha.nix similarity index 100% rename from configs/programs/themes/colourschemes/catppuccin-mocha.nix rename to modules/programs/themes/colourschemes/catppuccin-mocha.nix diff --git a/configs/programs/themes/colourschemes/darkviolet.nix b/modules/programs/themes/colourschemes/darkviolet.nix similarity index 100% rename from configs/programs/themes/colourschemes/darkviolet.nix rename to modules/programs/themes/colourschemes/darkviolet.nix diff --git a/configs/programs/themes/cursors/banana-cursor.nix b/modules/programs/themes/cursors/banana-cursor.nix similarity index 100% rename from configs/programs/themes/cursors/banana-cursor.nix rename to modules/programs/themes/cursors/banana-cursor.nix diff --git a/configs/programs/themes/fonts/0xProto.nix b/modules/programs/themes/fonts/0xProto.nix similarity index 100% rename from configs/programs/themes/fonts/0xProto.nix rename to modules/programs/themes/fonts/0xProto.nix diff --git a/configs/programs/themes/fonts/3270.nix b/modules/programs/themes/fonts/3270.nix similarity index 100% rename from configs/programs/themes/fonts/3270.nix rename to modules/programs/themes/fonts/3270.nix diff --git a/configs/programs/themes/fonts/sauce-code-pro.nix b/modules/programs/themes/fonts/sauce-code-pro.nix similarity index 100% rename from configs/programs/themes/fonts/sauce-code-pro.nix rename to modules/programs/themes/fonts/sauce-code-pro.nix diff --git a/configs/programs/themes/fonts/terminess.nix b/modules/programs/themes/fonts/terminess.nix similarity index 100% rename from configs/programs/themes/fonts/terminess.nix rename to modules/programs/themes/fonts/terminess.nix diff --git a/configs/programs/yazi.nix b/modules/programs/yazi.nix similarity index 100% rename from configs/programs/yazi.nix rename to modules/programs/yazi.nix diff --git a/configs/programs/yazi/starship.toml b/modules/programs/yazi/starship.toml similarity index 100% rename from configs/programs/yazi/starship.toml rename to modules/programs/yazi/starship.toml diff --git a/configs/programs/zellij.nix b/modules/programs/zellij.nix similarity index 100% rename from configs/programs/zellij.nix rename to modules/programs/zellij.nix diff --git a/configs/programs/zoxide.nix b/modules/programs/zoxide.nix similarity index 100% rename from configs/programs/zoxide.nix rename to modules/programs/zoxide.nix diff --git a/configs/programs/zsh.nix b/modules/programs/zsh.nix similarity index 100% rename from configs/programs/zsh.nix rename to modules/programs/zsh.nix diff --git a/configs/secrets/.sops.yaml b/modules/secrets/.sops.yaml similarity index 100% rename from configs/secrets/.sops.yaml rename to modules/secrets/.sops.yaml diff --git a/configs/secrets/secrets.yaml b/modules/secrets/secrets.yaml similarity index 100% rename from configs/secrets/secrets.yaml rename to modules/secrets/secrets.yaml diff --git a/configs/security.nix b/modules/security.nix similarity index 100% rename from configs/security.nix rename to modules/security.nix diff --git a/configs/shell.nix b/modules/shell.nix similarity index 100% rename from configs/shell.nix rename to modules/shell.nix diff --git a/configs/users.nix b/modules/users.nix similarity index 100% rename from configs/users.nix rename to modules/users.nix