diff --git a/common/nix.nix b/common/nix.nix index 17c8f5d..f5b4c2f 100644 --- a/common/nix.nix +++ b/common/nix.nix @@ -46,5 +46,7 @@ }; programs.nix-ld.enable = true; - environment.systemPackages = with pkgs; [ nvd ]; + environment.systemPackages = with pkgs; [ + nvd + ]; } diff --git a/flake.lock b/flake.lock index 9b112dc..b2cc97b 100644 --- a/flake.lock +++ b/flake.lock @@ -21,19 +21,19 @@ "ghostty": { "inputs": { "nixpkgs-stable": [ - "nixpkgs" + "nixpkgs-stable" ], "nixpkgs-unstable": [ - "nixpkgs" + "nixpkgs-unstable" ], "zig": "zig" }, "locked": { - "lastModified": 1728604055, - "narHash": "sha256-qFzvnwoWhGob+Huh3RlCxC+j16uF0LQKKV4dJxY4nDQ=", + "lastModified": 1729220096, + "narHash": "sha256-4erPSUsLVTTbdAXAjKfl7FpVxohmDSL0zWfewff7jcc=", "ref": "refs/heads/main", - "rev": "c26d1cb28eb5491e05ccbcff075a0eedd09ebaaa", - "revCount": 7679, + "rev": "913c4b5801b0d3881eabbe93dec5a2c40fefe65f", + "revCount": 7730, "type": "git", "url": "ssh://git@github.com/ghostty-org/ghostty" }, @@ -60,15 +60,15 @@ "home-manager": { "inputs": { "nixpkgs": [ - "nixpkgs" + "nixpkgs-unstable" ] }, "locked": { - "lastModified": 1728726232, - "narHash": "sha256-8ZWr1HpciQsrFjvPMvZl0W+b0dilZOqXPoKa2Ux36bc=", + "lastModified": 1729174520, + "narHash": "sha256-QxCAdgQdeIOaCiE0Sr23s9lD0+T1b/wuz5pSiGwNrCQ=", "owner": "nix-community", "repo": "home-manager", - "rev": "d57112db877f07387ce7104b5ac346ede556d2d7", + "rev": "e78cbb20276f09c1802e62d2f77fc93ec32da268", "type": "github" }, "original": { @@ -77,13 +77,29 @@ "type": "github" } }, - "nixpkgs": { + "nixpkgs-stable": { "locked": { - "lastModified": 1728492678, - "narHash": "sha256-9UTxR8eukdg+XZeHgxW5hQA9fIKHsKCdOIUycTryeVw=", + "lastModified": 1729044727, + "narHash": "sha256-GKJjtPY+SXfLF/yTN7M2cAnQB6RERFKnQhD8UvPSf3M=", "owner": "nixos", "repo": "nixpkgs", - "rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "rev": "dc2e0028d274394f73653c7c90cc63edbb696be1", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-24.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-unstable": { + "locked": { + "lastModified": 1728888510, + "narHash": "sha256-nsNdSldaAyu6PE3YUA+YQLqUDJh+gRbBooMMekZJwvI=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "a3c0b3b21515f74fd2665903d4ce6bc4dc81c77c", "type": "github" }, "original": { @@ -98,7 +114,8 @@ "ghostty": "ghostty", "ghostty-hm": "ghostty-hm", "home-manager": "home-manager", - "nixpkgs": "nixpkgs" + "nixpkgs-stable": "nixpkgs-stable", + "nixpkgs-unstable": "nixpkgs-unstable" } }, "systems": { diff --git a/flake.nix b/flake.nix index 07a7f01..13e0fd9 100644 --- a/flake.nix +++ b/flake.nix @@ -2,94 +2,65 @@ description = "NixOS configuration"; inputs = { - nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; + nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-24.05"; home-manager.url = "github:nix-community/home-manager"; - home-manager.inputs.nixpkgs.follows = "nixpkgs"; + home-manager.inputs.nixpkgs.follows = "nixpkgs-unstable"; ghostty = { url = "git+ssh://git@github.com/ghostty-org/ghostty"; inputs = { - nixpkgs-stable.follows = "nixpkgs"; - nixpkgs-unstable.follows = "nixpkgs"; + nixpkgs-stable.follows = "nixpkgs-stable"; + nixpkgs-unstable.follows = "nixpkgs-unstable"; }; }; ghostty-hm.url = "github:clo4/ghostty-hm-module"; }; outputs = - { + inputs@{ self, - nixpkgs, - ghostty, + nixpkgs-unstable, ghostty-hm, home-manager, ... - }@inputs: + }: let inherit (self) outputs; + system = "x86_64-linux"; + pkgs = nixpkgs-unstable.legacyPackages.${system}; + + mkHost = + modules: + nixpkgs-unstable.lib.nixosSystem { + specialArgs = { + inherit inputs outputs; + }; + modules = [ ./common ] ++ modules; + }; mkHome = modules: home-manager.lib.homeManagerConfiguration { + inherit pkgs; + extraSpecialArgs = { + inherit inputs outputs; + }; modules = [ ghostty-hm.homeModules.default ./home/common ] ++ modules; - pkgs = nixpkgs.legacyPackages.x86_64-linux; - extraSpecialArgs = { - inherit inputs outputs; - }; }; - - mkHost = - modules: - nixpkgs.lib.nixosSystem { - specialArgs = { - inherit inputs outputs; - }; - system = "x86_64-linux"; - modules = [ ./common ] ++ modules; - }; - - supportedSystems = [ - "x86_64-linux" - "aarch64-linux" - ]; - forEachSystem = - f: - builtins.listToAttrs ( - map (system: { - name = system; - value = f system; - }) supportedSystems - ); - systemBits = forEachSystem (system: rec { - inherit system; - pkgs = import nixpkgs { - localSystem = system; - overlays = [ ]; - }; - }); - - forEachSystem' = f: forEachSystem (system: (f systemBits.${system})); - inherit (nixpkgs) lib; in { overlays = import ./overlays { inherit inputs outputs; }; - devShells = forEachSystem' ( - { system, pkgs, ... }: - { - default = pkgs.mkShell { packages = [ ]; }; - } - ); - - homeConfigurations = { - "dln@dinky" = mkHome [ ./home/dln/dinky.nix ]; - "dln@nemo" = mkHome [ ./home/dln/nemo.nix ]; - "dln@pearl" = mkHome [ ./home/dln/pearl.nix ]; - "lsjostro@nemo" = mkHome [ ./home/lsjostro/nemo.nix ]; + devShell.${system} = pkgs.mkShell { + packages = with pkgs; [ + just + nh + ]; }; nixosConfigurations = { @@ -97,5 +68,12 @@ nemo = mkHost [ ./hosts/nemo ]; pearl = mkHost [ ./hosts/pearl ]; }; + + homeConfigurations = { + "dln@dinky" = mkHome [ ./home/dln/dinky.nix ]; + "dln@nemo" = mkHome [ ./home/dln/nemo.nix ]; + "dln@pearl" = mkHome [ ./home/dln/pearl.nix ]; + "lsjostro@nemo" = mkHome [ ./home/lsjostro/nemo.nix ]; + }; }; } diff --git a/home/common/devel.nix b/home/common/devel.nix index 2ae0a64..61999ee 100644 --- a/home/common/devel.nix +++ b/home/common/devel.nix @@ -14,6 +14,7 @@ ldns minio-client nil + nix-output-monitor nixd nixfmt-rfc-style nodejs_22 diff --git a/home/common/nix.nix b/home/common/nix.nix index 3b66fd3..b1976e0 100644 --- a/home/common/nix.nix +++ b/home/common/nix.nix @@ -1,4 +1,8 @@ -{ outputs, ... }: +{ + pkgs, + outputs, + ... +}: { nixpkgs = { config.allowUnfree = true; diff --git a/home/dln/nemo.nix b/home/dln/nemo.nix index 4a4f79a..1c38f16 100644 --- a/home/dln/nemo.nix +++ b/home/dln/nemo.nix @@ -24,7 +24,7 @@ }; }; - home.packages = with pkgs; [ calibre ]; + home.packages = with pkgs; [ stable.calibre ]; programs.gpg.enable = true; diff --git a/overlays/default.nix b/overlays/default.nix index 1ab8f99..b058a14 100644 --- a/overlays/default.nix +++ b/overlays/default.nix @@ -13,6 +13,10 @@ }; unstable-packages = final: _prev: { + stable = import inputs.nixpkgs-stable { + system = final.system; + config.allowUnfree = true; + }; unstable = import inputs.nixpkgs-unstable { system = final.system; config.allowUnfree = true;