pankomacs/emacs/mkEmacs.nix

56 lines
1.1 KiB
Nix
Raw Normal View History

2024-09-11 18:43:37 +01:00
{ pkgs, ... }:
let
mkEmacsPackage =
2024-10-21 14:58:11 +01:00
{
epkgs,
pname,
version,
src,
deps ? [ ],
}:
2024-09-11 18:43:37 +01:00
epkgs.callPackage (
{ trivialBuild }:
trivialBuild {
inherit pname version src;
buildInputs = deps;
propagatedUserEnvPkgs = deps;
}
) { inherit (epkgs) trivialBuild; };
in
{
mkEmacs =
emacs:
pkgs.emacsWithPackagesFromUsePackage {
package = emacs;
defaultInitFile = true;
alwaysEnsure = true;
2024-10-04 21:44:24 +01:00
config = ./config.el;
2024-09-11 18:43:37 +01:00
extraEmacsPackages =
2024-10-21 14:58:11 +01:00
epkgs:
2024-09-11 18:43:37 +01:00
builtins.attrValues {
2024-10-21 14:58:11 +01:00
inherit (epkgs)
2024-10-04 21:44:24 +01:00
spacious-padding
nano-modeline
2024-09-11 18:43:37 +01:00
orderless
2024-10-04 21:44:24 +01:00
corfu
which-key
2024-09-11 18:43:37 +01:00
marginalia
2024-10-04 21:44:24 +01:00
vertico
2024-09-11 18:43:37 +01:00
consult
2024-10-04 21:44:24 +01:00
embark
2024-09-11 18:43:37 +01:00
embark-consult
2024-10-21 14:58:11 +01:00
base16-theme
nix-mode
2024-10-14 23:39:21 +01:00
rust-mode
2024-10-29 16:08:05 +00:00
haskell-mode
envrc
2024-09-11 18:43:37 +01:00
;
2024-10-21 14:58:11 +01:00
treesit-grammars = epkgs.treesit-grammars.with-all-grammars;
2024-09-11 18:43:37 +01:00
};
2024-10-21 14:58:11 +01:00
override = _: prev: {
use-package = prev.emacs;
savehist = prev.emacs;
};
2024-09-11 18:43:37 +01:00
};
}