瑠璃の地と人も見つべしわが床は涙の玉と敷きに敷ければ
Ruri is a thin layer over mode-line. A thin layer that makes mode-line modular.
Please use straight.el or something like that.
Then update the mode-line-format
using the function ruri-install
:
(ruri-install
'(modified size summary major-mode flycheck lsp encoding))
By default, segments are joined using 2 spaces; The separator can be customized via ruri-separator
.
Let’s see a toy example. The following code defines a new segment my-great-segment
and uses it:
;; shows current time using the face "error"
(define-ruri-segment my-great-segment
(propertize (current-time-string) 'face 'error))
(ruri-install
'(modified size summary major-mode encoding my-great-segment))
The code results in something like this:
You can easily see that the resulting string of my-great-segment
is added to the mode-line.
New segments can be defined using (define-ruri-segment NAME BODY)
. The NAME
here is the name of the newly-defined segment, and the BODY
is the body of a function that returns a (possibly propetrized) string. Using this BODY
, Ruri defines a nullary function (lambda () ,@BODY)
with some appropriate name (ruri--segment:my-great-segment
, in the case of the example above).
Defined segments can be added to the mode-line using ruri-install
. From the names of the segments passed to this function, Ruri finds corresponding renderer functions (e.g. ruri--segment:my-great-segment
), and calls it every time when mode-line needs to be updated. Ruri joins all the return values of these renderer functions, resulting a colorfully decorated mode-line.
- vekatze/tsuki-theme
- the theme in the screenshots