From add002e05cd23e04c61471923d3367efc01e3530 Mon Sep 17 00:00:00 2001 From: m3tam3re Date: Sat, 6 Jun 2026 13:13:58 +0200 Subject: [PATCH] fix: make inputs self-contained --- flake.lock | 8 +-- lib/mkHome.nix | 4 ++ modules/default.nix | 8 ++- profiles/base/default.nix | 13 ++-- profiles/contexts/desktop/default.nix | 97 +++++++++++++------------- profiles/sets/coding/agents/agents.nix | 8 +-- 6 files changed, 70 insertions(+), 68 deletions(-) diff --git a/flake.lock b/flake.lock index cd1b5fb..fcdf60c 100644 --- a/flake.lock +++ b/flake.lock @@ -28,11 +28,11 @@ ] }, "locked": { - "lastModified": 1780157040, - "narHash": "sha256-j2d3nj3FvOlxQ+Zlse+rMo3qHD3m4Gick5uiwtTaA2o=", + "lastModified": 1780736323, + "narHash": "sha256-b4CfjbWTT+5Z0XBI2/W2DnybwkYVwLxghCwXVmw9+Iw=", "ref": "refs/heads/master", - "rev": "f63712a9ba03da6e2f591766d0f055aa65e6d237", - "revCount": 24, + "rev": "b0c832c9e02d8b3d8ad091f022c859382a037afd", + "revCount": 26, "type": "git", "url": "ssh://gitea@code.m3ta.dev/m3tam3re/agent-lib" }, diff --git a/lib/mkHome.nix b/lib/mkHome.nix index 7f944ff..1d26341 100644 --- a/lib/mkHome.nix +++ b/lib/mkHome.nix @@ -87,6 +87,8 @@ in { inputs.agent-lib.homeManagerModules.default inputs.dms.homeModules.default inputs.dms-plugin-registry.homeModules.default + inputs.nix-colors.homeManagerModules.default + inputs.m3ta-nixpkgs.homeManagerModules.default # Paths module — must be first, provides m3taHome.paths.srcRoot ../modules/paths.nix @@ -97,6 +99,8 @@ in { ++ contextImport ++ setImports; + _module.args.m3taHomeInputs = inputs; + # Set the flake source root for asset path resolution "m3ta-home".paths.srcRoot = selfPath; diff --git a/modules/default.nix b/modules/default.nix index ff75d1f..c83a9d8 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -8,15 +8,15 @@ { inputs, selfPath, -}: let - lib = inputs.nixpkgs.lib; -in { +}: { default = { imports = [ # External modules inputs.agent-lib.homeManagerModules.default inputs.dms.homeModules.default inputs.dms-plugin-registry.homeModules.default + inputs.nix-colors.homeManagerModules.default + inputs.m3ta-nixpkgs.homeManagerModules.default # Paths — must be first, provides "m3ta-home".paths.srcRoot ./paths.nix @@ -34,6 +34,8 @@ in { ./../users/m3tam3re/identities/work.nix ]; + _module.args.m3taHomeInputs = inputs; + # Set the source root for asset path resolution "m3ta-home".paths.srcRoot = selfPath; }; diff --git a/profiles/base/default.nix b/profiles/base/default.nix index 2923231..34ae9b5 100644 --- a/profiles/base/default.nix +++ b/profiles/base/default.nix @@ -1,7 +1,6 @@ # profiles/base/default.nix — Always loaded on every host. # # Provides: -# - nix-colors and m3ta-nixpkgs HM module imports # - Shell (nushell, fish, starship) with enable options # - CLI tools (bat, carapace, direnv, eza, fzf, lf, nitch, television, zellij, zoxide) # - Secrets management (pass-wayland) @@ -9,21 +8,19 @@ # - Base packages # # NOTE: Overlays are NOT set here. The consuming flake (nixos-config) handles -# overlays at the NixOS level via nixpkgs.overlays. This module only imports -# HM modules and sets user-level preferences. +# overlays at the NixOS level via nixpkgs.overlays. External HM modules are +# imported by mkHome/modules/default.nix. This module only imports base profile +# submodules and sets user-level preferences. # # When used standalone (not through NixOS), overlays should be set by the # standalone HM configuration or by the consuming flake. { - inputs, lib, + m3taHomeInputs, pkgs, ... }: { imports = [ - inputs.nix-colors.homeManagerModules.default - inputs.m3ta-nixpkgs.homeManagerModules.default - ./shell ./cli-tools ./secrets @@ -44,7 +41,7 @@ }; # ── Color scheme ── - colorScheme = inputs.nix-colors.colorSchemes.dracula; + colorScheme = m3taHomeInputs.nix-colors.colorSchemes.dracula; # ── Base packages ── home.packages = with pkgs; [ diff --git a/profiles/contexts/desktop/default.nix b/profiles/contexts/desktop/default.nix index 814a4c1..529933d 100644 --- a/profiles/contexts/desktop/default.nix +++ b/profiles/contexts/desktop/default.nix @@ -1,8 +1,7 @@ # Desktop environment aggregator — only loaded when context=desktop. # Includes window manager, applications, theming, and desktop session config. { - config, - inputs, + m3taHomeInputs, pkgs, ... }: { @@ -39,22 +38,55 @@ }; }; - home.sessionVariables = { - WEBKIT_DISABLE_COMPOSITING_MODE = "1"; - NIXOS_OZONE_WL = "1"; - TERMINAL = "ghostty"; - QT_QPA_PLATFORM = "wayland"; - XDG_CURRENT_DESKTOP = "Hyprland"; - XDG_SESSION_TYPE = "wayland"; - XDG_SESSION_DESKTOP = "Hyprland"; - }; + home = { + sessionVariables = { + WEBKIT_DISABLE_COMPOSITING_MODE = "1"; + NIXOS_OZONE_WL = "1"; + TERMINAL = "ghostty"; + QT_QPA_PLATFORM = "wayland"; + XDG_CURRENT_DESKTOP = "Hyprland"; + XDG_SESSION_TYPE = "wayland"; + XDG_SESSION_DESKTOP = "Hyprland"; + }; - home.sessionPath = [ - "\${XDG_BIN_HOME}" - "\${HOME}/.cargo/bin" - "$HOME/.npm-global/bin" - "$HOME/.cache/.bun/bin" - ]; + sessionPath = [ + "\${XDG_BIN_HOME}" + "\${HOME}/.cargo/bin" + "$HOME/.npm-global/bin" + "$HOME/.cache/.bun/bin" + ]; + + pointerCursor = { + gtk.enable = true; + package = pkgs.bibata-cursors; + name = "Bibata-Modern-Ice"; + size = 20; + }; + + packages = with pkgs; [ + appimage-run + bemoji + dconf + (element-desktop.override { + commandLineArgs = "--password-store=gnome-libsecret"; + }) + m3taHomeInputs.hermes-agent.packages.${pkgs.system}.desktop + launch-webapp + file-roller + gsettings-desktop-schemas + seahorse + sushi + ksnip + nwg-look + qt6Packages.qt6ct + rose-pine-hyprcursor + remmina + slack + vivaldi + vivaldi-ffmpeg-codecs + vibetyper + ]; + }; fonts.fontconfig.enable = true; @@ -91,35 +123,4 @@ # ]; }; }; - - home.pointerCursor = { - gtk.enable = true; - package = pkgs.bibata-cursors; - name = "Bibata-Modern-Ice"; - size = 20; - }; - - home.packages = with pkgs; [ - appimage-run - bemoji - dconf - (element-desktop.override { - commandLineArgs = "--password-store=gnome-libsecret"; - }) - inputs.hermes-agent.packages.${pkgs.system}.desktop - launch-webapp - file-roller - gsettings-desktop-schemas - seahorse - sushi - ksnip - nwg-look - qt6Packages.qt6ct - rose-pine-hyprcursor - remmina - slack - vivaldi - vivaldi-ffmpeg-codecs - vibetyper - ]; } diff --git a/profiles/sets/coding/agents/agents.nix b/profiles/sets/coding/agents/agents.nix index 20cda09..5fda012 100644 --- a/profiles/sets/coding/agents/agents.nix +++ b/profiles/sets/coding/agents/agents.nix @@ -1,10 +1,8 @@ # AI agent system — OpenCode, Pi, and MCP server configuration. # Relies on coding.agents options provided by home/common/default.nix -# (inputs.m3ta-nixpkgs.homeManagerModules.default). +# (m3taHomeInputs.m3ta-nixpkgs.homeManagerModules.default). { - config, - inputs, - lib, + m3taHomeInputs, pkgs, videoDrivers ? [], ... @@ -62,7 +60,7 @@ home.packages = with pkgs; [ agenix-cli agent-browser - inputs.agent-lib.packages.${pkgs.system}.agent-lib-cli + m3taHomeInputs.agent-lib.packages.${pkgs.system}.agent-lib-cli beads pi-coding-agent (qmd.override {