pankomacs/emacs/mkEmacs.nix
2024-09-19 00:40:05 +01:00

75 lines
1.9 KiB
Nix

{ pkgs, ... }:
let
mkEmacsPackage =
epkgs: pname: version: src: deps:
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;
alwaysTangle = true;
config = ./config.org;
extraEmacsPackages =
e:
builtins.attrValues {
inherit (e)
nix-mode
vertico
orderless
marginalia
embark
consult
embark-consult
consult-dir
doom-modeline
flycheck
which-key
lsp-mode
lsp-ui
lsp-pyright
treemacs
lsp-treemacs
consult-lsp
treemacs-icons-dired
treemacs-nerd-icons
nerd-icons
all-the-icons
projectile
treemacs-projectile
magit
treemacs-magit
rustic
haskell-mode
envrc
ccls
org-roam
spacious-padding
mood-line
ement
autothemer
geiser-guile
lsp-haskell
;
treesit-grammars = e.treesit-grammars.with-all-grammars;
inherit (pkgs) python3;
oxocarbon-theme = mkEmacsPackage e "oxocarbon-theme" "0.1.0" (pkgs.fetchurl {
url = "https://raw.githubusercontent.com/konrad1977/emacs/main/themes/oxocarbon-theme.el";
hash = "sha256-jD4DYc7aePuAF3m323YAi7jzE6ZpsSWb/zdmEgjFCns=";
}) [ e.autothemer ];
};
override = _: prev: { use-package = prev.emacs; };
};
}