From 6ea0e01fc1122e420caad6b36a5f1dec88da438a Mon Sep 17 00:00:00 2001
From: nydragon <contact@ccnlc.eu>
Date: Sat, 8 Feb 2025 12:46:23 +0100
Subject: [PATCH] refactor: hjemify foot & keepassxc

---
 flake.lock                                    | 45 +++++++++++++++++++
 flake.nix                                     | 10 +++++
 home/default.nix                              |  1 -
 home/graphical/default.nix                    |  1 -
 home/terminal/default.nix                     |  1 -
 home/terminal/hyfetch.nix                     | 15 -------
 hosts/brontes/default.nix                     |  2 +
 hosts/default.nix                             |  6 ++-
 users/default.nix                             |  1 +
 users/ny/default.nix                          |  9 ++++
 users/ny/programs/default.nix                 |  6 +++
 {home => users/ny/programs}/foot.nix          |  2 +-
 .../ny/programs}/keepassxc.nix                | 11 +----
 13 files changed, 81 insertions(+), 29 deletions(-)
 delete mode 100644 home/terminal/hyfetch.nix
 create mode 100644 users/default.nix
 create mode 100644 users/ny/default.nix
 create mode 100644 users/ny/programs/default.nix
 rename {home => users/ny/programs}/foot.nix (93%)
 rename {home/graphical => users/ny/programs}/keepassxc.nix (71%)

diff --git a/flake.lock b/flake.lock
index 3e1d908..b350d46 100644
--- a/flake.lock
+++ b/flake.lock
@@ -156,6 +156,49 @@
         "type": "github"
       }
     },
+    "hjem": {
+      "inputs": {
+        "nixpkgs": [
+          "nixpkgs"
+        ]
+      },
+      "locked": {
+        "lastModified": 1737619027,
+        "narHash": "sha256-jEzZs9dHdmVP5X9HCC/7jrv08aWFfqZV5cZ+cZWYGA4=",
+        "owner": "feel-co",
+        "repo": "hjem",
+        "rev": "48cfa21987672a31a358b7e4d582fc174556e633",
+        "type": "github"
+      },
+      "original": {
+        "owner": "feel-co",
+        "repo": "hjem",
+        "type": "github"
+      }
+    },
+    "hjem-rum": {
+      "inputs": {
+        "hjem": [
+          "hjem"
+        ],
+        "nixpkgs": [
+          "nixpkgs"
+        ]
+      },
+      "locked": {
+        "lastModified": 1738790283,
+        "narHash": "sha256-SKz3KfmK7iupR+Ef022pQQZccxXlm/2w5HxpSv+PAGE=",
+        "owner": "nydragon",
+        "repo": "hjem-rum",
+        "rev": "ac4bf585731b813ad37cb3822ad44b1e3bb16a7e",
+        "type": "github"
+      },
+      "original": {
+        "owner": "nydragon",
+        "repo": "hjem-rum",
+        "type": "github"
+      }
+    },
     "home-manager": {
       "inputs": {
         "nixpkgs": [
@@ -340,6 +383,8 @@
         "agenix": "agenix",
         "disko": "disko",
         "flake-parts": "flake-parts",
+        "hjem": "hjem",
+        "hjem-rum": "hjem-rum",
         "home-manager": "home-manager",
         "nixos-hardware": "nixos-hardware",
         "nixpkgs": "nixpkgs_2",
diff --git a/flake.nix b/flake.nix
index ffc2360..270fee3 100644
--- a/flake.nix
+++ b/flake.nix
@@ -35,6 +35,16 @@
       url = "git+https://git.ccnlc.eu/nydragon/nur.git";
       inputs.nixpkgs.follows = "nixpkgs";
     };
+
+    hjem = {
+      url = "github:feel-co/hjem";
+      inputs.nixpkgs.follows = "nixpkgs";
+    };
+    hjem-rum = {
+      url = "github:nydragon/hjem-rum";
+      inputs.nixpkgs.follows = "nixpkgs";
+      inputs.hjem.follows = "hjem";
+    };
   };
 
   outputs =
diff --git a/home/default.nix b/home/default.nix
index 13eede2..0228fde 100644
--- a/home/default.nix
+++ b/home/default.nix
@@ -7,7 +7,6 @@
     ./hyprland
     ./hyprlock
     ./services
-    ./foot.nix
     ./rofi
     ./sway
     ./waybar
diff --git a/home/graphical/default.nix b/home/graphical/default.nix
index 6c9b64e..ca50b6f 100644
--- a/home/graphical/default.nix
+++ b/home/graphical/default.nix
@@ -6,7 +6,6 @@
     ./fuzzel.nix
     ./gammastep.nix # default because I need to protect my peepers
     ./swww.nix
-    ./keepassxc.nix
     ./swayidle.nix
     ./swaylock.nix
   ];
