refactor(flake): only use lib, reduce imports

This commit is contained in:
Artur Manuel 2025-02-04 15:09:03 +00:00
commit a4ae97d6da
2 changed files with 40 additions and 57 deletions

View file

@ -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;
};
};

66
lib.nix
View file

@ -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;
});
}