0

I load modus-themes (among other packages) in my Emacs configuration using:

(setq package-archives '(("gnu" . "https://elpa.gnu.org/packages/")
             ("melpa" . "https://melpa.org/packages/")))
(package-initialize)
(unless (package-installed-p 'use-package)
  (package-refresh-contents)
  (package-install 'use-package))
(eval-when-compile (require 'use-package))
(require 'use-package-ensure)
(setq use-package-always-ensure t)

(use-package modus-themes
  :init
  ;; Add all your customizations prior to loading the themes
  (setq modus-themes-slanted-constructs t
    modus-themes-bold-constructs t
    modus-themes-mode-line nil
    modus-themes-region '(bg-only no-extend))
  ;; Load the theme files before enabling a theme (else you get an error).
  (modus-themes-load-themes)
  :config
  ;; Load the theme of your choice:
  (modus-themes-load-vivendi))

I upgrade all my packages occasionally by running list-packages then hitting U and x. When I start Emacs next I find that the modus-themes-load-vivendi theme is note active and *Messages* contains:

Error (use-package): modus-themes/:init: Symbol’s function definition is void: modus-themes--standard-completions
Error (use-package): modus-themes/:config: Symbol’s function definition is void: modus-themes--standard-completions
Error (use-package): theme-changer/:config: Symbol’s function definition is void: modus-themes--standard-completions

(although I have historically had other errors too.) The only way I've found to fix these errors is to delete the elpa/modus-themes-* directory so that use-package downloads it again.

I believe that I've seen similar problems with magit, but I no longer have the error messages to prove it.

I've not found anyone else reporting similar problems, so I can only assume that what I'm seeing must be due to something in my configuration, but I don't know where to start looking. The only clue I have is that the .el files for the latest version of modus-themes no longer contains modus-themes--standard-completions yet the byte-compiled .elc files do contain mentions of it despite the timestamps being the same:

europa:~/config/emacs.d/elpa/modus-themes-20220313.1121> ls -l
total 1396
-rw-r--r-- 1 mac mac    683 Mar 13 15:38 dir
-rw-r--r-- 1 mac mac  25108 Mar 13 15:38 doclicense.info
-rw-r--r-- 1 mac mac   2722 Mar 13 15:38 modus-operandi-theme.el
-rw-r--r-- 1 mac mac 190614 Mar 13 15:38 modus-operandi-theme.elc
-rw-r--r-- 1 mac mac   2849 Mar 13 15:38 modus-themes-autoloads.el
-rw-r--r-- 1 mac mac 388919 Mar 13 15:38 modus-themes.el
-rw-r--r-- 1 mac mac 326345 Mar 13 15:38 modus-themes.elc
-rw-r--r-- 1 mac mac 277662 Mar 13 15:38 modus-themes.info
-rw-r--r-- 1 mac mac    457 Mar 13 15:38 modus-themes-pkg.el
-rw-r--r-- 1 mac mac   2716 Mar 13 15:38 modus-vivendi-theme.el
-rw-r--r-- 1 mac mac 190611 Mar 13 15:38 modus-vivendi-theme.elc
europa:~/config/emacs.d/elpa/modus-themes-20220313.1121> grep -l modus-themes--standard-completion *
modus-operandi-theme.elc
modus-vivendi-theme.elc

Any ideas gratefully appreciated.

0

1 Answer 1

3

This is a known modus-theme issue reported in its bug list. https://gitlab.com/protesilaos/modus-themes/-/issues/287 and previously in https://gitlab.com/protesilaos/modus-themes/-/issues/272#note_827378377

As noted in the issue a manual fix is

  1. Install modus-themes by elpa
  2. Delete the .elc files in modus-themes directory
  3. Optionally manually compile the modus-themes files
  4. Restart emacs
3
  • Thanks for the quick reply. It appears that my previous searching was inadequate, although I did do most of it before that bug report was raised. It's not clear from reading the current state of the report that the problem really is in modus-themes itself though. Thanks for the workaround.
    – Mike Crowe
    Mar 13, 2022 at 18:20
  • The current status is that the modus themes author thinks there is an issue but has no real idea what is causing it
    – mmmmmm
    Mar 13, 2022 at 21:00
  • The version 20220322 seems to be OK
    – mmmmmm
    Mar 23, 2022 at 12:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.