summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--flake.lock21
-rw-r--r--flake.nix29
-rw-r--r--hosts/default.nix2
-rw-r--r--hosts/glados/default.nix15
-rw-r--r--users/seth/default.nix1
-rw-r--r--users/seth/desktop/default.nix28
-rw-r--r--users/seth/programs/firefox.nix12
-rw-r--r--users/seth/programs/mangohud.nix38
8 files changed, 105 insertions, 41 deletions
diff --git a/flake.lock b/flake.lock
index 9657098..1ab0e32 100644
--- a/flake.lock
+++ b/flake.lock
@@ -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",
diff --git a/flake.nix b/flake.nix
index 9319a7a..fad62f1 100644
--- a/flake.nix
+++ b/flake.nix
@@ -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
+ '';
+ };
};
}