Add doom/switch-theme; a more sensible load-theme
load-theme doesn't disable previously enabled themes before switching. doom/switch-theme does. This remaps any keys bound to load-theme to doom/switch-theme.
This commit is contained in:
parent
3b4fd56cac
commit
43e0314e86
2 changed files with 24 additions and 3 deletions
|
@ -103,3 +103,20 @@ presentations."
|
||||||
(mapc #'disable-theme custom-enabled-themes))
|
(mapc #'disable-theme custom-enabled-themes))
|
||||||
(doom|init-theme)
|
(doom|init-theme)
|
||||||
(doom|init-fonts)))
|
(doom|init-fonts)))
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun doom/switch-theme (theme)
|
||||||
|
"Like `load-theme', but will unload currently loaded themes before switching
|
||||||
|
to a new one."
|
||||||
|
(interactive
|
||||||
|
(list (completing-read
|
||||||
|
"Load theme: "
|
||||||
|
(mapcar #'symbol-name
|
||||||
|
(custom-available-themes)))))
|
||||||
|
(condition-case nil
|
||||||
|
(progn
|
||||||
|
(mapc #'disable-theme custom-enabled-themes)
|
||||||
|
(load-theme (intern theme) t)
|
||||||
|
(when (fboundp 'powerline-reset)
|
||||||
|
(powerline-reset)))
|
||||||
|
(error "Problem loading theme %s" x)))
|
||||||
|
|
|
@ -540,14 +540,18 @@ frame's window-system, the theme will be reloaded.")
|
||||||
(setq frame-title-format '("%b – Doom Emacs"))
|
(setq frame-title-format '("%b – Doom Emacs"))
|
||||||
;; draw me like one of your French editors
|
;; draw me like one of your French editors
|
||||||
(tooltip-mode -1) ; relegate tooltips to echo area only
|
(tooltip-mode -1) ; relegate tooltips to echo area only
|
||||||
;; prompts the user for confirmation when deleting a non-empty frame
|
|
||||||
(define-key global-map [remap delete-frame] #'doom/delete-frame)
|
|
||||||
|
|
||||||
;; a good indicator that Emacs isn't frozen
|
;; a good indicator that Emacs isn't frozen
|
||||||
(add-hook 'doom-init-ui-hook #'blink-cursor-mode)
|
(add-hook 'doom-init-ui-hook #'blink-cursor-mode)
|
||||||
;; line numbers in most modes
|
;; line numbers in most modes
|
||||||
(add-hook! (prog-mode text-mode conf-mode) #'doom|enable-line-numbers)
|
(add-hook! (prog-mode text-mode conf-mode) #'doom|enable-line-numbers)
|
||||||
|
|
||||||
|
;; More sensibile replacements for default commands
|
||||||
|
(define-key! 'global
|
||||||
|
;; prompts the user for confirmation when deleting a non-empty frame
|
||||||
|
[remap delete-frame] #'doom/delete-frame
|
||||||
|
;; a more sensible load-theme, that disables previous themes first
|
||||||
|
[remap load-theme] #'doom/switch-theme)
|
||||||
|
|
||||||
(defun doom*fix-whitespace-mode-in-childframes (orig-fn &rest args)
|
(defun doom*fix-whitespace-mode-in-childframes (orig-fn &rest args)
|
||||||
(let ((frame (apply orig-fn args)))
|
(let ((frame (apply orig-fn args)))
|
||||||
(with-selected-frame frame
|
(with-selected-frame frame
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue