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

71
flake.lock generated
View file

@ -34,6 +34,25 @@
} }
}, },
"emacs-overlay": { "emacs-overlay": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1684348799,
"narHash": "sha256-K/2G+BnHK3JdGnT/qkYWGljgy5kUeCZDSnBz4cLqb+c=",
"owner": "nix-community",
"repo": "emacs-overlay",
"rev": "95c844b1985808df780acc1835a354fe3ff27282",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "emacs-overlay",
"type": "github"
}
},
"emacs-overlay_2": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1676366521, "lastModified": 1676366521,
@ -163,6 +182,21 @@
} }
}, },
"flake-utils": { "flake-utils": {
"locked": {
"lastModified": 1667395993,
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_2": {
"inputs": { "inputs": {
"systems": "systems" "systems": "systems"
}, },
@ -255,7 +289,7 @@
"inputs": { "inputs": {
"doom-emacs": "doom-emacs", "doom-emacs": "doom-emacs",
"doom-snippets": "doom-snippets", "doom-snippets": "doom-snippets",
"emacs-overlay": "emacs-overlay", "emacs-overlay": "emacs-overlay_2",
"emacs-so-long": "emacs-so-long", "emacs-so-long": "emacs-so-long",
"evil-escape": "evil-escape", "evil-escape": "evil-escape",
"evil-markdown": "evil-markdown", "evil-markdown": "evil-markdown",
@ -263,10 +297,10 @@
"evil-quick-diff": "evil-quick-diff", "evil-quick-diff": "evil-quick-diff",
"explain-pause-mode": "explain-pause-mode", "explain-pause-mode": "explain-pause-mode",
"flake-compat": "flake-compat", "flake-compat": "flake-compat",
"flake-utils": "flake-utils", "flake-utils": "flake-utils_2",
"format-all": "format-all", "format-all": "format-all",
"nix-straight": "nix-straight", "nix-straight": "nix-straight",
"nixpkgs": "nixpkgs", "nixpkgs": "nixpkgs_2",
"nose": "nose", "nose": "nose",
"ob-racket": "ob-racket", "ob-racket": "ob-racket",
"org": "org", "org": "org",
@ -311,17 +345,18 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1682566018, "lastModified": 1673540789,
"narHash": "sha256-HPzPRFiy2o/7k7mtnwfM1E6NVZHiFbPdmYCMoIpkHO4=", "narHash": "sha256-xqnxBOK3qctIeUVxecydrEDbEXjsvHCPGPbvsl63M/U=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "8e3b64db39f2aaa14b35ee5376bd6a2e707cadc2", "rev": "0f213d0fee84280d8c3a97f7469b988d6fe5fcdf",
"type": "github" "type": "github"
}, },
"original": { "original": {
"id": "nixpkgs", "owner": "NixOS",
"ref": "nixpkgs-unstable", "ref": "nixos-unstable",
"type": "indirect" "repo": "nixpkgs",
"type": "github"
} }
}, },
"nixpkgs-unstable": { "nixpkgs-unstable": {
@ -341,6 +376,21 @@
} }
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": {
"lastModified": 1682566018,
"narHash": "sha256-HPzPRFiy2o/7k7mtnwfM1E6NVZHiFbPdmYCMoIpkHO4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "8e3b64db39f2aaa14b35ee5376bd6a2e707cadc2",
"type": "github"
},
"original": {
"id": "nixpkgs",
"ref": "nixpkgs-unstable",
"type": "indirect"
}
},
"nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1684171562, "lastModified": 1684171562,
"narHash": "sha256-BMUWjVWAUdyMWKk0ATMC9H0Bv4qAV/TXwwPUvTiC5IQ=", "narHash": "sha256-BMUWjVWAUdyMWKk0ATMC9H0Bv4qAV/TXwwPUvTiC5IQ=",
@ -470,11 +520,12 @@
}, },
"root": { "root": {
"inputs": { "inputs": {
"emacs-overlay": "emacs-overlay",
"gruvbox-gtk-theme": "gruvbox-gtk-theme", "gruvbox-gtk-theme": "gruvbox-gtk-theme",
"gruvbox-kvantum-theme": "gruvbox-kvantum-theme", "gruvbox-kvantum-theme": "gruvbox-kvantum-theme",
"home-manager": "home-manager", "home-manager": "home-manager",
"nix-doom-emacs": "nix-doom-emacs", "nix-doom-emacs": "nix-doom-emacs",
"nixpkgs": "nixpkgs_2", "nixpkgs": "nixpkgs_3",
"nixpkgs-unstable": "nixpkgs-unstable" "nixpkgs-unstable": "nixpkgs-unstable"
} }
}, },

View file

@ -6,6 +6,7 @@
url = "github:nix-community/home-manager/release-22.11"; url = "github:nix-community/home-manager/release-22.11";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
emacs-overlay.url = "github:nix-community/emacs-overlay";
nix-doom-emacs.url = "github:nix-community/nix-doom-emacs"; nix-doom-emacs.url = "github:nix-community/nix-doom-emacs";
gruvbox-gtk-theme = { gruvbox-gtk-theme = {
url = "github:Fausto-Korpsvart/Gruvbox-GTK-Theme"; url = "github:Fausto-Korpsvart/Gruvbox-GTK-Theme";

View file

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

View file

@ -9,16 +9,29 @@ in {
config = mkIf cfg.enable { config = mkIf cfg.enable {
home-manager.users.${config.user.name} = { home-manager.users.${config.user.name} = {
imports = [ inputs.nix-doom-emacs.hmModule ]; nixpkgs.overlays = [ inputs.emacs-overlay.overlay ];
home.packages = with pkgs.unstable; [ home.packages = with pkgs.unstable; [
binutils
ripgrep ripgrep
fd fd
findutils.locate findutils.locate
metals terraform
rnix-lsp pandoc
nixfmt
# 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 # Used by org-roam
sqlite sqlite
@ -27,30 +40,68 @@ in {
# Used by elfeed-tube # Used by elfeed-tube
yt-dlp yt-dlp
mpv mpv
# Used by dirvish
imagemagick
ffmpegthumbnailer
mediainfo
poppler_utils
gnutar
unzip
]; ];
services.emacs = { services.emacs = {
enable = true; enable = true;
client.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; enable = true;
doomPrivateDir = ./doom.d; package = with pkgs;
emacsPackagesOverlay = final: prev: { ((emacsPackagesFor emacsNativeComp).emacsWithPackages
ob-ammonite = with final; (epkgs: [ epkgs.vterm ]));
(trivialBuild {
src = pkgs.fetchFromGitHub {
owner = "zwild";
repo = "ob-ammonite";
rev = "39937dff395e70aff76a4224fa49cf2ec6c57cca";
sha256 = pkgs.lib.fakeSha256;
};
pname = "ob-ammonite";
packageRequires = [ s dash editorconfig ];
});
}; };
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 ];
}; };
} }