
Mutter Butter
https://github.com/obra/mutter-butter- Category
- Productivity
- Rank
- No. 1802Tools index
Previous survey · No. 1810 ·
- Pricing
- Open Source
- Type
- TOOL
- Builder
- obra
- GitHub
- 3 stars
- Date
About
GNOME Shell extension for grid-based window management with live-scaling stamps.
What it does
Mutter Butter keeps crowded desktops usable by turning less recently focused windows into small, continuously updated previews. Those previews remain visible, clickable, draggable, and available through normal window switching. Restoring one can automatically shrink the least recently used full-size window.
Why it's ranked here
Its strongest idea is preserving visual access to inactive windows instead of hiding them completely. Focus-aware replacement, per-monitor layouts, manual scaling, and three preview placement strategies make the concept practical. The narrow GNOME version target and rendering caveats limit its reach.
What's good
Window pressure is handled predictably through recent-focus order and a configurable threshold. Users can restore previews with a click, inspect them on hover, reposition them, or swap occupied cells. Fullscreen and maximized windows bypass automatic shrinking, while application exemptions protect unsuitable workloads.
Tradeoffs
It requires GNOME Shell 50 and source installation involves packaging files, compiling settings schemas, restarting the session, and enabling the extension. Video players and hardware-accelerated content may render as black preview rectangles. Grid size changes require restarting the extension, and exemptions apply to entire applications.
How to use it well
It suits GNOME users who keep many ordinary application windows open and want persistent visual access without constant workspace switching. Tune the focus threshold, monitor grids, and preview placement around your display layout. Do not treat it as a general desktop tool, video preview system, or per-window rules engine.
Technical notes+
extension.js orchestrates GNOME Shell signals, per-monitor MonitorGrid instances, focus tracking, keybindings, overview handling, and window lifecycle. lib/gridEngine.js, lib/stampPlacer.js, and lib/focusTracker.js isolate pure logic tested through the GJS harness in tests/run.js. lib/scaleManager.js creates Clutter.Clone actors, hides real window actors from picking, and moves source windows off-screen. lib/inputRouter.js manages preview interaction and hover restoration, while lib/dragHandler.js intercepts Mutter grab operations and draws grid targets. prefs.js builds a libadwaita preferences interface backed by GSettings. docs/TESTING.md documents standalone unit tests, a live checklist, and limited headless GNOME integration checks.
Observed
- License
- MIT
- Primary language
- JavaScript using GJS ES modules
- Platform support
- GNOME Shell 50
- Install surface
- Source ZIP installed with the GNOME Extensions CLI, followed by GSettings schema compilation
- User interfaces
- GNOME Shell extension, libadwaita preferences window, keyboard shortcuts, and direct window interactions
- Testing structure
- Standalone GJS unit tests cover grid math, preview placement strategies, and focus ranking
- Configuration
- GSettings provides global behavior controls and relocatable per-monitor grid settings
Read from README.md, lib/constants.js, lib/gridEngine.js, lib/dragHandler.js, lib/inputRouter.js, lib/stampPlacer.js, lib/focusTracker.js, lib/scaleManager.js, lib/windowStateHandler.js, docs/TESTING.md, docs/superpowers/plans/2026-04-03-mutter-butter.md, prefs.js, extension.js, tests/run.js.
What it can do
Organize windows in a grid layout
Open application windows → Windows arranged in grid pattern on desktop
Resize windows to fit grid cells
Application windows and grid configuration → Windows scaled to match grid cell dimensions
Snap windows to grid positions
Dragged or moved windows → Windows automatically positioned to nearest grid cells
Apply live-scaling stamps to windows
Selected windows and stamp configuration → Windows with applied scaling transformations
Manage window tiling configurations
User-defined tiling preferences → Saved window management layouts
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.