jjba23/modusregel: Clean and beautiful mode line for Emacs, with customization and performance in mind. - Codeberg.org
This website requires JavaScript.
jjba23/modusregel
Watch
Star
Fork
You've already forked modusregel
Code
Issues
Pull requests
Activity
Clean and beautiful mode line for Emacs, with customization and performance in mind.
emacs
lisp
mode-line
package
74 commits
1 branch
21 tags
290 KiB
Emacs Lisp
100%
trunk
Find a file
HTTPS
Download ZIP<br>Download TAR.GZ<br>Download BUNDLE
Open with VS Code
Open with VSCodium
Open with Intellij IDEA
Josep Bigorra
1122f811c4
docs: ๐
2026-07-02 23:43:01 +02:00
COPYING
add docs
2024-09-23 14:10:54 +02:00
modusregel.el
feat: Propertize faces
2026-07-02 23:25:15 +02:00
README.org
docs: ๐
2026-07-02 23:43:01 +02:00
README.org
modusregel
What is modusregel?
๐ธ Screenshots
Installing
Licensing
AI Policy
Code of conduct
modusregel project
Using with keycast
What is modusregel?
modusregel means mode line in the Dutch language.
This package provides a clean, simple, elegant, and beautiful mode line for Emacs (the bottom bar), built with customization, beauty and performance in mind. It is fully compatible with both Emacs GUI and TUI viewports.
Tree-Sitter Smart Major Mode-Mapping: prettifies major mode names, and detects -ts-mode variants (e.g., rust-ts-mode) and cleans them up beautifully (e.g., Rust).
LSP & Flymake Ready: Built-in, non-intrusive indicators for Eglot and Flymake counters.
Lightweight & Fast: Written in pure, efficient Emacs Lisp with performance in mindโno external dependencies.
TUI/GUI Parity: Designed to look crisp and aligned whether you are running Emacs in a terminal or a graphical window.
If you like my work, please support me by buying me a cup of coffee โ so I can continue with a lot of motivation.
๐ธ Screenshots
Note: modusregel is designed to completely or partially replace the native Emacs mode line. Integrating certain external modeline packages might require custom configuration.
modusregel uses minimalist unicode iconography to keep the interface clean while remaining deeply informative.
It uses minimalist unicode iconography to keep the interface clean while remaining deeply informative:
๐บ<br>modusregel-leading-str<br>Lambda: Placed at the absolute start of your mode line, nodding to Emacs' Lisp heritage.
modusregel-buffer-modified-str<br>Unsaved Changes: Appears only when the current buffer has been modified but not yet saved.
modusregel-buffer-read-only-str<br>Read-Only Warning: Appears when the buffer is write-protected or read-only.
modusregel-remote-expr<br>Remote Connection: Displays when you are working on a remote file (e.g., via TRAMP).
๐ค<br>modusregel-eglot-expr<br>Eglot LSP Active: Appears when an Eglot Language Server Protocol session is actively managing the buffer.
Installing
This package is not (yet) available in popular Emacs repositories such as MELPA or ELPA.<br>An example installation with Elpaca:
(use-package modusregel<br>:ensure (:host codeberg :repo "jjba23/modusregel" :branch "trunk")<br>:demand t)
Note : remember that mode-line-format is window-local, this means that to persist changes and set it globally, one must use setq-default and for tweaking and experimenting, change it temporarily to setq.
;; window only<br>(setq mode-line-format modusregel-format)<br>;; global<br>(setq-default mode-line-format modusregel-format)
To ensure the modeline is set in your config, you should tweak the Emacs core. Also, in this way, you can choose what parts you like:
;; Simple example<br>(defun my-set-custom-modeline ()<br>(setq mode-line-format modusregel-format))
;; Or more advanced control<br>(defun my-set-custom-modeline ()<br>"Customize mode-line format using modusregel."<br>(setq mode-line-format (list<br>modusregel-leading-str<br>modusregel-remote-expr<br>modusregel-buffer-name-expr<br>modusregel-buffer-modified-str<br>modusregel-buffer-read-only-str<br>modusregel-spacer-str
;; Uncomment if nyan-mode is enabled above<br>;; modusregel-nyan-expr
modusregel-spacer-str<br>modusregel-line-number-str<br>modusregel-column-number-str<br>modusregel-spacer-str<br>modusregel-buffer-position-str<br>modusregel-spacer-str<br>modusregel-vc-expr<br>modusregel-major-mode-expr<br>modusregel-eglot-expr<br>modusregel-spacer-str<br>modusregel-flymake-expr<br>(ignore-errors keycast-mode-line))))
;; Important hook<br>(add-hook 'after-change-major-mode-hook #'my-set-custom-modeline)
Licensing
modusregel and all of its source code are free software, licensed under the GNU General Public License v3 (or newer at your convenience).
https://www.gnu.org/licenses/gpl-3.0.html
The documentation and examples, including this document, which are provided with modusregel, are all licensed under the GNU Free Documentation License v1.3 (or newer at your convenience).
https://www.gnu.org/licenses/fdl-1.3.html
AI Policy
This project adheres to the jointhefreeworld AI (Artificial Intelligence) policy.
Our core principle is simple: AI should assist human creativity and...