Can't find mu4e in Emacs load-path

I installed mu4e through home-manger on macOS Monterey , but when I config mu4e in Emacs, I found that the load-path does not have mu4e. Do I need any special settings?

  programs = {
    mu.enable = true;
    msmtp.enable = true;
    mbsync.enable = true;
  };

Emacs 29 installed via emacs-overlay

  programs.emacs = {
    enable = true;
    package = pkgs.emacsGit;
    overrides = self: super: {
      org = self.elpaPackages.org;
    };
}

This is the mu4e init.el setting:

(when (and (executable-find "mu") *is-a-mac*)
  (use-package mu4e
    :ensure nil
    :config
    (setq mu4e-mu-binary (executable-find "mu"))
    (setq mu4e-maildir "~/.maildir")))

Looking at my own config you may need to include mu in Emacs’ extra packages like so:

programs.emacs = {
  extraPackages = epkgs: [
    pkgs.mu
  ];
}
2 Likes

@pbogdan Thank you very much. It works very well now.

1 Like

FYI, if you are using the unstable nixpkgs branch, according to emacsPackages.mu4e: init at 1.10.7 by jian-lin · Pull Request #253438 · NixOS/nixpkgs · GitHub,

  • mu now does not install mu4e files by default. Users should get mu4e from Emacs lisp package set emacs.pkgs.mu4e.

You need to change the configuration to the following:

extraPackages = epkgs: [ epkgs.mu4e ];

Then run doom sync and re-start Emacs to make mu4e work.

1 Like