Using 'make-obsolete' on a theme is now supported. This will make
'load-theme' issue a warning when loading the theme.
-+++
-*** New command 'toggle-theme'
-If a theme defines a dual pair (e.g. a light or dark variant) this
-command can be used disable the current one and enable the other.
-
----
-*** New user option 'custom-ensure-single-active-theme'
-If non-nil, all themes will be disabled before a new theme is enabled,
-so that there is always at most one active theme at any time.
-
-
+++
** New hook 'display-monitors-changed-functions'.
It is called whenever the configuration of different monitors on a
:risky t
:version "24.1")
-(defcustom custom-ensure-single-active-theme nil
- "Non-nil means that `load-theme' should ensure only one theme is active."
- :type 'boolean
- :group 'customize
- :version "29.1")
-
(defun load-theme (theme &optional no-confirm no-enable)
"Load Custom theme named THEME from its file and possibly enable it.
The theme file is named THEME-theme.el, in one of the directories
should be called with a non-nil NO-CONFIRM argument, or after
`custom-safe-themes' has been loaded.
-If `custom-ensure-single-active-theme' is non-nil, all other active
-themes will be disabled before THEME is enabled.
-
Return t if THEME was successfully loaded, nil otherwise."
(interactive
(list
(setq tail (cdr tail)))
(when found
(put theme 'theme-settings (cons found (delq found settings)))))
- ;; Check if the user only wants one theme to be active
- (when custom-ensure-single-active-theme
- (mapc #'disable-theme custom-enabled-themes))
;; Finally, enable the theme.
(unless no-enable
(enable-theme theme))