Commit ab1e51f

HPCesia <me@hpcesia.com>
2026-03-22 16:19:17
refactor: den aspects - de
den
1 parent fcbe959
modules/desktop/de/custom/shell/noctalia/keybindings/niri.nix
@@ -1,5 +1,5 @@
 {lib, ...}: {
-  flake.modules.homeManager.de-shell-noctalia = {
+  den.aspects.desktop.provides.de.provides.custom.provides.shell.provides.noctalia.homeManager = {
     config,
     osConfig,
     ...
modules/desktop/de/custom/shell/noctalia/bar.nix
@@ -1,5 +1,5 @@
 {
-  flake.modules.homeManager.de-shell-noctalia = {
+  den.aspects.desktop.provides.de.provides.custom.provides.shell.provides.noctalia.homeManager = {
     config,
     osConfig,
     ...
modules/desktop/de/custom/shell/noctalia/colors.nix
@@ -1,5 +1,5 @@
 {
-  flake.modules.homeManager.de-shell-noctalia = {config, ...}: {
+  den.aspects.desktop.provides.de.provides.custom.provides.shell.provides.noctalia.homeManager = {config, ...}: {
     programs.noctalia-shell.settings.colorSchemes = {
       darkMode = config.lib.stylix.colors.variant == "dark";
       useWallpaperColors = false;
modules/desktop/de/custom/shell/noctalia/control-center.nix
@@ -1,5 +1,5 @@
 {
-  flake.modules.homeManager.de-shell-noctalia = _: {
+  den.aspects.desktop.provides.de.provides.custom.provides.shell.provides.noctalia.homeManager = {
     programs.noctalia-shell.settings.controlCenter = {
       shortcuts = {
         left = [
modules/desktop/de/custom/shell/noctalia/default.nix
@@ -4,7 +4,7 @@
     inputs.nixpkgs.follows = "nixpkgs";
   };
 
-  flake.modules.nixos.de-shell-noctalia = {...}: {
+  den.aspects.desktop.provides.de.provides.custom.provides.shell.provides.noctalia.nixos = {
     imports = [inputs.noctalia.nixosModules.default];
 
     services.noctalia-shell = {
@@ -12,7 +12,7 @@
     };
   };
 
-  flake.modules.homeManager.de-shell-noctalia = {
+  den.aspects.desktop.provides.de.provides.custom.provides.shell.provides.noctalia.homeManager = {
     config,
     pkgs,
     ...
modules/desktop/de/custom/shell/noctalia/dock.nix
@@ -1,5 +1,5 @@
 {
-  flake.modules.homeManager.de-shell-noctalia = {config, ...}: {
+  den.aspects.desktop.provides.de.provides.custom.provides.shell.provides.noctalia.homeManager = {config, ...}: {
     programs.noctalia-shell.settings.dock = {
       enabled = false; # Disable dock because I prefer niri's recent windows
       displayMode = "auto_hide";
modules/desktop/de/custom/shell/noctalia/idle.nix
@@ -1,5 +1,5 @@
 {inputs, ...}: {
-  flake.modules.homeManager.de-shell-noctalia = {pkgs, ...}: {
+  den.aspects.desktop.provides.de.provides.custom.provides.shell.provides.noctalia.homeManager = {pkgs, ...}: {
     services.hypridle.settings = let
       lock-command = "${inputs.noctalia.packages.${pkgs.stdenv.system}.default}/bin/noctalia-shell ipc call lockScreen lock";
     in {
modules/desktop/de/custom/shell/noctalia/plugins.nix
@@ -1,5 +1,5 @@
 {
-  flake.modules.homeManager.de-shell-noctalia = {pkgs, ...}: {
+  den.aspects.desktop.provides.de.provides.custom.provides.shell.provides.noctalia.homeManager = {pkgs, ...}: {
     home.packages = [
       pkgs.kdePackages.qttools # Needed for KDE Connect plugin to work properly
     ];
modules/desktop/de/custom/shell/defualt.nix
@@ -1,13 +0,0 @@
-{config, ...}: {
-  flake.modules.nixos.de-shell = _: {
-    imports = with config.flake.modules.homeManager; [
-      de-shell-noctalia
-    ];
-  };
-
-  flake.modules.homeManager.de-shell = _: {
-    imports = with config.flake.modules.homeManager; [
-      de-shell-noctalia
-    ];
-  };
-}
modules/desktop/de/custom/wm/niri/default.nix
@@ -1,12 +1,11 @@
 {lib, ...}: {
-  flake.modules.nixos.wm-niri = _: {
+  den.aspects.desktop.provides.de.provides.custom.provides.wm.provides.niri.nixos = {
     programs.niri = {
       enable = true;
       useNautilus = true;
     };
   };
-
-  flake.modules.homeManager.wm-niri = {
+  den.aspects.desktop.provides.de.provides.custom.provides.wm.provides.niri.homeManager = {
     config,
     pkgs,
     ...
modules/desktop/de/custom/wm/niri/idle.nix
@@ -1,5 +1,5 @@
 {
-  flake.modules.homeManager.wm-niri = {pkgs, ...}: {
+  den.aspects.desktop.provides.de.provides.custom.provides.wm.provides.niri.homeManager = {pkgs, ...}: {
     services.hypridle.settings = {
       listener = [
         {
modules/desktop/de/custom/wm/niri/layer-rules.nix
@@ -1,5 +1,5 @@
 {lib, ...}: {
-  flake.modules.homeManager.wm-niri = {config, ...}: {
+  den.aspects.desktop.provides.de.provides.custom.provides.wm.provides.niri.homeManager = {config, ...}: {
     programs.niri.extraConfig = lib.mkIf (config.programs.noctalia-shell.enable) ''
       layer-rule {
         match namespace="^noctalia-overview*"
modules/desktop/de/custom/clipboard.nix
@@ -1,5 +1,5 @@
 {
-  flake.modules.homeManager.de-custom = {pkgs, ...}: {
+  den.aspects.desktop.provides.de.provides.custom.homeManager = {pkgs, ...}: {
     home.packages = [
       pkgs.wl-clipboard-rs
     ];
modules/desktop/de/custom/default.nix
@@ -1,15 +0,0 @@
-{config, ...}: {
-  flake.modules.nixos.de-custom = _: {
-    imports = with config.flake.modules.nixos; [
-      wm-niri
-      # de-shell # No de-shell nixos module yet
-    ];
-  };
-
-  flake.modules.homeManager.de-custom = _: {
-    imports = with config.flake.modules.homeManager; [
-      wm-niri
-      de-shell
-    ];
-  };
-}
modules/desktop/de/custom/idle.nix
@@ -1,5 +1,5 @@
 {
-  flake.modules.homeManager.de-custom = _: {
+  den.aspects.desktop.provides.de.provides.custom.homeManager = {
     services.hypridle = {
       enable = true;
     };
modules/desktop/de/custom/polkit.nix
@@ -1,12 +1,12 @@
 {
-  flake.modules.nixos.de-custom = _: {
+  den.aspects.desktop.provides.de.provides.custom.nixos = {
     security.polkit = {
       enable = true;
       adminIdentities = ["unix-group:wheel"];
     };
   };
 
-  flake.modules.homeManager.de-custom = _: {
+  den.aspects.desktop.provides.de.provides.custom.homeManager = {
     services.polkit-gnome.enable = true;
   };
 }
modules/desktop/de/custom/secret-store.nix
@@ -1,5 +1,5 @@
 {
-  flake.modules.nixos.de-custom = _: {
+  den.aspects.desktop.provides.de.provides.custom.nixos = {
     services.gnome.gnome-keyring = {
       enable = true;
     };
modules/desktop/de/custom/xdg-portal.nix
@@ -1,5 +1,5 @@
 {
-  flake.modules.nixos.de-custom = _: {
+  den.aspects.desktop.provides.de.provides.custom.nixos = {
     xdg.portal = {
       enable = true;
       config = {
modules/desktop/de/plasma6/options/appearance.nix
@@ -1,5 +1,5 @@
 {
-  flake.modules.homeManager.de-plasma6 = _: {
+  den.aspects.desktop.provides.de.provides.plasma6.homeManager = {
     programs.plasma = {
       workspace = {
         theme = "default";
modules/desktop/de/plasma6/options/configs.nix
@@ -1,5 +1,5 @@
 {
-  flake.modules.homeManager.de-plasma6 = _: {
+  den.aspects.desktop.provides.de.provides.plasma6.homeManager = {
     programs.plasma.configFile = {
       kdeglobals = {
         General = {
modules/desktop/de/plasma6/options/powerdevil.nix
@@ -1,10 +1,8 @@
-{lib, ...} @ topArgs: {
-  flake.modules.homeManager.de-plasma6 = {osConfig}: let
-    hostMeta = topArgs.config.flake.meta.host.hosts.${osConfig.networking.hostName};
-  in {
+{lib, ...}: {
+  den.aspects.desktop.provides.de.provides.plasma6.includes = [
     # AC is compatible for all hosts
-    programs.plasma.powerdevil = {
-      AC = {
+    {
+      homeManager.programs.plasma.powerdevil.AC = {
         powerProfile = "performance";
         # Auto Power Save
         autoSuspend.action = "nothing";
@@ -17,51 +15,54 @@
         whenLaptopLidClosed = "sleep";
         whenSleepingEnter = "standby";
         powerButtonAction = "hibernate";
-        inhibitLidActionWhenExternalMonitorConnected = lib.mkIf hostMeta.isLaptop true;
       };
-
-      battery = lib.mkIf hostMeta.isLaptop {
-        powerProfile = "powerSaving";
-        # Auto Power Save
-        autoSuspend = {
-          action = "sleep";
-          idleTimeout = 600;
-        };
-        turnOffDisplay = {
-          idleTimeout = 360;
-          idleTimeoutWhenLocked = 120;
+    }
+    ({host, ...}: {
+      homeManager.programs.plasma.powerdevil = {
+        AC.inhibitLidActionWhenExternalMonitorConnected = host.usage == "laptop";
+        battery = lib.mkIf (host.usage == "laptop") {
+          powerProfile = "powerSaving";
+          # Auto Power Save
+          autoSuspend = {
+            action = "sleep";
+            idleTimeout = 600;
+          };
+          turnOffDisplay = {
+            idleTimeout = 360;
+            idleTimeoutWhenLocked = 120;
+          };
+          dimDisplay = {
+            enable = true;
+            idleTimeout = 120;
+          };
+          # Actions
+          whenLaptopLidClosed = "hibernate";
+          whenSleepingEnter = "standbyThenHibernate";
+          powerButtonAction = "shutDown";
+          inhibitLidActionWhenExternalMonitorConnected = true;
         };
-        dimDisplay = {
-          enable = true;
-          idleTimeout = 120;
+        lowBattery = lib.mkIf (host.usage == "laptop") {
+          powerProfile = "powerSaving";
+          # Auto Power Save
+          autoSuspend = {
+            action = "sleep";
+            idleTimeout = 300;
+          };
+          turnOffDisplay = {
+            idleTimeout = 180;
+            idleTimeoutWhenLocked = 60;
+          };
+          dimDisplay = {
+            enable = true;
+            idleTimeout = 60;
+          };
+          # Actions
+          whenLaptopLidClosed = "hibernate";
+          whenSleepingEnter = "standbyThenHibernate";
+          powerButtonAction = "shutDown";
+          inhibitLidActionWhenExternalMonitorConnected = true;
         };
-        # Actions
-        whenLaptopLidClosed = "hibernate";
-        whenSleepingEnter = "standbyThenHibernate";
-        powerButtonAction = "shutDown";
-        inhibitLidActionWhenExternalMonitorConnected = true;
-      };
-      lowBattery = lib.mkIf hostMeta.isLaptop {
-        powerProfile = "powerSaving";
-        # Auto Power Save
-        autoSuspend = {
-          action = "sleep";
-          idleTimeout = 300;
-        };
-        turnOffDisplay = {
-          idleTimeout = 180;
-          idleTimeoutWhenLocked = 60;
-        };
-        dimDisplay = {
-          enable = true;
-          idleTimeout = 60;
-        };
-        # Actions
-        whenLaptopLidClosed = "hibernate";
-        whenSleepingEnter = "standbyThenHibernate";
-        powerButtonAction = "shutDown";
-        inhibitLidActionWhenExternalMonitorConnected = true;
       };
-    };
-  };
+    })
+  ];
 }
modules/desktop/de/plasma6/options/shortcuts.nix
@@ -1,5 +1,5 @@
 {
-  flake.modules.homeManager.de-plasma6 = _: {
+  den.aspects.desktop.provides.de.provides.plasma6.homeManager = {
     programs.plasma = {
       shortcuts = {
         "services/com.mitchellh.ghostty.desktop"._launch = "Meta+`";
modules/desktop/de/plasma6/default.nix
@@ -5,21 +5,22 @@
     inputs.home-manager.follows = "home-manager";
   };
 
-  flake.modules.nixos.de-plasma6 = _: {
-    services = {
-      xserver.enable = true;
-      displayManager.defaultSession = "plasma";
-      desktopManager.plasma6.enable = true;
+  den.aspects.desktop.provides.de.provides.plasma6 = {
+    nixos = {
+      services = {
+        xserver.enable = true;
+        displayManager.defaultSession = "plasma";
+        desktopManager.plasma6.enable = true;
+      };
     };
-  };
-
-  flake.modules.homeManager.de-plasma6 = _: {
-    imports = [
-      inputs.plasma-manager.homeModules.plasma-manager
-    ];
-    programs.plasma = {
-      enable = true;
-      overrideConfig = true;
+    homeManager = {
+      imports = [
+        inputs.plasma-manager.homeModules.plasma-manager
+      ];
+      programs.plasma = {
+        enable = true;
+        overrideConfig = true;
+      };
     };
   };
 }
modules/desktop/de/plasma6/misc.nix
@@ -1,5 +1,5 @@
 {
-  flake.modules.nixos.de-plasma6 = _: {
+  den.aspects.desktop.provides.de.provides.plasma6.nixos = {
     security.pam.services.hpcesia.kwallet.enable = true;
   };
 }
modules/desktop/de/default.nix
@@ -1,16 +0,0 @@
-{config, ...}: {
-  # Import manually to switch desktop environment.
-  flake.modules.nixos.desktop = _: {
-    imports = with config.flake.modules.nixos; [
-      # de-plasma
-      de-custom
-    ];
-  };
-
-  flake.modules.homeManager.desktop = _: {
-    imports = with config.flake.modules.homeManager; [
-      # de-plasma
-      de-custom
-    ];
-  };
-}
modules/hosts/kevin/default.nix
@@ -32,6 +32,9 @@ in {
   ];
 
   den.aspects.kevin.provides.to-users.includes = [
+    <desktop/de/custom>
+    <desktop/de/custom/wm/niri>
+    <desktop/de/custom/shell/noctalia>
     <desktop/dm/sddm>
   ];