dotfiles/home-manager/emacs.nix

117 lines
2.6 KiB
Nix
Raw Normal View History

{ lib, config, options, pkgs, ... }: let
2023-10-18 09:50:45 +02:00
epkgs = pkgs.emacsPackagesFor pkgs.emacs-unstable-pgtk;
in {
programs.emacs = {
enable = true;
2023-12-20 13:32:18 +01:00
package = pkgs.emacs29-pgtk;
2022-09-23 15:27:16 +02:00
extraConfig = ''
2023-09-17 18:17:14 +02:00
(setq copilot-node-executable "${pkgs.nodejs-slim-18_x}/bin/node")
2022-10-03 17:34:01 +02:00
(setq lsp-nix-server-path "${pkgs.nil}/bin/nil")
2022-09-23 15:27:16 +02:00
'';
overrides = final: prev: {
copilot = final.melpaBuild rec {
pname = "copilot";
2023-12-20 13:32:18 +01:00
version = "20231220";
commit = "d4fa14cea818e041b4a536c5052cf6d28c7223d7";
2022-09-23 15:27:16 +02:00
src = pkgs.fetchFromGitHub {
owner = "zerolfx";
repo = "copilot.el";
rev = commit;
2023-12-20 13:32:18 +01:00
hash = "sha256-Tzs0Dawqa+OD0RSsf66ORbH6MdBp7BMXX7z+5UuNwq4=";
2022-09-23 15:27:16 +02:00
};
packageRequires = with final; [ dash editorconfig s ];
recipe = pkgs.writeText "recipe" ''
(copilot
:repo "zerolfx/copilot.el"
:fetcher github
:files ("dist" "*.el"))
'';
meta.description = "Emacs plugin for GitHub Copilot";
};
};
extraPackages = p:
(with p; [
2023-07-03 15:03:52 +02:00
treesit-grammars.with-all-grammars
all-the-icons
avy
company
2023-12-20 13:32:18 +01:00
company-box
counsel
counsel-projectile
2022-09-23 15:27:16 +02:00
copilot
diminish
direnv
2022-07-06 09:24:22 +02:00
dune
tuareg
elixir-mode
evil
evil-leader
# evil-magit
evil-surround
flycheck
2022-06-01 09:42:51 +02:00
flycheck-inline
forge
ggtags
git-gutter-fringe
haskell-mode
htmlize
ivy
ivy-hydra
2022-07-06 09:24:22 +02:00
lua-mode
linum-relative
lsp-haskell
2023-12-20 11:22:21 +01:00
lsp-pyright
lsp-ivy
lsp-mode
lsp-ui
2022-07-06 09:24:22 +02:00
lsp-treemacs
magit
markdown-mode
2022-07-06 09:24:22 +02:00
neotree
nix-buffer
nix-mode
org-bullets
org-ref
pandoc-mode
projectile
reason-mode
2022-10-04 10:15:29 +02:00
rescript-mode
request
s
solarized-theme
swiper
terraform-mode
2022-07-06 09:24:22 +02:00
treemacs
use-package
vue-mode
weechat
which-key
crdt
doom-modeline
evil-goggles
2022-04-12 20:08:47 +02:00
evil-mc
notmuch
org-cliplink
ox-mediawiki
rust-mode
undo-tree
]);
};
fonts.fontconfig.enable = true;
home.packages = [
(pkgs.runCommand "all-the-icons-fonts" {} ''
mkdir -p $out/share/fonts/truetype
cp ${epkgs.melpaPackages.all-the-icons.src}/fonts/*.ttf $_
'')
];
# todo: precompile?
home.file.".emacs.d/init.el".source = ../emacs/init.el;
home.file.".emacs.d/early-init.el".source = ../emacs/early-init.el;
}