aboutsummaryrefslogtreecommitdiff
path: root/users/programs/emacs/default.nix
diff options
context:
space:
mode:
authorFranck Cuny <franck@fcuny.net>2025-07-26 10:38:18 -0700
committerFranck Cuny <franck@fcuny.net>2025-07-26 10:38:18 -0700
commit8e3d469ce4eb25a04f8154cbab737d88976fd8f8 (patch)
tree170f0938514bddbf9b1a567969735533eed8876d /users/programs/emacs/default.nix
parentadd themes in toml format for alacritty (diff)
downloadinfra-8e3d469ce4eb25a04f8154cbab737d88976fd8f8.tar.gz
move emacs configuration under users/programs/emacs
This is more consistent.
Diffstat (limited to 'users/programs/emacs/default.nix')
-rw-r--r--users/programs/emacs/default.nix88
1 files changed, 88 insertions, 0 deletions
diff --git a/users/programs/emacs/default.nix b/users/programs/emacs/default.nix
new file mode 100644
index 0000000..d805971
--- /dev/null
+++ b/users/programs/emacs/default.nix
@@ -0,0 +1,88 @@
+{
+ self,
+ pkgs,
+ lib,
+ ...
+}:
+let
+ packages =
+ epkgs: with epkgs; [
+ aidermacs # pair programming in Emacs with Aider
+ cape
+ consult
+ consult-denote
+ corfu
+ denote
+ denote-journal
+ denote-markdown
+ denote-org
+ denote-silo
+ denote-sequence
+ diminish
+ direnv
+ docker
+ docker-compose-mode
+ dockerfile-mode
+ exec-path-from-shell
+ git-link
+ go-mode
+ gotest
+ gptel # LLM client for Emacs
+ hcl-mode
+ jq-mode
+ json-mode
+ json-reformat
+ magit
+ marginalia
+ markdown-mode
+ nix-mode
+ orderless
+ protobuf-mode
+ rg
+ terraform-mode
+ toml-mode
+ tree-sitter
+ tree-sitter-langs
+ treesit-grammars.with-all-grammars
+ yaml-mode
+ yasnippet
+ yasnippet-capf
+ ];
+ emacsFiles = [
+ "early-init.el"
+ "init.el"
+ "site-lisp/init-base.el"
+ "site-lisp/init-completion.el"
+ "site-lisp/init-llm.el"
+ "site-lisp/init-programming.el"
+ "site-lisp/init-text.el"
+ "site-lisp/init-ui.el"
+ ];
+ mkEmacsFile = file: {
+ ".config/emacs/${file}" = {
+ source = "${self}/users/programs/emacs/${file}";
+ };
+ };
+in
+{
+ home.file = lib.mkMerge (map mkEmacsFile emacsFiles);
+
+ programs.emacs = {
+ enable = true;
+ extraPackages = packages;
+ # FIXME: https://github.com/NixOS/nixpkgs/issues/395169
+ package = pkgs.emacs.override { withNativeCompilation = false; };
+ };
+
+ home.packages = with pkgs; [
+ aspell
+ aspellDicts.en
+ aspellDicts.en-science
+ aspellDicts.en-computers
+ ];
+
+ home.sessionVariables = {
+ EDITOR = "${pkgs.emacs}/bin/emacsclient -a=";
+ ASPELL_CONF = "dict-dir ${pkgs.aspellDicts.en}/lib/aspell";
+ };
+}