experimented with aligned modelines (failed so far, disabled)

This commit is contained in:
2023-05-16 19:50:13 +02:00
parent 4b572b7e16
commit a4b69001c6

View File

@@ -35,7 +35,7 @@
" [" tvd-emacs-version "] " " [" tvd-emacs-version "] "
; added because of eyebrowse ; added because of eyebrowse
mode-line-misc-info mode-line-misc-info
'(:eval (propertize '(:eval (propertize
@@ -46,6 +46,73 @@
mode-line-end-spaces)) mode-line-end-spaces))
(when nil
;; from https://lists.gnu.org/archive/html/bug-gnu-emacs/2021-02/msg00885.html
;; compiles but doesn't work
(defvar ml-text-scale-factor 1.0
"Ratio of mode-line text size to default text size, as a float.
This is needed to make sure the text is properly aligned.")
(defun ml-fill-to-center (reserve face)
"Return empty space to the center, leaving RESERVE space on the right."
(setq reserve (* ml-text-scale-factor reserve))
(propertize " "
'display `((space :align-to (- (+ center (.5 . right-margin))
,reserve
(.5 . left-margin))))
'face face))
(defun ml-fill-to-right (reserve face)
"Return empty space, leaving RESERVE space on the right."
(setq reserve (* ml-text-scale-factor reserve))
(when (and window-system (eq 'right (get-scroll-bar-mode)))
(setq reserve (- reserve 2))) ; May be 3 instead of 2 with some toolkits?
(propertize " "
'display `((space :align-to (- (+ right right-fringe right-margin)
,reserve)))
'face face))
(defun ml-render-2-part (left right &optional fill-face)
"Show a modeline with left and right aligned parts."
(concat left
(ml-fill-to-right (string-width (format-mode-line right)) fill-face)
right))
(setq mode-line-align-right
'(
" [" tvd-emacs-version "] "
;; added because of eyebrowse
mode-line-misc-info
'(:eval (propertize
(if (eq defining-kbd-macro t)
"[REC]"
"")
'face 'rec-face))
mode-line-end-spaces))
(setq mode-line-align-left
'(
"%e"
mode-line-front-space
mode-line-mule-info
mode-line-modified
mode-line-remote
" "
mode-line-buffer-identification
" "
mode-line-position
" (%m) "))
(setq-default mode-line-format
'((:eval
(ml-render-2-part
mode-line-align-left
mode-line-align-right)))))
(provide 'init-modeline) (provide 'init-modeline)
;;; init-modeline.el ends here ;;; init-modeline.el ends here