pankomacs/lib.nix
2025-02-04 15:09:03 +00:00

53 lines
1.2 KiB
Nix

{inputs, ...}: {
flake.lib = inputs.nixpkgs.lib.extend (_: _: let
mkEmacsPackage = {
epkgs,
pname,
version,
src,
deps ? [],
}:
epkgs.callPackage (
{trivialBuild}:
trivialBuild {
inherit pname version src;
buildInputs = deps;
propagatedUserEnvPkgs = deps;
}
) {inherit (epkgs) trivialBuild;};
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;
};
};
in {
inherit mkEmacs mkEmacsPackage;
});
}