# Emacs is my main driver. I'm the author of Doom Emacs # https://github.com/hlissner/doom-emacs. This module sets it up to meet my # particular Doomy needs. { config, lib, pkgs, ... }: { my = { packages = with pkgs; [ ## Doom dependencies emacs git (ripgrep.override {withPCRE2 = true;}) ## Optional dependencies editorconfig-core-c # per-project style config fd # faster projectile indexing gnutls # for TLS connectivity imagemagick # for image-dired (lib.mkIf (config.programs.gnupg.agent.enable) pinentry_emacs) # in-emacs gnupg prompts zstd # for undo-tree compression ## Module dependencies # :checkers spell aspell aspellDicts.en aspellDicts.en-computers aspellDicts.en-science # :checkers grammar languagetool # :tools lookup sqlite # :lang cc ccls # :lang javascript nodePackages.javascript-typescript-langserver # :lang latex & :lang org (latex previews) texlive.combined.scheme-medium # :lang rust rustfmt rls ]; env.PATH = [ "$HOME/.emacs.d/bin" ]; zsh.rc = lib.readFile ; # My emacs config is too stateful to manage with nix init = '' if [ ! -d "$HOME/.emacs.d" ]; then ${pkgs.git}/bin/git clone https://github.com/hlissner/doom-emacs "$HOME/.emacs.d" fi if [ ! -d "$XDG_CONFIG_HOME/doom" ]; then ${pkgs.git}/bin/git clone https://github.com/hlissner/doom-emacs-private "$XDG_CONFIG_HOME/doom" fi ''; }; fonts.fonts = [ pkgs.emacs-all-the-icons-fonts ]; }