NOTE: I am no longer actively developing this modeline, though its design is now largely incorporated into Lambda-line.
A simple custom modeline for emacs. This started as a fork of Nicolas Rougier’s excellent nano-modeline, but has evolved somewhat to include several extra (or simply different) features.
The modeline is less conservative/minimal than nano-modeline, in the sense that it has a broader color palette and provides more configuration options.
The user is strongly encouraged to use bespoke-modeline with bespoke-themes (see that repo for more sample images of the modeline), but it should be, in principle, compatible with any theme.
- The modeline may be set as a header line (similar in style to nano-emacs), or as
the normal footer line, setting
(bespoke-modeline-position)
to top, bottom, or nil. - You can set the size of the mode line with
(bespoke-modeline-size)
- Set the buffer status symbol in the modeline. This is configurable separately
for GUI and terminal. Default symbols are, respectively, read-only: (⨂)/(RO),
modified: (⨀)/(**), and read-write: (◯)/(RW).
- NOTE: If you use symbols you should make sure you are using a font that
will display them properly. Here is one reliable way, using Symbola font:
(use-package fontset :straight (:type built-in) ;; only include this if you use straight :config ;; Use symbola for proper unicode (when (member "Symbola" (font-family-list)) (set-fontset-font t 'symbol "Symbola" nil)))
- NOTE: If you use symbols you should make sure you are using a font that
will display them properly. Here is one reliable way, using Symbola font:
- Show both vc project and branch in the modeline
- Set the symbol for vc-mode with
bespoke-modeline-vc-symbol
andbespoke-modeline-space-bottom
. - Show git diff in modeline with
(bespoke-modeline-git-diff-mode-line)
- Substitute any major mode symbol for its designated one by setting
(bespoke-modeline-cleaner)
to ‘t (and the related variable(bespoke-modeline-cleaner-alist)
- Truncate the buffer-name to a specific value (default is 30) using
(bespoke-modeline-truncate-value)
- The modeline is treated as a minor mode, so that it may be toggled on or off with
(bespoke-modeline-mode)
- Toggle between the top or bottom mode line with
(bespoke-modeline-toggle)
- There is a useful footer line visual alert “bell” inspired by DOOM emacs. To use
include
(setq bespoke-modeline-visual-bell t)
in your setup of the theme. - You can control spacing in the modeline with
bespoke-modeline-space-top
I dont know if/when this will appear on MELPA. In the meantime to use this mode-line you’ll have to clone or otherwise download the repo and put it into your load path. Here’s one possible way of setting it up using use-package and straight.
(use-package bespoke-modeline
:straight (:type git :host github :repo "mclear-tools/bespoke-modeline")
:init
;; Set header line
(setq bespoke-modeline-position 'top)
;; Set mode-line height
(setq bespoke-modeline-size 3)
;; Show diff lines in mode-line
(setq bespoke-modeline-git-diff-mode-line t)
;; Set mode-line cleaner
(setq bespoke-modeline-cleaner t)
;; Use mode-line visual bell
(setq bespoke-modeline-visual-bell t)
;; Set vc symbol
(setq bespoke-modeline-vc-symbol "G:")
:config
(bespoke-modeline-mode))