Replace a plain-text Emacs mode-line with an SVG bar that has independent left, center, and right alignment.
Make an overflowing tab bar wrap onto multiple rows instead of scrolling or truncating.
Add click actions, right-click menus, and hover tooltips to mode-line or header-line segments.
| chiply/svg-line | nohzafk/emacs-workspace-hud | jxs/editorconfig-emacs | |
|---|---|---|---|
| Stars | 39 | 17 | — |
| Language | Emacs Lisp | Emacs Lisp | Emacs Lisp |
| Last pushed | — | — | 2017-09-12 |
| Maintenance | — | — | Dormant |
| Setup difficulty | easy | hard | easy |
| Complexity | 3/5 | 3/5 | 2/5 |
| Audience | developer | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires Emacs 29.1 or newer and graphical mode, does not work in a terminal.
svg-line is an Emacs package that replaces the text-based bars Emacs draws for its tab bar, tab line, header line, and mode line with SVG images instead. Emacs normally renders those areas as laid-out text, which limits what they can look like and how they behave. By switching to SVG, the package removes several restrictions: bars can be any height, tabs can wrap onto multiple rows instead of being cut off or scrolled horizontally, and each row in a bar can have independent left, center, and right alignment. The package also adds interactivity to all four bar types. Any segment in a bar can have a left-click action, a right-click context menu, and hover tooltip text. This is notable for the tab bar in particular, which the README describes as otherwise uncooperative for those kinds of interactions. svg-line is a rendering engine only. It ships no content and no colors of its own. You define what each bar shows by providing a content function that returns a list of rows, where each row specifies what text or widgets appear on the left, center, and right. Colors and fonts can be literal values or functions that are re-evaluated on every render, which lets them respond to theme changes automatically. Inline SVG bar charts and pie charts are available as built-in segment types. The package requires Emacs 29.1 or newer and only works in graphical mode, not in a terminal. Installation is available through elpaca, straight.el, or by manually adding the file to the load path. The license is GPL-3.0.
An Emacs package that replaces the plain-text tab bar, tab line, header line, and mode line with SVG images, allowing wrapping, alignment, and clickable elements.
Mainly Emacs Lisp. The stack also includes Emacs Lisp.
You can use and modify this freely, but any software you build with it and distribute must also be released as open source under the same license.
Setup difficulty is rated easy, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.