[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/nano-modeline c23da39f95 03/14: wip: more modelines to
From: |
ELPA Syncer |
Subject: |
[elpa] externals/nano-modeline c23da39f95 03/14: wip: more modelines to dynamic config |
Date: |
Thu, 6 Jan 2022 05:57:43 -0500 (EST) |
branch: externals/nano-modeline
commit c23da39f953bae9fd1af8b64f4bfe056ef011ad8
Author: Hans Donner <hans@hansdonner.nl>
Commit: Hans Donner <hans@hansdonner.nl>
wip: more modelines to dynamic config
---
nano-modeline.el | 217 ++++++++++++++++++++++++++-----------------------------
1 file changed, 103 insertions(+), 114 deletions(-)
diff --git a/nano-modeline.el b/nano-modeline.el
index 00d8f5882f..904f89c8d2 100644
--- a/nano-modeline.el
+++ b/nano-modeline.el
@@ -159,24 +159,34 @@ Modeline is composed as:
:group 'nano-modeline-inactive)
(defcustom nano-modeline-mode-formats
- '(
- ;; with :mode-p first
- (calender-mode :mode-p nano-modeline-calendar-mode-p
+ '(;; with :mode-p first
+ (buffer-menu-mode :mode-p nano-modeline-buffer-menu-mode-p
+ :format nano-modeline-buffer-menu-mode
+ :add-hook nano-modeline-buffer-menu-add
+ :remove-hook nano-modeline-buffer-menu-remove)
+ (calendar-mode :mode-p nano-modeline-calendar-mode-p
:format nano-modeline-calendar-mode
- :add-hook nano-modeline-elfeed-search-add
- :remove-hook nano-modeline-elfeed-search-remove)
- (elfeed-search-mode :mode-p nano-modeline-elfeed-search-mode-p
- :format nano-modeline-elfeed-search-mode
- :add-hook nano-modeline-elfeed-search-add)
+ :add-hook nano-modeline-calendar-add
+ :remove-hook nano-modeline-calendar-remove)
+ (completion-list-mode :mode-p nano-modeline-completion-list-mode-p
+ :format nano-modeline-completion-list-mode)
+ (deft-mode :mode-p nano-modeline-deft-mode-p
+ :format nano-modeline-deft-mode)
+ (doc-view-mode :mode-p nano-modeline-doc-view-mode-p
+ :format nano-modeline-doc-view-mode)
(elfeed-search-mode :mode-p nano-modeline-elfeed-search-mode-p
:format nano-modeline-elfeed-search-mode
- :add-hook nano-modeline-elfeed-search-add)
+ :add-hook nano-modeline-elfeed-search-add
+ :remove-hook nano-modeline-elfeed-search-remove)
(elfeed-show-mode :mode-p nano-modeline-elfeed-show-mode-p
:format nano-modeline-elfeed-show-mode)
(elpher-mode :mode-p nano-modeline-elpher-mode-p
- :format nano-modeline-elpher-mode)
- (info-breadcrumbs-mode :mode-p nano-modeline-info-breadcrumbs-mode-p
- :format nano-modeline-info-breadcrumbs-mode)
+ :format nano-modeline-elpher-mode
+ :add-hook nano-modeline-elpher-add)
+ (info-mode :mode-p nano-modeline-info-mode-p
+ :format nano-modeline-info-mode
+ :add-hook nano-modeline-info-add
+ :remove-hook nano-modeline-info-remove)
(messages-mode :mode-p nano-modeline-messages-mode-p
:format nano-modeline-messages-mode)
(mu4e-compose-mode :mode-p nano-modeline-mu4e-compose-mode-p
@@ -203,19 +213,26 @@ Modeline is composed as:
:format nano-modeline-org-clock-mode
:add-hook nano-modeline-org-clock-add
:remove-hook nano-modeline-org-clock-remove)
+ (pdf-view-mode :mode-p nano-modeline-pdf-view-mode-p
+ :format nano-modeline-pdf-view-mode)
(prog-mode :mode-p nano-modeline-prog-mode-p
:format nano-modeline-prog-mode)
(term-mode :mode-p nano-modeline-term-mode-p
:format nano-modeline-term-mode)
+ (text-mode :mode-p nano-modeline-text-mode-p
+ :format nano-modeline-text-mode)
(vterm-mode :mode-p nano-modeline-vterm-mode-p
:format nano-modeline-term-mode)
;; hooks only last
- (ein-notebook-note :add-hook nano-modeline-ein-notebook-mode-add)
- (ispell-note :add-hook nano-modeline-ispell-mode-add
+ (ein-notebook-mode :add-hook nano-modeline-ein-notebook-add
+ :remove-hook nano-modeline-ein-notebook-remove)
+ (esh-mode :add-hook nano-modeline-esh-add
+ :remove-hook nano-modeline-esh-remove)
+ (ispell-mode :add-hook nano-modeline-ispell-mode-add
:remove-hook nano-modeline-ispell-mode-remove)
-
- )
+ (mu4e-mode :add-hook nano-modeline-mu4e-add
+ :remove-hook nano-modeline-mu4e-remove))
"Modes to be evalued for modeline.
"
:type '(alist :key-type symbol
@@ -378,10 +395,14 @@ Modeline is composed as:
;; the header format in a notebook buffer. Fortunately, EIN exposes the
;; ein:header-line-format variable for just this purpose.
-(defun nano-modeline-ein-notebook-mode-add ()
- (with-eval-after-load 'ein
- (if (eq nano-modeline-position 'top)
- (setq ein:header-line-format '((:eval
(nano-modeline-ein-notebook-mode)))))))
+(defun nano-modeline-ein-notebook-add ()
+ (with-eval-after-load 'ein
+ (if (eq nano-modeline-position 'top)
+ (setq ein:header-line-format '((:eval
(nano-modeline-ein-notebook-mode)))))))
+
+(defun nano-modeline-ein-notebook-remove ()
+ (if (boundp 'ein:header-line-format)
+ (setq ein:header-line-format '(:eval (ein:header-line)))))
;; ---------------------------------------------------------------------
(defun nano-modeline-elfeed-search-mode-p ()
@@ -423,6 +444,10 @@ Modeline is composed as:
(if (eq nano-modeline-position 'top)
(setq elfeed-search-header-function
#'nano-modeline-elfeed-setup-header))))
+(defun nano-modeline-elfeed-search-remove ()
+ (if (boundp 'elfeed-search-header-function)
+ (setq elfeed-search-header-function #'elfeed-search--header)))
+
;; ---------------------------------------------------------------------
(defun nano-modeline-elfeed-show-mode-p ()
(derived-mode-p 'elfeed-show-mode))
@@ -530,6 +555,13 @@ Modeline is composed as:
""
""))
+(defun nano-modeline-info-add ()
+ (if (eq nano-modeline-position 'top)
+ (setq Info-use-header-line nil)))
+
+(defun nano-modeline-info-remove ()
+ (custom-reevaluate-setting 'Info-use-header-line))
+
;; ---------------------------------------------------------------------
(defun nano-modeline-enlarge-ispell-choices-buffer (buffer)
(when (string= (buffer-name buffer) "*Choices*")
@@ -597,6 +629,13 @@ depending on the version of mu4e."
mu4e--server-props
mu4e~server-props))
+(defun nano-modeline-mu4e-add ()
+ (with-eval-after-load 'mu4e
+ (advice-add 'mu4e~header-line-format :override #'nano-modeline)))
+
+(defun nano-modeline-mu4e-remove ()
+ (advice-remove #'mu4e~header-line-format #'nano-modeline))
+
;; ---------------------------------------------------------------------
(defun nano-modeline-mu4e-dashboard-mode-p ()
(bound-and-true-p mu4e-dashboard-mode))
@@ -733,10 +772,18 @@ depending on the version of mu4e."
#'nano-modeline-org-clock-out))
;; ---------------------------------------------------------------------
-(defun nano-modeline-docview-mode-p ()
+(defun nano-modeline-esh-add ()
+ (with-eval-after-load 'esh-mode
+ (setq eshell-status-in-mode-line nil)))
+
+(defun nano-modeline-esh-remove ()
+ (custom-reevaluate-setting 'eshell-status-in-mode-line))
+
+;; ---------------------------------------------------------------------
+(defun nano-modeline-doc-view-mode-p ()
(derived-mode-p 'doc-view-mode))
-(defun nano-modeline-docview-mode ()
+(defun nano-modeline-doc-view-mode ()
(let ((buffer-name (format-mode-line "%b"))
(mode-name (nano-modeline-mode-name))
(branch (nano-modeline-vc-branch))
@@ -785,6 +832,13 @@ depending on the version of mu4e."
;;(add-hook 'Buffer-menu-mode-hook
;; #'buffer-menu-mode-header-line)
+(defun nano-modeline-buffer-menu-add ()
+ (if (eq nano-modeline-position 'top)
+ (setq Buffer-menu-use-header-line nil)))
+
+(defun nano-modeline-buffer-menu-remove ()
+ (custom-reevaluate-setting 'Buffer-menu-use-header-line))
+
;; ---------------------------------------------------------------------
(defun nano-modeline-elpher-mode-p ()
(derived-mode-p 'elpher-mode))
@@ -803,6 +857,10 @@ depending on the version of mu4e."
tls-string
"")))
+(defun nano-modedline-elpher-add ()
+ (with-eval-after-load 'elpher
+ (setq elpher-use-header nil)))
+
;; ---------------------------------------------------------------------
(defun nano-modeline-completion-list-mode-p ()
(derived-mode-p 'completion-list-mode))
@@ -846,6 +904,9 @@ depending on the version of mu4e."
(defun nano-modeline-text-mode-p ()
(derived-mode-p 'text-mode))
+(defun nano-modeline-text-mode ()
+ (nano-modeline-default-mode))
+
(defun nano-modeline-default-mode ()
(let ((buffer-name (format-mode-line "%b"))
(mode-name (nano-modeline-mode-name))
@@ -879,66 +940,25 @@ depending on the version of mu4e."
(defun nano-modeline ()
"Build and set the modeline."
(message "check mode")
- (let* ((fn (or (catch 'found
- (dolist (elt nano-modeline-mode-formats)
- (let* ((config (cdr elt))
- (mode-p (plist-get config :mode-p))
- (format (plist-get config :format)))
- (when mode-p
- (when (funcall mode-p)
- (throw 'found format))))))
- nano-modeline-default-mode-format))
- (format3 (funcall fn))
- (format '((:eval (funcall (or (catch 'found
- (dolist (elt nano-modeline-mode-formats)
- (let* ((config (cdr elt))
- (mode-p (plist-get config :mode-p))
- (format (plist-get config :format)))
- (when mode-p
- (when (funcall mode-p)
- (throw 'found format))))))
- nano-modeline-default-mode-format))
- )))
- (format2
- '((:eval
- (cond
- ((and nano-modeline-user-mode
- nano-modeline-user-mode-p
- (funcall nano-modeline-user-mode-p)) (funcall
nano-modeline-user-mode))
- ((nano-modeline-messages-mode-p)
(nano-modeline-messages-mode))
- ((nano-modeline-elfeed-show-mode-p)
(nano-modeline-elfeed-show-mode))
- ((nano-modeline-deft-mode-p)
(nano-modeline-deft-mode))
- ((nano-modeline-info-mode-p)
(nano-modeline-info-mode))
- ((nano-modeline-calendar-mode-p)
(nano-modeline-calendar-mode))
- ((nano-modeline-org-capture-mode-p)
(nano-modeline-org-capture-mode))
- ((nano-modeline-org-agenda-mode-p)
(nano-modeline-org-agenda-mode))
- ((nano-modeline-term-mode-p)
(nano-modeline-term-mode))
- ((nano-modeline-vterm-mode-p)
(nano-modeline-term-mode))
- ((nano-modeline-mu4e-dashboard-mode-p)
(nano-modeline-mu4e-dashboard-mode))
- ((nano-modeline-mu4e-main-mode-p)
(nano-modeline-mu4e-main-mode))
- ((nano-modeline-mu4e-loading-mode-p)
(nano-modeline-mu4e-loading-mode))
- ((nano-modeline-mu4e-headers-mode-p)
(nano-modeline-mu4e-headers-mode))
- ((nano-modeline-mu4e-view-mode-p)
(nano-modeline-mu4e-view-mode))
- ((nano-modeline-mu4e-compose-mode-p)
(nano-modeline-mu4e-compose-mode))
- ((nano-modeline-text-mode-p)
(nano-modeline-default-mode))
- ((nano-modeline-pdf-view-mode-p)
(nano-modeline-pdf-view-mode))
- ((nano-modeline-docview-mode-p)
(nano-modeline-docview-mode))
- ;; ((nano-modeline-buffer-menu-mode-p)
(nano-modeline-buffer-menu-mode))
- ((nano-modeline-completion-list-mode-p)
(nano-modeline-completion-list-mode))
- ((nano-modeline-nano-help-mode-p)
(nano-modeline-nano-help-mode))
-;; ((nano-modeline-org-clock-mode-p)
(nano-modeline-org-clock-mode))
- (t
(nano-modeline-default-mode)))))))
-
-
- (message "xx: %s | %s | %s" fn format format2)
- (if (eq nano-modeline-position 'top)
- (progn
- (setq header-line-format format)
- (setq-default header-line-format format))
+ (let* ((format
+ '((:eval
+ (funcall
+ (or (catch 'found
+ (dolist (elt nano-modeline-mode-formats)
+ (let* ((config (cdr elt))
+ (mode-p (plist-get config :mode-p))
+ (format (plist-get config :format)))
+ (when mode-p
+ (when (funcall mode-p)
+ (throw 'found format))))))
+ nano-modeline-default-mode-format))))))
+ (if (eq nano-modeline-position 'top)
(progn
- (setq mode-line-format format)
- (setq-default mode-line-format format)))))
-
+ (setq header-line-format format)
+ (setq-default header-line-format format))
+ (progn
+ (setq mode-line-format format)
+ (setq-default mode-line-format format)))))
(defun nano-modeline-update-windows ()
"Hide the mode line depending on the presence of a window
@@ -961,26 +981,8 @@ below or a buffer local variable 'no-mode-line'."
(setq nano-modeline--saved-mode-line-format mode-line-format)
(setq nano-modeline--saved-header-line-format header-line-format))
- (run-hooks 'nano-modeline-special-modes-add-hook)
+ (run-hooks 'nano-modeline-special-modes-add-hook)
-
-
-
- (with-eval-after-load 'esh-mode
- (setq eshell-status-in-mode-line nil))
-
- (with-eval-after-load 'elpher
- (setq elpher-use-header nil))
-
- (with-eval-after-load 'mu4e
- (advice-add 'mu4e~header-line-format :override #'nano-modeline))
-
- (if (eq nano-modeline-position 'top)
- (setq Info-use-header-line nil))
-
- (if (eq nano-modeline-position 'top)
- (setq Buffer-menu-use-header-line nil))
-
;; Update selected window
(nano-modeline--update-selected-window)
;; (setq nano-modeline--selected-window (selected-window))
@@ -1001,34 +1003,21 @@ below or a buffer local variable 'no-mode-line'."
(force-mode-line-update t))
-
(defun nano-modeline-mode--inactivate ()
"Inactivate nano mode line and restored default mode-line"
-
- (custom-reevaluate-setting 'Info-use-header-line)
- (custom-reevaluate-setting 'Buffer-menu-use-header-line)
- (custom-reevaluate-setting 'eshell-status-in-mode-line)
(run-hooks 'nano-modeline-special-modes-remove-hook)
-
- (if (boundp 'ein:header-line-format)
- (setq ein:header-line-format '(:eval (ein:header-line))))
- (if (boundp 'elfeed-search-header-function)
- (setq elfeed-search-header-function #'elfeed-search--header))
-
+
(remove-hook 'post-command-hook
#'nano-modeline--update-selected-window)
(remove-hook 'window-configuration-change-hook
#'nano-modeline-update-windows)
- (advice-remove #'mu4e~header-line-format #'nano-modeline)
-
(setq mode-line-format nano-modeline--saved-mode-line-format)
(setq-default mode-line-format nano-modeline--saved-mode-line-format)
(setq header-line-format nano-modeline--saved-header-line-format)
(setq-default header-line-format nano-modeline--saved-header-line-format))
-
;;;###autoload
(define-minor-mode nano-modeline-mode
"Toggle nano-modeline minor mode"
- [elpa] externals/nano-modeline b70d6d769f 04/14: wip: hooks/activation/inactivation, (continued)
- [elpa] externals/nano-modeline b70d6d769f 04/14: wip: hooks/activation/inactivation, ELPA Syncer, 2022/01/06
- [elpa] externals/nano-modeline ff4448d0af 01/14: wip: make available modelines more dynamic, ELPA Syncer, 2022/01/06
- [elpa] externals/nano-modeline d53cc91e78 05/14: mark user-mode vars obsolete, ELPA Syncer, 2022/01/06
- [elpa] externals/nano-modeline 0678aba020 12/14: Merge pull request #25 from hans-d/dynamic-formats, ELPA Syncer, 2022/01/06
- [elpa] externals/nano-modeline 3d11373512 07/14: small fixes, ELPA Syncer, 2022/01/06
- [elpa] externals/nano-modeline eab6790166 11/14: remove lingering message, ELPA Syncer, 2022/01/06
- [elpa] externals/nano-modeline 7ccfb4923c 08/14: Updated copyright years, ELPA Syncer, 2022/01/06
- [elpa] externals/nano-modeline 8608a4eb81 09/14: Merge remote-tracking branch 'origin/master', ELPA Syncer, 2022/01/06
- [elpa] externals/nano-modeline 12ac7ccae4 02/14: wip: more modelines to dynamic config, ELPA Syncer, 2022/01/06
- [elpa] externals/nano-modeline 78a3a403c2 06/14: small fixes, ELPA Syncer, 2022/01/06
- [elpa] externals/nano-modeline c23da39f95 03/14: wip: more modelines to dynamic config,
ELPA Syncer <=
- [elpa] externals/nano-modeline b361798a02 14/14: Bumper version to 0.5 and fixed some typos., ELPA Syncer, 2022/01/06
- [elpa] externals/nano-modeline 031da8856a 10/14: untabify, ELPA Syncer, 2022/01/06
- [elpa] externals/nano-modeline 3550eaea40 13/14: Merge remote-tracking branch 'origin/master', ELPA Syncer, 2022/01/06