{ config, lib, pkgs, eaf, eaf-browser, org-nursery, myThemePolarity, ... }: let myDashboardLogo = ./. + "/nix-" + myThemePolarity + ".png"; in { programs.doom-emacs = { enable = true; doomPrivateDir = ./.; # This block from https://github.com/znewman01/dotfiles/blob/be9f3a24c517a4ff345f213bf1cf7633713c9278/emacs/default.nix#L12-L34 # Only init/packages so we only rebuild when those change. doomPackageDir = let filteredPath = builtins.path { path = ./.; name = "doom-private-dir-filtered"; filter = path: type: builtins.elem (baseNameOf path) [ "init.el" "packages.el" ]; }; in pkgs.linkFarm "doom-packages-dir" [ { name = "init.el"; path = "${filteredPath}/init.el"; } { name = "packages.el"; path = "${filteredPath}/packages.el"; } { name = "config.el"; path = pkgs.emptyFile; } ]; # End block }; home.file.".emacs.d/themes/doom-stylix-theme.el".source = config.lib.stylix.colors { template = builtins.readFile ./themes/doom-stylix-theme.el.mustache; extension = ".el"; }; home.packages = with pkgs; [ git nodejs wmctrl jshon aria hledger hunspell hunspellDicts.en_US-large pandoc nodePackages.mermaid-cli (python3.withPackages (p: with p; [ pandas requests pyqt6 sip qtpy qt6.qtwebengine epc lxml pyqt6-webengine pysocks pymupdf markdown ]))]; home.sessionVariables = { EDITOR = "emacsclient"; }; home.file.".emacs.d/eaf" = { source = "${eaf}"; recursive = true; }; home.file.".emacs.d/eaf/app/browser" = { source = "${eaf-browser}"; recursive = true; onChange = " pushd ~/.emacs.d/eaf/app/browser; rm package*.json; npm install darkreader @mozilla/readability && rm package*.json; popd; "; }; home.file.".emacs.d/org-nursery" = { source = "${org-nursery}"; }; home.file.".emacs.d/dashboard-logo.png".source = myDashboardLogo; }