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.
On this page
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:
"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_appearancenever 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):
| State | Window checked | Consequence |
|---|---|---|
| Maximized window | The 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 window | The focused (foreground) window, only if no window on that monitor is maximized and the focused window is on that monitor | Click 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.
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:
| Order | Key | Matches when | Case | Example key |
|---|---|---|---|---|
| 1 | window_class | The window's class name is exactly the key | Sensitive | CabinetWClass |
| 2 | process_name | The window's .exe file name equals the key | Ignored | Code.exe |
| 3 | window_title | The window title contains the key anywhere | Sensitive | YouTube |
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.

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:
"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.
"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:
"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:
Get-Process | Where-Object MainWindowTitle | Select-Object ProcessName, MainWindowTitleProcessName 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_classline.
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.
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.
"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
"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.
"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
"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.
"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.
"ignored_windows": {
"process_name": [ "steamwebhelper.exe", "EpicGamesLauncher.exe" ]
}When a rule does not apply
My process_name rule is ignored
.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
"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
"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
Can I use wildcards or regular expressions?
Can I set rules from the tray menu?
Keep going
Something wrong or out of date? Email hello@translucenttb.dev and we will fix it.