11     inputs.nix-doom-emacs.hmModule
 
  13     programs.doom-emacs = {
 
  16     "${config.home.homeDirectory}/.doom.d";
 
  20     enable = lib.mkDefault true;
 
  21     package = config.programs.emacs.finalPackage;
 
  23     socketActivation.enable = true;
 
  26     enable = lib.mkDefault true;
 
  27     extraPackages = epkgs: [
 
  31   fonts.fontconfig.enable = lib.mkDefault true;
 
  32   home.packages = with pkgs; [
 
  33     # DOOM Emacs dependencies
 
  35     (ripgrep.override { withPCRE2 = true; })
 
  41     #nodePackages.javascript-typescript-langserver
 
  44     #emacs-all-the-icons-fonts
 
  45     pkgs.nerd-fonts.symbols-only
 
  47   home.sessionPath = [ "${config.xdg.configHome}/emacs/bin" ];
 
  48   home.sessionVariables = {
 
  49     DOOMDIR = "${config.xdg.configHome}/doom";
 
  50     DOOMLOCALDIR = "${config.xdg.dataHome}/doom";
 
  51     DOOMPROFILELOADFILE = "${config.xdg.stateHome}/doom/load.el";
 
  54     "doom/cli.el".text = lib.readFile emacs/cli.el;
 
  55     "doom/config.el".text = lib.readFile emacs/config.el;
 
  56     "doom/init.el".text = lib.readFile emacs/init.el;
 
  57     "doom/packages.el".text = lib.readFile emacs/packages.el;
 
  59       source = inputs.doom-emacs;
 
  60       # FIXME: the first install takes ages, it timeouts home-manager-${USER}.service
 
  61       onChange = "${pkgs.writeShellScript "doom-change" ''
 
  62         export DOOMDIR="${config.home.sessionVariables.DOOMDIR}"
 
  63         export DOOMLOCALDIR="${config.home.sessionVariables.DOOMLOCALDIR}"
 
  64         export DOOMPROFILELOADFILE="${config.home.sessionVariables.DOOMPROFILELOADFILE}"
 
  65         if [ ! -d "$DOOMLOCALDIR" ]; then
 
  66           ${config.xdg.configHome}/emacs/bin/doom install
 
  68           ${config.xdg.configHome}/emacs/bin/doom sync
 
  73   xresources.properties = {
 
  74     #"Emacs.FontBackend" = "xft";