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/hosts/hermes/emacs.nix
2023-08-20 14:35:39 +05:30

114 lines
2.2 KiB
Nix

{ pkgs, lib, ... }:
let
doombin = "/home/payas/.config/emacs/bin/doom";
doomsync = ''
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";
target = "/home/payas/.config/enchant/enchant.ordering";
};
};
activation.doom = lib.hm.dag.entryAfter [ "writeBoundary" ] doomsync;
};
programs = {
# Emacs unstable (currently 29.0.91) with extra packages (that require native component)
emacs = {
enable = true;
package = pkgs.emacs-pgtk;
extraPackages = epkgs: with epkgs; [
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
];
};
java.enable = true;
};
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
]))
# 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
# Nix things
nixpkgs-fmt
nil
nixd
# Java language server
jdt-language-server
jetbrains.idea-community
# Rust
rustc
cargo
rustfmt
rust-analyzer
pkg-config
# Golang
go
gopls
# SQLite
sqlite
# Exercism
exercism
godot3
hledger
];
}