summaryrefslogtreecommitdiff
path: root/lisp/appearance/modeline.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/appearance/modeline.el')
-rw-r--r--lisp/appearance/modeline.el34
1 files changed, 25 insertions, 9 deletions
diff --git a/lisp/appearance/modeline.el b/lisp/appearance/modeline.el
index 53ee967..c3acaf7 100644
--- a/lisp/appearance/modeline.el
+++ b/lisp/appearance/modeline.el
@@ -64,6 +64,30 @@ RIGHT aligned respectively."
(defun remove-unicode (s)
"Remove non-ASCII or non-printable ASCII characters from `S'."
(apply #'string (seq-filter #'(lambda (c) (and (>= c ? ) (<= c ?~))) s)))
+(defvar mode-line-time-tracking nil)
+(defvar mode-line-time-tracking-counter -1)
+(defvar mode-line-time-tracking-timer nil)
+
+(defun mode-line-time-tracking-update ()
+ (setq mode-line-time-tracking-counter
+ (+ 1 mode-line-time-tracking-counter))
+ (setq mode-line-time-tracking
+ (format "[%.2d:%.2d] %s"
+ (floor (/ mode-line-time-tracking-counter 60))
+ (floor (% mode-line-time-tracking-counter 60))
+ org-clock-heading)))
+
+(defun mode-line-time-tracking-enable ()
+ (setq mode-line-time-tracking-counter -1)
+ (setq mode-line-time-tracking-timer
+ (run-at-time nil 60 #'mode-line-time-tracking-update)))
+
+(defun mode-line-time-tracking-disable ()
+ (setq mode-line-time-tracking "")
+ (cancel-timer mode-line-time-tracking-timer))
+
+(add-hook 'org-clock-in-hook #'mode-line-time-tracking-enable)
+(add-hook 'org-clock-out-hook #'mode-line-time-tracking-disable)
(setq-default mode-line-format
'((:eval
@@ -91,12 +115,4 @@ RIGHT aligned respectively."
(concat "%b [%m] [%*] Ln: %l/"
(number-to-string (1+ (count-lines 1 (point-max))))
" Col: %c")))
- (cond ((string= (system-name) "Upsilon")
- (format "%s | %s"
- (mode-line-time)
- battery-mode-line-string))
- (t (let ((eyebrowse-widget (eyebrowse-mode-line-indicator))
- (time-widget (mode-line-time)))
- (if (cl-plusp (length eyebrowse-widget))
- (format "%s | %s" eyebrowse-widget time-widget)
- time-widget))))))))
+ mode-line-time-tracking))))

© 2015 - 2026 Jakob L. Kreuze