84 lines
1.9 KiB
Nix
84 lines
1.9 KiB
Nix
{ 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;
|
|
systemd.user = { inherit sessionVariables; };
|
|
programs.emacs = {
|
|
enable = true;
|
|
package = pkgs.emacs29-pgtk;
|
|
};
|
|
services.emacs = {
|
|
enable = true;
|
|
package = config.programs.emacs.package;
|
|
defaultEditor = true;
|
|
client.enable = true;
|
|
socketActivation.enable = true;
|
|
};
|
|
home = {
|
|
inherit sessionVariables;
|
|
sessionPath = [ "$HOME/.config/emacs/bin" "$HOME/.emacs.d/bin" ];
|
|
packages = with pkgs; [
|
|
# Emacs dependencies
|
|
emacsPackages.mu4e
|
|
emacsPackages.vterm
|
|
coreutils
|
|
gnutls
|
|
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
|
|
];
|
|
};
|
|
}
|