From e16408bbd3499f4c62e575c4aee895a06e0eb63d Mon Sep 17 00:00:00 2001 From: jao Date: Fri, 4 Mar 2022 05:32:03 +0000 Subject: mode-line: toggle minibuffer --- lib/eos/jao-mode-line.el | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) (limited to 'lib/eos') diff --git a/lib/eos/jao-mode-line.el b/lib/eos/jao-mode-line.el index 566fdf1..8e86658 100644 --- a/lib/eos/jao-mode-line.el +++ b/lib/eos/jao-mode-line.el @@ -80,7 +80,7 @@ (format "%s [%d]" (buffer-name) (length (circe-channel-nicks)))) (t "%b")))) -(defvar jao-minibuffer--mode-line-format +(defvar jao-mode-line--format `("%[" (:propertize ,jao-mode-line--bid face jao-themes-f00) "%]" (:propertize " (" face jao-themes-dimm) (:propertize mode-name face jao-themes-f00) @@ -98,11 +98,23 @@ ;;;; mode line in minibuffer (defvar jao-mode-line--original-modeline nil) -(defvar jao-mode-line--original-line-face nil) -(defvar jao-mode-line--original-line-inactive-face nil) +(defvar jao-mode-line--face nil) +(defvar jao-mode-line--inactive-face nil) +(defvar jao-mode-line--props + '(:box :height :background :foreground :overline :underline :extend)) + +(defun jao-mode-line--extract-face (face) + (let ((atts nil)) + (dolist (a jao-mode-line--props) + (push (face-attribute face a) atts) + (push a atts)) + atts)) (defun jao-mode-line-adjust-faces () (let ((bg (frame-parameter nil 'background-color))) + (setq jao-mode-line--face (jao-mode-line--extract-face 'mode-line)) + (setq jao-mode-line--inactive-face + (jao-mode-line--extract-face 'mode-line-inactive)) (set-face-attribute 'mode-line nil :box nil :height 1 :background bg :foreground bg :overline jao-minibuffer-active-buffer-line-color @@ -117,30 +129,25 @@ ;;;###autoload (defun jao-mode-line-add-to-minibuffer (&optional order) (interactive) - (setq jao-mode-line--original-line-face - (get 'mode-line 'saved-face)) - (setq jao-mode-line--original-line-inactive-face - (get 'mode-line-inactive 'saved-face)) (setq jao-mode-line--original-modeline mode-line-format) (setq-default mode-line-format '(" ")) (setq-default mode-line-position jao-mode-line--position) (dolist (b (buffer-list)) (with-current-buffer b (setq-local mode-line-format '(" ")))) - (jao-minibuffer-add-variable 'jao-mode-line--mode-line-format (or order 90)) + (jao-minibuffer-add-variable 'jao-mode-line--format (or order 90)) (jao-mode-line-adjust-faces)) ;;;###autoload (defun jao-mode-line-remove-from-minibuffer () (interactive) - (face-spec-set 'mode-line jao-mode-line--original-line-face) - (face-spec-set 'mode-line-inactive jao-mode-line--original-line-inactive-face) + (apply #'set-face-attribute 'mode-line nil jao-mode-line--face) + (apply #'set-face-attribute 'mode-line-inactive nil jao-mode-line--inactive-face) (setq-default mode-line-format jao-mode-line--original-modeline) (dolist (b (buffer-list)) (with-current-buffer b (setq-local mode-line-format jao-mode-line--original-modeline))) (setq jao-minibuffer-info - (remove '(:eval jao-mode-line--mode-line-format) - jao-minibuffer-info))) + (remove '(:eval jao-mode-line--format) jao-minibuffer-info))) (provide 'jao-mode-line) -- cgit v1.2.3