{ config, pkgs, ... }: { programs.emacs = { # Clone emacs config from https://git.xenia.me.uk/xenia/emacs.git enable = true; package = pkgs.emacs29-pgtk; extraConfig = ''(org-babel-load-file "~/.emacs/README.org")''; extraPackages = epkgs: with epkgs; [ # theme catppuccin-theme # password-store password-store password-store-otp pass # password-store major mode # completion-packages cape consult consult-eglot consult-yasnippet corfu corfu-terminal embark embark-consult marginalia orderless vertico # snippets-packages yasnippet yasnippet-snippets yasnippet-capf # ide-packages vterm flymake-popon treesit-grammars.with-all-grammars treesit-auto apheleia direnv goto-chg rainbow-delimiters aggressive-indent nix-mode lua-mode cargo # media-packages emms # org-packages org-alert org-noter org-cliplink org-journal org-modern citar citar-embark citar-org-roam gnuplot khalel # project-packages ibuffer-project magit forge # social-packages mastodon # ui-packages all-the-icons nerd-icons nerd-icons-completion nerd-icons-corfu nerd-icons-dired nerd-icons-ibuffer ligature page-break-lines doom-modeline helpful which-key link-hint dashboard darkroom diff-hl treemacs treemacs-magit treemacs-nerd-icons # writing-packages markdown-mode pandoc-mode auctex auctex-latexmk latex-preview-pane # email-packages mu4e # feed-packages elfeed elfeed-org elfeed-tube elfeed-tube-mpv ]; }; services = { git-sync = { enable = true; repositories = with config.home; { org = { path = "${homeDirectory}/Org"; uri = "git+https://git.xenia.me.uk/xenia/org.git"; }; references = { path = "${homeDirectory}/References"; uri = "git+https://git.xenia.me.uk/xenia/references.git"; }; elfeed = { path = "${homeDirectory}/.elfeed"; uri = "git+https://git.xenia.me.uk/xenia/elfeed.git"; }; }; }; }; }