nixos/home/emacs.nix

187 lines
3.6 KiB
Nix
Raw Normal View History

2023-12-11 12:11:55 +00:00
{ config, pkgs, ... }: {
programs.emacs = {
2023-12-11 12:11:55 +00:00
# Clone emacs config from https://git.xenia.me.uk/xenia/emacs.git
enable = true;
package = pkgs.emacs29-pgtk;
2023-12-20 07:54:26 +00:00
extraConfig = ''(org-babel-load-file "~/.emacs/README.org")'';
extraPackages = epkgs:
with epkgs; [
# theme
2023-12-18 08:15:18 +00:00
catppuccin-theme
2023-12-19 14:46:57 +00:00
# password-store
password-store
password-store-otp
pass # password-store major mode
# completion-packages
cape
consult
corfu
corfu-terminal
embark
embark-consult
marginalia
orderless
vertico
# snippets-packages
2023-12-04 09:58:58 +00:00
tempel
tempel-collection
# ide-packages
vterm
flymake-popon
treesit-grammars.with-all-grammars
treesit-auto
apheleia
direnv
goto-chg
rainbow-delimiters
aggressive-indent
nix-mode
rust-mode
lua-mode
# media-packages
emms
# org-packages
2023-12-20 10:59:56 +00:00
org-alert
org-noter
org-cliplink
org-journal
org-modern
citar
citar-embark
citar-org-roam
khalel
# project-packages
2023-11-16 12:50:37 +00:00
ibuffer-project
magit
forge
# social-packages
mastodon
ement
# 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
page-break-lines
2023-11-21 06:26:05 +00:00
doom-modeline
helpful
which-key
link-hint
2023-12-20 10:31:44 +00:00
dashboard
2023-11-07 07:06:30 +00:00
darkroom
2023-12-08 15:15:21 +00:00
diff-hl
2023-12-14 09:39:18 +00:00
treemacs
treemacs-magit
treemacs-nerd-icons
# writing-packages
markdown-mode
pandoc-mode
auctex
auctex-latexmk
latex-preview-pane
# email-packages
mu4e
mu4e-alert
# feed-packages
elfeed
elfeed-org
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";
};
};
};
pantalaimon = {
enable = true;
settings = {
Default = {
LogLevel = "Debug";
SSL = true;
};
local-matrix = {
Homeserver = "https://matrix.xenia.me.uk";
ListenAddress = "127.0.0.1";
ListenPort = 8008;
2023-11-17 08:02:21 +00:00
SSL = false;
UseKeyring = true;
2023-11-17 08:02:21 +00:00
IgnoreVerification = true;
};
};
};
};
home.packages = with pkgs; [
# Emacs requirements
fd
ripgrep
imagemagick
languagetool
wordnet
(aspellWithDicts (ds: with ds; [ en en-computers en-science ]))
2023-11-30 06:45:59 +00:00
# For EMMS
mp3info
# Language-specific requirements
sqlite
pandoc
texlive.combined.scheme-full
ghostscript
mupdf
2023-12-16 13:28:24 +00:00
poppler_utils
# Linters
nodePackages.stylelint
# Formatters
nodePackages.prettier
nixfmt
black
isort
fprettify
ruff
rustfmt
stylua
shfmt
# LSP Servers
nil
fortls
shellcheck
2023-12-04 11:39:12 +00:00
rust-analyzer
luajitPackages.lua-lsp
nodePackages.pyright
nodePackages.yaml-language-server
nodePackages.bash-language-server
];
}