nix-community/nix-doom-emacs

`doom-dashboard` not loaded on start

stefanDeveloper opened this issue · 13 comments

Description

When I start Emacs the doom-dashboard is not loaded initially.
This is my Emacs after the initial start:
broken

After opening Emacs messages, it seems that the dashboard has been reloaded correctly:
reloading

Any ideas why I run into this problem?

Log output:

Loading /nix/store/a94rvycbpi6lhshrhl45r6dban6x4jpb-emacs-with-packages-27.2/share/emacs/site-lisp/site-start.el (source)...done
Loading /nix/store/9hawkcaxsvqj98w70l4haasfip8rkaq7-emacs-packages-deps/share/emacs/site-lisp/default.el (source)...
doom-emacs is not placed in ‘doom-private-dir’,
loading from ‘site-lisp’
Loading /nix/store/pa2lan4qrxsnkd0p8xv1a3d0n7dxcsp3-doom-emacs/early-init.el (source)...done
Loading /nix/store/pa2lan4qrxsnkd0p8xv1a3d0n7dxcsp3-doom-emacs/init.el (source)...
DOOM Initializing Doom
Debug mode on
DOOM New variables available: (use-package-verbose)
Debug mode off
Debug mode on
DOOM Initializing core modules
DOOM Initializing user config
Loading /nix/store/r6aig18jvyqpj034592c4pp54ykw5z66-doom.d/config.el (source)...done
Loading /nix/store/691xda5bkx31c6jqqlsxw4phwscrcp14-doom-private/config.extra.el (source)...done
Loading /nix/store/pa2lan4qrxsnkd0p8xv1a3d0n7dxcsp3-doom-emacs/init.el (source)...done
Loading /nix/store/9hawkcaxsvqj98w70l4haasfip8rkaq7-emacs-packages-deps/share/emacs/site-lisp/default.el (source)...done
Doom loaded 146 packages across 30 modules in 0.608s
DOOM Loading deferred package server from doom--after-call-server-h
DOOM Incrementally loading tree-widget
DOOM Incrementally loading recentf
DOOM Incrementally loading savehist
DOOM Incrementally loading yasnippet
DOOM [editor/evil] Initialized evil-collection-elisp-mode 
DOOM [editor/evil] Initialized evil-collection-comint 
DOOM [editor/evil] Initialized evil-collection-custom 
[yas] Check your `yas-snippet-dirs': /nix/store/691xda5bkx31c6jqqlsxw4phwscrcp14-doom-private/snippets/ is not a directory
[yas] Prepared just-in-time loading of snippets with some errors.  Check *Messages*.
DOOM Incrementally loading with-editor
DOOM Incrementally loading git-commit
DOOM [editor/evil] Initialized evil-collection-epa 
DOOM [editor/evil] Initialized evil-collection-dired 
DOOM [editor/evil] Initialized evil-collection-log-edit 
DOOM Incrementally loading package
DOOM [editor/evil] Initialized evil-collection-package-menu 
DOOM Incrementally loading magit
DOOM [editor/evil] Initialized evil-collection-diff-mode 
DOOM [editor/evil] Initialized evil-collection-imenu 
Loading /nix/store/3lpkncgg0cicmxzd3jfxg52piki7s3cp-straight-emacs-env/straight/repos/magit/magit-version.el (source)...done
DOOM [editor/evil] Initialized evil-collection-magit 
DOOM [editor/evil] Initialized evil-collection-calendar  [2 times]
DOOM [editor/evil] Initialized evil-collection-org 
DOOM [editor/evil] Initialized evil-collection-compile 
DOOM [editor/evil] Initialized evil-collection-grep 
DOOM New variables available: (async-debug)
Debug mode off
Debug mode on
DOOM [editor/evil] Initialized evil-collection-magit-todos 
DOOM Incrementally loading org-agenda
DOOM Incrementally loading org-capture
DOOM [editor/evil] Loading deferred package evil-easymotion from doom--after-call-evil-easymotion-h
DOOM [completion/vertico] Loading deferred package orderless from doom--after-call-orderless-h
DOOM [editor/evil] Initialized evil-collection-vertico 
DOOM [editor/evil] Initialized evil-collection-which-key 
DOOM [ui/doom-dashboard] Reloading dashboard at 09:43:30
DOOM [ui/doom-dashboard] Changed dashboard’s PWD to ~/

Configuration

flake.nix
(https://github.com/stefanDeveloper/nixos-lenovo-config/blob/master/flake.nix)

emacs.nix

{ pkgs, inputs, config, ... } :

{
  home-manager.users.stefan = {

    programs.emacs = {
      enable = true;
    }; 

    imports = [ inputs.nix-doom-emacs.hmModule ];
    programs.doom-emacs = {
      enable = true;
      doomPrivateDir = "${config.users.users.stefan.home}/doom.d";
    };
  };
}

Metadata

Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.

[user@system:~]$ nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-linux"`
 - host os: `Linux 5.10.105, NixOS, 21.11 (Porcupine)`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.5.0pre20211206_d1aaa7e`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`
ckiee commented

Missed this in the GH notification sea. Does this happen with Doom's normal installation method? (git-clone to .emacs.d)

I use Emacs in daemon mode which doesn't seem to have this problem but this is probably just caused by us not respecting Doom's version pins which makes some things break sometimes.

