Manage doom manually

This commit is contained in:
Paul-Henri Froidmont 2023-05-17 23:23:34 +02:00
parent 25f776ddff
commit 00fec679ba
Signed by: phfroidmont
GPG key ID: BE948AFD7E7873BE
4 changed files with 134 additions and 30 deletions

View file

@ -98,12 +98,13 @@
magit ; a git porcelain for Emacs
;;make ; run make tasks from Emacs
;;pass ; password manager for nerds
;;pdf ; pdf enhancements
pdf ; pdf enhancements
;;prodigy ; FIXME managing external services & code builders
;;rgb ; creating color strings
;;taskrunner ; taskrunner for all your projects
terraform ; infrastructure as code
;;tmux ; an API for interacting with tmux
tree-sitter
;;upload ; map local to remote projects via ssh/ftp
:os

View file

@ -9,16 +9,29 @@ in {
config = mkIf cfg.enable {
home-manager.users.${config.user.name} = {
imports = [ inputs.nix-doom-emacs.hmModule ];
nixpkgs.overlays = [ inputs.emacs-overlay.overlay ];
home.packages = with pkgs.unstable; [
binutils
ripgrep
fd
findutils.locate
metals
rnix-lsp
nixfmt
terraform
pandoc
# Formatters and linters
nixfmt # nix formatter
shfmt # sh formatter
shellcheck # sh linter
html-tidy # HTML formatter
nodePackages.stylelint # CSS linter
nodePackages.js-beautify # JS/CSS/HTML formatter
# LSPs
metals # Scala
rnix-lsp # Nix
phpactor # PHP
# Used by org-roam
sqlite
@ -27,30 +40,68 @@ in {
# Used by elfeed-tube
yt-dlp
mpv
# Used by dirvish
imagemagick
ffmpegthumbnailer
mediainfo
poppler_utils
gnutar
unzip
];
services.emacs = {
enable = true;
client.enable = true;
package = with pkgs;
((emacsPackagesFor emacsNativeComp).emacsWithPackages
(epkgs: [ epkgs.vterm ]));
};
programs.doom-emacs = {
# Use either this or nix-doom-emacs
programs.emacs = {
enable = true;
doomPrivateDir = ./doom.d;
emacsPackagesOverlay = final: prev: {
ob-ammonite = with final;
(trivialBuild {
src = pkgs.fetchFromGitHub {
owner = "zwild";
repo = "ob-ammonite";
rev = "39937dff395e70aff76a4224fa49cf2ec6c57cca";
sha256 = pkgs.lib.fakeSha256;
};
pname = "ob-ammonite";
packageRequires = [ s dash editorconfig ];
});
};
package = with pkgs;
((emacsPackagesFor emacsNativeComp).emacsWithPackages
(epkgs: [ epkgs.vterm ]));
};
xdg.configFile = { "doom" = { source = ./doom.d; }; };
home.sessionPath = [
"${
config.home-manager.users.${config.user.name}.xdg.configHome
}/emacs/bin"
];
home.activation = {
installDoomEmacs = ''
if [ ! -d "${
config.home-manager.users.${config.user.name}.xdg.configHome
}/emacs" ]; then
git clone --depth=1 --single-branch https://github.com/doomemacs/doomemacs "${
config.home-manager.users.${config.user.name}.xdg.configHome
}/emacs"
fi
'';
};
# imports = [ inputs.nix-doom-emacs.hmModule ];
# programs.doom-emacs = {
# enable = true;
# doomPrivateDir = ./doom.d;
# emacsPackagesOverlay = final: prev: {
# ob-ammonite = with final;
# (trivialBuild {
# src = pkgs.fetchFromGitHub {
# owner = "zwild";
# repo = "ob-ammonite";
# rev = "39937dff395e70aff76a4224fa49cf2ec6c57cca";
# sha256 = pkgs.lib.fakeSha256;
# };
# pname = "ob-ammonite";
# packageRequires = [ s dash editorconfig ];
# });
# };
# };
};
fonts.fonts = [ pkgs.emacs-all-the-icons-fonts ];
};
}