This repository has been archived on 2024-03-26. You can view files and clone it, but cannot push or open issues or pull requests.
nixos/modules/emacs/emacs.nix
2024-03-16 17:22:33 +05:30

95 lines
2.1 KiB
Nix

{ pkgs, lib, ... }:
let
doombin = "/home/payas/.config/emacs/bin/doom";
doomtmp = "/home/payas/.config/emacs/.local/cache/tmp/auto-save/";
doomsync = ''
mkdir -p ${doomtmp};
if [ -x "${doombin}" ]; then
timeout 100s ${doombin} sync;
fi
'';
in
{
home = {
file = {
# Doomemacs config
doom = {
enable = true;
executable = false;
recursive = true;
source = ./doom;
target = "/home/payas/.doom.d";
onChange = doomsync;
};
# Enchant ordering: Use aspell for all dicts
enchant = {
enable = true;
executable = false;
recursive = false;
text = "*:aspell,hunspell";
target = "/home/payas/.config/enchant/enchant.ordering";
};
};
activation.doom = lib.hm.dag.entryAfter [ "writeBoundary" ] doomsync;
};
programs = {
emacs = {
enable = true;
package = pkgs.emacs29-pgtk;
extraPackages = epkgs: with epkgs; [
mu4e
jinx
pdf-tools
saveplace-pdf-view
org-pdftools
org-noter
emacsql
emacsql-sqlite
emacsql-sqlite-builtin
vterm
all-the-icons
treesit-grammars.with-all-grammars
modus-themes
eglot
];
};
};
home.packages = with pkgs; [
binutils # native-comp needs 'as', provided by this
sqlite # for org-roam
gcc # also for org-roam
# aspell is used by ispell for spell check
(aspellWithDicts (dicts: with dicts; [
en
en-computers
en-science
mr
hi
]))
hunspell
hunspellDicts.en-us-large
hunspellDicts.en_GB-large
# used by jinx package for spell checking
enchant
imagemagick
tectonic # munging TeX better than texlive
texlive.combined.scheme-full # because org-babel cannot use tectonic
# lua53Packages.digestif # luajit version is broken
pandoc # convert doc formats
# ghostscript # munging pfds
pdftk # munging pdfs in less incantation-y way
hledger
# Janet
janet
jpm
];
}