diff options
| -rw-r--r-- | flake.lock | 21 | ||||
| -rw-r--r-- | flake.nix | 29 | ||||
| -rw-r--r-- | hosts/default.nix | 2 | ||||
| -rw-r--r-- | hosts/glados/default.nix | 15 | ||||
| -rw-r--r-- | users/seth/default.nix | 1 | ||||
| -rw-r--r-- | users/seth/desktop/default.nix | 28 | ||||
| -rw-r--r-- | users/seth/programs/firefox.nix | 12 | ||||
| -rw-r--r-- | users/seth/programs/mangohud.nix | 38 |
8 files changed, 105 insertions, 41 deletions
@@ -185,6 +185,26 @@ "type": "github" } }, + "haumea": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1681873442, + "narHash": "sha256-wsOEGbDKf+M/THE7JZi43s4szXTuIaiQNBxlb5Lnxs0=", + "owner": "nix-community", + "repo": "haumea", + "rev": "85038436851caf5bbf652a2fedf38b2b28e38caf", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "haumea", + "type": "github" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -416,6 +436,7 @@ "flake-compat": "flake-compat", "flake-utils": "flake-utils", "getchoo": "getchoo", + "haumea": "haumea", "home-manager": "home-manager", "lanzaboote": "lanzaboote", "nixos-hardware": "nixos-hardware", @@ -23,6 +23,10 @@ inputs.nixpkgs.follows = "nixpkgs"; inputs.flake-compat.follows = "flake-compat"; }; + haumea = { + url = "github:nix-community/haumea"; + inputs.nixpkgs.follows = "nixpkgs"; + }; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; @@ -68,18 +72,29 @@ self, nixpkgs, agenix, + haumea, getchoo, flake-utils, openwrt-imagebuilder, pre-commit-hooks, ... }: let - getchooLib = getchoo.lib (inputs // {inherit self;}); - + inherit (flake-utils.lib) eachDefaultSystem; inherit (getchooLib.configs) mapHMUsers mapHosts; + + getchooLib = let + args = { + users = with haumea.lib; + load { + src = ./users; + loader = loaders.path; + }; + }; + in + getchoo.lib (inputs // args); in - flake-utils.lib.eachDefaultSystem (system: let - pkgs = nixpkgs.legacyPackages.${system}; + eachDefaultSystem (system: let + pkgs = import nixpkgs {inherit system;}; in { checks = { pre-commit-check = pre-commit-hooks.lib.${system}.run { @@ -94,10 +109,12 @@ }; }; - devShells = with pkgs; { + devShells = let + inherit (pkgs) mkShell; + in { default = mkShell { inherit (self.checks.${system}.pre-commit-check) shellHook; - packages = [ + packages = with pkgs; [ actionlint agenix.packages.${system}.agenix alejandra diff --git a/hosts/default.nix b/hosts/default.nix index e9396a1..1ad7953 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -10,7 +10,7 @@ with inputs; let nur.nixosModules.nur self.nixosModules.getchoo - "${self}/users/seth" + users.seth.default { age = { diff --git a/hosts/glados/default.nix b/hosts/glados/default.nix index 62006b3..509a040 100644 --- a/hosts/glados/default.nix +++ b/hosts/glados/default.nix @@ -1,8 +1,4 @@ -{ - home-manager, - self, - ... -}: { +{home-manager, ...}: { imports = [ ./boot.nix ./hardware-configuration.nix @@ -17,11 +13,10 @@ desktop.gnome.enable = true; home-manager.users.seth = { - imports = [ - "${self}/users/seth/desktop" - ]; - - desktop.gnome.enable = true; + desktop = { + enable = true; + gnome.enable = true; + }; }; environment.etc."environment".text = '' diff --git a/users/seth/default.nix b/users/seth/default.nix index 586a019..0712877 100644 --- a/users/seth/default.nix +++ b/users/seth/default.nix @@ -22,6 +22,7 @@ in { imports = [ ./home.nix + ./desktop ]; nixpkgs.overlays = overlays; diff --git a/users/seth/desktop/default.nix b/users/seth/desktop/default.nix index 02e56a1..afdd97e 100644 --- a/users/seth/desktop/default.nix +++ b/users/seth/desktop/default.nix @@ -1,4 +1,12 @@ -{pkgs, ...}: { +{ + config, + lib, + pkgs, + ... +}: let + cfg = config.desktop; + inherit (lib) mkEnableOption mkIf; +in { imports = [ ./budgie ./gnome @@ -7,11 +15,15 @@ ../programs/firefox.nix ]; - home.packages = with pkgs; [ - chromium - discord-canary - element-desktop - spotify - steam - ]; + options.desktop.enable = mkEnableOption "enable desktop configuration"; + + config.home = mkIf cfg.enable { + packages = with pkgs; [ + chromium + discord-canary + element-desktop + spotify + steam + ]; + }; } diff --git a/users/seth/programs/firefox.nix b/users/seth/programs/firefox.nix index 0cfd408..3f28d56 100644 --- a/users/seth/programs/firefox.nix +++ b/users/seth/programs/firefox.nix @@ -1,5 +1,13 @@ -{pkgs, ...}: { - programs.firefox = { +{ + config, + lib, + pkgs, + ... +}: let + cfg = config.desktop; + inherit (lib) mkIf; +in { + config.programs.firefox = mkIf cfg.enable { enable = true; profiles.arkenfox = { extensions = with pkgs.nur.repos.rycee.firefox-addons; [ diff --git a/users/seth/programs/mangohud.nix b/users/seth/programs/mangohud.nix index d65d899..6d325b2 100644 --- a/users/seth/programs/mangohud.nix +++ b/users/seth/programs/mangohud.nix @@ -1,17 +1,27 @@ -{pkgs, ...}: { - home.packages = with pkgs; [mangohud]; +{ + config, + lib, + pkgs, + ... +}: let + cfg = config.desktop; + inherit (lib) mkIf; +in { + config = mkIf cfg.enable { + home.packages = with pkgs; [mangohud]; - xdg.configFile."MangoHud/MangoHud.conf" = { - text = '' - legacy_layout=false - cpu_stats - cpu_temp - gpu_stats - gpu_temp - fps - frametime - media_player - media_player_name = spotify - ''; + xdg.configFile."MangoHud/MangoHud.conf" = { + text = '' + legacy_layout=false + cpu_stats + cpu_temp + gpu_stats + gpu_temp + fps + frametime + media_player + media_player_name = spotify + ''; + }; }; } |
