Simple, beautiful Emacs modeline: modusregel

jjba231 pts0 comments

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...

modusregel mode line emacs buffer expr

Related Articles