99 lines
2 KiB
Nix
99 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/templates".source = ./templates;
|
|
".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)
|
|
diff-hl
|
|
org-roam
|
|
org-journal
|
|
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
|
|
mupdf-headless
|
|
graphviz-nox
|
|
];
|
|
}
|