Evie Litherland-Smith
94a20654cd
Ensure it's run before use-package is used or theme is loaded, since nix puts these at the start of the extra config block Run vdirsyncer when khalel first loaded, before importing, to make sure things are up to date. No run at startup so only affects when first opening email/org-agenda
131 lines
2.7 KiB
Nix
131 lines
2.7 KiB
Nix
{ config, pkgs, ... }:
|
|
{
|
|
imports = [
|
|
../shell/default.nix
|
|
../shell/git.nix
|
|
../gpg/default.nix
|
|
];
|
|
home.file.".emacs.d/early-init.el".text = ''
|
|
(setopt use-package-check-before-init t
|
|
use-package-enable-imenu-support t
|
|
base16-theme-distinct-fringe-background t
|
|
base16-theme-highlight-mode-line 'contrast)
|
|
'';
|
|
services.emacs = {
|
|
enable = true;
|
|
package = config.programs.emacs.finalPackage;
|
|
defaultEditor = true;
|
|
client.enable = true;
|
|
socketActivation.enable = false;
|
|
startWithUserSession = "graphical";
|
|
};
|
|
programs.emacs = {
|
|
# Clone emacs config from https://git.xenia.me.uk/pixelifytica/emacs.git
|
|
enable = true;
|
|
package = pkgs.emacs29.override {
|
|
withImageMagick = true;
|
|
withPgtk = true;
|
|
};
|
|
extraConfig = builtins.readFile ./init.el;
|
|
extraPackages =
|
|
epkgs: with epkgs; [
|
|
# UI and Appearance
|
|
delight
|
|
nerd-icons
|
|
nerd-icons-dired
|
|
nerd-icons-ibuffer
|
|
nerd-icons-corfu
|
|
visual-fill-column
|
|
# Email and Calendar
|
|
khalel
|
|
mu4e
|
|
# Other (TODO sort)
|
|
ligature
|
|
which-key
|
|
diff-hl
|
|
org
|
|
org-roam
|
|
org-noter
|
|
citar
|
|
vertico
|
|
marginalia
|
|
orderless
|
|
corfu
|
|
corfu-terminal
|
|
cape
|
|
consult
|
|
consult-eglot
|
|
tempel
|
|
tempel-collection
|
|
rainbow-delimiters
|
|
envrc
|
|
treesit-grammars.with-all-grammars
|
|
treesit-auto
|
|
apheleia
|
|
flymake-shellcheck
|
|
flymake-yamllint
|
|
flymake-clippy
|
|
flymake-eslint
|
|
magit
|
|
forge
|
|
nix-mode
|
|
lua-mode
|
|
python-docstring
|
|
python-pytest
|
|
auctex
|
|
markdown-mode
|
|
pandoc-mode
|
|
scad-mode
|
|
];
|
|
};
|
|
home.packages = with pkgs; [
|
|
# Plugin requirements
|
|
gcc
|
|
sqlite
|
|
languagetool
|
|
wordnet
|
|
pandoc
|
|
ghostscript
|
|
poppler_utils
|
|
graphviz-nox
|
|
|
|
# Customised LaTeX install
|
|
(texlive.combine {
|
|
inherit (texlive)
|
|
scheme-medium
|
|
dvisvgm
|
|
dvipng
|
|
wrapfig
|
|
amsmath
|
|
ulem
|
|
hyperref
|
|
capt-of
|
|
listings
|
|
bera
|
|
;
|
|
latex-beamer-ukaea.pkgs = [ (callPackage ./texlive/latex-beamer-ukaea/default.nix { }) ];
|
|
})
|
|
|
|
## Linters
|
|
shellcheck
|
|
yamllint
|
|
ruff
|
|
|
|
## Formatters
|
|
nixfmt-rfc-style
|
|
shfmt
|
|
stylua
|
|
nodePackages.prettier
|
|
nodePackages.prettier-plugin-toml
|
|
|
|
## Language servers
|
|
nixd
|
|
lua-language-server
|
|
rust-analyzer
|
|
python3Packages.python-lsp-server
|
|
nodePackages.typescript-language-server
|
|
|
|
];
|
|
xdg.configFile."ruff/pyproject.toml".source = ./ruff.toml;
|
|
}
|