I can confirm that the Doom's normal installation method works just fine with my NixOS setup.

ckiee commented

Alright well, if you need help debugging this I'm @ckie:ckie.dev on Matrix and in the NixOS space. Otherwise I don't have much to say since I'm not currently motivated to work on this.

I am also running into this, I get the scratch layer loaded on startup. Hitting : then ESC reloads the doom dashboard.

This is just a guess, but I think this line might be the issue:
doom-emacs is not placed in ‘doom-private-dir.

My config can be found here: https://gitlab.com/coffeetables/lower/-/tree/master/home/profiles/apps/emacs

@Pacman99 thanks for your input.
Soon I'll be working on it and try to fix it. @ckiee I'll contact you, thanks for offering your support. :)

nuj7 commented

I am also running into this, I get the scratch layer loaded on startup. Hitting : then ESC reloads the doom dashboard.

This is just a guess, but I think this line might be the issue: doom-emacs is not placed in ‘doom-private-dir.

My config can be found here: https://gitlab.com/coffeetables/lower/-/tree/master/home/profiles/apps/emacs

Same issue here.
After some git bisecting, I found a good revision to run, but this line showed as well. I think this line may be irrelevant.
Here is git bisect log:

git bisect start
# bad: [8e818ce70f399fcb11211296cf5bcb332203d7f2] flake.lock: Updating 'flake-utils (numtide/flake-utils)' - 3cecb5b0 -> a4b154eb (#110)
git bisect bad 8e818ce70f399fcb11211296cf5bcb332203d7f2
# bad: [5cf6eb2bfe12d0d6e6b42c897f4878efa9dba8c1] flake.lock: Updating 'org (emacs-straight/org-mode)' - 22e6ed6b -> e7ea951a (#51)
git bisect bad 5cf6eb2bfe12d0d6e6b42c897f4878efa9dba8c1
# good: [fee14d217b7a911aad507679dafbeaa8c1ebf5ff] home-manager: set `services.emacs.package` only if it is defined
git bisect good fee14d217b7a911aad507679dafbeaa8c1ebf5ff
# bad: [19b494b62dc756a8446b5476a79bf23c3d0d8041] flake.nix: run nixfmt
git bisect bad 19b494b62dc756a8446b5476a79bf23c3d0d8041
# bad: [e3517b0e001f55ab6fc42f3f44f291661c2edc10] last commit again
git bisect bad e3517b0e001f55ab6fc42f3f44f291661c2edc10
# bad: [0cb69d4c2098028bc6a77c56f8f64802bb5df44c] update references: vlaci → nix-community
git bisect bad 0cb69d4c2098028bc6a77c56f8f64802bb5df44c
# good: [6b3bfba4c8bd5bdbca7783275a45e9a14d1dda62] advice: disable doom-cli--ci-deploy-hooks
git bisect good 6b3bfba4c8bd5bdbca7783275a45e9a14d1dda62
# bad: [29688ccca571d28db89456da0bc109f55a50e9fc] nix-integration: update patch
git bisect bad 29688ccca571d28db89456da0bc109f55a50e9fc
# bad: [258b70a44105a1abf40a03e04b4be1fe0c745e7b] flake.lock: update
git bisect bad 258b70a44105a1abf40a03e04b4be1fe0c745e7b
# first bad commit: [258b70a44105a1abf40a03e04b4be1fe0c745e7b] flake.lock: update
nuj7 commented

This commit doomemacs/doomemacs@114841b delay the call of doom-init-ui-h until the hook 'window-buffer-change-functions which seems not being triggered during the init process. And that's why 'Hitting : then ESC reloads the doom dashboard.': the buffer changed.

According to the author's comment

;; Initialize UI as late as possible. `window-buffer-change-functions' runs
;; once, when the scratch/dashboard buffer is first displayed.
(add-hook 'window-buffer-change-functions #'doom-init-ui-h -100)

The hook 'window-buffer-change-functions should be triggered once the scratch buffer is first diaplayed, but it did not.

A temporary fix would be adding this to your config.el

(add-hook! 'emacs-startup-hook #'doom-init-ui-h)

Are you on darwin? I've observed this issue myself but only on my darwin machines, on NixOS I can't reproduce it.

I have this issue on NixOS

A temporary fix would be adding this to your config.el

(add-hook! 'emacs-startup-hook #'doom-init-ui-h)

Just tested this and it fixes the issue, thanks!

This PR seems to fix the issue if you're running Emacs 29+ according to my tests: #191

The only reason I can think is that maybe doom-dashboard depends on early-init.el to be loaded at, well, during the early init phase, however we used to load it from site-lisp/default.el before.

Going to say though, this was completely accidental and it was not the objective of the PR (I don't even use doom-dashboard myself 😅 ).

Closing this since my tests on #191 shows that this issue is fixed.

If it is not, please answer this thread and I will reopen it. Keep in mind that the fix in #191 only works in Emacs 29+, so if you're still having this issue check if you're using emacsGcc or something similar first.

Getting this as well with the instructions specified on the README. Doom emacs is launching fine if I perform the installation manually.

On top of this, many other functions seem to be erroring out like setting doom-modeline--vcs-text when trying to run magit-status.

I'm on NixOS WSL