Dim Inactive Windows

UUID: dim-inactive-windows@jark
Last edited:
3 weeks ago 2026-07-27, 02:54
Last commit: [263e0fff] dim-inactive-windows@jark: Add da.po (#1109)

Dims and desaturates inactive windows (per window, not per app) so the focused window is unmistakable.

README

Close

Dim Inactive Windows

A Cinnamon extension that dims and desaturates inactive windows so the focused window is unmistakable — no more typing into the wrong window.

It works per window, not per application. Two windows of the same program (for example an IDE main window and its free-floating terminal) are told apart: whichever one is not focused gets dimmed.

screenshot

Why

Cinnamon (Muffin) gives inactive windows no visual cue. If you frequently work with two windows side by side — especially IDEs like PhpStorm next to a floating terminal — it is easy to start typing into the wrong one. This extension fades a subtle darken + desaturate effect onto every inactive window, so the active one stands out at a glance while inactive content stays fully readable.

Features

  • Per-window, not per-app — sibling windows of one application are independent.
  • Dim, desaturate, or both (configurable strength).
  • Smooth fade on focus change (configurable duration, or instant).
  • Leaves menus, tooltips, notifications, panels and the desktop untouched.
  • Optional: keep a window bright while one of its modal dialogs is focused.
  • No compositor patching, no overlays — uses Clutter effects on the window actors.

Requirements

  • Cinnamon 6.0+ (tested on Linux Mint 21.3, Cinnamon 6.0.4, X11).

Installation

From System Settings (once published on Cinnamon Spices)

System Settings → Extensions → Download → Dim Inactive Windows → install, then enable it under the Manage tab.

Manual

Clone straight into a folder named exactly after the extension's UUID:

git clone https://github.com/jarkt/dim-inactive-windows.git \
  ~/.local/share/cinnamon/extensions/dim-inactive-windows@jark

Then enable it under System Settings → Extensions. German UI translations are compiled from po/de.po; on a manual install run msgfmt po/de.po -o ~/.local/share/locale/de/LC_MESSAGES/dim-inactive-windows@jark.mo if you want the settings dialog localized.

Settings

Open System Settings → Extensions → Dim Inactive Windows → ⚙ (Configure):

Setting Default Meaning
What happens to inactive windows Dim and desaturate Effect mode
Dim strength 0.25 0 = none, 0.8 = very dark
Desaturation strength 0.5 0 = full color, 1 = grayscale
Fade duration 150 ms 0 = instant switch
Keep parent bright for modal dialogs off Strict per-window when off (recommended)
Dim when nothing is focused off Also dim everything after clicking the desktop

How it works

On every focus change the extension iterates global.get_window_actors() and, for each inactive window, tweens two Clutter effects onto the actor: Clutter.BrightnessContrastEffect (dim) and Clutter.DesaturateEffect (desaturate). The focused window has its effects removed. Because it operates on Meta.WindowActor objects, the distinction is inherently per window.

License

GPL-2.0-or-later. See LICENSE.

Log In To Comment!

2 Comments

Kevin Langman
Kevin Langman-1 week ago
Nice extension. I wonder if adding an option to set the opacity of inactive windows would be a good addition to this extension?
PurpleSmurf2
PurpleSmurf2-2 weeks ago
An absolutely brilliant extension! It makes working with lots of windows so much easier, as you often click the wrong one when they all look the same. I’d love to see one small improvement in the form of an option to keep windows light when you want to compare things. For example, when you pin windows to the right-hand side and one to the left. Take browser tabs, for instance – if you want to compare two pages, it’s a bit of a nuisance when one of them is always dark. Definitely keep up the good work! I wouldn’t want to work without this extension anymore.