Files
komorebi/docs/linux/usage/rules.md
T
LGUG2Z d781028a2a refactor(repo): move the KDE and macOS docs under docs/ (pure move)
komorebi-for-kde/docs/ -> docs/linux/
komorebi-for-mac/docs/ -> docs/macos/

The Windows docs stay where they are (docs/). Renames only, so links and include paths
that named the old directories are broken at this revision; they are fixed in the revision
that fixes the paths of the whole layout move.
2026-11-05 15:03:27 -08:00

72 lines
3.0 KiB
Markdown

# Rules
A rule names an application by one of four things about its windows, and says what komorebi does
with them:
- `exe`: the name of the program's executable, such as `kate`;
- `class`: the app id of a Wayland window, such as `org.kde.kate`, or the class of an X11 window;
- `title`: the title of the window;
- `path`: the full path of the executable, such as `/usr/bin/kate`.
[`komorebic state`](../cli/state.md) shows them for every window komorebi has, as the `title`,
`exe`, `class` and `path` of its `details`.
## Ignoring an application
[`komorebic ignore-rule`](../cli/ignore-rule.md) makes komorebi leave the windows of an
application alone. A rule given this way matches a title or a class that starts or ends with what
it names, and an executable or a path that is exactly what it names. The windows it matches are
not tiled when they open, and the tiled windows of the workspaces in front whose executable,
class, title or path is exactly what it names leave the layout.
```sh
komorebic ignore-rule exe steam
komorebic ignore-rule class org.kde.kcalc
komorebic ignore-rule title "Picture-in-Picture"
```
`komorebic float-rule` is the same command. Plasma's desktop and panels (`plasmashell`) and
KRunner are ignored from the start.
[`komorebic manage-rule`](../cli/manage-rule.md) makes komorebi tile the windows of an
application that an ignore rule covers, from the next one that opens.
```sh
komorebic manage-rule class org.kde.plasmashell
```
[`komorebic manage`](managing-windows.md#taking-a-window-out-of-the-layout) does not take in a
window an ignore rule covers: a manage rule does.
## When a rule decides
A rule decides when a window opens. Applications often open a window before they give it its
title, so the title a rule sees then can be a placeholder. When the title of a window komorebi
does not have changes, komorebi asks the rules again, so a window that a title rule ignored while
it had its first title is tiled once its title no longer matches. A window komorebi tiles stays
tiled whatever its title becomes.
## Floating the windows of an application
[`komorebic session-float-rule`](../cli/session-float-rule.md) takes the focused window out of
the layout into the floating windows of its workspace, and adds a rule that floats every window
that opens with the same executable, class and title.
[`komorebic session-float-rules`](../cli/session-float-rules.md) shows those rules, and
[`komorebic clear-session-float-rules`](../cli/clear-session-float-rules.md) removes them: the
windows that float already stay floating.
```sh
komorebic session-float-rule
komorebic session-float-rules
komorebic clear-session-float-rules
```
A window that a float rule matches floats when it opens, and
[`komorebic toggle-float`](floating-windows.md) puts one in the layout.
## How long rules last
The rules given with these commands last until the daemon stops.
[`komorebic global-state`](../cli/global-state.md) shows the ignore and the manage rules the daemon
has, and its data directory.