doom-modeline no longer errors out, in case a modeline doesn't exist; add doom-set-modeline

This commit is contained in:
Henrik Lissner 2017-04-25 18:25:54 -04:00
parent b006e9d0dc
commit 8e7aa152bb
5 changed files with 25 additions and 15 deletions

View file

@ -59,7 +59,7 @@ is enabled/disabled.'")
;; `doom*delete-popup-window' ;; `doom*delete-popup-window'
;; :autoclose If non-nil, close popup if ESC is pressed from any buffer. ;; :autoclose If non-nil, close popup if ESC is pressed from any buffer.
shackle-rules shackle-rules
'(("^ ?\\*doom:.+\\*$" :size 40 :modeline t :regexp t) '(("^ ?\\*doom:.+\\*$" :size 25 :modeline minimal :regexp t :noesc t)
("^ ?\\*doom .+\\*$" :size 10 :noselect t :regexp t) ("^ ?\\*doom .+\\*$" :size 10 :noselect t :regexp t)
("^ *doom message*" :size 10 :noselect t :autokill t) ("^ *doom message*" :size 10 :noselect t :autokill t)
("*Metahelp*" :size 0.5 :autokill t :autoclose t) ("*Metahelp*" :size 0.5 :autokill t :autoclose t)
@ -172,8 +172,9 @@ for :align t on every rule."
(doom-hide-modeline-mode +1)) (doom-hide-modeline-mode +1))
((and (symbolp modeline) ((and (symbolp modeline)
(not (eq modeline 't))) (not (eq modeline 't)))
(let ((doom--mode-line (doom-modeline modeline))) (let ((doom--modeline-format (doom-modeline modeline)))
(doom-hide-modeline-mode +1))))) (when doom--modeline-format
(doom-hide-modeline-mode +1))))))
;; show modeline ;; show modeline
(when doom-hide-modeline-mode (when doom-hide-modeline-mode
(doom-hide-modeline-mode -1)))) (doom-hide-modeline-mode -1))))

View file

@ -256,7 +256,7 @@ Example:
(def-modeline! minimal (def-modeline! minimal
(bar matches \" \" buffer-info) (bar matches \" \" buffer-info)
(media-info major-mode)) (media-info major-mode))
(setq-default mode-line-format (doom-modeline 'minimal))" (doom-set-modeline 'minimal t)"
(let ((sym (intern (format "doom-modeline-format--%s" name))) (let ((sym (intern (format "doom-modeline-format--%s" name)))
(lhs-forms (doom--prepare-modeline-segments lhs)) (lhs-forms (doom--prepare-modeline-segments lhs))
(rhs-forms (doom--prepare-modeline-segments rhs))) (rhs-forms (doom--prepare-modeline-segments rhs)))
@ -278,9 +278,18 @@ Example:
"Returns a mode-line configuration associated with KEY (a symbol). Throws an "Returns a mode-line configuration associated with KEY (a symbol). Throws an
error if it doesn't exist." error if it doesn't exist."
(let ((fn (intern (format "doom-modeline-format--%s" key)))) (let ((fn (intern (format "doom-modeline-format--%s" key))))
(unless (functionp fn) (when (functionp fn)
(error "Modeline format doesn't exist: %s" key)) `(:eval (,fn)))))
`(:eval (,fn))))
(defun doom-set-modeline (key &optional default)
"Set the modeline format. Does nothing if the modeline KEY doesn't exist. If
DEFAULT is non-nil, set the default mode-line for all buffers."
(let ((modeline (doom-modeline key)))
(when modeline
(setf (if default
(default-value 'mode-line-format)
(buffer-local-value 'mode-line-format (current-buffer)))
modeline))))
(provide 'core-ui) (provide 'core-ui)
;;; core-ui.el ends here ;;; core-ui.el ends here

View file

@ -22,7 +22,7 @@
(add-hook 'twittering-mode-hook #'doom-buffer-mode)) (add-hook 'twittering-mode-hook #'doom-buffer-mode))
(add-hook! twittering-mode (add-hook! twittering-mode
(setq header-line-format (doom-modeline 'twitter) (setq header-line-format (or (doom-modeline 'twitter) mode-line-format)
mode-line-format nil)) mode-line-format nil))
(map! :map twittering-mode-map (map! :map twittering-mode-map

View file

@ -101,8 +101,8 @@ whose dimensions may not be fully initialized by the time this is run."
(unless +doom-dashboard-modeline (unless +doom-dashboard-modeline
(setq +doom-dashboard-old-modeline mode-line-format) (setq +doom-dashboard-old-modeline mode-line-format)
(setq +doom-dashboard-modeline (setq +doom-dashboard-modeline
(if (featurep! :ui doom-modeline) (or (and (featurep! :ui doom-modeline)
(doom-modeline 'project) (doom-modeline 'project))
mode-line-format))) mode-line-format)))
(let ((old-pwd (or dir default-directory))) (let ((old-pwd (or dir default-directory)))
(with-current-buffer (doom-fallback-buffer) (with-current-buffer (doom-fallback-buffer)

View file

@ -20,7 +20,7 @@
"Display string STR in the mode-line next to minibuffer." "Display string STR in the mode-line next to minibuffer."
(with-current-buffer (eldoc-current-buffer) (with-current-buffer (eldoc-current-buffer)
(let* ((str (and (stringp input) input)) (let* ((str (and (stringp input) input))
(mode-line-format (or (and str (doom-modeline 'eldoc)) (mode-line-format (or (and str (or (doom-modeline 'eldoc) str))
mode-line-format)) mode-line-format))
mode-line-in-non-selected-windows) mode-line-in-non-selected-windows)
(force-mode-line-update) (force-mode-line-update)
@ -562,12 +562,12 @@ with `evil-ex-substitute', and/or 4. The number of active `iedit' regions."
(major-mode)) (major-mode))
;; ;;
(setq-default mode-line-format (doom-modeline 'main)) (doom-set-modeline 'main t)
;; This scratch buffer is already created, and doesn't get a modeline. For the ;; This scratch buffer is already created, and doesn't get a modeline. For the
;; love of Emacs, someone give the man a modeline! ;; love of Emacs, someone give the man a modeline!
(with-current-buffer "*scratch*" (with-current-buffer "*scratch*"
(setq mode-line-format (doom-modeline 'main))) (doom-set-modeline 'main))
;; ;;
@ -575,6 +575,6 @@ with `evil-ex-substitute', and/or 4. The number of active `iedit' regions."
;; ;;
(defun +doom-modeline|set-special-modeline () (defun +doom-modeline|set-special-modeline ()
(setq mode-line-format (doom-modeline 'special))) (doom-set-modeline 'special))
(add-hook 'org-src-mode-hook #'+doom-modeline|set-special-modeline) (add-hook 'org-src-mode-hook #'+doom-modeline|set-special-modeline)