diff --git a/flake.lock b/flake.lock index 0468085..4f07cef 100644 --- a/flake.lock +++ b/flake.lock @@ -99,6 +99,46 @@ "type": "github" } }, + "nix-index-db": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1693107069, + "narHash": "sha256-5dVXPchyvzmytanlwXHcmeQP9AfO/98Q6V+QtsMl5vQ=", + "owner": "Mic92", + "repo": "nix-index-database", + "rev": "53d40cf1bea235658ef8f6e8b8a1d033e2ecbfff", + "type": "github" + }, + "original": { + "owner": "Mic92", + "repo": "nix-index-database", + "type": "github" + } + }, + "nix-index-db-unstable": { + "inputs": { + "nixpkgs": [ + "nixpkgs-unstable" + ] + }, + "locked": { + "lastModified": 1693107069, + "narHash": "sha256-5dVXPchyvzmytanlwXHcmeQP9AfO/98Q6V+QtsMl5vQ=", + "owner": "Mic92", + "repo": "nix-index-database", + "rev": "53d40cf1bea235658ef8f6e8b8a1d033e2ecbfff", + "type": "github" + }, + "original": { + "owner": "Mic92", + "repo": "nix-index-database", + "type": "github" + } + }, "nixos-hardware": { "locked": { "lastModified": 1692952286, @@ -151,6 +191,8 @@ "home-manager": "home-manager_2", "home-manager-unstable": "home-manager-unstable", "nix-impermanence": "nix-impermanence", + "nix-index-db": "nix-index-db", + "nix-index-db-unstable": "nix-index-db-unstable", "nixos-hardware": "nixos-hardware", "nixpkgs": "nixpkgs", "nixpkgs-unstable": "nixpkgs-unstable" diff --git a/flake.nix b/flake.nix index b6b1ad4..ae8edc7 100755 --- a/flake.nix +++ b/flake.nix @@ -26,9 +26,23 @@ inputs = { nixos-hardware.url = "github:NixOS/nixos-hardware/master"; nix-impermanence.url = "github:nix-community/impermanence"; + + /* + These are the same input, just following different nixpkgs versions + This avoids some wierdness when using one that follows unstable on a stable nixpkgs + */ + nix-index-db = { + url = "github:Mic92/nix-index-database"; + inputs.nixpkgs.follows = "nixpkgs"; }; -outputs = {nixpkgs, nixpkgs-unstable, agenix, home-manager, home-manager-unstable, nixos-hardware, nix-impermanence, ... } @inputs: { + nix-index-db-unstable = { + url = "github:Mic92/nix-index-database"; + inputs.nixpkgs.follows = "nixpkgs-unstable"; + }; +}; + +outputs = {nixpkgs, nixpkgs-unstable, agenix, home-manager, home-manager-unstable, nixos-hardware, nix-impermanence, nix-index-db, nix-index-db-unstable, ... } @inputs: { devShells.x86_64-linux.default = nixpkgs.legacyPackages.x86_64-linux.mkShell { name = "Environment for toast's nixos configurations"; @@ -60,6 +74,7 @@ outputs = {nixpkgs, nixpkgs-unstable, agenix, home-manager, home-manager-unstabl { nix.nixPath = [ "nixpkgs=${nixpkgs}" ]; } agenix.nixosModules.default home-manager-unstable.nixosModule + nix-index-db-unstable.nixosModules.nix-index ./roles/common ./roles/desktop ./roles/kde @@ -77,6 +92,7 @@ outputs = {nixpkgs, nixpkgs-unstable, agenix, home-manager, home-manager-unstabl agenix.nixosModules.default home-manager.nixosModule nixos-hardware.nixosModules.microsoft-surface-go + nix-index-db.nixosModules.nix-index ./roles/common ./roles/desktop ./roles/kde @@ -92,6 +108,7 @@ outputs = {nixpkgs, nixpkgs-unstable, agenix, home-manager, home-manager-unstabl { nix.nixPath = [ "nixpkgs=${nixpkgs}" ]; } agenix.nixosModules.default home-manager.nixosModule + nix-index-db.nixosModules.nix-index ./roles/common ./roles/server ./machines/Everest diff --git a/roles/common/programs/comma.nix b/roles/common/programs/comma.nix new file mode 100644 index 0000000..3c3f07b --- /dev/null +++ b/roles/common/programs/comma.nix @@ -0,0 +1,8 @@ +{ config, pkgs, ... }: + +{ + # Use nix-index-database's comma wrapper + programs.nix-index-database.comma.enable = true; + # Run programs from the system's nixpkgs + environment.variables = { COMMA_NIXPKGS_FLAKE="system"; }; +} diff --git a/roles/common/programs/default.nix b/roles/common/programs/default.nix index e3aaa87..83991eb 100755 --- a/roles/common/programs/default.nix +++ b/roles/common/programs/default.nix @@ -7,6 +7,7 @@ ./micro.nix ./nix-index.nix ./command-not-found.nix + ./comma.nix ]; # Some programs dont have a programs.*.enable option, so I install their package here environment.systemPackages = with pkgs; [ diff --git a/roles/common/programs/nix-index.nix b/roles/common/programs/nix-index.nix index 93e88d4..492f770 100755 --- a/roles/common/programs/nix-index.nix +++ b/roles/common/programs/nix-index.nix @@ -1,8 +1,15 @@ -{ config, pkgs, ... }: +{ config, ... }: { - environment.systemPackages = [ pkgs.nix-index ]; + /* environment.systemPackages = [ pkgs.nix-index ]; programs.bash.interactiveShellInit = '' source ${pkgs.nix-index}/etc/profile.d/command-not-found.sh - ''; + ''; */ + programs.nix-index = { + enable = true; + enableBashIntegration = true; + # I don't use zsh or fish (yet) + enableZshIntegration = false; + enableFishIntegration = false; + }; }