nixos/system/home/emacs/default.nix

98 lines
2 KiB
Nix

{
config,
lib,
pkgs,
...
}:
{
imports = [
../shell/default.nix
../shell/git.nix
../gpg/default.nix
../texlive/default.nix
../programming/default.nix
];
home.file.".emacs.d/early-init.el".text = ''
(setopt use-package-check-before-init t
use-package-enable-imenu-support t
base16-theme-distinct-fringe-background t
base16-theme-highlight-mode-line 'contrast)
'';
services.emacs = {
enable = lib.mkDefault true;
package = config.programs.emacs.finalPackage;
defaultEditor = true;
client.enable = true;
socketActivation.enable = false;
startWithUserSession = "graphical";
};
programs.emacs = {
enable = true;
package = pkgs.emacs30.override {
withImageMagick = true;
withPgtk = true;
};
extraConfig = builtins.readFile ./init.el;
extraPackages =
epkgs: with epkgs; [
# UI and Appearance
delight
nerd-icons
nerd-icons-dired
nerd-icons-ibuffer
nerd-icons-corfu
# Email and Calendar
khalel
mu4e
# Other (TODO sort)
ligature
which-key
diff-hl
org
org-roam
org-noter
citar
vertico
marginalia
orderless
corfu
corfu-terminal
cape
consult
consult-eglot
tempel
tempel-collection
rainbow-delimiters
envrc
treesit-grammars.with-all-grammars
treesit-auto
apheleia
flymake-shellcheck
flymake-yamllint
flymake-clippy
flymake-eslint
magit
forge
nix-mode
lua-mode
python-docstring
python-pytest
auctex
markdown-mode
pandoc-mode
scad-mode
];
};
home.packages = with pkgs; [
# Plugin requirements
gcc
sqlite
languagetool
wordnet
pandoc
ghostscript
poppler_utils
graphviz-nox
];
}