nichts/modules/programs/editors/emacs/module.nix

83 lines
1.6 KiB
Nix
Raw Normal View History

2024-09-01 21:37:24 +02:00
{
config,
lib,
pkgs,
inputs,
...
}: let
cfg = config.modules.system.programs.editors.emacs;
inherit (config.modules.other.system) username;
inherit (lib) mkIf;
# Taken from outfoxxed since figuring this out is really annoying.
2024-09-06 08:38:28 +02:00
newpkgs =
2024-09-01 21:37:24 +02:00
pkgs.appendOverlays
(with inputs.emacs-overlay.overlays; [
emacs
package
]);
2024-09-06 08:38:28 +02:00
custom-emacs = with newpkgs; ((emacsPackagesFor (emacs30-pgtk.override {
withNativeCompilation = true;
withTreeSitter = true;
}))
2024-09-01 21:37:24 +02:00
.emacsWithPackages (epkgs:
with epkgs; [
2024-09-06 08:38:28 +02:00
avy
better-jumper
catppuccin-theme
company
crux
cmake-font-lock
direnv
doom-modeline
editorconfig
face-explorer
flycheck
frames-only-mode
fussy
groovy-mode
just-mode
kotlin-mode
lsp-mode
lsp-treemacs
lsp-ui
lsp-java
magit
markdown-mode
meow
meow-tree-sitter
nasm-mode
nix-mode
reformatter # required by nix mode
projectile
peep-dired
rainbow-mode
no-littering
string-inflection
tldr
2024-09-04 22:02:17 +02:00
treesit-grammars.with-all-grammars
2024-09-06 08:38:28 +02:00
treemacs
treemacs-evil
treemacs-projectile
treemacs-magit
undo-tree
use-package
vertico
2024-09-01 21:37:24 +02:00
vterm
2024-09-06 08:38:28 +02:00
which-key
ws-butler
2024-09-01 21:37:24 +02:00
]));
in {
config = mkIf cfg.enable {
home-manager.users.${username} = {
2024-09-06 08:38:28 +02:00
home.packages = [custom-emacs];
2024-09-01 21:37:24 +02:00
2024-09-06 08:38:28 +02:00
services.emacs = {
enable = true;
package = custom-emacs;
};
2024-09-01 21:37:24 +02:00
};
};
}