dotfiles/home-manager/emacs.nix

76 lines
1.7 KiB
Nix

{ lib, config, options, pkgs, ... }: {
programs.emacs = {
enable = true;
package = pkgs.emacsPgtkGcc;
extraPackages = _:
let epkgs = pkgs.emacsPackagesFor pkgs.emacsPgtkGcc;
engpkgs = pkgs.emacsPackagesNgFor pkgs.emacsPgtkGcc;
lsp-ui = epkgs.melpaPackages.lsp-ui.overrideAttrs (o: {
src = pkgs.fetchFromGitHub {
owner = "emacs-lsp";
repo = "lsp-ui";
rev = "240a7de26400cf8b13312c3f9acf7ce653bdaa8a";
sha256 = "1zscdjlnkx43i4kw2qmlvji23xfpw7n5y4v99ld33205dg905fsy";
};
});
in (with epkgs.melpaPackages; [
all-the-icons
avy
company
counsel
counsel-projectile
diminish
direnv
elixir-mode
evil
evil-leader
# evil-magit
evil-surround
flycheck
forge
ggtags
git-gutter-fringe
haskell-mode
htmlize
ivy
ivy-hydra
linum-relative
lsp-haskell
lsp-ivy
lsp-mode
lsp-ui
magit
markdown-mode
nix-buffer
nix-mode
org-bullets
org-ref
pandoc-mode
projectile
reason-mode
request
s
solarized-theme
swiper
terraform-mode
use-package
vue-mode
weechat
which-key
]) ++ (with engpkgs; [
crdt
doom-modeline
evil-goggles
notmuch
org-cliplink
ox-mediawiki
rust-mode
undo-tree
]);
};
# todo: precompile?
home.file.".emacs.d/init.el".source = ../emacs/init.el;
home.file.".emacs.d/early-init.el".source = ../emacs/early-init.el;
}