summaryrefslogtreecommitdiffhomepage
path: root/lib/eos
diff options
context:
space:
mode:
Diffstat (limited to 'lib/eos')
-rw-r--r--lib/eos/jao-mode-line.el (renamed from lib/eos/jao-minibuffer-mode-line.el)89
1 files changed, 65 insertions, 24 deletions
diff --git a/lib/eos/jao-minibuffer-mode-line.el b/lib/eos/jao-mode-line.el
index 6f69630..566fdf1 100644
--- a/lib/eos/jao-minibuffer-mode-line.el
+++ b/lib/eos/jao-mode-line.el
@@ -1,4 +1,4 @@
-;;; jao-minibuffer-mode-line.el --- mode-line info in the minibuffer -*- lexical-binding: t; -*-
+;;; jao-mode-line.el --- mode-line info -*- lexical-binding: t; -*-
;; Copyright (C) 2022 jao
@@ -20,20 +20,58 @@
;;; Commentary:
-;; Using jao-minibuffer to display mode-line info in the minibuffer.
+;; Using jao-minibuffer to display mode-line info in the minibuffer,
+;; or toggle it off in non-active windows.
;;; Code:
(require 'jao-minibuffer)
+
+;;;; mode line toggle
+(defun jao-mode-line--face-height (face &optional all)
+ (let* ((h (face-attribute face :height (window-frame)))
+ (nh (if (eq 'unspecified h) 1 'unspecified)))
+ (set-face-attribute face (when (not all) (window-frame)) :height nh)))
+
+(defun jao-mode-line--set-inactive-face (x frame)
+ (unless (eq x (face-attribute 'mode-line-inactive :height frame))
+ (set-face-attribute 'mode-line-inactive frame :height x)))
+
+;;;###autoload
+(defun jao-mode-line-toggle (&optional all)
+ (interactive "P")
+ (jao-mode-line--face-height 'mode-line all))
+
+;;;###autoload
+(defun jao-mode-line-toggle-inactive (&optional all)
+ (interactive "P")
+ (jao-mode-line--face-height 'mode-line-inactive all))
+
+;;;###autoload
+(defun jao-mode-line-echo ()
+ (interactive)
+ (message "%s" (format-mode-line mode-line-format)))
+
+;;;###autoload
+(defun jao-mode-line-hide-inactive (frame)
+ (jao-mode-line--set-inactive-face 1 frame))
+
+;;;###autoload
+(defun jao-mode-line-show-inactive (frame)
+ (jao-mode-line--set-inactive-face 'unspecified frame))
+
+
+;;;; mode line format
+
(defvar exwm-class-name nil)
-(defvar jao-minibuffer--mode-line-position
+(defvar jao-mode-line--position
'(exwm-class-name
("")
("%n %2c %l " (:eval (format "%d" (line-number-at-pos (point-max)))))))
-(defvar jao-minibuffer--mode-line-bid
+(defvar jao-mode-line--bid
'(:eval (cond ((derived-mode-p 'gnus-group-mode
'gnus-article-mode
'gnus-summary-mode)
@@ -43,7 +81,7 @@
(t "%b"))))
(defvar jao-minibuffer--mode-line-format
- `("%[" (:propertize ,jao-minibuffer--mode-line-bid face jao-themes-f00) "%]"
+ `("%[" (:propertize ,jao-mode-line--bid face jao-themes-f00) "%]"
(:propertize " (" face jao-themes-dimm)
(:propertize mode-name face jao-themes-f00)
(:propertize ("" minor-mode-alist) face jao-themes-f11)
@@ -56,11 +94,14 @@
face jao-themes-warning)
(:propertize "ยท" display "")))
-(defvar jao-minibuffer--original-modeline nil)
-(defvar jao-minibuffer--original-line-face nil)
-(defvar jao-minibuffer--original-line-inactive-face nil)
+
+;;;; 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)
-(defun jao-minibuffer-mode-line-adjust-faces ()
+(defun jao-mode-line-adjust-faces ()
(let ((bg (frame-parameter nil 'background-color)))
(set-face-attribute 'mode-line nil :box nil :height 1
:background bg :foreground bg
@@ -74,33 +115,33 @@
:extend t)))
;;;###autoload
-(defun jao-minibuffer-add-mode-line (&optional order)
+(defun jao-mode-line-add-to-minibuffer (&optional order)
(interactive)
- (setq jao-minibuffer--original-line-face
+ (setq jao-mode-line--original-line-face
(get 'mode-line 'saved-face))
- (setq jao-minibuffer--original-line-inactive-face
+ (setq jao-mode-line--original-line-inactive-face
(get 'mode-line-inactive 'saved-face))
- (setq jao-minibuffer--original-modeline mode-line-format)
+ (setq jao-mode-line--original-modeline mode-line-format)
(setq-default mode-line-format '(" "))
- (setq-default mode-line-position jao-minibuffer--mode-line-position)
+ (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-minibuffer--mode-line-format (or order 90))
- (jao-minibuffer-mode-line-adjust-faces))
+ (jao-minibuffer-add-variable 'jao-mode-line--mode-line-format (or order 90))
+ (jao-mode-line-adjust-faces))
;;;###autoload
-(defun jao-minibuffer-remove-mode-line ()
+(defun jao-mode-line-remove-from-minibuffer ()
(interactive)
- (face-spec-set 'mode-line jao-minibuffer--original-line-face)
- (face-spec-set 'mode-line-inactive jao-minibuffer--original-line-inactive-face)
- (setq-default mode-line-format jao-minibuffer--original-modeline)
+ (face-spec-set 'mode-line jao-mode-line--original-line-face)
+ (face-spec-set 'mode-line-inactive jao-mode-line--original-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-minibuffer--original-modeline)))
+ jao-mode-line--original-modeline)))
(setq jao-minibuffer-info
- (remove '(:eval jao-minibuffer--mode-line-format)
+ (remove '(:eval jao-mode-line--mode-line-format)
jao-minibuffer-info)))
-(provide 'jao-minibuffer-mode-line)
-;;; jao-minibuffer-mode-line.el ends here
+(provide 'jao-mode-line)
+;;; jao-mode-line.el ends here