translucenttb.dev
2026.2v2026.2

Docs · settings.json

Window rules: per-app looks and ignored windows

Rules let one app change the taskbar differently from the rest, for example opaque while VS Code is maximized. ignored_windows does the opposite: it makes TranslucentTB act as if a window is not there. Both are edited in settings.json; the tray menu has no screen for them.

By translucenttb.devUpdated Checked against TranslucentTB 2026.2Tested hands-on on Windows7 min read

On this page
  1. Where rules work
  2. Which window a rule looks at
  3. The three match types
  4. What a rule can contain
  5. ignored_windows: make TranslucentTB skip a window
  6. How to find a window's class, process and title
  7. Rule tester
  8. Recipes
  9. When a rule does not apply

Short answer

How do I give one app its own taskbar look in TranslucentTB?

Open the tray icon, choose Advanced › Edit settings, and add a rule under maximized_window_appearance (or visible_window_appearance). Match the app by its .exe name:

settings.json (excerpt)
"maximized_window_appearance": {
  "enabled": true,
  "accent": "acrylic",
  "color": "#00000000",
  "rules": {
    "process_name": {
      "Code.exe": { "accent": "opaque", "color": "#1E1E1EFF" }
    }
  }
}

Save the file. TranslucentTB reloads it about 200 ms later, no restart needed.

Where rules work

Only two states accept a rules object: visible_window_appearance and maximized_window_appearance. That follows from what they react to: they are the only states triggered by a specific window. Start, Search, Task View, battery saver and desktop have no window to match, so they have no rules.

A rule only takes effect when its state is the one TranslucentTB picks. In 2026.2 the check order is battery saver, Task View, Aero Peek, Start, Search, maximized window, visible window, desktop (see Dynamic modes). So:

  • The state must be enabled. A rule inside a disabled visible_window_appearance never runs. On a fresh install the visible-window state is off and the maximized state is on.
  • Start, Search, Task View and battery saver beat every rule while they are active.
  • On a monitor with a maximized window, visible-window rules are skipped, even if the maximized state itself is turned off.

Which window a rule looks at

TranslucentTB does not check every open window against your rules. It checks one window per taskbar, and which one depends on the state (read from TaskbarAttributeWorker::GetConfig in the source):

StateWindow checkedConsequence
Maximized windowThe top-most maximized window on that monitor (highest in the z-order)A maximized window hidden behind another maximized window does not count. If the top one has no rule, the state's own look is used.
Visible windowThe focused (foreground) window, only if no window on that monitor is maximized and the focused window is on that monitorClick another app and the rule stops applying. With two monitors, a rule only affects the taskbar under the focused window.

For a window to count at all, it must be what the code calls a user window: visible, not cloaked, top-level, on the current virtual desktop, not a tool window, and not marked no-activate unless it is also an app window. Windows of class Windows.UI.Core.CoreWindow (Start, Search and other shell surfaces) are always skipped.

How TranslucentTB matches a window to a rule A window first has to count as a user window and must not match ignored_windows. For the maximized state TranslucentTB looks at the top-most maximized window; for the visible state, the focused window. It then looks for a rule: an exact window_class match first, then a process_name match ignoring case, then a window_title that contains the text. If a rule matches and the window is not focused and the rule has an inactive look, the inactive look is used. If nothing matches, the state's own look is used. A window appears visible, top-level, not a tool window, on this desktop ignored_windows? a match means the window is skipped no match: continue Which window counts maximized state: top-most maximized visible: focused window 1. window_class exact, case-sensitive 2. process_name .exe name, any case 3. window_title contains, case-sensitive match match match no match Rule found window focused: the rule's look not focused and the rule has "inactive": the inactive look State's own look its accent, color, show_line, …
Matching logic in TranslucentTB 2026.2 (RuledTaskbarAppearance::FindRule and WindowFilter::IsFiltered).

The three match types

Each rule set has three maps. The key is what to match; the value is a look. TranslucentTB tries them in this order and stops at the first hit:

OrderKeyMatches whenCaseExample key
1window_classThe window's class name is exactly the keySensitiveCabinetWClass
2process_nameThe window's .exe file name equals the keyIgnoredCode.exe
3window_titleThe window title contains the key anywhereSensitiveYouTube

