From a4ae97d6da39c9d3b9cc7a1aaef09b6f5996b059 Mon Sep 17 00:00:00 2001 From: Artur Manuel Date: Tue, 4 Feb 2025 15:09:03 +0000 Subject: [PATCH] refactor(flake): only use lib, reduce imports --- flake.nix | 31 +++++--------------------- lib.nix | 66 +++++++++++++++++++++++++++++-------------------------- 2 files changed, 40 insertions(+), 57 deletions(-) diff --git a/flake.nix b/flake.nix index c98eb7f..194056e 100644 --- a/flake.nix +++ b/flake.nix @@ -11,40 +11,19 @@ inputs.nixpkgs.follows = "nixpkgs"; }; }; - outputs = inputs: let - lib = inputs.nixpkgs.lib.extend (import ./lib.nix); - in + outputs = inputs: inputs.parts.lib.mkFlake { inherit inputs; - specialArgs.lib = lib; } { systems = [ "x86_64-linux" ]; - perSystem = { - pkgs, - self', - config, - system, - ... - }: { - _module.args.pkgs = import inputs.nixpkgs { - inherit system; - overlays = [ - (import inputs.emacs) - ]; - }; - - packages = builtins.mapAttrs (_: v: - lib.mkEmacs { - inherit pkgs; - emacs = v; - }) { - pankomacs = pkgs.emacs30-pgtk; - pankomacs-x11 = pkgs.emacs30-gtk3; - }; + imports = [ + ./lib.nix + ]; + perSystem = {pkgs, ...}: { formatter = pkgs.alejandra; }; }; diff --git a/lib.nix b/lib.nix index d2e8b8c..dbf1221 100644 --- a/lib.nix +++ b/lib.nix @@ -1,8 +1,5 @@ -final: prev: { - mkEmacs = { - pkgs, - emacs, - }: let +{inputs, ...}: { + flake.lib = inputs.nixpkgs.lib.extend (_: _: let mkEmacsPackage = { epkgs, pname, @@ -18,32 +15,39 @@ final: prev: { propagatedUserEnvPkgs = deps; } ) {inherit (epkgs) trivialBuild;}; - in - pkgs.emacsWithPackagesFromUsePackage { - package = emacs; - defaultInitFile = true; - config = ./config.el; - extraEmacsPackages = epkgs: - builtins.attrValues { - inherit - (epkgs) - spacious-padding - mood-line - which-key - helm - base16-theme - nix-mode - rust-mode - haskell-mode - envrc - eat - vterm - ; - treesit-grammars = epkgs.treesit-grammars.with-all-grammars; + + mkEmacs = { + pkgs, + emacs, + }: + (pkgs.appendOverlays [inputs.emacs.overlays.default]).emacsWithPackagesFromUsePackage { + package = emacs; + defaultInitFile = true; + config = ./config.el; + extraEmacsPackages = epkgs: + builtins.attrValues { + inherit + (epkgs) + spacious-padding + mood-line + which-key + helm + base16-theme + nix-mode + rust-mode + haskell-mode + envrc + eat + vterm + ; + treesit-grammars = epkgs.treesit-grammars.with-all-grammars; + }; + override = _: prev: { + use-package = prev.emacs; + savehist = prev.emacs; }; - override = _: prev: { - use-package = prev.emacs; - savehist = prev.emacs; }; - }; + in { + inherit mkEmacs mkEmacsPackage; + }); }