Files
nixos/Droidnix/generated/modules/traveldroid/apps/emacs/emacs.nix
T
2026-03-25 12:13:40 +00:00

78 lines
1.6 KiB
Nix

{ lib, pkgs, flakeRoot, home-manager, config, ... }:
let
username = config.defaultUser or "henrov";
emacsPkg = pkgs.emacs-pgtk.override { withTreeSitter = true; };
emacsExtraPackages = epkgs: [
epkgs.manualPackages.treesit-grammars.with-all-grammars
epkgs.nerd-icons
epkgs.doom-modeline
epkgs.diminish
epkgs.eldoc
epkgs.pulsar
epkgs.which-key
epkgs.expreg
epkgs.vundo
epkgs.puni
epkgs.avy
epkgs.consult
epkgs.vertico
epkgs.marginalia
epkgs.crux
epkgs.magit
epkgs.nerd-icons-corfu
epkgs.corfu
epkgs.cape
epkgs.orderless
epkgs.yasnippet
epkgs.yasnippet-snippets
epkgs.rg
epkgs.exec-path-from-shell
epkgs.eat
epkgs.rust-mode
epkgs.rustic
epkgs.nix-mode
epkgs.hcl-mode
epkgs.shell-pop
epkgs.envrc
epkgs.nixpkgs-fmt
epkgs.f
epkgs.gptel
epkgs.catppuccin-theme
epkgs.eldoc-box
epkgs.sideline
epkgs.sideline-flymake
epkgs.sideline-eglot
];
# Emacs config files
earlyInitFile = "${flakeRoot}/assets/traveldroid/conf/emacs/early-init.el";
initFile = "${flakeRoot}/assets/traveldroid/conf/emacs/init.el";
in
{
_module.args.hmUsers = {
${username} = {
home.packages = [ emacsPkg ];
home.sessionVariables = {
EDITOR = "emacs";
XDG_SCREENSHOTS_DIR = "~/screenshots";
};
programs.emacs = {
enable = true;
package = emacsPkg;
extraPackages = emacsExtraPackages;
};
home.file = {
".emacs.d/early-init.el" = { source = earlyInitFile; };
".emacs.d/init.el" = { source = initFile; };
};
};
};
}