From 80587b5f82cb5447024b27a9f1c12d46ba0b6582 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jalil=20David=20Salam=C3=A9=20Messina?= Date: Mon, 15 Jan 2024 12:57:44 +0100 Subject: [PATCH] feat: Add home-manager config and use with module --- flake.lock | 554 ++++++++++++++++++++++++++++++++++++++++++++++++++++- flake.nix | 32 +++- 2 files changed, 579 insertions(+), 7 deletions(-) diff --git a/flake.lock b/flake.lock index c1def26..2eefa02 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,30 @@ { "nodes": { + "audiomenu": { + "inputs": { + "flake-schemas": [ + "home-config", + "flake-schemas" + ], + "nixpkgs": [ + "home-config", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1705096264, + "narHash": "sha256-asWPDSvANyK4PslRS1xPRYdBhhCdF7Ih+fnEuS5VtV0=", + "owner": "jalil-salame", + "repo": "audiomenu", + "rev": "b63cfb5a41daac4d4b11bbe611bc8017504497e2", + "type": "github" + }, + "original": { + "owner": "jalil-salame", + "repo": "audiomenu", + "type": "github" + } + }, "base16": { "inputs": { "fromYaml": "fromYaml" @@ -131,6 +156,22 @@ } }, "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_2": { "flake": false, "locked": { "lastModified": 1673956053, @@ -146,6 +187,52 @@ "type": "github" } }, + "flake-parts": { + "inputs": { + "nixpkgs-lib": [ + "home-config", + "nvim-config", + "neovim-nightly", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1704982712, + "narHash": "sha256-2Ptt+9h8dczgle2Oo6z5ni5rt/uLMG47UFTR1ry/wgg=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "07f6395285469419cf9d078f59b5b49993198c00", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_2": { + "inputs": { + "nixpkgs-lib": [ + "home-config", + "nvim-config", + "neovim-nightly", + "hercules-ci-effects", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1701473968, + "narHash": "sha256-YcVE5emp1qQ8ieHUnxt1wCZCC3ZfAS+SRRWZ2TMda7E=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "34fed993f1674c8d06d58b37ce1e0fe5eebcb9f5", + "type": "github" + }, + "original": { + "id": "flake-parts", + "type": "indirect" + } + }, "flake-schemas": { "locked": { "lastModified": 1697467827, @@ -160,6 +247,60 @@ "url": "https://flakehub.com/f/DeterminateSystems/flake-schemas/%2A.tar.gz" } }, + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1701680307, + "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_2": { + "inputs": { + "systems": "systems_2" + }, + "locked": { + "lastModified": 1701680307, + "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_3": { + "inputs": { + "systems": "systems_3" + }, + "locked": { + "lastModified": 1701680307, + "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "fromYaml": { "flake": false, "locked": { @@ -176,6 +317,81 @@ "type": "github" } }, + "haumea": { + "inputs": { + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1685133229, + "narHash": "sha256-FePm/Gi9PBSNwiDFq3N+DWdfxFq0UKsVVTJS3cQPn94=", + "owner": "nix-community", + "repo": "haumea", + "rev": "34dd58385092a23018748b50f9b23de6266dffc2", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "v0.2.2", + "repo": "haumea", + "type": "github" + } + }, + "hercules-ci-effects": { + "inputs": { + "flake-parts": "flake-parts_2", + "nixpkgs": [ + "home-config", + "nvim-config", + "neovim-nightly", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1704029560, + "narHash": "sha256-a4Iu7x1OP+uSYpqadOu8VCPY+MPF3+f6KIi+MAxlgyw=", + "owner": "hercules-ci", + "repo": "hercules-ci-effects", + "rev": "d5cbf433a6ae9cae05400189a8dbc6412a03ba16", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "hercules-ci-effects", + "type": "github" + } + }, + "home-config": { + "inputs": { + "audiomenu": "audiomenu", + "flake-schemas": [ + "flake-schemas" + ], + "home-manager": [ + "home-manager" + ], + "jpassmenu": "jpassmenu", + "nixpkgs": [ + "nixpkgs" + ], + "nvim-config": "nvim-config", + "stylix": [ + "stylix" + ] + }, + "locked": { + "lastModified": 1705318766, + "narHash": "sha256-CONUzHeH0GLrhBAMYhRyp6JXQmZQf3pB7+Pw6oJjeLU=", + "owner": "jalil-salame", + "repo": "home.nix", + "rev": "7d763d11f433199b16da0e2e04c7c2f3c263ad99", + "type": "github" + }, + "original": { + "owner": "jalil-salame", + "repo": "home.nix", + "type": "github" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -195,7 +411,203 @@ "url": "https://flakehub.com/f/nix-community/home-manager/0.1.%2A.tar.gz" } }, + "jpassmenu": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": [ + "home-config", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1705063658, + "narHash": "sha256-E/mAgxH0xSdSGow9wJ1rwTjigHacYWiH0iIjV9cklsk=", + "owner": "jalil-salame", + "repo": "jpassmenu", + "rev": "146257230e157e259fe77c5f871a611dd460efe3", + "type": "github" + }, + "original": { + "owner": "jalil-salame", + "repo": "jpassmenu", + "type": "github" + } + }, + "neovim-flake": { + "inputs": { + "flake-utils": "flake-utils_3", + "nixpkgs": [ + "home-config", + "nvim-config", + "neovim-nightly", + "nixpkgs" + ] + }, + "locked": { + "dir": "contrib", + "lastModified": 1705165853, + "narHash": "sha256-veUGcLlTg0HlbTkrhRkOl4ofVM9TB53/NOkM/eaA4E4=", + "owner": "neovim", + "repo": "neovim", + "rev": "bab5e7fe17db67aa24115eeb44fc68905b107d9e", + "type": "github" + }, + "original": { + "dir": "contrib", + "owner": "neovim", + "repo": "neovim", + "type": "github" + } + }, + "neovim-nightly": { + "inputs": { + "flake-compat": "flake-compat", + "flake-parts": "flake-parts", + "hercules-ci-effects": "hercules-ci-effects", + "neovim-flake": "neovim-flake", + "nixpkgs": [ + "home-config", + "nvim-config", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1705190631, + "narHash": "sha256-7L2BQ2GeBOP1j7ohAnBlY5HnBOYfr90FCh+YTRzzgbE=", + "owner": "nix-community", + "repo": "neovim-nightly-overlay", + "rev": "0ccb36c84816e3df5bf1f83b2cf7d4172889f3df", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "neovim-nightly-overlay", + "type": "github" + } + }, + "nix-flake-tests": { + "locked": { + "lastModified": 1677844186, + "narHash": "sha256-ErJZ/Gs1rxh561CJeWP5bohA2IcTq1rDneu1WT6CVII=", + "owner": "antifuchs", + "repo": "nix-flake-tests", + "rev": "bbd9216bd0f6495bb961a8eb8392b7ef55c67afb", + "type": "github" + }, + "original": { + "owner": "antifuchs", + "repo": "nix-flake-tests", + "type": "github" + } + }, + "nix-github-actions": { + "inputs": { + "nixpkgs": [ + "home-config", + "nvim-config", + "nixneovim", + "nixneovimplugins", + "poetry2nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1688870561, + "narHash": "sha256-4UYkifnPEw1nAzqqPOTL2MvWtm3sNGw1UTYTalkTcGY=", + "owner": "nix-community", + "repo": "nix-github-actions", + "rev": "165b1650b753316aa7f1787f3005a8d2da0f5301", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nix-github-actions", + "type": "github" + } + }, + "nixneovim": { + "inputs": { + "flake-utils": [ + "home-config", + "nvim-config", + "flake-utils" + ], + "haumea": "haumea", + "home-manager": [ + "home-config", + "nvim-config", + "home-manager" + ], + "nix-flake-tests": "nix-flake-tests", + "nixneovimplugins": "nixneovimplugins", + "nixpkgs": [ + "home-config", + "nvim-config", + "nixpkgs" + ], + "nmd": "nmd", + "nmt": "nmt" + }, + "locked": { + "lastModified": 1704709252, + "narHash": "sha256-s/aTgv0hGUa/ey6aOCtYRtQbV93Wt35vcrsElZpC5EQ=", + "owner": "NixNeovim", + "repo": "NixNeovim", + "rev": "b8d4b01aa7d6f500034a9bd79811b6053dc6771c", + "type": "github" + }, + "original": { + "owner": "NixNeovim", + "repo": "NixNeovim", + "type": "github" + } + }, + "nixneovimplugins": { + "inputs": { + "flake-utils": [ + "home-config", + "nvim-config", + "nixneovim", + "flake-utils" + ], + "nixpkgs": [ + "home-config", + "nvim-config", + "nixneovim", + "nixpkgs" + ], + "poetry2nix": "poetry2nix" + }, + "locked": { + "lastModified": 1704377943, + "narHash": "sha256-qb86F6NdkKPohM9oLThYco6LZnkFqNA7CLjtEw1gh+4=", + "owner": "nixneovim", + "repo": "nixneovimplugins", + "rev": "b62b7600e5780b68aa679cb64053ee0159799593", + "type": "github" + }, + "original": { + "owner": "nixneovim", + "repo": "nixneovimplugins", + "type": "github" + } + }, "nixpkgs": { + "locked": { + "lastModified": 1681001314, + "narHash": "sha256-5sDnCLdrKZqxLPK4KA8+f4A3YKO/u6ElpMILvX0g72c=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "367c0e1086a4eb4502b24d872cea2c7acdd557f4", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" + } + }, + "nixpkgs_2": { "locked": { "lastModified": 1705133751, "narHash": "sha256-rCIsyE80jgiOU78gCWN3A0wE0tR2GI5nH6MlS+HaaSQ=", @@ -209,11 +621,104 @@ "url": "https://flakehub.com/f/NixOS/nixpkgs/0.1.%2A.tar.gz" } }, + "nmd": { + "flake": false, + "locked": { + "lastModified": 1701431551, + "narHash": "sha256-5HPHG1u3koaWHG/TXHl5/YxYPYOuKc58104btrD8ypE=", + "owner": "~rycee", + "repo": "nmd", + "rev": "f18defadcc25e69e95b04493ee02682005472255", + "type": "sourcehut" + }, + "original": { + "owner": "~rycee", + "repo": "nmd", + "type": "sourcehut" + } + }, + "nmt": { + "flake": false, + "locked": { + "lastModified": 1694274695, + "narHash": "sha256-PufoLMSuBYkga8hTqYf/cIQzSuy2lfFj+cdKcp2nLEI=", + "owner": "jooooscha", + "repo": "nmt", + "rev": "29595267923b4a6ce766ff0d85afaa930842b88d", + "type": "github" + }, + "original": { + "owner": "jooooscha", + "repo": "nmt", + "type": "github" + } + }, + "nvim-config": { + "inputs": { + "flake-utils": "flake-utils_2", + "home-manager": [ + "home-config", + "home-manager" + ], + "neovim-nightly": "neovim-nightly", + "nixneovim": "nixneovim", + "nixpkgs": [ + "home-config", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1705207512, + "narHash": "sha256-426tvF7u7KE7DhBX9HYtwK+mfDHaANpz2msEMfIwF4k=", + "owner": "jalil-salame", + "repo": "nvim-config", + "rev": "d276f2a33abc758bcd4dc5118126b52b744b1a32", + "type": "github" + }, + "original": { + "owner": "jalil-salame", + "repo": "nvim-config", + "type": "github" + } + }, + "poetry2nix": { + "inputs": { + "flake-utils": [ + "home-config", + "nvim-config", + "nixneovim", + "nixneovimplugins", + "flake-utils" + ], + "nix-github-actions": "nix-github-actions", + "nixpkgs": [ + "home-config", + "nvim-config", + "nixneovim", + "nixneovimplugins", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1689849924, + "narHash": "sha256-d259Z2S7CS7Na04qQNQ6LYQILuI7cf4Rpe76qc4mz40=", + "owner": "nix-community", + "repo": "poetry2nix", + "rev": "1d7eda9336f336392d24e9602be5cb9be7ae405c", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "poetry2nix", + "type": "github" + } + }, "root": { "inputs": { "flake-schemas": "flake-schemas", + "home-config": "home-config", "home-manager": "home-manager", - "nixpkgs": "nixpkgs", + "nixpkgs": "nixpkgs_2", "stylix": "stylix" } }, @@ -227,7 +732,7 @@ "base16-kitty": "base16-kitty", "base16-tmux": "base16-tmux", "base16-vim": "base16-vim", - "flake-compat": "flake-compat", + "flake-compat": "flake-compat_2", "home-manager": [ "home-manager" ], @@ -247,6 +752,51 @@ "type": "tarball", "url": "https://flakehub.com/f/danth/stylix/0.1.282.tar.gz" } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_3": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 0c9fc98..e4c3322 100644 --- a/flake.nix +++ b/flake.nix @@ -10,13 +10,19 @@ inputs.nixpkgs.url = "https://flakehub.com/f/NixOS/nixpkgs/0.1.*.tar.gz"; + inputs.home-config.url = "github:jalil-salame/home.nix"; + inputs.home-config.inputs.stylix.follows = "stylix"; + inputs.home-config.inputs.nixpkgs.follows = "nixpkgs"; + inputs.home-config.inputs.home-manager.follows = "home-manager"; + inputs.home-config.inputs.flake-schemas.follows = "flake-schemas"; + inputs.home-manager.url = "https://flakehub.com/f/nix-community/home-manager/0.1.*.tar.gz"; inputs.home-manager.inputs.nixpkgs.follows = "nixpkgs"; inputs.flake-schemas.url = "https://flakehub.com/f/DeterminateSystems/flake-schemas/*.tar.gz"; # Flake outputs that other flakes can use - outputs = { flake-schemas, nixpkgs, stylix, ... }: + outputs = { flake-schemas, nixpkgs, stylix, home-manager, home-config, ... }: let inherit (nixpkgs) lib; # Helpers for producing system-specific outputs @@ -34,9 +40,25 @@ # Nix files formatter (run `nix fmt`) formatter = forEachSupportedSystem ({ pkgs }: pkgs.nixpkgs-fmt); - nixosModules = rec { - default = nixosModule; - nixosModule = import ./nixos { inherit stylix; }; - }; + nixosModules = + let + nixosModule = { + imports = [ + (import ./nixos { inherit stylix; }) + home-manager.nixosModules.home-manager + ]; + + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.sharedModules = [ home-config.nixosModules.nixosModule ]; + + # Pin nixpkgs + nix.registry.nixpkgs.flake = nixpkgs; + }; + in + { + default = nixosModule; + inherit nixosModule; + }; }; }