[StumpWM] Better mode-line formatting handling
This commit is contained in:
parent
fa9767ec19
commit
27fdcac542
@ -494,6 +494,15 @@ the font I am using (see §[[#Theme-Fonts-28pc8141v5j0]]).
|
||||
: (("%g") ("%W") ("^>") ("mu-unread" . t) ("%m") ("%I") ("%l") ("%C") ("%M") ("%B") ("%d"))
|
||||
|
||||
#+begin_src lisp :noweb yes
|
||||
(defvar *mode-line-formatter-list*
|
||||
'<<modeline-format-gen()>>
|
||||
"List of formatters for the modeline.")
|
||||
#+end_src
|
||||
|
||||
As you can see, ~generate-modeline~ generates the string defining
|
||||
~*screen-mode-line-format*~ from the list of formatters we gave it with
|
||||
the table [[modeline-format]].
|
||||
#+begin_src lisp
|
||||
(defun generate-modeline (elements &optional not-invertedp)
|
||||
"Generate a modeline for StumpWM.
|
||||
ELEMENTS should be a list of `cons'es which `car' is the modeline
|
||||
@ -517,20 +526,21 @@ when the `car' is a formatter and t when it is a shell command."
|
||||
`(:eval (run-shell-command ,formatter t))
|
||||
(format nil "~A" formatter))
|
||||
(generate-modeline (cdr elements) (not not-invertedp)))))))
|
||||
#+end_src
|
||||
|
||||
It is then easy to define a command that can call this function and
|
||||
set this variable so we can sort of reload the mode-line.
|
||||
#+begin_src lisp
|
||||
(defcommand reload-modeline () ()
|
||||
"Reload modeline."
|
||||
(setf *screen-mode-line-format*
|
||||
(cdr (generate-modeline '<<modeline-format-gen()>>))))
|
||||
|
||||
(reload-modeline)
|
||||
(cdr (generate-modeline *mode-line-formatter-list*))))
|
||||
#+end_src
|
||||
|
||||
This variable as you can see is a list of elements, although here I am
|
||||
only using one string. But it is absolutely possible to insert some
|
||||
CLisp code in here that returns some string if the user needs some
|
||||
code to return data that cannot be easily accesible otherwise. I might
|
||||
add some at some point, but not today yet.
|
||||
And actually, let’s reload the modeline immediately.
|
||||
#+begin_src lisp
|
||||
(reload-modeline)
|
||||
#+end_src
|
||||
|
||||
** TODO Investigate why ~stumptray~ acts up :noexport:
|
||||
:PROPERTIES:
|
||||
|
Loading…
Reference in New Issue
Block a user