nixos/home/emacs.nix

83 lines
1.9 KiB
Nix
Raw Normal View History

{ 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;
2023-09-12 11:59:27 +01:00
sessionPath = [ "$HOME/.config/emacs/bin" "$HOME/.emacs.d/bin" ];
packages = with pkgs; [
# Emacs dependencies
emacsPackages.mu4e
coreutils
2023-09-12 16:16:55 +01:00
gnutls
ripgrep
cmake
fd
2023-09-12 16:16:55 +01:00
imagemagick
zstd
graphviz
zip
unzip
# Language-specific requirements
2023-09-12 16:16:55 +01:00
(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
];
};
}