nixfleet/hmModules/emacs/default.nix
2024-11-15 10:02:50 +01:00

73 lines
1.6 KiB
Nix

{
lib,
fleetFlake,
pkgs,
age,
...
}:
let
emacs = fleetFlake.packages.${pkgs.system}.emacs;
inherit (emacs.passthru) treesitGrammars;
in
{
systemd.user.sessionVariables = {
EDITOR = lib.mkForce "emacsclient -c";
OPENAI_API_KEY_PATH = age.secrets.chatgpt-token.path;
};
programs.emacs = {
enable = true;
package = emacs;
};
services.emacs = {
enable = true;
client.enable = true;
defaultEditor = true;
socketActivation.enable = false;
startWithUserSession = true;
package = emacs;
};
home.packages =
with pkgs;
[
binutils
delta
(ripgrep.override { withPCRE2 = true; })
gnutls
fd
hunspell
python3
imagemagick
ghostscript_headless
mupdf-headless
poppler_utils
ffmpegthumbnailer
mediainfo
unzipNLS
nodejs_20
qadwaitadecorations
kdePackages.qtwayland
]
++ (with hunspellDicts; [
en_US-large
it_IT
]);
home.activation.cloneCcrEmacsFlake =
let
path = lib.makeBinPath (
with pkgs;
[
git
openssh
]
);
in
lib.hm.dag.entryAfter [ "writeBoundary" ] ''
PATH=$PATH:${path}
if [ ! -d "$HOME/.config/emacs" ]; then
mkdir "$HOME/.config/emacs"
$DRY_RUN_CMD ln -s "$HOME/projects/aciceri/nixfleet/hmModules/emacs/init.el" "$HOME/.config/emacs/init.el"
$DRY_RUN_CMD ln -s "$HOME/.config/emacs" "$HOME/emacs"
fi
$DRY_RUN_CMD ln -sfn ${treesitGrammars} "$HOME/.config/emacs/tree-sitter"
'';
}