Titles are checked last because they change while you use an app (browser tabs, document names), so they are the least reliable. If several title keys match, which one wins is not defined: the keys live in an unordered map. Keep title keys specific enough that only one can match.

A few class names are shared by many apps. Chrome, Edge, VS Code and other Chromium or Electron apps all use Chrome_WidgetWin_1, so a class rule for it hits all of them. Use process_name to target one of them.

A process_name rule for "Notepad.exe" (capital N) matched notepad.exe: rules ignore case for process names.
Real screenshot · TranslucentTB 2026.2 · Windows build 26100A process_name rule for "Notepad.exe" (capital N) matched notepad.exe: rules ignore case for process names.
How this was captured

Captured October 29, 2026 on Windows build 26100 in our hands-on test; only cropped and resized. Settings used:

{ "maximized_window_appearance": { "enabled": true, "accent": "opaque", "color": "#B42318FF",
  "rules": { "process_name": { "Notepad.exe": { "accent": "opaque", "color": "#6D28D9FF" } } } } }

What a rule can contain

A rule is a look with the same keys as any state, minus enabled, plus an optional inactive look:

one rule
"Code.exe": {
  "accent": "opaque",        // normal | opaque | clear | blur | acrylic
  "color": "#1E1E1EFF",      // #RRGGBBAA, alpha last
  "show_peek": true,         // Windows 10 Aero Peek button
  "show_line": true,         // Windows 11 taskbar border line
  "blur_radius": 9.0,        // used by "blur" on Windows 11
  "inactive": {              // optional: look while the window is not focused
    "accent": "acrylic",
    "color": "#00000000"
  }
}

Keys you leave out do not inherit from the state. They take the built-in defaults of a plain look: accent normal, color #00000000, show_peek and show_line true, blur_radius 9.0. So a rule with only "color" gives you the normal Windows taskbar. Always set accent.

There is no enabled key in a rule. If you add one, TranslucentTB ignores it as an unknown key. To switch a rule off, delete it or rename its key to something that cannot match.

The inactive look

inactive (added in 2023.2) is used when the matched window is not the focused window. It matters most for maximized rules: a maximized app stays the top maximized window while you click on the desktop, a second monitor or a small floating window, and inactive lets the taskbar relax while you do.

settings.json (excerpt)
"maximized_window_appearance": {
  "enabled": true,
  "accent": "acrylic",
  "color": "#00000000",
  "rules": {
    "process_name": {
      "WINWORD.EXE": {
        "accent": "opaque",
        "color": "#2B579AFF",
        "inactive": { "accent": "acrylic", "color": "#2B579A40" }
      }
    }
  }
}

For a visible-window rule, inactive almost never shows: the visible-window state only looks at the focused window, which is by definition active.

ignored_windows: make TranslucentTB skip a window

ignored_windows sits at the top level of settings.json and uses the same three match types, as lists instead of maps:

settings.json (excerpt)
"ignored_windows": {
  "window_class": [ "WorkerW" ],
  "window_title": [ "Picture-in-picture" ],
  "process_name": [ "Rainmeter.exe", "steamwebhelper.exe" ]
}

An ignored window is never added to TranslucentTB's list of normal or maximized windows (the check happens in InsertWindow). The effect: it cannot trigger the visible-window or maximized-window state on any monitor. Use it for always-on-screen things that would otherwise keep the taskbar out of its desktop look: desktop widgets, docks, overlays, picture-in-picture players.

Matching is the same as for rules: class exact, process name ignoring case, title containing the text (case-sensitive). Duplicates in a list are harmless. Ignoring a window does not change the window itself, only how TranslucentTB counts it.

How to find a window's class, process and title

Task Manager: press Ctrl+Shift+Esc, open Details, and read the Name column. That value, for example Code.exe, is what process_name wants.

PowerShell lists every process that has a window, with its title:

PowerShell
Get-Process | Where-Object MainWindowTitle | Select-Object ProcessName, MainWindowTitle

ProcessName is shown without .exe. Add it in settings.json.

The title is the text in the window's title bar, which is also what the PowerShell command above prints as MainWindowTitle. Pick a part that stays the same, such as " - YouTube" or an app name, not the document name.

Windows has no built-in screen that shows class names. Two common tools do:

  • Spy++ (spyxx.exe), installed with Visual Studio's C++ tools. Use Search › Find Window and drag the target onto a window.
  • Window Spy, which comes with AutoHotkey. Hover over a window and read the ahk_class line.

