2023-11-06 07:18:06 +00:00
|
|
|
{ config, pkgs, ... }:
|
2023-10-23 17:28:05 +01:00
|
|
|
|
|
|
|
{
|
2023-09-24 12:17:51 +01:00
|
|
|
xdg.configFile = {
|
2023-11-06 12:09:47 +00:00
|
|
|
"emacs/init.el".source = ./init.el;
|
2023-10-27 06:40:20 +01:00
|
|
|
"emacs/snippets".source = ./snippets;
|
2023-09-24 12:17:51 +01:00
|
|
|
};
|
2023-11-05 05:55:52 +00:00
|
|
|
programs.emacs = {
|
|
|
|
enable = true;
|
|
|
|
package = pkgs.emacs29-pgtk;
|
|
|
|
extraPackages = epkgs:
|
|
|
|
with epkgs; [
|
2023-11-08 06:27:32 +00:00
|
|
|
# themes
|
|
|
|
modus-themes
|
2023-11-09 07:09:48 +00:00
|
|
|
theme-magic
|
|
|
|
|
|
|
|
# defaults-packages
|
|
|
|
god-mode
|
2023-11-08 06:27:32 +00:00
|
|
|
|
2023-11-05 05:55:52 +00:00
|
|
|
# completion-packages
|
|
|
|
cape
|
|
|
|
consult
|
|
|
|
corfu
|
|
|
|
corfu-terminal
|
|
|
|
embark
|
|
|
|
embark-consult
|
|
|
|
marginalia
|
|
|
|
orderless
|
|
|
|
vertico
|
|
|
|
|
|
|
|
# ide-packages
|
2023-11-12 13:24:09 +00:00
|
|
|
vterm
|
2023-11-05 05:55:52 +00:00
|
|
|
ibuffer-project
|
|
|
|
treesit-grammars.with-all-grammars
|
|
|
|
treesit-auto
|
|
|
|
apheleia
|
|
|
|
direnv
|
|
|
|
goto-chg
|
|
|
|
rainbow-delimiters
|
|
|
|
nix-mode
|
2023-11-09 07:09:48 +00:00
|
|
|
anaconda-mode
|
2023-11-05 05:55:52 +00:00
|
|
|
rust-mode
|
2023-11-09 07:09:48 +00:00
|
|
|
lua-mode
|
2023-11-05 05:55:52 +00:00
|
|
|
|
|
|
|
# media-packages
|
|
|
|
emms
|
|
|
|
|
|
|
|
# org-packages
|
|
|
|
org-roam
|
2023-11-09 07:09:48 +00:00
|
|
|
org-noter
|
2023-11-05 05:55:52 +00:00
|
|
|
org-appear
|
|
|
|
org-cliplink
|
|
|
|
org-journal
|
|
|
|
org-modern
|
|
|
|
citar
|
|
|
|
citar-embark
|
|
|
|
citar-org-roam
|
|
|
|
khalel
|
|
|
|
|
|
|
|
# project-packages
|
|
|
|
magit
|
2023-11-09 07:09:48 +00:00
|
|
|
forge
|
|
|
|
git-timemachine
|
2023-11-05 05:55:52 +00:00
|
|
|
|
|
|
|
# social-packages
|
|
|
|
mastodon
|
2023-11-09 07:09:48 +00:00
|
|
|
ement
|
2023-11-05 05:55:52 +00:00
|
|
|
|
|
|
|
# ui-packages
|
|
|
|
all-the-icons
|
|
|
|
nerd-icons
|
|
|
|
nerd-icons-completion
|
|
|
|
nerd-icons-dired
|
|
|
|
nerd-icons-ibuffer
|
2023-11-07 07:06:30 +00:00
|
|
|
ligature
|
2023-11-05 05:55:52 +00:00
|
|
|
page-break-lines
|
|
|
|
dashboard
|
|
|
|
doom-modeline
|
2023-11-09 07:09:48 +00:00
|
|
|
centaur-tabs
|
2023-11-05 05:55:52 +00:00
|
|
|
helpful
|
|
|
|
which-key
|
|
|
|
link-hint
|
2023-11-07 07:06:30 +00:00
|
|
|
darkroom
|
2023-11-05 05:55:52 +00:00
|
|
|
|
|
|
|
# writing-packages
|
|
|
|
pdf-tools
|
|
|
|
markdown-mode
|
|
|
|
pandoc-mode
|
|
|
|
auctex
|
|
|
|
auctex-latexmk
|
2023-11-09 07:09:48 +00:00
|
|
|
latex-preview-pane
|
2023-11-05 05:55:52 +00:00
|
|
|
|
|
|
|
# email-packages
|
|
|
|
mu4e
|
|
|
|
mu4e-alert
|
|
|
|
|
|
|
|
# feed-packages
|
|
|
|
elfeed
|
|
|
|
elfeed-org
|
|
|
|
elfeed-webkit
|
|
|
|
elfeed-tube
|
|
|
|
elfeed-tube-mpv
|
|
|
|
];
|
|
|
|
};
|
2023-10-19 06:33:56 +01:00
|
|
|
services.git-sync = {
|
|
|
|
enable = true;
|
2023-10-26 13:30:44 +01:00
|
|
|
repositories = with config.home; {
|
2023-11-01 18:12:17 +00:00
|
|
|
org = {
|
2023-11-01 18:23:01 +00:00
|
|
|
path = "${homeDirectory}/Org";
|
2023-11-01 18:12:17 +00:00
|
|
|
uri = "git+https://git.xenia.me.uk/xenia/Org.git";
|
|
|
|
};
|
2023-11-04 21:00:13 +00:00
|
|
|
references = {
|
|
|
|
path = "${homeDirectory}/.references";
|
|
|
|
uri = "git+https://git.xenia.me.uk/xenia/references.git";
|
|
|
|
};
|
2023-10-26 13:30:44 +01:00
|
|
|
elfeed = {
|
|
|
|
path = "${homeDirectory}/.elfeed";
|
|
|
|
uri = "git+https://git.xenia.me.uk/xenia/elfeed.git";
|
|
|
|
};
|
2023-10-19 06:33:56 +01:00
|
|
|
};
|
|
|
|
};
|
2023-11-05 05:55:52 +00:00
|
|
|
home.packages = with pkgs; [
|
|
|
|
# Emacs requirements
|
|
|
|
coreutils
|
|
|
|
fd
|
|
|
|
ripgrep
|
|
|
|
imagemagick
|
|
|
|
languagetool
|
|
|
|
wordnet
|
|
|
|
(aspellWithDicts (ds: with ds; [ en en-computers en-science ]))
|
2023-10-24 09:56:35 +01:00
|
|
|
|
2023-11-05 05:55:52 +00:00
|
|
|
# Language-specific requirements
|
|
|
|
sqlite
|
|
|
|
pandoc
|
|
|
|
gfortran
|
|
|
|
rustup
|
|
|
|
texlive.combined.scheme-full
|
|
|
|
ghostscript
|
|
|
|
mupdf
|
|
|
|
(python3.withPackages
|
|
|
|
(ps: with ps; [ python-lsp-server python-lsp-ruff pylsp-mypy ]))
|
2023-10-24 09:56:35 +01:00
|
|
|
|
2023-11-05 05:55:52 +00:00
|
|
|
# Linters
|
|
|
|
nodePackages.stylelint
|
2023-10-24 09:56:35 +01:00
|
|
|
|
2023-11-05 05:55:52 +00:00
|
|
|
# Formatters
|
|
|
|
nixfmt
|
|
|
|
beautysh
|
|
|
|
black
|
|
|
|
isort
|
|
|
|
nodePackages.fixjson
|
|
|
|
fprettify
|
|
|
|
shellharden
|
|
|
|
shfmt
|
|
|
|
stylua
|
|
|
|
python3Packages.mdformat
|
|
|
|
html-tidy
|
|
|
|
nodePackages.js-beautify
|
|
|
|
|
|
|
|
# LSP Servers
|
|
|
|
nixd
|
|
|
|
fortls
|
|
|
|
shellcheck
|
|
|
|
marksman
|
|
|
|
luajitPackages.lua-lsp
|
|
|
|
# nodePackages.pyright
|
|
|
|
nodePackages.yaml-language-server
|
|
|
|
nodePackages.bash-language-server
|
|
|
|
nodePackages.javascript-typescript-langserver
|
|
|
|
nodePackages.vscode-html-languageserver-bin
|
|
|
|
nodePackages.vscode-css-languageserver-bin
|
|
|
|
nodePackages.vscode-json-languageserver-bin
|
|
|
|
nodePackages.dockerfile-language-server-nodejs
|
|
|
|
];
|
2023-07-26 15:45:24 +01:00
|
|
|
}
|