gitmyhub

emacs-workspace-hud

Emacs Lisp ★ 22 updated 14d ago

A floating workspace status HUD for Emacs, showing Git, LSP, and diagnostic state in a WebAssembly-powered egui card.

An Emacs extension that adds a floating status card in the top-right corner showing your Git branch, uncommitted files, language server status, and code errors, always visible while you code, without running any commands.

Emacs LispRustWebAssemblywasm-packsetup: hardcomplexity 3/5

Emacs Workspace HUD is an extension for the Emacs text editor that adds a floating status card anchored to the top-right corner of the editor window. Rather than replacing Emacs's existing status bar, it provides an at-a-glance summary of the things most relevant while coding in a project: which Git branch you are on, whether your local branch is ahead or behind the remote, how many files have uncommitted changes, whether your language server is connected, and how many errors or warnings are present in the current code.

The panel appears automatically when you open a file inside a Git-tracked project and hides itself when you switch to non-code buffers such as help pages or message logs. You can also toggle it manually with a keyboard shortcut. The auto-visibility behavior is customizable through a standard Emacs settings interface, and additional sections can be contributed by other packages through an extension API.

The floating card itself is built in Rust and compiled to WebAssembly, then rendered inside a special embedded web view that some Emacs builds support. This approach lets the card have its own visual style independent of the rest of Emacs. Building the UI requires a Rust toolchain and a tool called wasm-pack, and no prebuilt binaries are distributed.

Installation is more involved than a typical Emacs package because the WebAssembly UI must be compiled locally. There are two routes: a declaration-based approach using a built-in Emacs 30 feature, or a manual clone followed by a build step. Either way, the process fetches a bundled submodule and compiles the Rust code into a web-compatible binary.

This is aimed at Emacs users who want an ambient, always-visible project status summary without opening separate windows or running status commands manually.

Where it fits