44 lines
827 B
Nix
44 lines
827 B
Nix
{ config, lib, pkgs, ... }:
|
|
let
|
|
cfg = config.programs.emacs;
|
|
|
|
configEl = pkgs.stdenv.mkDerivation {
|
|
name = "config.el";
|
|
src = ./.;
|
|
|
|
buildInputs = with pkgs; [ emacs ];
|
|
buildPhase = ''
|
|
emacs --batch --eval "(require 'org)" --eval '(org-babel-tangle-file "config.org")'
|
|
'';
|
|
|
|
installPhase = ''
|
|
cp config.el $out
|
|
'';
|
|
};
|
|
|
|
in
|
|
lib.mkIf cfg.enable {
|
|
xdg.configFile."emacs/init.el".source = configEl.outPath;
|
|
|
|
programs.emacs = {
|
|
extraPackages = epkgs: with epkgs; [
|
|
# # package
|
|
use-package
|
|
# evil
|
|
# evil-collection
|
|
# evil-nerd-commenter
|
|
# # org
|
|
# evil-org
|
|
# monokai-theme
|
|
# gruber-darker-theme
|
|
# company
|
|
# flycheck
|
|
# projectile
|
|
# yasnippet
|
|
# magit
|
|
# # recentf
|
|
# which-key
|
|
];
|
|
};
|
|
}
|