nixos/system/home/emacs/default.nix
Evie Litherland-Smith 5b9f7e1e11 Emacs: use stylix to customise base16-theme package
Add my custom modifications from README.el to extraConfig.el
2024-11-25 07:44:01 +00:00

103 lines
2 KiB
Nix

{ config, pkgs, ... }:
{
imports = [
../shell/default.nix
../shell/git.nix
../gpg/default.nix
];
services.emacs = {
enable = true;
package = config.programs.emacs.finalPackage;
defaultEditor = true;
client.enable = true;
socketActivation.enable = true;
startWithUserSession = false;
};
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 ./extraConfig.el;
extraPackages =
epkgs: with epkgs; [
treesit-grammars.with-all-grammars
emacsql-sqlite
mu4e
];
};
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 { }) ];
})
# Development tools
## Code screenshots
silicon
## Python Environments
poetry
## Linters
shellcheck
yamllint
ruff
## Formatters
nixfmt-rfc-style
shfmt
stylua
nodePackages.prettier
nodePackages.prettier-plugin-toml
## Language servers
nixd
lua-language-server
## Interpreters
(python3.withPackages (
ps: with ps; [
tkinter
python-lsp-server
pylsp-rope
rope
mypy
numpy
scipy
xarray
matplotlib
]
))
(luajit.withPackages (ps: [ (ps.callPackage ./luarocks/scilua.nix { }) ]))
];
xdg.configFile = {
"ruff/pyproject.toml".source = ./ruff.toml;
"pypoetry/config.toml".source = ./pypoetry.toml;
};
}