68 lines
2.9 KiB
Nix
68 lines
2.9 KiB
Nix
{ pkgs, ... }:
|
|
{
|
|
programs.emacs = {
|
|
enable = true;
|
|
# install with tree sitter enabled
|
|
package = (pkgs.emacs-pgtk.override { withTreeSitter = true; });
|
|
extraPackages = epkgs: [
|
|
# also install all tree sitter grammars
|
|
epkgs.manualPackages.treesit-grammars.with-all-grammars
|
|
epkgs.nerd-icons # nerd fonts support
|
|
epkgs.doom-modeline # model line
|
|
epkgs.diminish # hides modes from modeline
|
|
epkgs.eldoc # doc support
|
|
epkgs.pulsar # pulses the cursor when jumping about
|
|
epkgs.which-key # help porcelain
|
|
epkgs.expreg # expand region
|
|
epkgs.vundo # undo tree
|
|
epkgs.puni # structured editing
|
|
epkgs.avy # jumping utility
|
|
epkgs.consult # emacs right click
|
|
epkgs.vertico # minibuffer completion
|
|
epkgs.marginalia # annotations for completions
|
|
epkgs.crux # utilities
|
|
epkgs.magit # git porcelain
|
|
epkgs.nerd-icons-corfu # nerd icons for completion
|
|
epkgs.corfu # completion
|
|
epkgs.cape # completion extensions
|
|
epkgs.orderless # search paradigm
|
|
epkgs.yasnippet # snippets support
|
|
epkgs.yasnippet-snippets # commonly used snippets
|
|
epkgs.rg # ripgrep
|
|
epkgs.exec-path-from-shell # load env and path
|
|
epkgs.eat # better shell
|
|
epkgs.rust-mode # rust mode (when rust-ts doesn't cut it)
|
|
epkgs.rustic # more rust things
|
|
epkgs.nix-mode # nix lang
|
|
epkgs.hcl-mode # hashicorp file mode
|
|
epkgs.shell-pop # quick shell popup
|
|
epkgs.envrc # support for loading .envrc
|
|
epkgs.nixpkgs-fmt # format nix files
|
|
epkgs.f # string + file utilities
|
|
epkgs.gptel # llm chat (mainly claude)
|
|
epkgs.catppuccin-theme # catppuccin theme
|
|
epkgs.eldoc-box # docs in a box
|
|
epkgs.sideline # mainly for flymake errors on the side
|
|
epkgs.sideline-flymake # mainly for flymake errors on the side
|
|
epkgs.sideline-eglot # mainly for flymake errors on the side
|
|
];
|
|
};
|
|
home.sessionVariables = {
|
|
EDITOR = "emacs";
|
|
XDG_SCREENSHOTS_DIR = "~/screenshots";
|
|
};
|
|
home.file = {
|
|
emacs-init = {
|
|
source = ./early-init.el;
|
|
target = ".emacs.d/early-init.el";
|
|
};
|
|
emacs = {
|
|
source = ./init.el;
|
|
target = ".emacs.d/init.el";
|
|
};
|
|
};
|
|
services.nextcloud-client = {
|
|
enable = true;
|
|
};
|
|
}
|