diff options
Diffstat (limited to 'lib')
-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 |