120 lines
2.7 KiB
Nix
120 lines
2.7 KiB
Nix
{ config, inputs, lib, options, pkgs, ... }:
|
|
|
|
with lib;
|
|
let
|
|
cfg = config.samfelag.modules.editors.emacs;
|
|
in {
|
|
options.samfelag.modules.editors.emacs = {
|
|
enable = mkEnableOption "emacs";
|
|
};
|
|
|
|
config = mkIf cfg.enable {
|
|
nixpkgs.overlays = [ inputs.emacs-overlay.overlay ];
|
|
|
|
# home.file.doom-emacs = {
|
|
# source = ./doom-emacs;
|
|
# target = ".config/doom";
|
|
# recursive = true;
|
|
# # onChange = "doom upgrade";
|
|
# };
|
|
|
|
# home.programs.emacs = {
|
|
# enable = true;
|
|
# # package = pkgs.emacsPgtkGcc;
|
|
# extraPackages = epkgs: [ epkgs.vterm ];
|
|
# };
|
|
|
|
# home.services.emacs = {
|
|
# enable = true;
|
|
# client.enable = true;
|
|
# socketActivation.enable = true;
|
|
# };
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
## Emacs itself
|
|
binutils
|
|
emacs
|
|
# emacsPgtkGcc
|
|
|
|
## Doom dependencies
|
|
git
|
|
(ripgrep.override { withPCRE2 = true; })
|
|
gnutls
|
|
|
|
## Opt deps
|
|
fd
|
|
imagemagick
|
|
pinentry_emacs
|
|
zstd
|
|
|
|
# ## Modules deps
|
|
# # :lang cc
|
|
# ccls
|
|
# cmake
|
|
# gcc
|
|
# glslang
|
|
# # :lang haskell
|
|
# stack
|
|
# haskellPackages.ghcide
|
|
# haskellPackages.hoogle
|
|
# # :lang latex && :lang org (latex preview)
|
|
# (texlive.combine { inherit (texlive) scheme-full; })
|
|
# # biber
|
|
# # :lang nix
|
|
# nixfmt
|
|
# # :lang python
|
|
# black
|
|
# python3
|
|
# python3Packages.isort
|
|
# # python3Packages.python-language-server
|
|
# python3Packages.pytest
|
|
# python3Packages.setuptools
|
|
# nodePackages.pyright
|
|
# # :tools lookup & :lang org +roam
|
|
# sqlite
|
|
# # :tools direnv
|
|
# direnv
|
|
# # :tools vterm
|
|
# gcc
|
|
# gnumake
|
|
# libtool
|
|
|
|
# Fonts
|
|
emacs-all-the-icons-fonts
|
|
# fira-code
|
|
# fira-code-symbols
|
|
|
|
graphviz
|
|
];
|
|
|
|
fonts.fonts = [ pkgs.emacs-all-the-icons-fonts ];
|
|
|
|
# env.PATH = [ "$XDG_CONFIG_HOME/emacs/bin" ];
|
|
|
|
environment.sessionVariables = rec {
|
|
XDG_CACHE_HOME = "$HOME/.cache";
|
|
XDG_CONFIG_HOME = "$HOME/.config";
|
|
XDG_BIN_HOME = "$HOME/.local/bin";
|
|
XDG_DATA_HOME = "$HOME/.local/share";
|
|
|
|
PATH = [
|
|
"$HOME/.config/emacs/bin"
|
|
];
|
|
};
|
|
|
|
home-manager.users.marc.xdg.configFile."doom".source = ../../../config/doom;
|
|
|
|
system.userActivationScripts = {
|
|
installDoomEmacs = ''
|
|
EMACS_FOLDER="$HOME/.config/emacs"
|
|
echo $XDG_CONFIG_HOME
|
|
echo $EMACS_FOLDER
|
|
if [ ! -d "$EMACS_FOLDER" ]; then
|
|
${pkgs.git}/bin/git clone --depth=1 --single-branch "https://github.com/doomemacs/doomemacs" "$EMACS_FOLDER"
|
|
fi
|
|
'';
|
|
};
|
|
|
|
};
|
|
}
|