Well-known class names: File Explorer windows are CabinetWClass; Windows Terminal is CASCADIA_HOSTING_WINDOW_CLASS; Chromium and Electron apps share Chrome_WidgetWin_1.

Rule tester

Paste or edit a settings.json excerpt, describe a window, and see what TranslucentTB 2026.2 would do with it. The tester runs our JavaScript port of the app's settings parser and state logic, in your browser.

State
Try

Recipes

Each recipe is a complete excerpt. Merge it into your settings.json, or build the whole file in the settings builder and check it with the validator.

Solid taskbar behind your code editor

Keep the taskbar acrylic for everything maximized except VS Code, which gets a solid dark color close to its default theme. When you click away from it, the taskbar goes back to a lighter tint.

settings.json (excerpt)
"maximized_window_appearance": {
  "enabled": true,
  "accent": "acrylic",
  "color": "#00000000",
  "rules": {
    "process_name": {
      "Code.exe": {
        "accent": "opaque",
        "color": "#181818FF",
        "inactive": { "accent": "acrylic", "color": "#18181840" }
      }
    }
  }
}

Opaque taskbar for File Explorer only

settings.json (excerpt)
"maximized_window_appearance": {
  "enabled": true,
  "accent": "clear",
  "color": "#00000000",
  "rules": {
    "window_class": {
      "CabinetWClass": { "accent": "opaque", "color": "#202020FF" }
    }
  }
}

Invisible taskbar while watching video in the browser

The visible-window state has to be on for this, because a browser playing video is usually not maximized. The key is part of the tab title. Title rules are case-sensitive.

settings.json (excerpt)
"visible_window_appearance": {
  "enabled": true,
  "accent": "acrylic",
  "color": "#00000020",
  "rules": {
    "window_title": {
      " - YouTube": { "accent": "clear", "color": "#00000000" },
      " - Netflix": { "accent": "clear", "color": "#00000000" }
    }
  }
}

Match Windows Terminal's background

settings.json (excerpt)
"maximized_window_appearance": {
  "enabled": true,
  "accent": "acrylic",
  "color": "#00000000",
  "rules": {
    "window_class": {
      "CASCADIA_HOSTING_WINDOW_CLASS": { "accent": "opaque", "color": "#0C0C0CFF" }
    }
  }
}

Keep the desktop look with widgets or a dock on screen

If a desktop widget app such as Rainmeter, or a dock, keeps the taskbar in its visible-window look, ignore it. Replace the names with the processes you run.

settings.json (excerpt)
"ignored_windows": {
  "window_class": [],
  "window_title": [],
  "process_name": [ "Rainmeter.exe" ]
}

Never change the taskbar for a game launcher

Launchers often keep a small window open. Ignoring them stops the taskbar switching while they sit in the background.

settings.json (excerpt)
"ignored_windows": {
  "process_name": [ "steamwebhelper.exe", "EpicGamesLauncher.exe" ]
}

When a rule does not apply

My process_name rule is ignored

Check that the key includes .exe and is the real file name from Task Manager's Details tab. Then check that the state the rule is in is enabled, and that nothing higher in the order (Start, Search, Task View, battery saver, or a maximized window for visible-window rules) is active.

All my settings reset after I added a rule

TranslucentTB rejects the whole file if one value is invalid, then uses defaults for everything. The usual causes in rules are a capitalized accent ("Opaque"), a color without #, or a missing comma. Paste the file into the settings validator: it shows the exact line and the message TranslucentTB writes to its log.

A title rule works in one tab and not another

Title keys are case-sensitive and match anywhere in the title. "YouTube" does not match a title containing "youtube". Browsers also change the title when the tab changes, which ends the match.

The rule works on one monitor only

Visible-window rules only affect the taskbar of the monitor where the focused window is. Maximized rules look at the top maximized window on each monitor separately.

Can I use wildcards or regular expressions?

No. Class and process names are exact (process ignoring case) and titles use a plain "contains" check. There is no wildcard or regex support in 2026.2.

Can I set rules from the tray menu?

No. The tray menu covers the seven states, not rules or ignored windows. Use Advanced › Edit settings, or the settings builder.

Keep going

Something wrong or out of date? Email hello@translucenttb.dev and we will fix it.