{ pkgs, inputs, ... }: let sessionVariables = { DOOMLOCALDIR = "$HOME/.local/share/doomemacs"; DOOMPROFILELOADFILE = "$DOOMLOCALDIR/load.el"; }; in { xdg.configFile.emacs.source = inputs.doom-emacs; programs.emacs.enable = true; home = { inherit sessionVariables; sessionPath = [ "$HOME/.config/emacs/bin" "$HOME/.emacs.d/bin" ]; packages = with pkgs; [ # Emacs dependencies coreutils gnutls # git-with-svn ripgrep cmake fd imagemagick zstd graphviz zip unzip # Language-specific requirements (aspellWithDicts (ds: with ds; [ en en-computers en-science ])) findutils sqlite pandoc gfortran texlive.combined.scheme-medium python3 isort python3Packages.cython python3Packages.pyflakes python3Packages.nose python3Packages.pytest nodePackages.stylelint # Formatters nixfmt beautysh black nodePackages.fixjson fprettify shellharden shfmt stylua python3Packages.mdformat html-tidy nodePackages.js-beautify # LSP servers nixd fortls shellcheck marksman luajitPackages.lua-lsp texlab nodePackages.pyright nodePackages.yaml-language-server nodePackages.bash-language-server nodePackages.vscode-html-languageserver-bin nodePackages.vscode-css-languageserver-bin nodePackages.vscode-json-languageserver-bin nodePackages.dockerfile-language-server-nodejs ]; }; }