rougier / nano-emacs

GNU Emacs / N Λ N O - Emacs made simple
GNU General Public License v3.0
2.52k stars 194 forks source link

Nano Emacs does not work well with mu4e's latest stable release #94

Closed Adocentyn closed 2 years ago

Adocentyn commented 3 years ago

Since mu/mu4e 1.6.x branch has been released I'm getting this error message at emacs startup: error: Invalid face, mu4e-moved-face As and additional symptom, mu4e no longer finds the basic setup of its accounts or contexts and defaults to nicolas rougier as the only account. Looking at the config file for nano-mu4e I was not able to understand what I could do to change that behaviour (same as the default settings file for nano.

Adocentyn commented 3 years ago

Here's the backtrace I get when running emacs with --debug-init: Debugger entered--Lisp error: (error "Invalid face" mu4e-moved-face) internal-set-lisp-face-attribute(mu4e-moved-face :family unspecified 0) set-face-attribute(mu4e-moved-face nil :foreground unspecified :background unspecified :family unspecified :slant unspecified :weight unspecified :height unspecified :underline unspecified :overline unspecified :box unspecified :inherit nano-face-faded) set-face(mu4e-moved-face nano-face-faded) (lambda nil (set-face 'mu4e-attach-number-face 'nano-face-strong) (set-face 'mu4e-cited-1-face 'nano-face-faded) (set-face 'mu4e-cited-2-face 'nano-face-faded) (set-face 'mu4e-cited-3-face 'nano-face-faded) (set-face 'mu4e-cited-4-face 'nano-face-faded) (set-face 'mu4e-cited-5-face 'nano-face-faded) (set-face 'mu4e-cited-6-face 'nano-face-faded) (set-face 'mu4e-cited-7-face 'nano-face-faded) (set-face 'mu4e-compose-header-face 'nano-face-faded) (set-face 'mu4e-compose-separator-face 'nano-face-faded) (set-face 'mu4e-contact-face 'nano-face-salient) (set-face 'mu4e-context-face 'nano-face-faded) (set-face 'mu4e-draft-face 'nano-face-faded) (set-face 'mu4e-flagged-face 'nano-face-popout) (set-face 'mu4e-footer-face 'nano-face-faded) (set-face 'mu4e-forwarded-face 'nano-face-default) (set-face 'mu4e-header-face 'nano-face-default) (set-face 'mu4e-header-highlight-face 'hl-line) (set-face 'mu4e-header-key-face 'nano-face-strong) (set-face 'mu4e-header-marks-face 'nano-face-faded) (set-face 'mu4e-header-title-face 'nano-face-strong) (set-face 'mu4e-header-value-face 'nano-face-default) (set-face 'mu4e-highlight-face 'nano-face-popout) (set-face 'mu4e-link-face 'nano-face-salient) (set-face 'mu4e-modeline-face 'nano-face-faded) (set-face 'mu4e-moved-face 'nano-face-faded) (set-face 'mu4e-ok-face 'nano-face-faded) (set-face 'mu4e-region-code 'nano-face-faded) (set-face 'mu4e-replied-face 'nano-face-default) (set-face 'mu4e-special-header-value-face 'nano-face-default) (set-face 'mu4e-system-face 'nano-face-faded) (set-face 'mu4e-title-face 'nano-face-strong) (set-face 'mu4e-trashed-face 'nano-face-faded) (set-face 'mu4e-unread-face 'nano-face-strong) (set-face 'mu4e-url-number-face 'nano-face-faded) (set-face 'mu4e-view-body-face 'nano-face-default) (set-face 'mu4e-warning-face 'nano-face-popout))() eval-after-load-helper("/usr/share/emacs/site-lisp/mu4e/mu4e.elc") run-hook-with-args(eval-after-load-helper "/usr/share/emacs/site-lisp/mu4e/mu4e.elc") do-after-load-evaluation("/usr/share/emacs/site-lisp/mu4e/mu4e.elc") require(mu4e) eval-buffer(#<buffer *load*> nil "/home/chs/.emacs" nil t) ; Reading at buffer position 12111 load-with-code-conversion("/home/chs/.emacs" "/home/chs/.emacs" t t) load("~/.emacs" noerror nomessage) startup--load-user-init-file(#f(compiled-function () #<bytecode 0x1566ede4e501>) #f(compiled-function () #<bytecode 0x1566ede4e515>) t) command-line() normal-top-level()

rougier commented 3 years ago

Thanks for the report I did not get the problem for some reason. Could you try the nano-theme as a stand-alone theme to see if it solves the problem?

rougier commented 3 years ago

Also, the nano-theme should be more robust since it is a real theme and should cope with non-defined faces.

Adocentyn commented 3 years ago

