Files
nixos/modules/home-manager/emacs/default.nix
Michael Thomson 004ccccc35 update
2026-02-05 10:11:53 -05:00

72 lines
1.4 KiB
Nix

{
pkgs,
config,
inputs,
...
}: let
myPkgs = import pkgs.path {
inherit (pkgs) system;
overlays = [inputs.emacs-overlay.overlays.default];
};
addPlistSupport = pkg:
pkg.overrideAttrs (old: {
buildPhase =
''
export LSP_USE_PLISTS=true
''
+ (old.buildPhase or "");
});
in {
home.packages = with pkgs; [
emacs-lsp-booster
tree-sitter
fd
ripgrep
typescript-language-server
typescript
vscode-langservers-extracted
tailwindcss-language-server
rust-analyzer
nodejs
nixd
cmake
libtool
glibtool
graphviz
mu
];
home.sessionVariables = {
LSP_USE_PLISTS = "true";
};
programs.emacs = {
enable = true;
package = myPkgs.emacsWithPackagesFromUsePackage {
config = ./init.el;
defaultInitFile = false;
extraEmacsPackages = epkgs:
with epkgs; [
mu4e
pdf-tools
vterm
treesit-grammars.with-all-grammars
];
override = final: prev: {
lsp-mode = prev.lsp-mode.overrideAttrs (old: {
buildPhase =
''
export LSP_USE_PLISTS=true
''
+ (old.buildPhase or "");
});
};
};
};
services.emacs.enable = true;
home.file.".config/emacs/init.el" = {
source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/dev/personal/nixos/modules/home-manager/emacs/init.el";
};
}