komorebi managed every normal window that is alive, and there was no way to keep an application out of the layout. The rule engine decides whether a window is managed: an ignore rule keeps the windows it matches out, unless a manage rule matches them too, and a float rule puts a window in the floating windows of its workspace when it opens. A rule matches a window by its title, its executable, its class or the path of its executable. Plasma's shell and KRunner are ignored from the start. `komorebic ignore-rule` and `manage-rule` add a rule, `session-float-rule` floats the focused window and the windows like it until the daemon stops, `clear-session-float-rules` removes those rules, and `global-state` shows the rules. The `DebugWindow` message says why a window is managed or not. Applications often open a window before they give it its title, so the bridge now reports a title change, and a window komorebi does not have is asked about again when its title changes, for a rule on the title to decide. The vm-commands sweep adds and shows rules, and a section of its own checks that a window an ignore rule matches by its first title is tiled once it has another. vm-kwin-events checks that a window giving itself another title reaches the daemon as a title update.
3.0 KiB
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 askate;class: the app id of a Wayland window, such asorg.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 shows them for every window komorebi has, as the title,
exe, class and path of its details.
Ignoring an application
komorebic ignore-rule 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.
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 makes komorebi tile the windows of an
application that an ignore rule covers, from the next one that opens.
komorebic manage-rule class org.kde.plasmashell
komorebic manage 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 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 shows those rules, and
komorebic clear-session-float-rules removes them: the
windows that float already stay floating.
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 puts one in the layout.
How long rules last
The rules given with these commands last until the daemon stops.
komorebic global-state shows the ignore and the manage rules the daemon
has, and its data directory.