2021-09-10 14:00:56 +02:00
|
|
|
{ config, lib, pkgs, inputs, ... }:
|
2021-09-09 21:55:28 +02:00
|
|
|
|
|
|
|
let
|
|
|
|
base = {
|
|
|
|
programs.emacs.enable = true;
|
2021-09-10 14:00:56 +02:00
|
|
|
programs.emacs.package = pkgs.emacsGit;
|
2021-09-09 21:55:28 +02:00
|
|
|
services.emacs.enable = true;
|
2021-09-10 14:00:56 +02:00
|
|
|
services.emacs.package = pkgs.emacsGit;
|
2021-09-09 21:55:28 +02:00
|
|
|
|
|
|
|
xdg = {
|
|
|
|
enable = true;
|
|
|
|
configFile = {
|
|
|
|
"doom" = {
|
2021-09-09 22:06:18 +02:00
|
|
|
source = ./doom;
|
2021-09-09 21:55:28 +02:00
|
|
|
recursive = true;
|
|
|
|
onChange = ''
|
2021-09-15 00:41:46 +02:00
|
|
|
#!/bin/sh
|
|
|
|
DOOM="$HOME/.emacs.d"
|
|
|
|
if [ ! -d "$DOOM" ]; then
|
|
|
|
git clone https://github.com/hlissner/doom-emacs.git "$DOOM"
|
|
|
|
"$DOOM/bin/doom" -y install
|
|
|
|
fi
|
2021-09-09 21:55:28 +02:00
|
|
|
|
2021-09-15 00:41:46 +02:00
|
|
|
"$DOOM/bin/doom" sync
|
|
|
|
'';
|
2021-09-09 21:55:28 +02:00
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
2021-09-10 14:00:56 +02:00
|
|
|
|
|
|
|
home.packages = with pkgs; [
|
|
|
|
## Emacs itself
|
2021-09-15 00:41:46 +02:00
|
|
|
binutils # native-comp needs 'as', provided by this
|
2021-09-10 14:00:56 +02:00
|
|
|
# emacsPgtkGcc # 28 + pgtk + native-comp
|
|
|
|
# ((emacsPackagesNgGen emacsPgtkGcc).emacsWithPackages (epkgs: [
|
|
|
|
# epkgs.vterm
|
|
|
|
# ]))
|
|
|
|
|
|
|
|
## Doom dependencies
|
|
|
|
git
|
2021-09-15 00:41:46 +02:00
|
|
|
(ripgrep.override { withPCRE2 = true; })
|
|
|
|
gnutls # for TLS connectivity
|
2021-09-10 14:00:56 +02:00
|
|
|
|
|
|
|
## Optional dependencies
|
2021-09-15 00:41:46 +02:00
|
|
|
fd # faster projectile indexing
|
|
|
|
imagemagick # for image-dired
|
|
|
|
zstd # for undo-fu-session/undo-tree compression
|
2021-09-10 14:00:56 +02:00
|
|
|
|
|
|
|
## Module dependencies
|
|
|
|
# :checkers spell
|
2021-09-29 13:37:02 +02:00
|
|
|
(aspellWithDicts (ds: with ds; [ en en-computers en-science de ]))
|
2021-09-10 14:00:56 +02:00
|
|
|
# :checkers grammar
|
|
|
|
languagetool
|
|
|
|
# :tools lookup & :lang org +roam
|
|
|
|
sqlite
|
|
|
|
# :lang latex & :lang org (latex previews)
|
|
|
|
texlive.combined.scheme-medium
|
2021-09-29 13:37:02 +02:00
|
|
|
# :lang nix
|
|
|
|
nixfmt # for formating nix
|
|
|
|
# :app everywhere
|
|
|
|
xdotool
|
|
|
|
xorg.xwininfo
|
|
|
|
xclip
|
|
|
|
xorg.xprop
|
2021-09-10 14:00:56 +02:00
|
|
|
];
|
2021-09-09 21:55:28 +02:00
|
|
|
};
|
2021-09-29 13:37:02 +02:00
|
|
|
in {
|
2021-09-10 14:00:56 +02:00
|
|
|
fonts.fonts = [ pkgs.emacs-all-the-icons-fonts ];
|
|
|
|
|
2021-09-15 00:41:46 +02:00
|
|
|
home-manager.users.moritz = { ... }: (base);
|
2021-09-09 21:55:28 +02:00
|
|
|
}
|