summaryrefslogtreecommitdiffhomepage
path: root/lib/eos/jao-mode-line.el
diff options
context:
space:
mode:
Diffstat (limited to 'lib/eos/jao-mode-line.el')
-rw-r--r--lib/eos/jao-mode-line.el55
1 files changed, 40 insertions, 15 deletions
diff --git a/lib/eos/jao-mode-line.el b/lib/eos/jao-mode-line.el
index 0fd5a2e..e4f64c0 100644
--- a/lib/eos/jao-mode-line.el
+++ b/lib/eos/jao-mode-line.el
@@ -48,10 +48,17 @@
(interactive "P")
(jao-mode-line--face-height 'mode-line-inactive all))
+(defun jao-mode-line--old-str ()
+ (thread-first (format-mode-line jao-mode-line--old-format)
+ (substring-no-properties)
+ (string-trim)))
+
;;;###autoload
(defun jao-mode-line-echo ()
(interactive)
- (message "%s" (format-mode-line mode-line-format)))
+ (message "%s" (jao-mode-line--old-str))
+ (setq-local header-line-format
+ (if header-line-format nil jao-mode-line--old-format)))
;;;###autoload
(defun jao-mode-line-hide-inactive (frame)
@@ -78,8 +85,8 @@
'gnus-article-mode
'gnus-summary-mode)
mode-line-buffer-identification)
- ((derived-mode-p 'circe-channel-mode)
- (format "%s [%d]" (buffer-name) (length (circe-channel-nicks))))
+ ;; ((derived-mode-p 'circe-channel-mode)
+ ;; (format "%s [%d]" (buffer-name) (length (circe-channel-nicks))))
((not (null eww-data))
(or (plist-get eww-data :title) "No title"))
(t "%b"))))
@@ -120,32 +127,49 @@
(if inactive jao-mode-line--inactive-face jao-mode-line--face)))
(defun jao-mode-line-adjust-faces ()
- (let ((bg (frame-parameter nil 'background-color)))
+ (let ((bg (and (display-graphic-p) (frame-parameter nil 'background-color)))
+ (ol (and (display-graphic-p) jao-minibuffer-active-buffer-line-color))
+ (ul (and (display-graphic-p) jao-minibuffer-inactive-buffer-line-color)))
(jao-mode-line--extract-face nil)
(jao-mode-line--extract-face t)
(set-face-attribute 'mode-line nil :box nil :height 1
:background bg :foreground bg
- :overline jao-minibuffer-active-buffer-line-color
- :underline jao-minibuffer-inactive-buffer-line-color
- :extend t)
+ :overline ol :underline ul :extend t)
(set-face-attribute 'mode-line-inactive nil :box nil :height 1
:background bg :foreground bg
;; :overline bg
- :underline jao-minibuffer-inactive-buffer-line-color
- :extend t)))
+ :underline ul :extend t)))
-;;;###autoload
-(defun jao-mode-line-add-to-minibuffer (&optional order)
+(defun jao-mode-line--maybe-refresh ()
+ (when (mode-line-window-selected-p) (jao-minibuffer-refresh)))
+
+(defconst jao-mode-line--hidden-format
+ '("" (:eval (jao-mode-line--maybe-refresh))))
+
+(defun jao-mode-line--add-to-minibuffer (order msg-p)
(interactive)
(setq jao-mode-line--old-format mode-line-format)
- (setq-default mode-line-format '(" "))
+ (setq-default mode-line-format jao-mode-line--hidden-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--format (or order 90))
+ (with-current-buffer b
+ (setq-local mode-line-format jao-mode-line--hidden-format)))
+ (if msg-p
+ (jao-minibuffer-add-msg-variable '(jao-mode-line--old-str) (or order 90))
+ (jao-minibuffer-add-variable 'jao-mode-line--format (or order 90)))
(jao-mode-line-adjust-faces))
;;;###autoload
+(defun jao-mode-line-add-to-minibuffer-right (&optional order)
+ (interactive)
+ (jao-mode-line--add-to-minibuffer order nil))
+
+;;;###autoload
+(defun jao-mode-line-add-to-minibuffer-left (&optional order)
+ (interactive)
+ (jao-mode-line--add-to-minibuffer order t))
+
+;;;###autoload
(defun jao-mode-line-remove-from-minibuffer ()
(interactive)
(jao-mode-line--revert-face nil)
@@ -154,7 +178,8 @@
(dolist (b (buffer-list))
(with-current-buffer b
(setq-local mode-line-format jao-mode-line--old-format)))
- (jao-minibuffer-remove-variable 'jao-mode-line--format))
+ (jao-minibuffer-remove-variable 'jao-mode-line--format)
+ (jao-minibuffer-remove-variable '(jao-mode-line--old-str)))
(provide 'jao-mode-line)