{ config, pkgs, doom-emacs, ... }: let sessionVariables = rec { DOOMLOCALDIR = "${config.home.homeDirectory}/.local/share/doomemacs"; DOOMPROFILELOADFILE = "${DOOMLOCALDIR}/load.el"; }; in { xdg.configFile = { emacs.source = doom-emacs; doom.source = ./doom; }; systemd.user = { inherit sessionVariables; }; programs.emacs = { enable = true; package = pkgs.emacs29-pgtk; }; stylix.targets.emacs.enable = false; home = { inherit sessionVariables; sessionPath = [ "$HOME/.config/emacs/bin" "$HOME/.emacs.d/bin" ]; packages = with pkgs; [ # Additional/Compiled Emacs packages emacsPackages.mu4e emacsPackages.vterm emacsPackages.pdf-tools # Emacs dependencies coreutils gnutls ripgrep cmake fd imagemagick zstd graphviz zip unzip # Language-specific requirements (aspellWithDicts (ds: with ds; [ en en-computers en-science ])) languagetool wordnet 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 ]; }; }