aboutsummaryrefslogtreecommitdiff
path: root/modules/home-manager/emacs/default.nix
diff options
context:
space:
mode:
authorDylan <boss@tehbox.org>2026-10-22 13:02:16 +1300
committerDylan <boss@tehbox.org>2026-10-22 17:19:36 +1300
commitcc47c443a3f86aa66d2719ee57c0e6e728ee655e (patch)
tree6e57c4e13cf07486d4a02a3652bf84a9889f97a6 /modules/home-manager/emacs/default.nix
parent008b591a0a5942ae42f4c07a5abbee4dbd2d0743 (diff)
downloadnixos-configuration-dendritic.tar.gz
nixos-configuration-dendritic.zip
feat: Included the emacs configdendritic
Some packages are built with nix and some are still built with emacs
Diffstat (limited to 'modules/home-manager/emacs/default.nix')
-rw-r--r--modules/home-manager/emacs/default.nix90
1 files changed, 84 insertions, 6 deletions
diff --git a/modules/home-manager/emacs/default.nix b/modules/home-manager/emacs/default.nix
index e5bf32b..9d43d56 100644
--- a/modules/home-manager/emacs/default.nix
+++ b/modules/home-manager/emacs/default.nix
@@ -1,7 +1,7 @@
{ ... }:
{
flake.modules.homeManager.emacs =
- { pkgs, config, ... }:
+ { pkgs, config, lib, ... }:
let
tex = (
pkgs.texlive.combine {
@@ -22,23 +22,101 @@
}
);
myEmacs = (pkgs.emacsPackagesFor pkgs.emacs30).emacsWithPackages (
+ # Packages listed here come from Nix; anything else in the config
+ # is still installed by package.el (use-package-always-ensure)
epkgs: with epkgs; [
- # vterm
- # ghostel
treesit-grammars.with-all-grammars
+ # Not in nixpkgs; built here so nothing is cloned at startup
+ (trivialBuild {
+ pname = "trust-manager";
+ version = "0-unstable-2026";
+ src = pkgs.fetchFromGitHub {
+ owner = "eshelyaron";
+ repo = "trust-manager";
+ rev = "0ff311bb59c9f1bb1ecdf413fa2bfa353bf389d7";
+ hash = "sha256-hyWkMTCzIOdQ6NRjSdXAotEGsB76h2x5JvAg8X3fpug=";
+ };
+ })
+ (trivialBuild {
+ pname = "org-margin";
+ version = "0.1.0";
+ src = pkgs.fetchFromGitHub {
+ owner = "rougier";
+ repo = "org-margin";
+ rev = "4013b59ff829903a7ab86b95593be71aa5c9b87d";
+ hash = "sha256-2w9jc8Jd1McdyItqWJ+XXc62RIxsJ+Gro6Fi55EppY8=";
+ };
+ })
+ ace-window
+ consult
+ corfu
+ dashboard
+ diminish
+ direnv
+ doom-themes
+ ein
+ eldoc-box
+ embark
+ embark-consult
+ emms
+ general
+ glsl-mode
+ haskell-mode
+ helpful
+ jabber
+ kind-icon
+ magit
+ marginalia
+ nerd-icons
+ nix-mode
+ orderless
+ org-roam
+ org-superstar
+ pass
+ posframe
+ projectile
+ rust-mode
+ sudo-edit
+ totp
+ tree-sitter
+ tree-sitter-langs
+ treemacs
+ treemacs-projectile
+ typescript-mode
+ typst-ts-mode
+ vertico
+ zoom-window
]
);
in
{
+ # Config files are symlinked out of the store so they can be edited live
+ home.file =
+ let
+ link = f: config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/nixos-configuration/modules/home-manager/emacs/config/${f}";
+ in
+ {
+ ".emacs.d/init.el".source = link "init.el";
+ ".emacs.d/config".source = link "config";
+ ".emacs.d/lisp".source = link "lisp";
+ ".emacs.d/gnu.png".source = link "gnu.png";
+ };
+
services.emacs = {
enable = true;
package = myEmacs;
};
+ # Restart the daemon on switch when the package or the elisp changes
+ systemd.user.services.emacs.Unit = {
+ X-RestartIfChanged = lib.mkForce true;
+ X-Restart-Triggers = [ "${./config}" ];
+ };
+
home.packages = with pkgs; [
- mu
- emacsPackages.mu4e
- isync
+ # mu
+ # emacsPackages.mu4e
+ # isync
ispell
poppler-utils
tex