linuxware/programs/emacs/default.nix

44 lines
982 B
Nix

{ pkgs, lib, ... }:
{
programs.emacs.enable = true;
home.packages = with pkgs; [
# Optional for DOOM
clang
coreutils
fd
pandoc # For org-pandoc
];
# Neatly place the configuration files for doom in their right place.
xdg.configFile."doom" =
let
# What DOOM needs to be able to install/sync.
packagesNeeded = with pkgs; [
git
emacs
ripgrep
];
in
{
source = ./doom;
recursive = true;
onChange = # sh
''
# Need to set this so DOOM can find all binaries.
export PATH="${lib.strings.concatMapStrings (x: x + "/bin:") packagesNeeded}$PATH"
if [ ! -d "$HOME/.emacs.d" ]; then
git clone https://github.com/hlissner/doom-emacs $HOME/.emacs.d
$HOME/.emacs.d/bin/doom install
else
# Needed to apply the configuration changes.
$HOME/.emacs.d/bin/doom sync
fi
'';
};
}