diff --git a/.gitattributes b/.gitattributes index 2f4eec3..95d2ba0 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1 +1 @@ -home-manager/secrets/* filter=git-crypt diff=git-crypt +shared/secrets/* filter=git-crypt diff=git-crypt diff --git a/flake.lock b/flake.lock index a360bc3..7ab72e3 100644 --- a/flake.lock +++ b/flake.lock @@ -3,7 +3,10 @@ "ags": { "inputs": { "astal": "astal", - "nixpkgs": ["hyprpanel", "nixpkgs"] + "nixpkgs": [ + "hyprpanel", + "nixpkgs" + ] }, "locked": { "lastModified": 1736090999, @@ -21,7 +24,11 @@ }, "astal": { "inputs": { - "nixpkgs": ["hyprpanel", "ags", "nixpkgs"] + "nixpkgs": [ + "hyprpanel", + "ags", + "nixpkgs" + ] }, "locked": { "lastModified": 1735172721, @@ -42,11 +49,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1743414153, - "narHash": "sha256-bFIXz7SvLlSNR4M3vYPYS1CpEN9vTUiH01R4iR/BDmA=", + "lastModified": 1744447794, + "narHash": "sha256-z5uK5BDmFg0L/0EW2XYLGr39FbQeXyNVnIEhkZrG8+Q=", "owner": "catppuccin", "repo": "nix", - "rev": "2f52f9ead26f80d7b391cedcbb3eb309bd83fff4", + "rev": "c44fe73ed8e5d5809eded7cc6156ca9c40044e42", "type": "github" }, "original": { @@ -55,9 +62,47 @@ "type": "github" } }, + "devshell": { + "inputs": { + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1741473158, + "narHash": "sha256-kWNaq6wQUbUMlPgw8Y+9/9wP0F8SHkjy24/mN3UAppg=", + "owner": "numtide", + "repo": "devshell", + "rev": "7c9e793ebe66bcba8292989a68c0419b737a22a0", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "devshell", + "type": "github" + } + }, + "flake-compat": { + "locked": { + "lastModified": 1733328505, + "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", + "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", + "revCount": 69, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.1.0/01948eb7-9cba-704f-bbf3-3fa956735b52/source.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz" + } + }, "flake-parts": { "inputs": { - "nixpkgs-lib": ["nixvim", "nixpkgs"] + "nixpkgs-lib": [ + "nixvim", + "nixpkgs" + ] }, "locked": { "lastModified": 1743550720, @@ -91,16 +136,64 @@ "type": "github" } }, + "git-hooks": { + "inputs": { + "flake-compat": [ + "nixvim", + "flake-compat" + ], + "gitignore": "gitignore", + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1742649964, + "narHash": "sha256-DwOTp7nvfi8mRfuL1escHDXabVXFGT1VlPD1JHrtrco=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "dcf5072734cb576d2b0c59b2ac44f5050b5eac82", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "nixvim", + "git-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, "grayjay": { "inputs": { "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1743563044, - "narHash": "sha256-UkykPaJt9Yr8YbBg34Bnh4wE+J2sksSDFdaalfnkG6k=", + "lastModified": 1744375210, + "narHash": "sha256-aMnp0e+oGmsZ+VC6mgrE6lUcKMjBPotLesCosejRhdw=", "owner": "rishabh5321", "repo": "grayjay-flake", - "rev": "82a651064b00480042d1b7f180ca77e04ea08689", + "rev": "ab754473aecde1afad07ab5a5903c9336bcb5442", "type": "github" }, "original": { @@ -111,14 +204,16 @@ }, "home-manager": { "inputs": { - "nixpkgs": ["nixpkgs"] + "nixpkgs": [ + "nixpkgs" + ] }, "locked": { - "lastModified": 1743387206, - "narHash": "sha256-24N3NAuZZbYqZ39NgToZgHUw6M7xHrtrAm18kv0+2Wo=", + "lastModified": 1744117652, + "narHash": "sha256-t7dFCDl4vIOOUMhEZnJF15aAzkpaup9x4ZRGToDFYWI=", "owner": "nix-community", "repo": "home-manager", - "rev": "15c5f9d04fabd176f30286c8f52bbdb2c853a146", + "rev": "b4e98224ad1336751a2ac7493967a4c9f6d9cb3f", "type": "github" }, "original": { @@ -128,17 +223,60 @@ "type": "github" } }, + "home-manager_2": { + "inputs": { + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1743808813, + "narHash": "sha256-2lDQBOmlz9ggPxcS7/GvcVdzXMIiT+PpMao6FbLJSr0=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "a9f8b3db211b4609ddd83683f9db89796c7f6ac6", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "release-24.11", + "repo": "home-manager", + "type": "github" + } + }, + "home-manager_3": { + "inputs": { + "nixpkgs": [ + "zen-browser", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1743604125, + "narHash": "sha256-ZD61DNbsBt1mQbinAaaEqKaJk2RFo9R/j+eYWeGMx7A=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "180fd43eea296e62ae68e079fcf56aba268b9a1a", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, "hyprpanel": { "inputs": { "ags": "ags", "nixpkgs": "nixpkgs_3" }, "locked": { - "lastModified": 1740863579, - "narHash": "sha256-U4amsszfgPUTAa9FrIlYsCCpmAyko22h/nbjhmAZvAs=", + "lastModified": 1744259355, + "narHash": "sha256-gykRJw309t5NLuYXzWw9WhJFKTc4OASmc16M9jD/Vpw=", "owner": "Jas-SinghFSU", "repo": "HyprPanel", - "rev": "2be9f1ef6c2df2ecf0eebe5a039e8029d8d151cd", + "rev": "1d4d2dcc20ebd707d5e45c7e357acc1267a498d7", "type": "github" }, "original": { @@ -149,8 +287,16 @@ }, "ixx": { "inputs": { - "flake-utils": ["nixvim", "nuschtosSearch", "flake-utils"], - "nixpkgs": ["nixvim", "nuschtosSearch", "nixpkgs"] + "flake-utils": [ + "nixvim", + "nuschtosSearch", + "flake-utils" + ], + "nixpkgs": [ + "nixvim", + "nuschtosSearch", + "nixpkgs" + ] }, "locked": { "lastModified": 1729958008, @@ -167,13 +313,35 @@ "type": "github" } }, + "nix-darwin": { + "inputs": { + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1743127615, + "narHash": "sha256-+sMGqywrSr50BGMLMeY789mSrzjkoxZiu61eWjYS/8o=", + "owner": "lnl7", + "repo": "nix-darwin", + "rev": "fc843893cecc1838a59713ee3e50e9e7edc6207c", + "type": "github" + }, + "original": { + "owner": "lnl7", + "ref": "nix-darwin-24.11", + "repo": "nix-darwin", + "type": "github" + } + }, "nixpkgs": { "locked": { - "lastModified": 1742889210, - "narHash": "sha256-hw63HnwnqU3ZQfsMclLhMvOezpM7RSB0dMAtD5/sOiw=", + "lastModified": 1744098102, + "narHash": "sha256-tzCdyIJj9AjysC3OuKA+tMD/kDEDAF9mICPDU7ix0JA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "698214a32beb4f4c8e3942372c694f40848b360d", + "rev": "c8cd81426f45942bb2906d5ed2fe21d2f19d95b7", "type": "github" }, "original": { @@ -183,17 +351,33 @@ "type": "github" } }, - "nixpkgs-unstable": { + "nixpkgs-stable": { "locked": { - "lastModified": 1743448293, - "narHash": "sha256-bmEPmSjJakAp/JojZRrUvNcDX2R5/nuX6bm+seVaGhs=", - "owner": "nixos", + "lastModified": 1744309437, + "narHash": "sha256-QZnNHM823am8apCqKSPdtnzPGTy2ZB4zIXOVoBp5+W0=", + "owner": "NixOS", "repo": "nixpkgs", - "rev": "77b584d61ff80b4cef9245829a6f1dfad5afdfa3", + "rev": "f9ebe33a928b5d529c895202263a5ce46bdf12f7", "type": "github" }, "original": { - "owner": "nixos", + "owner": "NixOS", + "ref": "nixos-24.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-unstable": { + "locked": { + "lastModified": 1744232761, + "narHash": "sha256-gbl9hE39nQRpZaLjhWKmEu5ejtQsgI5TWYrIVVJn30U=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "f675531bc7e6657c10a18b565cfebd8aa9e24c14", + "type": "github" + }, + "original": { + "owner": "NixOS", "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" @@ -201,11 +385,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1743448293, - "narHash": "sha256-bmEPmSjJakAp/JojZRrUvNcDX2R5/nuX6bm+seVaGhs=", + "lastModified": 1744232761, + "narHash": "sha256-gbl9hE39nQRpZaLjhWKmEu5ejtQsgI5TWYrIVVJn30U=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "77b584d61ff80b4cef9245829a6f1dfad5afdfa3", + "rev": "f675531bc7e6657c10a18b565cfebd8aa9e24c14", "type": "github" }, "original": { @@ -233,15 +417,15 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1743501102, - "narHash": "sha256-7PCBQ4aGVF8OrzMkzqtYSKyoQuU2jtpPi4lmABpe5X4=", - "owner": "nixos", + "lastModified": 1744309437, + "narHash": "sha256-QZnNHM823am8apCqKSPdtnzPGTy2ZB4zIXOVoBp5+W0=", + "owner": "NixOS", "repo": "nixpkgs", - "rev": "02f2af8c8a8c3b2c05028936a1e84daefa1171d4", + "rev": "f9ebe33a928b5d529c895202263a5ce46bdf12f7", "type": "github" }, "original": { - "owner": "nixos", + "owner": "NixOS", "ref": "nixos-24.11", "repo": "nixpkgs", "type": "github" @@ -249,11 +433,11 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 1742288794, - "narHash": "sha256-Txwa5uO+qpQXrNG4eumPSD+hHzzYi/CdaM80M9XRLCo=", + "lastModified": 1743448293, + "narHash": "sha256-bmEPmSjJakAp/JojZRrUvNcDX2R5/nuX6bm+seVaGhs=", "owner": "nixos", "repo": "nixpkgs", - "rev": "b6eaf97c6960d97350c584de1b6dcff03c9daf42", + "rev": "77b584d61ff80b4cef9245829a6f1dfad5afdfa3", "type": "github" }, "original": { @@ -265,20 +449,29 @@ }, "nixvim": { "inputs": { + "devshell": "devshell", + "flake-compat": "flake-compat", "flake-parts": "flake-parts", - "nixpkgs": ["nixpkgs-unstable"], - "nuschtosSearch": "nuschtosSearch" + "git-hooks": "git-hooks", + "home-manager": "home-manager_2", + "nix-darwin": "nix-darwin", + "nixpkgs": [ + "nixpkgs" + ], + "nuschtosSearch": "nuschtosSearch", + "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1743598191, - "narHash": "sha256-30aI8rWjX64E9vIlE4iqgQguTjItvTnQLTqHtFppF/w=", + "lastModified": 1743856924, + "narHash": "sha256-CgCbUGd9y639PfcuzA0TrA6O5N1ICl+mB95+qTG52+E=", "owner": "nix-community", "repo": "nixvim", - "rev": "a183298bf67307bdb7a25a2a3c565e76029f1b9e", + "rev": "d209a04d349febe85c777078ca2eeea5e8bbc8a1", "type": "github" }, "original": { "owner": "nix-community", + "ref": "nixos-24.11", "repo": "nixvim", "type": "github" } @@ -287,14 +480,17 @@ "inputs": { "flake-utils": "flake-utils", "ixx": "ixx", - "nixpkgs": ["nixvim", "nixpkgs"] + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] }, "locked": { - "lastModified": 1743201766, - "narHash": "sha256-bb/dqoIjtIWtJRzASOe8g4m8W2jUIWtuoGPXdNjM/Tk=", + "lastModified": 1743683223, + "narHash": "sha256-LdXtHFvhEC3S64dphap1pkkzwjErbW65eH1VRerCUT0=", "owner": "NuschtOS", "repo": "search", - "rev": "2651dbfad93d6ef66c440cbbf23238938b187bde", + "rev": "56a49ffef2908dad1e9a8adef1f18802bc760962", "type": "github" }, "original": { @@ -310,23 +506,47 @@ "home-manager": "home-manager", "hyprpanel": "hyprpanel", "nixpkgs": "nixpkgs_4", + "nixpkgs-stable": "nixpkgs-stable", "nixpkgs-unstable": "nixpkgs-unstable", "nixvim": "nixvim", + "sops-nix": "sops-nix", "spicetify-nix": "spicetify-nix", "zen-browser": "zen-browser" } }, + "sops-nix": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1744103455, + "narHash": "sha256-SR6+qjkPjGQG+8eM4dCcVtss8r9bre/LAxFMPJpaZeU=", + "owner": "mic92", + "repo": "sops-nix", + "rev": "69d5a5a4635c27dae5a742f36108beccc506c1ba", + "type": "github" + }, + "original": { + "owner": "mic92", + "repo": "sops-nix", + "type": "github" + } + }, "spicetify-nix": { "inputs": { - "nixpkgs": ["nixpkgs"], + "nixpkgs": [ + "nixpkgs-unstable" + ], "systems": "systems_2" }, "locked": { - "lastModified": 1743595372, - "narHash": "sha256-e3x1mhpPpYgyyin9j/VbrBpOT5PFpEfx2hkxVZuJZhg=", + "lastModified": 1744423915, + "narHash": "sha256-6Hd8VyrOlmjlDBgPpx9NwX4+/uO4gEDIyjqbQLyniwE=", "owner": "Gerg-L", "repo": "spicetify-nix", - "rev": "543f12dd14c62ddee79ab79fbfd8726f312b89ff", + "rev": "4c4b9611c71d586ea818fa5b8dcbd81129f62560", "type": "github" }, "original": { @@ -365,16 +585,38 @@ "type": "github" } }, + "treefmt-nix": { + "inputs": { + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1743748085, + "narHash": "sha256-uhjnlaVTWo5iD3LXics1rp9gaKgDRQj6660+gbUU3cE=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "815e4121d6a5d504c0f96e5be2dd7f871e4fd99d", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } + }, "zen-browser": { "inputs": { + "home-manager": "home-manager_3", "nixpkgs": "nixpkgs_5" }, "locked": { - "lastModified": 1743600524, - "narHash": "sha256-ZJesdL2jwCwBF4SsWvxNyGuHUv8cGLHIQwJxma6JQR0=", + "lastModified": 1744406237, + "narHash": "sha256-Xbt5m3/ZNeye4b42rCZOLbD8OhCOeJfUSEJ+FvfXwpg=", "owner": "0xc000022070", "repo": "zen-browser-flake", - "rev": "9818e303273448dde6ada0f7bff8b98f5ce261da", + "rev": "4d9ee0daab52a7a205e69cfddcd441ffaa09c802", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 51aeef2..d83ab2d 100644 --- a/flake.nix +++ b/flake.nix @@ -1,75 +1,108 @@ { - description = "NixOS configuration"; + description = "Martin's NixOS configuration - Based on EmergentMind/nix-config"; inputs = { - nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11"; - nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; + # + # ========= Official NixOS and HM Package Sources ========= + # + nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11"; + # The next two are for pinning to stable vs unstable regardless of what the above is set to + # This is particularly useful when an upcoming stable release is in beta because you can effectively + # keep 'nixpkgs-stable' set to stable for critical packages while setting 'nixpkgs' to the beta branch to + # get a jump start on deprecation changes. + # See also 'stable-packages' and 'unstable-packages' overlays at 'overlays/default.nix" + nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-24.11"; + nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable"; - catppuccin = { - url = "github:catppuccin/nix"; - }; home-manager = { url = "github:nix-community/home-manager/release-24.11"; inputs.nixpkgs.follows = "nixpkgs"; }; + + # + # ========= Utilities ========= + # + # Secrets management + sops-nix = { + url = "github:mic92/sops-nix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + # Catppuccin theming + catppuccin = { + url = "github:catppuccin/nix"; + }; + # vim + nixvim = { + url = "github:nix-community/nixvim/nixos-24.11"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + # Bar hyprpanel = { url = "github:Jas-SinghFSU/HyprPanel"; }; - nixvim = { - url = "github:nix-community/nixvim"; - inputs.nixpkgs.follows = "nixpkgs-unstable"; - }; + # Spotify spicetify-nix = { url = "github:Gerg-L/spicetify-nix"; - inputs.nixpkgs.follows = "nixpkgs"; + inputs.nixpkgs.follows = "nixpkgs-unstable"; }; + # Browser zen-browser.url = "github:0xc000022070/zen-browser-flake"; + # Video aggregator grayjay.url = "github:rishabh5321/grayjay-flake"; }; outputs = - inputs@{ - self, # Get a ref to outputs + { + self, nixpkgs, - nixpkgs-unstable, home-manager, ... - }: + }@inputs: let - system = "x86_64-linux"; - pkgs = nixpkgs.legacyPackages.${system}; inherit (self) outputs; - common = import ./common.nix; - theme = import ./theme.nix; + common = import ./shared/common.nix; + theme = import ./shared/theme.nix; + + # + # ========= Architectures ========= + # + forAllSystems = nixpkgs.lib.genAttrs [ + "x86_64-linux" + "aarch64-linux" + ]; + + # ========== Extend lib with lib.custom ========== + # NOTE: This approach allows lib.custom to propagate into hm + # see: https://github.com/nix-community/home-manager/pull/3454 + customLib = (_self: _super: { custom = import ./lib { inherit (nixpkgs) lib; }; }); + lib = nixpkgs.lib.extend customLib; + libHm = home-manager.lib.extend customLib; + in { - defaultPackage.${system} = home-manager.defaultPackage.${system}; + # + # ========= Overlays ========= + # + # Custom modifications/overrides to upstream packages + overlays = import ./overlays.nix { inherit inputs; }; - # The minimum amount of dependencies in order to run 'just switch-now' - devShells.${system}.default = pkgs.mkShell { - packages = with pkgs; [ - just - git - git-crypt - nh - ]; - }; - - # Adds the nix fmt command to format nix files - formatter.${system} = pkgs.nixfmt-rfc-style; - - nixosConfigurations.${common.hostname} = nixpkgs.lib.nixosSystem { - system = system; + # + # ========= Host Configurations ========= + # + nixosConfigurations.desktop = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; specialArgs = { inherit outputs inputs common theme + lib ; - }; # Pass args to modules + isDarwin = false; + }; modules = [ - ./configuration.nix + ./hosts/desktop home-manager.nixosModules.home-manager { home-manager = { @@ -78,22 +111,40 @@ useGlobalPkgs = true; useUserPackages = true; # Passes inputs as an argument to home-manager - extraSpecialArgs = { inherit inputs common theme; }; - users.${common.username} = import ./home-manager; + extraSpecialArgs = { + inherit + inputs + common + theme + libHm + ; + }; + users.${common.username} = import ./hosts/desktop/home-manager; }; } - ./overlays.nix + { + nixpkgs.overlays = with inputs; [ + hyprpanel.overlay + ]; + } ]; }; - overlays = { - # Gives access to unstable packages everywhere - unstable-packages = final: _prev: { - unstable = import nixpkgs-unstable { - system = final.system; - config.allowUnfree = true; - }; - }; - }; + # + # ========= Formatting ========= + # + # Nix formatter available through 'nix fmt' https://github.com/NixOS/nixfmt + formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.nixfmt-rfc-style); + + # + # ========= DevShell ========= + # + # Custom shell for bootstrapping on new hosts, modifying nix-config, and secrets management + devShells = forAllSystems ( + system: + import ./shell.nix { + pkgs = nixpkgs.legacyPackages.${system}; + } + ); }; } diff --git a/configuration.nix b/hosts/desktop/default.nix similarity index 100% rename from configuration.nix rename to hosts/desktop/default.nix diff --git a/hosts/desktop/flake.nix b/hosts/desktop/flake.nix new file mode 100644 index 0000000..869ed37 --- /dev/null +++ b/hosts/desktop/flake.nix @@ -0,0 +1,74 @@ +{ + description = "NixOS configuration"; + + inputs = { + nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11"; + nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; + + home-manager = { + url = "github:nix-community/home-manager/release-24.11"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + }; + + outputs = + inputs@{ + self, + nixpkgs, + nixpkgs-unstable, + home-manager, + ... + }: + let + system = "x86_64-linux"; + pkgs = nixpkgs.legacyPackages.${system}; + inherit (self) outputs; + common = import ./common.nix; + theme = import ../shared/theme.nix; + in + { + defaultPackage.${system} = home-manager.defaultPackage.${system}; + + # Adds the nix fmt command to format nix files + formatter.${system} = pkgs.nixfmt-rfc-style; + + nixosConfigurations.${common.hostname} = nixpkgs.lib.nixosSystem { + system = system; + specialArgs = { + inherit + outputs + inputs + common + theme + ; + }; # Pass args to modules + modules = [ + ./configuration.nix + home-manager.nixosModules.home-manager + { + home-manager = { + # Backups conflicting files in case of error + backupFileExtension = "bkp"; + useGlobalPkgs = true; + useUserPackages = true; + # Passes inputs as an argument to home-manager + extraSpecialArgs = { inherit inputs common theme; }; + users.${common.username} = import ./home-manager; + }; + } + ./overlays.nix + ]; + }; + + overlays = { + # Gives access to unstable packages everywhere + unstable-packages = final: _prev: { + unstable = import nixpkgs-unstable { + system = final.system; + config.allowUnfree = true; + }; + }; + }; + }; +} diff --git a/home-manager/btop.nix b/hosts/desktop/home-manager/btop.nix similarity index 100% rename from home-manager/btop.nix rename to hosts/desktop/home-manager/btop.nix diff --git a/home-manager/cava/cava.png b/hosts/desktop/home-manager/cava/cava.png similarity index 100% rename from home-manager/cava/cava.png rename to hosts/desktop/home-manager/cava/cava.png diff --git a/home-manager/cava/default.nix b/hosts/desktop/home-manager/cava/default.nix similarity index 100% rename from home-manager/cava/default.nix rename to hosts/desktop/home-manager/cava/default.nix diff --git a/home-manager/cursors.nix b/hosts/desktop/home-manager/cursors.nix similarity index 100% rename from home-manager/cursors.nix rename to hosts/desktop/home-manager/cursors.nix diff --git a/home-manager/default-applications.nix b/hosts/desktop/home-manager/default-applications.nix similarity index 100% rename from home-manager/default-applications.nix rename to hosts/desktop/home-manager/default-applications.nix diff --git a/home-manager/default.nix b/hosts/desktop/home-manager/default.nix similarity index 86% rename from home-manager/default.nix rename to hosts/desktop/home-manager/default.nix index 71172c5..db18a80 100644 --- a/home-manager/default.nix +++ b/hosts/desktop/home-manager/default.nix @@ -1,5 +1,6 @@ { inputs, + outputs, common, ... }: @@ -45,6 +46,9 @@ in stateVersion = common.system.version; }; + # Adds pkgs.unstable in order to fetch packages from unstable repositories + nixpkgs.overlays = [ outputs.overlays.unstable-packages ]; + # Let Home Manager install and manage itself. programs.home-manager.enable = true; } diff --git a/home-manager/development/default.nix b/hosts/desktop/home-manager/development/default.nix similarity index 100% rename from home-manager/development/default.nix rename to hosts/desktop/home-manager/development/default.nix diff --git a/home-manager/development/git.nix b/hosts/desktop/home-manager/development/git.nix similarity index 100% rename from home-manager/development/git.nix rename to hosts/desktop/home-manager/development/git.nix diff --git a/home-manager/development/nixvim/default.nix b/hosts/desktop/home-manager/development/nixvim/default.nix similarity index 100% rename from home-manager/development/nixvim/default.nix rename to hosts/desktop/home-manager/development/nixvim/default.nix diff --git a/home-manager/development/zed.nix b/hosts/desktop/home-manager/development/zed.nix similarity index 100% rename from home-manager/development/zed.nix rename to hosts/desktop/home-manager/development/zed.nix diff --git a/home-manager/fastfetch.nix b/hosts/desktop/home-manager/fastfetch.nix similarity index 93% rename from home-manager/fastfetch.nix rename to hosts/desktop/home-manager/fastfetch.nix index c22ee20..8dfd272 100644 --- a/home-manager/fastfetch.nix +++ b/hosts/desktop/home-manager/fastfetch.nix @@ -1,3 +1,5 @@ +{ lib, ... }: + { programs = { fish.shellAliases.fetch = "fastfetch"; @@ -6,7 +8,7 @@ enable = true; settings = { logo = { - source = "${../Catppuccin.png}"; + source = "${lib.custom.relativeToRoot "shared/assets/Catppuccin.png"}"; type = "kitty"; height = 18; padding.top = 2; diff --git a/home-manager/fish.nix b/hosts/desktop/home-manager/fish.nix similarity index 100% rename from home-manager/fish.nix rename to hosts/desktop/home-manager/fish.nix diff --git a/home-manager/freetube.nix b/hosts/desktop/home-manager/freetube.nix similarity index 100% rename from home-manager/freetube.nix rename to hosts/desktop/home-manager/freetube.nix diff --git a/home-manager/gpg.nix b/hosts/desktop/home-manager/gpg.nix similarity index 100% rename from home-manager/gpg.nix rename to hosts/desktop/home-manager/gpg.nix diff --git a/home-manager/gtk.nix b/hosts/desktop/home-manager/gtk.nix similarity index 100% rename from home-manager/gtk.nix rename to hosts/desktop/home-manager/gtk.nix diff --git a/home-manager/hyprland/binds.nix b/hosts/desktop/home-manager/hyprland/binds.nix similarity index 100% rename from home-manager/hyprland/binds.nix rename to hosts/desktop/home-manager/hyprland/binds.nix diff --git a/home-manager/hyprland/default.nix b/hosts/desktop/home-manager/hyprland/default.nix similarity index 70% rename from home-manager/hyprland/default.nix rename to hosts/desktop/home-manager/hyprland/default.nix index 7948acc..9969757 100644 --- a/home-manager/hyprland/default.nix +++ b/hosts/desktop/home-manager/hyprland/default.nix @@ -1,6 +1,4 @@ # Home configurations for Hyprland. For system configs, see ./modules/hyprland -{ outputs, ... }: - { imports = [ ./binds.nix @@ -14,9 +12,6 @@ ./swaync ]; - # Adds pkgs.unstable in order to fetch packages from unstable repositories - nixpkgs.overlays = [ outputs.overlays.unstable-packages ]; - wayland.windowManager.hyprland = { enable = true; systemd.variables = [ "--all" ]; # Import environment into systemd diff --git a/home-manager/hyprland/hypridle/default.nix b/hosts/desktop/home-manager/hyprland/hypridle/default.nix similarity index 100% rename from home-manager/hyprland/hypridle/default.nix rename to hosts/desktop/home-manager/hyprland/hypridle/default.nix diff --git a/home-manager/hyprland/hyprlock/default.nix b/hosts/desktop/home-manager/hyprland/hyprlock/default.nix similarity index 100% rename from home-manager/hyprland/hyprlock/default.nix rename to hosts/desktop/home-manager/hyprland/hyprlock/default.nix diff --git a/home-manager/hyprland/hyprpanel/default.nix b/hosts/desktop/home-manager/hyprland/hyprpanel/default.nix similarity index 83% rename from home-manager/hyprland/hyprpanel/default.nix rename to hosts/desktop/home-manager/hyprland/hyprpanel/default.nix index 75fe6d0..33dd320 100644 --- a/home-manager/hyprland/hyprpanel/default.nix +++ b/hosts/desktop/home-manager/hyprland/hyprpanel/default.nix @@ -17,9 +17,6 @@ # Fix the overwrite issue with HyprPanel. overwrite.enable = true; - # Import a theme from './themes/*.json'. - theme = ""; - # Override the final config with an arbitrary set. # Useful for overriding colors in your selected theme. # Default: {} @@ -27,28 +24,6 @@ theme.bar.menus.text = "#123ABC"; }; - # Configure bar layouts for monitors. - layout = { - "bar.layouts" = { - "*" = { - left = [ - "dashboard" - "workspaces" - "windowtitle" - ]; - middle = [ "media" ]; - right = [ - "kbinput" - "volume" - "network" - "systray" - "clock" - "notifications" - ]; - }; - }; - }; - # Configure and theme almost all options from the GUI. # Options that require '{}' or '[]' are not yet implemented, # except for the layout above. @@ -70,6 +45,28 @@ }; }; + # Configure bar layouts for monitors. + layout = { + "bar.layouts" = { + "*" = { + left = [ + "dashboard" + "workspaces" + "windowtitle" + ]; + middle = [ "media" ]; + right = [ + "kbinput" + "volume" + "network" + "systray" + "clock" + "notifications" + ]; + }; + }; + }; + menus = { clock = { time = { diff --git a/home-manager/hyprland/hyprpaper.nix b/hosts/desktop/home-manager/hyprland/hyprpaper.nix similarity index 100% rename from home-manager/hyprland/hyprpaper.nix rename to hosts/desktop/home-manager/hyprland/hyprpaper.nix diff --git a/home-manager/hyprland/hyprshot.nix b/hosts/desktop/home-manager/hyprland/hyprshot.nix similarity index 100% rename from home-manager/hyprland/hyprshot.nix rename to hosts/desktop/home-manager/hyprland/hyprshot.nix diff --git a/home-manager/hyprland/settings.nix b/hosts/desktop/home-manager/hyprland/settings.nix similarity index 100% rename from home-manager/hyprland/settings.nix rename to hosts/desktop/home-manager/hyprland/settings.nix diff --git a/home-manager/hyprland/swaync/default.nix b/hosts/desktop/home-manager/hyprland/swaync/default.nix similarity index 100% rename from home-manager/hyprland/swaync/default.nix rename to hosts/desktop/home-manager/hyprland/swaync/default.nix diff --git a/home-manager/hyprland/waybar/config/config.jsonc b/hosts/desktop/home-manager/hyprland/waybar/config/config.jsonc similarity index 100% rename from home-manager/hyprland/waybar/config/config.jsonc rename to hosts/desktop/home-manager/hyprland/waybar/config/config.jsonc diff --git a/home-manager/hyprland/waybar/config/mocha.css b/hosts/desktop/home-manager/hyprland/waybar/config/mocha.css similarity index 100% rename from home-manager/hyprland/waybar/config/mocha.css rename to hosts/desktop/home-manager/hyprland/waybar/config/mocha.css diff --git a/home-manager/hyprland/waybar/config/style.css b/hosts/desktop/home-manager/hyprland/waybar/config/style.css similarity index 100% rename from home-manager/hyprland/waybar/config/style.css rename to hosts/desktop/home-manager/hyprland/waybar/config/style.css diff --git a/home-manager/hyprland/waybar/default.nix b/hosts/desktop/home-manager/hyprland/waybar/default.nix similarity index 100% rename from home-manager/hyprland/waybar/default.nix rename to hosts/desktop/home-manager/hyprland/waybar/default.nix diff --git a/home-manager/kitty.nix b/hosts/desktop/home-manager/kitty.nix similarity index 100% rename from home-manager/kitty.nix rename to hosts/desktop/home-manager/kitty.nix diff --git a/home-manager/media/default.nix b/hosts/desktop/home-manager/media/default.nix similarity index 100% rename from home-manager/media/default.nix rename to hosts/desktop/home-manager/media/default.nix diff --git a/home-manager/media/imv.nix b/hosts/desktop/home-manager/media/imv.nix similarity index 100% rename from home-manager/media/imv.nix rename to hosts/desktop/home-manager/media/imv.nix diff --git a/home-manager/media/mpv.nix b/hosts/desktop/home-manager/media/mpv.nix similarity index 100% rename from home-manager/media/mpv.nix rename to hosts/desktop/home-manager/media/mpv.nix diff --git a/home-manager/nextcloud.nix b/hosts/desktop/home-manager/nextcloud.nix similarity index 100% rename from home-manager/nextcloud.nix rename to hosts/desktop/home-manager/nextcloud.nix diff --git a/home-manager/rofi/catppuccin-mocha.rasi b/hosts/desktop/home-manager/rofi/catppuccin-mocha.rasi similarity index 100% rename from home-manager/rofi/catppuccin-mocha.rasi rename to hosts/desktop/home-manager/rofi/catppuccin-mocha.rasi diff --git a/home-manager/rofi/config.rasi b/hosts/desktop/home-manager/rofi/config.rasi similarity index 100% rename from home-manager/rofi/config.rasi rename to hosts/desktop/home-manager/rofi/config.rasi diff --git a/home-manager/rofi/default.nix b/hosts/desktop/home-manager/rofi/default.nix similarity index 100% rename from home-manager/rofi/default.nix rename to hosts/desktop/home-manager/rofi/default.nix diff --git a/home-manager/rofi/rofimoji.rc b/hosts/desktop/home-manager/rofi/rofimoji.rc similarity index 100% rename from home-manager/rofi/rofimoji.rc rename to hosts/desktop/home-manager/rofi/rofimoji.rc diff --git a/home-manager/spicetify.nix b/hosts/desktop/home-manager/spicetify.nix similarity index 100% rename from home-manager/spicetify.nix rename to hosts/desktop/home-manager/spicetify.nix diff --git a/home-manager/wlogout/default.nix b/hosts/desktop/home-manager/wlogout/default.nix similarity index 100% rename from home-manager/wlogout/default.nix rename to hosts/desktop/home-manager/wlogout/default.nix diff --git a/home-manager/wlogout/hibernate.svg b/hosts/desktop/home-manager/wlogout/hibernate.svg similarity index 100% rename from home-manager/wlogout/hibernate.svg rename to hosts/desktop/home-manager/wlogout/hibernate.svg diff --git a/home-manager/wlogout/lock.svg b/hosts/desktop/home-manager/wlogout/lock.svg similarity index 100% rename from home-manager/wlogout/lock.svg rename to hosts/desktop/home-manager/wlogout/lock.svg diff --git a/home-manager/wlogout/logout.svg b/hosts/desktop/home-manager/wlogout/logout.svg similarity index 100% rename from home-manager/wlogout/logout.svg rename to hosts/desktop/home-manager/wlogout/logout.svg diff --git a/home-manager/wlogout/reboot.svg b/hosts/desktop/home-manager/wlogout/reboot.svg similarity index 100% rename from home-manager/wlogout/reboot.svg rename to hosts/desktop/home-manager/wlogout/reboot.svg diff --git a/home-manager/wlogout/shutdown.svg b/hosts/desktop/home-manager/wlogout/shutdown.svg similarity index 100% rename from home-manager/wlogout/shutdown.svg rename to hosts/desktop/home-manager/wlogout/shutdown.svg diff --git a/home-manager/wlogout/style.css b/hosts/desktop/home-manager/wlogout/style.css similarity index 100% rename from home-manager/wlogout/style.css rename to hosts/desktop/home-manager/wlogout/style.css diff --git a/home-manager/wlogout/suspend.svg b/hosts/desktop/home-manager/wlogout/suspend.svg similarity index 100% rename from home-manager/wlogout/suspend.svg rename to hosts/desktop/home-manager/wlogout/suspend.svg diff --git a/home-manager/yazi/catppuccin-mocha.tmTheme b/hosts/desktop/home-manager/yazi/catppuccin-mocha.tmTheme similarity index 100% rename from home-manager/yazi/catppuccin-mocha.tmTheme rename to hosts/desktop/home-manager/yazi/catppuccin-mocha.tmTheme diff --git a/home-manager/yazi/default.nix b/hosts/desktop/home-manager/yazi/default.nix similarity index 100% rename from home-manager/yazi/default.nix rename to hosts/desktop/home-manager/yazi/default.nix diff --git a/home-manager/yazi/icons.nix b/hosts/desktop/home-manager/yazi/icons.nix similarity index 100% rename from home-manager/yazi/icons.nix rename to hosts/desktop/home-manager/yazi/icons.nix diff --git a/home-manager/zen/chrome/userChrome.css b/hosts/desktop/home-manager/zen/chrome/userChrome.css similarity index 100% rename from home-manager/zen/chrome/userChrome.css rename to hosts/desktop/home-manager/zen/chrome/userChrome.css diff --git a/home-manager/zen/chrome/userContent.css b/hosts/desktop/home-manager/zen/chrome/userContent.css similarity index 100% rename from home-manager/zen/chrome/userContent.css rename to hosts/desktop/home-manager/zen/chrome/userContent.css diff --git a/home-manager/zen/chrome/zen-logo.svg b/hosts/desktop/home-manager/zen/chrome/zen-logo.svg similarity index 100% rename from home-manager/zen/chrome/zen-logo.svg rename to hosts/desktop/home-manager/zen/chrome/zen-logo.svg diff --git a/home-manager/zen/default.nix b/hosts/desktop/home-manager/zen/default.nix similarity index 100% rename from home-manager/zen/default.nix rename to hosts/desktop/home-manager/zen/default.nix diff --git a/modules/default.nix b/hosts/desktop/modules/default.nix similarity index 100% rename from modules/default.nix rename to hosts/desktop/modules/default.nix diff --git a/modules/development/default.nix b/hosts/desktop/modules/development/default.nix similarity index 100% rename from modules/development/default.nix rename to hosts/desktop/modules/development/default.nix diff --git a/modules/development/docker.nix b/hosts/desktop/modules/development/docker.nix similarity index 100% rename from modules/development/docker.nix rename to hosts/desktop/modules/development/docker.nix diff --git a/modules/development/dotnet.nix b/hosts/desktop/modules/development/dotnet.nix similarity index 100% rename from modules/development/dotnet.nix rename to hosts/desktop/modules/development/dotnet.nix diff --git a/modules/development/nix.nix b/hosts/desktop/modules/development/nix.nix similarity index 100% rename from modules/development/nix.nix rename to hosts/desktop/modules/development/nix.nix diff --git a/modules/development/node.nix b/hosts/desktop/modules/development/node.nix similarity index 100% rename from modules/development/node.nix rename to hosts/desktop/modules/development/node.nix diff --git a/modules/development/ollama.nix b/hosts/desktop/modules/development/ollama.nix similarity index 100% rename from modules/development/ollama.nix rename to hosts/desktop/modules/development/ollama.nix diff --git a/modules/development/rust.nix b/hosts/desktop/modules/development/rust.nix similarity index 100% rename from modules/development/rust.nix rename to hosts/desktop/modules/development/rust.nix diff --git a/modules/fonts.nix b/hosts/desktop/modules/fonts.nix similarity index 100% rename from modules/fonts.nix rename to hosts/desktop/modules/fonts.nix diff --git a/modules/gaming/default.nix b/hosts/desktop/modules/gaming/default.nix similarity index 100% rename from modules/gaming/default.nix rename to hosts/desktop/modules/gaming/default.nix diff --git a/modules/gaming/steam.nix b/hosts/desktop/modules/gaming/steam.nix similarity index 100% rename from modules/gaming/steam.nix rename to hosts/desktop/modules/gaming/steam.nix diff --git a/modules/gnome/default.nix b/hosts/desktop/modules/gnome/default.nix similarity index 100% rename from modules/gnome/default.nix rename to hosts/desktop/modules/gnome/default.nix diff --git a/modules/gnome/nautilus.nix b/hosts/desktop/modules/gnome/nautilus.nix similarity index 100% rename from modules/gnome/nautilus.nix rename to hosts/desktop/modules/gnome/nautilus.nix diff --git a/modules/hardware/audio.nix b/hosts/desktop/modules/hardware/audio.nix similarity index 100% rename from modules/hardware/audio.nix rename to hosts/desktop/modules/hardware/audio.nix diff --git a/modules/hardware/default.nix b/hosts/desktop/modules/hardware/default.nix similarity index 100% rename from modules/hardware/default.nix rename to hosts/desktop/modules/hardware/default.nix diff --git a/modules/hardware/graphics/default.nix b/hosts/desktop/modules/hardware/graphics/default.nix similarity index 100% rename from modules/hardware/graphics/default.nix rename to hosts/desktop/modules/hardware/graphics/default.nix diff --git a/modules/hardware/graphics/nvidia.nix b/hosts/desktop/modules/hardware/graphics/nvidia.nix similarity index 100% rename from modules/hardware/graphics/nvidia.nix rename to hosts/desktop/modules/hardware/graphics/nvidia.nix diff --git a/modules/hardware/hardware-configuration.nix b/hosts/desktop/modules/hardware/hardware-configuration.nix similarity index 100% rename from modules/hardware/hardware-configuration.nix rename to hosts/desktop/modules/hardware/hardware-configuration.nix diff --git a/modules/hardware/keyboard.nix b/hosts/desktop/modules/hardware/keyboard.nix similarity index 100% rename from modules/hardware/keyboard.nix rename to hosts/desktop/modules/hardware/keyboard.nix diff --git a/modules/hyprland/default.nix b/hosts/desktop/modules/hyprland/default.nix similarity index 100% rename from modules/hyprland/default.nix rename to hosts/desktop/modules/hyprland/default.nix diff --git a/modules/locale.nix b/hosts/desktop/modules/locale.nix similarity index 100% rename from modules/locale.nix rename to hosts/desktop/modules/locale.nix diff --git a/modules/networking.nix b/hosts/desktop/modules/networking.nix similarity index 100% rename from modules/networking.nix rename to hosts/desktop/modules/networking.nix diff --git a/modules/nix-helper.nix b/hosts/desktop/modules/nix-helper.nix similarity index 100% rename from modules/nix-helper.nix rename to hosts/desktop/modules/nix-helper.nix diff --git a/modules/qt.nix b/hosts/desktop/modules/qt.nix similarity index 100% rename from modules/qt.nix rename to hosts/desktop/modules/qt.nix diff --git a/modules/sddm.nix b/hosts/desktop/modules/sddm.nix similarity index 100% rename from modules/sddm.nix rename to hosts/desktop/modules/sddm.nix diff --git a/modules/security.nix b/hosts/desktop/modules/security.nix similarity index 100% rename from modules/security.nix rename to hosts/desktop/modules/security.nix diff --git a/modules/shell.nix b/hosts/desktop/modules/shell.nix similarity index 100% rename from modules/shell.nix rename to hosts/desktop/modules/shell.nix diff --git a/hosts/desktop/overlays.nix b/hosts/desktop/overlays.nix new file mode 100644 index 0000000..b41909f --- /dev/null +++ b/hosts/desktop/overlays.nix @@ -0,0 +1,7 @@ +{ inputs, ... }: + +{ + nixpkgs.overlays = with inputs; [ + hyprpanel.overlay + ]; +} diff --git a/lib/default.nix b/lib/default.nix new file mode 100644 index 0000000..6fb3445 --- /dev/null +++ b/lib/default.nix @@ -0,0 +1,21 @@ +# FIXME(lib.custom): Add some stuff from hmajid2301/dotfiles/lib/module/default.nix, as simplifies option declaration +{ lib, ... }: + +{ + # use path relative to the root of the project + relativeToRoot = lib.path.append ../.; + scanPaths = + path: + builtins.map (f: (path + "/${f}")) ( + builtins.attrNames ( + lib.attrsets.filterAttrs ( + path: _type: + (_type == "directory") # include directories + || ( + (path != "default.nix") # ignore default.nix + && (lib.strings.hasSuffix ".nix" path) # include .nix files + ) + ) (builtins.readDir path) + ) + ); +} diff --git a/overlays.nix b/overlays.nix index b41909f..06cef4a 100644 --- a/overlays.nix +++ b/overlays.nix @@ -1,7 +1,11 @@ { inputs, ... }: { - nixpkgs.overlays = with inputs; [ - hyprpanel.overlay - ]; + # Gives access to unstable packages everywhere + unstable-packages = final: _prev: { + unstable = import inputs.nixpkgs-unstable { + system = final.system; + config.allowUnfree = true; + }; + }; } diff --git a/Catppuccin.png b/shared/assets/Catppuccin.png similarity index 100% rename from Catppuccin.png rename to shared/assets/Catppuccin.png diff --git a/assets/catppuccin_high.png b/shared/assets/catppuccin_high.png similarity index 100% rename from assets/catppuccin_high.png rename to shared/assets/catppuccin_high.png diff --git a/assets/catppuccin_page_curl.png b/shared/assets/catppuccin_page_curl.png similarity index 100% rename from assets/catppuccin_page_curl.png rename to shared/assets/catppuccin_page_curl.png diff --git a/assets/downtown.gif b/shared/assets/downtown.gif similarity index 100% rename from assets/downtown.gif rename to shared/assets/downtown.gif diff --git a/assets/ekg_v2.png b/shared/assets/ekg_v2.png similarity index 100% rename from assets/ekg_v2.png rename to shared/assets/ekg_v2.png diff --git a/assets/face.png b/shared/assets/face.png similarity index 100% rename from assets/face.png rename to shared/assets/face.png diff --git a/assets/nixos_waves.png b/shared/assets/nixos_waves.png similarity index 100% rename from assets/nixos_waves.png rename to shared/assets/nixos_waves.png diff --git a/common.nix b/shared/common.nix similarity index 90% rename from common.nix rename to shared/common.nix index db69804..86aaf2e 100644 --- a/common.nix +++ b/shared/common.nix @@ -13,7 +13,7 @@ rec { pictures = "${dir.home}/Pictures"; }; - hostname = "nixos"; + hostname = "desktop"; keymaps = { layout = "gb,no"; @@ -34,7 +34,7 @@ rec { # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). system.version = "24.11"; - secret.weatherApiKey = lib: loadSecret lib ./home-manager/secrets/weather-api-key; + secret.weatherApiKey = lib: loadSecret lib ./secrets/weather-api-key; loadSecret = lib: filePath: lib.strings.trim (lib.strings.removeSuffix "\n" (builtins.readFile filePath)); diff --git a/home-manager/secrets/weather-api-key b/shared/secrets/weather-api-key similarity index 100% rename from home-manager/secrets/weather-api-key rename to shared/secrets/weather-api-key diff --git a/theme.nix b/shared/theme.nix similarity index 100% rename from theme.nix rename to shared/theme.nix diff --git a/shell.nix b/shell.nix new file mode 100644 index 0000000..c8df6ec --- /dev/null +++ b/shell.nix @@ -0,0 +1,13 @@ +{ pkgs }: + +{ + # The minimum amount of dependencies in order to run 'just switch-now' + default = pkgs.mkShell { + packages = with pkgs; [ + just + git + git-crypt + nh + ]; + }; +}