{ inputs, config, lib, pkgs, ... }: let emacsclient-wrapper = pkgs.writeShellScriptBin "e" '' exec ${pkgs.emacs}/bin/emacsclient --reuse-frame --no-wait "$@" ''; in { nixpkgs.overlays = [ inputs.emacs.overlay ]; home = { sessionPath = [ "$HOME/.emacs.d/bin" ]; packages = [ emacsclient-wrapper ]; }; programs.emacs = { enable = true; extraPackages = epkgs: with epkgs; [ vterm ]; }; services.emacs = { enable = true; defaultEditor = true; startWithUserSession = true; }; xdg.configFile.doom = { target = "doom"; source = ./doom; }; }