nixos/home/emacs/default.nix
Evie Litherland-Smith 94e1a23bf2 Major theme updates
Switched back to tokyo-night for base scheme but disable a lot of
stylix config (and selectively re-enable for certain
modules). Manually theme things using the tokyonight palette for a
nicer and more cohesive experience

Also change to a new wallpaper, fits scheme better as well

Added named workspaces for common programs (emacs, chromium, steam)
and keep numbered workspaces as generic scratch space

Move MPRIS to right section, add hyprland/window module (with a
separator bar)
2023-11-12 13:24:09 +00:00

176 lines
3.4 KiB
Nix

{ config, pkgs, ... }:
{
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
theme-magic
# defaults-packages
god-mode
# completion-packages
cape
consult
corfu
corfu-terminal
embark
embark-consult
marginalia
orderless
vertico
# ide-packages
vterm
ibuffer-project
treesit-grammars.with-all-grammars
treesit-auto
apheleia
direnv
goto-chg
rainbow-delimiters
nix-mode
anaconda-mode
rust-mode
lua-mode
# media-packages
emms
# org-packages
org-roam
org-noter
org-appear
org-cliplink
org-journal
org-modern
citar
citar-embark
citar-org-roam
khalel
# project-packages
magit
forge
git-timemachine
# social-packages
mastodon
ement
# ui-packages
all-the-icons
nerd-icons
nerd-icons-completion
nerd-icons-dired
nerd-icons-ibuffer
ligature
page-break-lines
dashboard
doom-modeline
centaur-tabs
helpful
which-key
link-hint
darkroom
# writing-packages
pdf-tools
markdown-mode
pandoc-mode
auctex
auctex-latexmk
latex-preview-pane
# 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
];
}