diff --git a/README.md b/README.md index 8d598b0..22b0e0d 100644 --- a/README.md +++ b/README.md @@ -177,6 +177,7 @@ base.secrets.enable # pass-wayland, pinentry desktop.wm.hyprland.enable # Hyprland window manager desktop.wm.rofi.enable # Rofi launcher desktop.wm.wayland.enable # Wayland tools (grim, slurp, etc.) +desktop.wm.dms.enable # DankMaterialShell desktop shell desktop.apps.obsidian.enable # Obsidian desktop.apps.office.enable # LibreOffice desktop.apps.crypto.enable # Bisq2, Monero, Trezor @@ -244,9 +245,11 @@ source = "${config."m3ta-home".paths.srcRoot}/assets/wallpapers"; | `nixpkgs` | Package set (follows nixos-config's nixpkgs) | | `home-manager` | Home-Manager modules | | `nix-colors` | Dracula theme palette (used everywhere) | -| `m3ta-nixpkgs` | Custom packages (zellij-ps, rofi-project-opener) and HM modules | -| `agenix` | Secret management | -| `NUR` | Additional packages | +| `m3ta-nixpkgs` | Custom packages (zellij-ps, rofi-project-opener) and HM modules | +| `dms` | DankMaterialShell Home-Manager module and package | +| `dms-plugin-registry` | DankMaterialShell plugin sources | +| `agenix` | Secret management | +| `NUR` | Additional packages | ## Important Notes diff --git a/flake.lock b/flake.lock index 0308a73..c2f24bd 100644 --- a/flake.lock +++ b/flake.lock @@ -157,6 +157,26 @@ "type": "github" } }, + "dms-plugin-registry": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1780281921, + "narHash": "sha256-ZDsDl7lTOfM+Le2l6gDyEP3o+KHR3TUCkuxd9hQaLro=", + "owner": "AvengeMedia", + "repo": "dms-plugin-registry", + "rev": "ee4eeacce5a7041ed39f8cd7fe64b6e0e888e73b", + "type": "github" + }, + "original": { + "owner": "AvengeMedia", + "repo": "dms-plugin-registry", + "type": "github" + } + }, "flake-parts": { "inputs": { "nixpkgs-lib": [ @@ -425,6 +445,7 @@ "agent-lib": "agent-lib", "agents": "agents", "dms": "dms", + "dms-plugin-registry": "dms-plugin-registry", "home-manager": "home-manager_2", "m3ta-nixpkgs": "m3ta-nixpkgs", "nix-colors": "nix-colors", diff --git a/flake.nix b/flake.nix index dd4b4b3..2170138 100644 --- a/flake.nix +++ b/flake.nix @@ -32,6 +32,11 @@ inputs.nixpkgs.follows = "nixpkgs"; }; + dms-plugin-registry = { + url = "github:AvengeMedia/dms-plugin-registry"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + agenix.url = "github:ryantm/agenix"; nur.url = "github:nix-community/NUR"; diff --git a/lib/mkHome.nix b/lib/mkHome.nix index 2caff0f..7f944ff 100644 --- a/lib/mkHome.nix +++ b/lib/mkHome.nix @@ -19,7 +19,10 @@ # m3ta.home.sets.coding.languages.python.extra = true; # wayland.windowManager.hyprland.settings.monitor = [ ... ]; # -{inputs, selfPath}: let +{ + inputs, + selfPath, +}: let lib = inputs.nixpkgs.lib; in { mkHome = { @@ -82,6 +85,8 @@ in { [ # External Home Manager modules required by selectable profiles inputs.agent-lib.homeManagerModules.default + inputs.dms.homeModules.default + inputs.dms-plugin-registry.homeModules.default # Paths module — must be first, provides m3taHome.paths.srcRoot ../modules/paths.nix diff --git a/modules/default.nix b/modules/default.nix index c14900a..ff75d1f 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -15,6 +15,8 @@ in { imports = [ # External modules inputs.agent-lib.homeManagerModules.default + inputs.dms.homeModules.default + inputs.dms-plugin-registry.homeModules.default # Paths — must be first, provides "m3ta-home".paths.srcRoot ./paths.nix diff --git a/profiles/contexts/desktop/wm/default.nix b/profiles/contexts/desktop/wm/default.nix index 796b018..5828247 100644 --- a/profiles/contexts/desktop/wm/default.nix +++ b/profiles/contexts/desktop/wm/default.nix @@ -4,5 +4,6 @@ ./hyprland.nix ./wayland.nix ./rofi.nix + ./dms.nix ]; } diff --git a/profiles/contexts/desktop/wm/dms.nix b/profiles/contexts/desktop/wm/dms.nix new file mode 100644 index 0000000..7b5f9f1 --- /dev/null +++ b/profiles/contexts/desktop/wm/dms.nix @@ -0,0 +1,29 @@ +# DankMaterialShell user-session configuration. +# External DMS Home-Manager modules are imported by mkHome/modules/default.nix +# so this file only owns the m3ta-home feature flag and desired defaults. +{ + config, + lib, + ... +}: +with lib; let + cfg = config.desktop.wm.dms; +in { + options.desktop.wm.dms.enable = mkEnableOption "DankMaterialShell desktop shell"; + + config = mkIf cfg.enable { + programs.dank-material-shell = { + enable = true; + systemd.enable = true; + enableDynamicTheming = true; + enableClipboardPaste = true; + + plugins = { + dankBatteryAlerts.enable = true; + emojiLauncher.enable = true; + dankPomodoroTimer.enable = true; + dankVault.enable = true; + }; + }; + }; +}