Simplifying My Modeline
After watching the latest informative video from Protesilaos Stavrou (Prot):
I decided to try and create my own simple mode line incorporating the features I regularly glance at throughout a day. Having
magit details on my mode line plus other mysterious characters seems a bit much.
After adapting the examples given in the video I created the following:
(setq-default mode-line-format '("%e" " %o " "%* " my-modeline-buffer-name my-modeline-major-mode)) (defvar-local my-modeline-buffer-name '(:eval (when (mode-line-window-selected-p) (propertize (format " %s " (buffer-name)) 'face '(t :background "#3355bb" :foreground "white" :inherit bold)))) "Mode line construct to display the buffer name.") (put 'my-modeline-buffer-name 'risky-local-variable t) (defvar-local my-modeline-major-mode '(:eval (list (propertize "λ" 'face 'shadow) " " (propertize (capitalize (symbol-name major-mode)) 'face 'bold))) "Mode line construct to display the major mode.") (put 'my-modeline-major-mode 'risky-local-variable t)
I left in
%e as suggested to show an error message if memory was full.
%o for how far through the buffer I am. I have my scroll bars disabled but always find it useful to see where I am in a file especially when coding or within a large org file (for example when applying some repetitive macros seeing 80% through the buffer is quite motivating!)
%* to indicate if a file has been modified using the asterisk convention which is common in many other programs and has the side-effect of removing all other cryptic characters that I don’t understand. In the future I can always add some back in again but at that point I will (hopefully) understand what I am reintroducing.
Finally it is just the case of adding the buffer name and major mode which comes straight from the examples given in the video.
I especially like the control over the file name colour profile in combination with the use of the
mode-line-window-selected-p function (introduced as part of emacs 29) which helps to identify the buffer in focus.
As with all these things I will use it and adapt accordingly and hopefully not feel the need to add everything back in again!, I think I like this simplicity for now.