diff --git a/home/terminal/default.nix b/home/terminal/default.nix
index 59b2e9d..52a7b9c 100644
--- a/home/terminal/default.nix
+++ b/home/terminal/default.nix
@@ -5,7 +5,6 @@
     ./git
     ./fish
     ./btop.nix
-    ./hyfetch.nix
     ./beets.nix
   ];
 }
diff --git a/home/terminal/hyfetch.nix b/home/terminal/hyfetch.nix
deleted file mode 100644
index 2697cd4..0000000
--- a/home/terminal/hyfetch.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  programs.fastfetch.enable = true;
-  programs.hyfetch = {
-    enable = true;
-    settings = {
-      mode = "rgb"; # dunno the other value :sob:
-      lightness = 0.7; # u may change this
-      distro = "nixos";
-      preset = "pansexual"; # sexuality
-      light_dark = "dark"; # u not crazy are u
-      backend = "fastfetch";
-      color_align.mode = "horizontal"; # looks better
-    };
-  };
-}
diff --git a/hosts/brontes/default.nix b/hosts/brontes/default.nix
index c85205a..1f99636 100644
--- a/hosts/brontes/default.nix
+++ b/hosts/brontes/default.nix
@@ -12,6 +12,7 @@ in
   imports = [
     ./hardware-configuration.nix
     ./home.nix
+    ../../users/ny
   ];
 
   boot.loader = {
@@ -37,6 +38,7 @@ in
   modules = {
     system = {
       roles.desktop.enable = true;
+      roles.gaming.enable = true;
 
       outputs = {
         "DP-2" = {
diff --git a/hosts/default.nix b/hosts/default.nix
index 334f33c..a6e885d 100644
--- a/hosts/default.nix
+++ b/hosts/default.nix
@@ -25,7 +25,11 @@ in
       inherit username;
       hostname = "brontes";
       system = "x86_64-linux";
-      extraModules = [ inputs.agenix.nixosModules.default ];
+      extraModules = [
+        inputs.agenix.nixosModules.default
+        inputs.hjem.nixosModules.default
+        inputs.hjem-rum.nixosModules.default
+      ];
     })
 
     (mkSystem' {
diff --git a/users/default.nix b/users/default.nix
new file mode 100644
index 0000000..d7d18ed
--- /dev/null
+++ b/users/default.nix
@@ -0,0 +1 @@
+{ imports = [ ./ny ]; }
diff --git a/users/ny/default.nix b/users/ny/default.nix
new file mode 100644
index 0000000..70e8350
--- /dev/null
+++ b/users/ny/default.nix
@@ -0,0 +1,9 @@
+{
+  hjem = {
+    users.ny = {
+      enable = true;
+      imports = [ ./programs ];
+    };
+    clobberByDefault = true;
+  };
+}
diff --git a/users/ny/programs/default.nix b/users/ny/programs/default.nix
new file mode 100644
index 0000000..22f5c40
--- /dev/null
+++ b/users/ny/programs/default.nix
@@ -0,0 +1,6 @@
+{
+  imports = [
+    ./foot.nix
+    ./keepassxc.nix
+  ];
+}
diff --git a/home/foot.nix b/users/ny/programs/foot.nix
similarity index 93%
rename from home/foot.nix
rename to users/ny/programs/foot.nix
index daf1050..3ad58fb 100644
--- a/home/foot.nix
+++ b/users/ny/programs/foot.nix
@@ -1,5 +1,5 @@
 {
-  programs.foot = {
+  rum.programs.foot = {
     enable = true;
     settings = {
       main = {
diff --git a/home/graphical/keepassxc.nix b/users/ny/programs/keepassxc.nix
similarity index 71%
rename from home/graphical/keepassxc.nix
rename to users/ny/programs/keepassxc.nix
index 34c593b..04f2445 100644
--- a/home/graphical/keepassxc.nix
+++ b/users/ny/programs/keepassxc.nix
@@ -1,12 +1,7 @@
-{ pkgs, ... }:
-let
-  ini = pkgs.formats.ini { };
-in
 {
-  home.file."keepassxc" = {
+  rum.programs.keepassxc = {
     enable = true;
-
-    source = ini.generate "keepassxc.ini" {
+    settings = {
       General = {
         BackupBeforeSave = true;
         ConfigVersion = 2;
@@ -24,7 +19,5 @@ in
         TrayIconAppearance = "colorful";
       };
     };
-
-    target = ".config/keepassxc/keepassxc.ini";
   };
 }