nixos/home/emacs/default.nix
Evie Litherland-Smith 7b051c3c36 Disable stylix themeing of emacs, switch to modus-vivendi-tinted theme
Move all of UI config section in to new format, including changing to
use-package
2023-11-08 06:27:32 +00:00

172 lines
3.4 KiB
Nix

{ config, pkgs, ... }:
{
stylix.targets.emacs.enable = false;
xdg.configFile = {
"emacs/init.el".source = ./init.el;
"emacs/snippets".source = ./snippets;
};
programs.emacs = {
enable = true;
package = pkgs.emacs29-pgtk;
extraPackages = epkgs:
with epkgs; [
# themes
modus-themes
doom-themes
base16-theme
tron-legacy-theme
# completion-packages
cape
consult
corfu
corfu-terminal
embark
embark-consult
marginalia
orderless
vertico
# ide-packages
editorconfig
aggressive-indent
ibuffer-project
treesit-grammars.with-all-grammars
treesit-auto
apheleia
direnv
goto-chg
rainbow-delimiters
yasnippet
yasnippet-snippets
nix-mode
rust-mode
# media-packages
emms
# org-packages
org-roam
org-appear
org-cliplink
org-journal
org-modern
citar
citar-embark
citar-org-roam
khalel
# project-packages
magit
git-gutter
# social-packages
mastodon
# ui-packages
all-the-icons
nerd-icons
nerd-icons-completion
nerd-icons-dired
nerd-icons-ibuffer
ligature
page-break-lines
dashboard
doom-modeline
helpful
which-key
link-hint
darkroom
# writing-packages
pdf-tools
markdown-mode
pandoc-mode
auctex
auctex-latexmk
# email-packages
mu4e
mu4e-alert
# feed-packages
elfeed
elfeed-org
elfeed-webkit
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";
};
};
};
home.packages = with pkgs; [
# Emacs requirements
coreutils
fd
ripgrep
imagemagick
languagetool
wordnet
(aspellWithDicts (ds: with ds; [ en en-computers en-science ]))
# 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 ]))
# Linters
nodePackages.stylelint
# 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
];
}