I tried to do just that, both with nano-theme and nano-theme-dark. Both packages are on my machine. Yet for some strange reason they won't load - I get an error message that the package cannot be found. Is this the crux of the issue?

  signal(error ("Unable to find theme file for ‘nano-theme-dark’"))
  error("Unable to find theme file for `%s'" nano-theme-dark)
  #f(compiled-function (theme &optional no-confirm no-enable) "Load Custom theme named THEME from its file and possibly enable it.\nThe theme file is named THEME-theme.el, in one of the directories\nspecified by `custom-theme-load-path'.\n\nIf the theme is not considered safe by `custom-safe-themes',\nprompt the user for confirmation before loading it.  But if\noptional arg NO-CONFIRM is non-nil, load the theme without\nprompting.\n\nNormally, this function also enables THEME.  If optional arg\nNO-ENABLE is non-nil, load the theme but don't enable it, unless\nthe theme was already enabled.\n\nNote that enabling THEME does not disable any other\nalready-enabled themes.  If THEME is enabled, it has the highest\nprecedence (after `user') among enabled themes.  To disable other\nthemes, use `disable-theme'.\n\nThis function is normally called through Customize when setting\n`custom-enabled-themes'.  If used directly in your init file, it\nshould be called with a non-nil NO-CONFIRM argument, or after\n`custom-safe-themes' has been loaded.\n\nReturn t if THEME was successfully loaded, nil otherwise." (interactive #f(compiled-function () #<bytecode 0x1581efd3bc55>)) #<bytecode 0x1ff7fd9333a1>)(nano-theme-dark t)
  apply(#f(compiled-function (theme &optional no-confirm no-enable) "Load Custom theme named THEME from its file and possibly enable it.\nThe theme file is named THEME-theme.el, in one of the directories\nspecified by `custom-theme-load-path'.\n\nIf the theme is not considered safe by `custom-safe-themes',\nprompt the user for confirmation before loading it.  But if\noptional arg NO-CONFIRM is non-nil, load the theme without\nprompting.\n\nNormally, this function also enables THEME.  If optional arg\nNO-ENABLE is non-nil, load the theme but don't enable it, unless\nthe theme was already enabled.\n\nNote that enabling THEME does not disable any other\nalready-enabled themes.  If THEME is enabled, it has the highest\nprecedence (after `user') among enabled themes.  To disable other\nthemes, use `disable-theme'.\n\nThis function is normally called through Customize when setting\n`custom-enabled-themes'.  If used directly in your init file, it\nshould be called with a non-nil NO-CONFIRM argument, or after\n`custom-safe-themes' has been loaded.\n\nReturn t if THEME was successfully loaded, nil otherwise." (interactive #f(compiled-function () #<bytecode 0x1581efd3cd31>)) #<bytecode 0x1ff7fd9333a1>) (nano-theme-dark t))
  load-theme(nano-theme-dark t)
  eval-buffer(#<buffer  *load*> nil "/home/chs/.emacs" nil t)  ; Reading at buffer position 326
  load-with-code-conversion("/home/chs/.emacs" "/home/chs/.emacs" t t)
  load("~/.emacs" noerror nomessage)
  startup--load-user-init-file(#f(compiled-function () #<bytecode 0x1581efbf0f59>) #f(compiled-function () #<bytecode 0x1581efbf0f6d>) t)
  command-line()
  normal-top-level()
rougier commented 3 years ago

For nano-theme, this is a regular theme and you should be able to load it as a theme or you can use:

(require 'nano-theme)
(nano-dark)
Adocentyn commented 2 years ago

Thank you, it did work.

seblemaguer commented 2 years ago

Hello,

I am not sure it is solved. mu4e-moved-face is not defined in the last release (1.6) of mu. It is also the case for the functions prefixed by mu4e~ which have been either refactored or renamed with the prefix mu4e-. This last bit impacts nano-modeline. I can do a pull request for this but @rougier I don't wan't to corrupt your setup if you are using a version of mu4e < 1.6.

Adocentyn commented 2 years ago

I closed the issue as it worked for me with the suggested fix, but I do understand it's all quite experimental and that the fix does not actually solve the issue for all cases (you need to stick to the provided theme, or else). On top of this @rougier was not able to replicate it. Should we leave this one closed and open a new one, possibly with a patch committed as a result?

rougier commented 2 years ago

@seblemaguer I've switched to 1.6.5 and I did not notice the problem. Note that I use nano-modeline here. But please proceed with the PR such that I can check why it's working for me (maybe I changed it and forgot to commit)

rougier commented 2 years ago

@Adocentyn I think the best way would be to use nano theme. I need to refactor the nano-emacs README because I've tried to split each module with its own git repo and the ones inside nano-emacs are not up to date.

seblemaguer commented 2 years ago

@rougier ok :) I do this asap