From 134409aa670be39e676f093f5aa5b5b941126375 Mon Sep 17 00:00:00 2001 From: Case Duckworth Date: Thu, 12 May 2022 22:37:16 -0500 Subject: Modeline stuff! --- lisp/+tab-bar.el | 78 ++++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 53 insertions(+), 25 deletions(-) (limited to 'lisp/+tab-bar.el') diff --git a/lisp/+tab-bar.el b/lisp/+tab-bar.el index dce84d8..95f657d 100644 --- a/lisp/+tab-bar.el +++ b/lisp/+tab-bar.el @@ -47,12 +47,40 @@ (when-let ((help (plist-get item 'help-echo))) (list :help help))))))) +(defun +tab-bar-timer () + "Display `+timer-string' in the tab-bar." + (when +timer-string + `((timer-string menu-item + ,(concat " " +timer-string) + (lambda (ev) + (interactive "e") + (cond ((not +timer-timer) nil) + ((equal +timer-string +timer-running-string) + (popup-menu + '("Running timer" + ["Cancel timer" +timer-cancel t]) + ev)) + (t (setq +timer-string "")))))))) + (defun +tab-bar-date () "Display `display-time-string' in the tab-bar." (when display-time-mode `((date-time-string menu-item ,(propertize (concat " " display-time-string)) - ignore + (lambda (ev) + (interactive "e") + (popup-menu + (append '("Timer") + (let (r) + (dolist (time '(3 5 10)) + (push (vector (format "Timer for %d minutes" time) + `(lambda () (interactive) + (+timer ,time)) + :active t) + r)) + (nreverse r)) + '(["Timer for ..." +timer t])) + ev)) :help (discord-date-string))))) (defun +tab-bar-notmuch-count () @@ -220,7 +248,7 @@ name to the left." (when (> (+ l-name l-ell) tab-bar-tab-name-truncated-max) ellipsis) (truncate-string-to-width tab-name l-name - (max 0 (- l-name tab-bar-tab-name-truncated-max l-ell)))) + (max 0 (- l-name tab-bar-tab-name-truncated-max l-ell)))) 'help-echo tab-name)))) (defun +tab-bar-format-align-right () @@ -267,27 +295,27 @@ Used by `tab-bar-format-menu-bar'." (el-patch-feature tab-bar) (with-eval-after-load 'tab-bar (el-patch-defun tab-bar--format-tab (tab i) - "Format TAB using its index I and return the result as a keymap." - (append - (el-patch-remove - `((,(intern (format "sep-%i" i)) menu-item ,(tab-bar-separator) ignore))) - (cond - ((eq (car tab) 'current-tab) - `((current-tab - menu-item - ,(funcall tab-bar-tab-name-format-function tab i) - ignore - :help "Current tab"))) - (t - `((,(intern (format "tab-%i" i)) - menu-item - ,(funcall tab-bar-tab-name-format-function tab i) - ,(alist-get 'binding tab) - :help "Click to visit tab")))) - (when (alist-get 'close-binding tab) - `((,(if (eq (car tab) 'current-tab) 'C-current-tab (intern (format "C-tab-%i" i))) - menu-item "" - ,(alist-get 'close-binding tab))))))) + "Format TAB using its index I and return the result as a keymap." + (append + (el-patch-remove + `((,(intern (format "sep-%i" i)) menu-item ,(tab-bar-separator) ignore))) + (cond + ((eq (car tab) 'current-tab) + `((current-tab + menu-item + ,(funcall tab-bar-tab-name-format-function tab i) + ignore + :help "Current tab"))) + (t + `((,(intern (format "tab-%i" i)) + menu-item + ,(funcall tab-bar-tab-name-format-function tab i) + ,(alist-get 'binding tab) + :help "Click to visit tab")))) + (when (alist-get 'close-binding tab) + `((,(if (eq (car tab) 'current-tab) 'C-current-tab (intern (format "C-tab-%i" i))) + menu-item "" + ,(alist-get 'close-binding tab))))))) ;; Emacs 27 @@ -300,8 +328,8 @@ This is :filter-return advice for `tab-bar-make-keymap-1'." 'display `(space :align-to (- right (- 0 right-margin) ,reserve))))) (prog1 (append output - `((align-right menu-item ,str nil)) - (+tab-bar-misc-info))))) + `((align-right menu-item ,str nil)) + (+tab-bar-misc-info))))) ;; Emacs 28 -- cgit 1.4.1-21-gabe81