diff --git a/flake.lock b/flake.lock index 810611d..1e910ff 100644 --- a/flake.lock +++ b/flake.lock @@ -602,6 +602,26 @@ "type": "github" } }, + "nix-index-database": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1781422160, + "narHash": "sha256-W7S8O86bVrw2gaomEwkHStOzmPpnFIHQ6lS4Q2HffJ0=", + "owner": "nix-community", + "repo": "nix-index-database", + "rev": "854d04e2368fb2e9c328a36b3c0a04cd713bfae1", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nix-index-database", + "type": "github" + } + }, "nixos-hardware": { "locked": { "lastModified": 1779826373, @@ -917,6 +937,7 @@ "lanzaboote": "lanzaboote", "llm-agents": "llm-agents", "niri-flake": "niri-flake", + "nix-index-database": "nix-index-database", "nixos-hardware": "nixos-hardware", "nixos-wsl": "nixos-wsl", "nixpkgs": "nixpkgs_5", diff --git a/flake.nix b/flake.nix index c3081f8..eff49cd 100644 --- a/flake.nix +++ b/flake.nix @@ -79,6 +79,12 @@ inputs.nixpkgs.follows = "nixpkgs-unstable"; }; + # Index / Search + nix-index-database = { + url = "github:nix-community/nix-index-database"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + # Systems systems.url = "github:nix-systems/default-linux"; }; diff --git a/modules/applications/default.nix b/modules/applications/default.nix index d6dbef0..8b91151 100644 --- a/modules/applications/default.nix +++ b/modules/applications/default.nix @@ -22,6 +22,7 @@ ./nautilus.nix ./nh.nix ./niri + ./nix-index ./noctalia ./opencode.nix ./openssh.nix diff --git a/modules/applications/nix-index/default.nix b/modules/applications/nix-index/default.nix new file mode 100644 index 0000000..1cd9fd5 --- /dev/null +++ b/modules/applications/nix-index/default.nix @@ -0,0 +1,23 @@ +{ + lib, + config, + ... +}: +let + cfg = config.my.applications.nix-index; +in +{ + imports = [ + ./home.nix + ./system.nix + ]; + + options.my.applications.nix-index = { + enable = lib.mkEnableOption "nix-index and comma command runner"; + }; + + config = lib.mkIf cfg.enable { + my.applications.nix-index.system.enable = lib.mkDefault true; + my.applications.nix-index.homeManager.enable = lib.mkDefault true; + }; +} diff --git a/modules/applications/nix-index/home.nix b/modules/applications/nix-index/home.nix new file mode 100644 index 0000000..e2e6f28 --- /dev/null +++ b/modules/applications/nix-index/home.nix @@ -0,0 +1,21 @@ +{ + lib, + config, + ... +}: +let + cfg = config.my.applications.nix-index.homeManager; +in +{ + options.my.applications.nix-index.homeManager = { + enable = lib.mkEnableOption "nix-index home-manager configuration"; + }; + + config.home-manager.sharedModules = [ + { + config = lib.mkIf cfg.enable { + programs.nix-index.enable = true; + }; + } + ]; +} diff --git a/modules/applications/nix-index/system.nix b/modules/applications/nix-index/system.nix new file mode 100644 index 0000000..42014e9 --- /dev/null +++ b/modules/applications/nix-index/system.nix @@ -0,0 +1,20 @@ +{ + inputs, + lib, + config, + ... +}: +let + cfg = config.my.applications.nix-index.system; +in +{ + imports = [ inputs.nix-index-database.nixosModules.default ]; + + options.my.applications.nix-index.system = { + enable = lib.mkEnableOption "nix-index system configuration"; + }; + + config = lib.mkIf cfg.enable { + programs.nix-index-database.comma.enable = true; + }; +} diff --git a/modules/features/cli/base.nix b/modules/features/cli/base.nix index 465f776..44e8f29 100644 --- a/modules/features/cli/base.nix +++ b/modules/features/cli/base.nix @@ -21,6 +21,7 @@ in direnv.enable = true; gnupg.enable = true; nh.enable = true; + nix-index.enable = true; openssh.enable = cfg.sshServer; };