Vibeleaderboard
Index / tool
Visit github.com
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 windowsWindows arranged in grid pattern on desktop

  • Resize windows to fit grid cells

    Application windows and grid configurationWindows scaled to match grid cell dimensions

  • Snap windows to grid positions

    Dragged or moved windowsWindows automatically positioned to nearest grid cells

  • Apply live-scaling stamps to windows

    Selected windows and stamp configurationWindows with applied scaling transformations

  • Manage window tiling configurations

    User-defined tiling preferencesSaved window management layouts

Tags

gnomewindow-managerlinuxtilingextension

Tech Stack

CSSJavaScript

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.