Files
nixos-configs/hosts/pinwheel/modules/emacs/default.nix
2024-07-13 10:15:59 +02:00

59 lines
1.3 KiB
Nix

{ inputs, pkgs, ... }:
let
emacs = pkgs.emacsWithPackagesFromUsePackage {
package = pkgs.emacs-unstable;
config = ./config.org;
defaultInitFile = pkgs.callPackage ./config.nix {};
alwaysEnsure = true;
alwaysTangle = true;
extraEmacsPackages = epkgs: [
epkgs.flymake-go-staticcheck
epkgs.tree-sitter-langs
epkgs.treesit-grammars.with-all-grammars
(epkgs.trivialBuild {
pname = "eglot-booster";
version = "main-2024-04-11";
src = pkgs.fetchFromGitHub {
owner = "jdtsmith";
repo = "eglot-booster";
rev = "e19dd7ea81bada84c66e8bdd121408d9c0761fe6";
hash = "sha256-vF34ZoUUj8RENyH9OeKGSPk34G6KXZhEZozQKEcRNhs=";
};
})
];
};
e = pkgs.writeShellScriptBin "e" ''
${emacs}/bin/emacs -nw $@
'';
ec = pkgs.writeShellScriptBin "ec" ''
${emacs}/bin/emacsclient -t -c -a= $@
'';
in
{
nixpkgs.overlays = [ inputs.emacs-overlay.overlay ];
home-manager.users.alex = {
home.sessionVariables = {
EDITOR = "${e}/bin/e $@";
VISUAL = "${e}/bin/e $@";
TIG_EDITOR = "${e}/bin/e $@";
};
home.packages = [
e
ec
emacs
pkgs.wl-clipboard
pkgs.emacs-lsp-booster
];
};
environment.systemPackages = [ pkgs.ripgrep ];
}