From c5ddab5ae8054665699471bc59db54db3fe6f5c9 Mon Sep 17 00:00:00 2001 From: Michael van Straten Date: Sun, 6 Oct 2024 13:53:08 +0200 Subject: [PATCH] Refactor Nix configurations to simplify argument passing and module imports - Update `flake.nix` to introduce `callModule` function for cleaner module imports across configurations. - Adjust overlays and package imports to use new argument structure, reducing repetition of `inputs`. - Fix `BetterFox` as Firefox configuration source. --- checks/default.nix | 6 +-- darwinConfigurations/default.nix | 16 ++---- darwinConfigurations/modules/home-manager.nix | 6 +-- darwinConfigurations/modules/packages.nix | 4 +- flake.lock | 17 +++++++ flake.nix | 51 ++++++++++++------- homeConfigurations/modules/Alacritty.nix | 4 +- homeConfigurations/modules/Firefox.nix | 4 +- homeConfigurations/modules/nvim/default.nix | 4 +- nixosConfigurations/default.nix | 12 +---- 10 files changed, 67 insertions(+), 57 deletions(-) diff --git a/checks/default.nix b/checks/default.nix index 5b1e51e..bf09ffc 100644 --- a/checks/default.nix +++ b/checks/default.nix @@ -1,8 +1,4 @@ -{ - system, - pre-commit-hooks, - pkgs, -}: +{ system, pre-commit-hooks, ... }: { pre-commit-check = pre-commit-hooks.lib.${system}.run { src = ./.; diff --git a/darwinConfigurations/default.nix b/darwinConfigurations/default.nix index b5944ca..bdb7a54 100644 --- a/darwinConfigurations/default.nix +++ b/darwinConfigurations/default.nix @@ -1,9 +1,5 @@ -{ - inputs, - nix-darwin, - home-manager, - ... -}: +{ nix-darwin, home-manager, ... }@args: + { "MacBook-Pro-von-Michael" = nix-darwin.lib.darwinSystem { system = "aarch64-darwin"; @@ -11,9 +7,7 @@ home-manager.darwinModule hosts/personal-macbook-pro.nix ]; - specialArgs = { - inherit inputs; - }; + specialArgs = args; }; "N7R221P6V5" = nix-darwin.lib.darwinSystem { system = "aarch64-darwin"; @@ -21,8 +15,6 @@ home-manager.darwinModule hosts/mozilla-macbook-pro.nix ]; - specialArgs = { - inherit inputs; - }; + specialArgs = args; }; } diff --git a/darwinConfigurations/modules/home-manager.nix b/darwinConfigurations/modules/home-manager.nix index 43fa2d2..b96a641 100644 --- a/darwinConfigurations/modules/home-manager.nix +++ b/darwinConfigurations/modules/home-manager.nix @@ -1,10 +1,8 @@ -{ inputs, ... }: +{ specialArgs, ... }: { home-manager = { backupFileExtension = "before-home-manager"; - extraSpecialArgs = { - inherit inputs; - }; + extraSpecialArgs = specialArgs; useGlobalPkgs = true; useUserPackages = true; verbose = true; diff --git a/darwinConfigurations/modules/packages.nix b/darwinConfigurations/modules/packages.nix index 595bafc..643bfb6 100644 --- a/darwinConfigurations/modules/packages.nix +++ b/darwinConfigurations/modules/packages.nix @@ -1,7 +1,7 @@ -{ inputs, pkgs, ... }: +{ nixpkgs-firefox-darwin, pkgs, ... }: { nixpkgs = { - overlays = with inputs; [ nixpkgs-firefox-darwin.overlay ]; + overlays = [ nixpkgs-firefox-darwin.overlay ]; }; environment.systemPackages = with pkgs; [ diff --git a/flake.lock b/flake.lock index f35a2f0..30eb2c3 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,21 @@ { "nodes": { + "BetterFox": { + "flake": false, + "locked": { + "lastModified": 1727376228, + "narHash": "sha256-s54Y6Ix7W942T+TIwGudoqDzUHifMBJOU9AWqpqIKl4=", + "owner": "yokoffing", + "repo": "BetterFox", + "rev": "ab5ede0fef39f02f0ef2bd119879226e3ab71f9f", + "type": "github" + }, + "original": { + "owner": "yokoffing", + "repo": "BetterFox", + "type": "github" + } + }, "cyberdream-theme": { "flake": false, "locked": { @@ -408,6 +424,7 @@ }, "root": { "inputs": { + "BetterFox": "BetterFox", "cyberdream-theme": "cyberdream-theme", "disko": "disko", "flake-utils": "flake-utils", diff --git a/flake.nix b/flake.nix index 139ac7b..b4efc52 100644 --- a/flake.nix +++ b/flake.nix @@ -1,37 +1,50 @@ { inputs = { - flake-utils.url = "github:numtide/flake-utils"; - nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; - pre-commit-hooks.url = "github:cachix/git-hooks.nix"; + BetterFox = { + url = "github:yokoffing/BetterFox"; + flake = false; + }; - nix-darwin = { - url = "github:lnl7/nix-darwin"; + cyberdream-theme = { + url = "github:scottmckendry/cyberdream.nvim"; + flake = false; + }; + + disko = { + url = "github:nix-community/disko"; inputs.nixpkgs.follows = "nixpkgs"; }; + flake-utils = { + url = "github:numtide/flake-utils"; + }; + home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; - cyberdream-theme = { - url = "github:scottmckendry/cyberdream.nvim"; - flake = false; - }; - neovim-nightly-overlay = { url = "github:nix-community/neovim-nightly-overlay"; inputs.nixpkgs.follows = "nixpkgs"; }; + nix-darwin = { + url = "github:lnl7/nix-darwin"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + nixpkgs = { + url = "github:nixos/nixpkgs/nixos-unstable"; + }; + nixpkgs-firefox-darwin = { url = "github:bandithedoge/nixpkgs-firefox-darwin"; inputs.nixpkgs.follows = "nixpkgs"; }; - disko = { - url = "github:nix-community/disko"; - inputs.nixpkgs.follows = "nixpkgs"; + pre-commit-hooks = { + url = "github:cachix/git-hooks.nix"; }; }; @@ -45,11 +58,13 @@ home-manager, ... }@inputs: + let + callModule = modulePath: extraArgs: import modulePath (self.outputs // inputs // extraArgs); + in { - darwinConfigurations = import ./darwinConfigurations { inherit inputs nix-darwin home-manager; }; - - nixosConfigurations = import ./nixosConfigurations { inherit self inputs nixpkgs; }; - nixosModules = import ./nixosModules { inherit nixpkgs; }; + darwinConfigurations = callModule ./darwinConfigurations { }; + nixosConfigurations = callModule ./nixosConfigurations { }; + nixosModules = callModule ./nixosModules { }; } // flake-utils.lib.eachDefaultSystem ( system: @@ -58,7 +73,7 @@ in { # Checks pre-commit-hooks - checks = import ./checks { inherit system pre-commit-hooks pkgs; }; + checks = callModule ./checks { inherit system; }; # Development shell with necessary tools devShells = diff --git a/homeConfigurations/modules/Alacritty.nix b/homeConfigurations/modules/Alacritty.nix index fc64331..7a7130e 100644 --- a/homeConfigurations/modules/Alacritty.nix +++ b/homeConfigurations/modules/Alacritty.nix @@ -1,11 +1,11 @@ -{ inputs, pkgs, ... }: +{ cyberdream-theme, pkgs, ... }: { fonts.fontconfig.enable = true; home.packages = [ pkgs.nerdfonts ]; programs.alacritty = { enable = true; settings = { - import = [ "${inputs.cyberdream-theme}/extras/alacritty/cyberdream.toml" ]; + import = [ "${cyberdream-theme}/extras/alacritty/cyberdream.toml" ]; font = { size = 14; normal = { diff --git a/homeConfigurations/modules/Firefox.nix b/homeConfigurations/modules/Firefox.nix index ac920da..5e62274 100644 --- a/homeConfigurations/modules/Firefox.nix +++ b/homeConfigurations/modules/Firefox.nix @@ -1,4 +1,4 @@ -{ inputs, config, ... }: +{ BetterFox, config, ... }: { programs.firefox = { # Let Firefox package be managed by the system @@ -25,7 +25,7 @@ "browser.translations.enable" = false; }; - extraConfig = builtins.readFile "${inputs.BetterFox}/user.js"; + extraConfig = builtins.readFile "${BetterFox}/user.js"; }; }; } diff --git a/homeConfigurations/modules/nvim/default.nix b/homeConfigurations/modules/nvim/default.nix index 6c28521..1e08b0b 100644 --- a/homeConfigurations/modules/nvim/default.nix +++ b/homeConfigurations/modules/nvim/default.nix @@ -1,6 +1,6 @@ -{ inputs, pkgs, ... }: +{ neovim-nightly-overlay, pkgs, ... }: { home.file.".config/nvim".source = ./.; - home.packages = [ inputs.neovim-nightly-overlay.packages.${pkgs.system}.default ]; + home.packages = [ neovim-nightly-overlay.packages.${pkgs.system}.default ]; } diff --git a/nixosConfigurations/default.nix b/nixosConfigurations/default.nix index e7402e6..f6f3e67 100644 --- a/nixosConfigurations/default.nix +++ b/nixosConfigurations/default.nix @@ -1,19 +1,11 @@ -{ - inputs, - self, - nixpkgs, - nixosModules ? self.nixosModules, - disko ? inputs.disko, - ... -}: +{ nixpkgs, ... }@args: let inherit (nixpkgs.lib) nixosSystem; defaultArgs = { specialArgs = { make-disk-image = import "${nixpkgs}/nixos/lib/make-disk-image.nix"; - inherit disko nixosModules; - }; + } // args; }; in