svg-line: Better Status Bars for Emacs

Lobsters Hottest Tools

Summary

Introduces svg-line, an Emacs package that uses SVG rendering to create consistent, multi-line, and feature-rich status bars across mode-line, header-line, tab-bar, and tab-line.

<p><a href="https://lobste.rs/s/bqjxzj/svg_line_better_status_bars_for_emacs">Comments</a></p>
Original Article
View Cached Full Text

Cached at: 06/08/26, 03:19 PM

# svg-line: Better Status Bars for Emacs Source: [https://www.chiply.dev/post-svg-line](https://www.chiply.dev/post-svg-line) Emacs gives us four status bars, the`mode\-line`, the`header\-line`, the`tab\-bar`, and the`tab\-line`\(*\*\-lines*for short\)\. These are useful for providing a dynamic 'heads\-up display', for important context, like what buffer you're in, the active major mode, and really any arbitrary thing you can define\. I'm a heavy user of the \*\-lines in Emacs, and I have them all enabled, but the issue that has plagued me is that, natively, each one behaves differently and each has unique limitations\. For example, multi\-line status \(necessary on my small laptop\) is possible, but only in the`tab\-bar`\. Right alignment is possible in the`tab\-bar`, but only in the last line, and this alignment feature is only available in the`tab\-bar`\. I can display icons from all\-the\-icons in the`mode\-line`and`header\-line`, but not the`tab\-bar`or`tab\-line`\. Etc…\. What I really want is consistent behaviour and configuration across all these status bars, and I want the multi\-line, alignment, and icons features available in all of them\. It turns out that SVG \([scaled vector graphics](https://en.wikipedia.org/wiki/SVG)\) is the key to solving this\. Inspired by Nicolas Rougier's[dual\-header gist](https://gist.github.com/rougier/8d5a712aa43e3cc69e7b0e325c84eab4), I built`svg\-line`, which provides this experience by utilizing Emacs's built\-in SVG rendering support\. At first, this approach seemed like a hack, or abuse of the \*\-lines, or neglect of the built\-in status bar behaviour\. But I kept it and created a package because I was literally shocked how well this works and how native this feels \(see the screenshot and video above\)\. Note that even if you only use the`mode\-line`,`svg\-line`is still useful — likely*more*so, since a single status bar has to render all your indicators on its own\.

Similar Articles

markdown-svg-renderer

Simon Willison's Blog

A markdown rendering tool that supports live preview, table and code block formatting, and special handling for SVG code blocks with inline preview and tabbed code view.

@VincentLogic: Discovered an amazing tool for scientific visualization! nature-skills lets you create Nature-level figures using matplotlib. It handles multi-panel layouts, color schemes, fonts, and typography seamlessly, directly exporting editable SVGs. Comes with 5 built-in Nature-style template examples, supporting bar…

X AI KOLs Timeline

nature-skills is a scientific visualization tool based on matplotlib. It features built-in Nature-style templates, supports various chart types, and outputs editable SVG format, aiming to streamline the figure creation process for scientific papers.