Files
nix-config/home/programs/emacs/default.nix

146 lines
3.1 KiB
Nix

{
pkgs,
lib,
config,
...
}: let
doomPath = "/home/synchronous/nix-cfg/home/programs/emacs/cfg";
in {
# https://nixos-and-flakes.thiscute.world/best-practices/accelerating-dotfiles-debugging
xdg.configFile."doom" = {
source = config.lib.file.mkOutOfStoreSymlink doomPath;
recursive = true;
};
programs.emacs = {
enable = true;
# package = pkgs.emacs-gtk;
# package = pkgs.emacs-unstable;
extraPackages = epkgs: [
epkgs.vterm
epkgs.irony
epkgs.irony-eldoc
epkgs.git-commit
];
};
services.emacs = {
enable = true;
package = pkgs.emacs-gtk;
startWithUserSession = "graphical";
socketActivation.enable = true;
# defaultEditor = true;
client = {
enable = true;
};
};
home.packages = with pkgs; [
(writeShellApplication {
name = "ec";
runtimeInputs = [emacs];
text = ''
emacsclient -c
'';
})
wordnet
w3m
## Emacs itself
binutils
coreutils
# 28.2 + native-comp
#((emacsPackagesFor pkgs.emacs-gtk).emacsWithPackages
#(epkgs: [ epkgs.vterm ]))
# necessary for vterm
cmake
gnumake
gcc
libtool
# emacsPackages.agda-input
agda
emacsPackages.agda2-mode
emacsPackages.agda-editor-tactics
# coq
coq_8_19
# lean4
## Doom dependencies
(ripgrep.override {withPCRE2 = true;})
gnutls
# Performance booster
emacs-lsp-booster
## Treemacs
python3
## Optional dependencies
imagemagick
zstd
sqlite
# gcc # moved to environment.systemPackages
## Module dependencies
# :checkers spell
(aspellWithDicts (ds: with ds; [en en-computers en-science]))
# :tools editorconfig
editorconfig-core-c
# :tools lookup & :lang org +roam
sqlite
# :lang latex & :lang org (latex previews)
texlive.combined.scheme-medium
# :app everywhere
xclip
xdotool
xorg.xwininfo
xorg.xprop
# :lang cc
# clang # moved to environment.systemPackages
# clang-tools
# github copilot
## Fonts
# dejavu_fonts
# source-serif-pro
# fira-code
# fira-code-symbols
# noto-fonts
# font-awesome
# iosevka
# iosevka-bin
# iosevka-comfy.comfy-wide
# iosevka-comfy.comfy-wide-duo
# iosevka-comfy.comfy-wide-fixed
# iosevka-comfy.comfy-wide-motion
# iosevka-comfy.comfy-wide-motion-duo
# iosevka-comfy.comfy-wide-motion-fixed
# modeline
nerd-font-patcher
# eaf
wmctrl
fd
aria
];
xdg.enable = true;
xdg.configHome = "/home/synchronous/.config";
# fonts.fontconfig.enable = true;
# GIT_SSH_COMMAND = ${pkgs.openssh}/bin/ssh ${pkgs.git}/bin/git clone "git@github.com:Cajunvooodoo/Doom-Emacs-Config.git" "${config.xdg.configHome}/doom"
# Install doom emacs
home.activation = {
installDoomEmacs = lib.hm.dag.entryAfter ["installPhase"] ''
if [ ! -d "${config.xdg.configHome}/emacs" ]; then
${pkgs.git}/bin/git clone --depth=1 --single-branch "https://github.com/doomemacs/doomemacs" "${config.xdg.configHome}/emacs"
fi
'';
};
}