summaryrefslogtreecommitdiffhomepage
path: root/etc
diff options
context:
space:
mode:
Diffstat (limited to 'etc')
-rw-r--r--etc/xmobar.el13
1 files changed, 8 insertions, 5 deletions
diff --git a/etc/xmobar.el b/etc/xmobar.el
index 905af3d..86f7190 100644
--- a/etc/xmobar.el
+++ b/etc/xmobar.el
@@ -54,7 +54,7 @@
:type 'string)
(defcustom xmobar-tab-bar-format
- '(xmobar-left-string tab-bar-format-align-right xmobar-right-string)
+ '(xmobar-left-string xmobar-elastic-space xmobar-right-string)
"Format for the tab bar when `xmobar-tab-bar' is t."
:type 'list)
@@ -72,10 +72,12 @@
(if (featurep 'xterm-color) #'xterm-color-filter #'ansi-color-apply))
(defvar xmobar--old-tab-format tab-bar-format)
+(defvar xmobar--len 0)
(defun xmobar-string () xmobar-string)
(defun xmobar-right-string () xmobar-string)
(defun xmobar-left-string () xmobar--left-string)
+(defun xmobar-elastic-space () (make-string (- (frame-width) xmobar--len 3) ? ))
;;;###autoload
(define-minor-mode xmobar-mode
@@ -90,8 +92,7 @@
(tab-bar-mode 1))
(or global-mode-string (setq global-mode-string '("")))
(unless (memq 'xmobar-string global-mode-string)
- (setq global-mode-string
- (append global-mode-string '(xmobar-string)))))
+ (add-to-list 'global-mode-string 'xmobar-string t)))
(xmobar--start))
(when xmobar-tab-bar (setq tab-bar-format xmobar--old-tab-format))))
@@ -101,7 +102,9 @@
(let* ((str (funcall xmobar--colorize-fn update))
(strs (and xmobar-tab-split (split-string str xmobar-tab-split))))
(setq xmobar-string (if strs (cadr strs) str)
- xmobar--left-string (or (car strs) "")))
+ xmobar--left-string (or (car strs) "")
+ xmobar--len (+ (string-width xmobar--left-string)
+ (string-width xmobar-string))))
(force-mode-line-update t)))
(defun xmobar--process-filter (proc string)
@@ -115,7 +118,7 @@
(insert string)
(set-marker (process-mark proc) (point)))
(when (string-match-p "\n$" string)
- (xmobar--update (buffer-string))
+ (xmobar--update (buffer-substring (point-min) (- (point-max) 1)))
(delete-region (point-min) (point-max)))))))
(defun xmobar--process-sentinel (proc status)