the @file{*Custom Themes*} buffer; or type @kbd{M-x describe-theme}
anywhere in Emacs and enter the theme name.
-@findex toggle-theme
- Some themes have dual variants (most often these are light and dark
-pairs). You can switch between these by typing @kbd{M-x
-toggle-theme}. Note that this only works if only one theme is active.
-
@node Creating Custom Themes
@subsection Creating Custom Themes
@cindex custom themes, creating
;; Author: Fabrice Niessen <(concat "fniessen" at-sign "pirilampo.org")>
;; Contributor: Thibault Polge <(concat "thibault" at-sign "thb.lt")>
;; URL: https://github.com/fniessen/emacs-leuven-dark-theme
-;; Version: 20220906.2016
+;; Version: 20220202.1126
;; Keywords: color theme
;; This file is part of GNU Emacs.
(add-to-list 'custom-theme-load-path
(file-name-as-directory (file-name-directory load-file-name))))
-(put 'leuven-dark 'dual-theme 'leuven) ;see `toggle-theme'
-
(provide-theme 'leuven-dark)
;; This is for the sake of Emacs.
;; Author: Fabrice Niessen <(concat "fniessen" at-sign "pirilampo.org")>
;; URL: https://github.com/fniessen/emacs-leuven-theme
-;; Version: 20220906.2016
+;; Version: 20200513.1928
;; Keywords: color theme
;; This file is part of GNU Emacs.
(add-to-list 'custom-theme-load-path
(file-name-as-directory (file-name-directory load-file-name))))
-(put 'leuven 'dual-theme 'leuven-dark) ;see `toggle-theme'
-
(provide-theme 'leuven)
;; This is for the sake of Emacs.
`(ansi-color-bright-white ((,class (:background ,alum-1
:foreground ,alum-1))))))
-(put 'tango-dark 'dual-theme 'tango) ;see `toggle-theme'
-
(provide-theme 'tango-dark)
;;; tango-dark-theme.el ends here
`(ansi-color-bright-white ((,class (:background ,alum-1
:foreground ,alum-1))))))
-(put 'tango 'dual-theme 'tango-dark) ;see `toggle-theme'
-
(provide-theme 'tango)
;;; tango-theme.el ends here
'(widget-field ((t (:box (:line-width 2 :color "grey75" :style pressed-button)))))
'(window-number-face ((t (:foreground "red" :weight bold)))))
-(put 'tsdh-dark 'dual-theme 'tsdh-light) ;see `toggle-theme'
-
(provide-theme 'tsdh-dark)
;;; tsdh-dark-theme.el ends here
'(show-paren-mismatch ((t (:background "deep pink" :weight bold))))
'(window-number-face ((t (:foreground "red" :weight bold)))))
-(put 'tsdh-light 'dual-theme 'tsdh-dark) ;see `toggle-theme'
-
(provide-theme 'tsdh-light)
;;; tsdh-light-theme.el ends here
(end-of-file nil)))))
(and (eq (car-safe sexp) 'deftheme)
(setq doc (nth 2 sexp)))))))
- (when-let ((dual (get theme 'dual-theme)))
- (princ (format " The dual theme is `%s'" dual)))
(princ "\n\nDocumentation:\n")
(princ (if (stringp doc)
(substitute-command-keys doc)
(enable-theme theme))
t)
-(defun toggle-theme (&optional no-confirm no-enable)
- "Toggle the current active theme by enabling its dual pair.
-The current theme will be immediately disabled before the dual
-theme has been enabled. If THEME is not active an error will be
-raised. If theme is nil For NO-CONFIRM and NO-ENABLE, see
-`load-theme'."
- (interactive)
- (cond
- ((length= custom-enabled-themes 0)
- (user-error "No theme is active, cannot toggle"))
- ((length> custom-enabled-themes 1)
- (user-error "More than one theme active, cannot unambiguously toggle")))
- (let* ((theme (car custom-enabled-themes))
- (dual (get theme 'dual-theme)))
- (unless dual
- (error "`%s' has no dual theme to toggle between" theme))
- (disable-theme theme)
- (load-theme dual no-confirm no-enable)))
-
(defun custom-theme-load-confirm (hash)
"Query the user about loading a Custom theme that may not be safe.
The theme should be in the current buffer. If the user agrees,