From 657f57e433d307b06300eb8a8fd9c736df7fddd0 Mon Sep 17 00:00:00 2001 From: memchr <118117622+memchr@users.noreply.github.com> Date: Fri, 22 Sep 2023 09:18:04 +0000 Subject: [PATCH] doc window rule `group` (#349) * doc window rule `group` * wr group: document `always` qualifier --- pages/Configuring/Dispatchers.md | 4 ++++ pages/Configuring/Variables.md | 2 ++ pages/Configuring/Window-Rules.md | 20 ++++++++++++++++++++ 3 files changed, 26 insertions(+) diff --git a/pages/Configuring/Dispatchers.md b/pages/Configuring/Dispatchers.md index 2002a9c..5424b6c 100644 --- a/pages/Configuring/Dispatchers.md +++ b/pages/Configuring/Dispatchers.md @@ -71,6 +71,7 @@ layout pages (See the sidebar). | moveoutofgroup | Moves the active window out of a group. No-op if not in a group | none | | movewindoworgroup | Behaves as `moveintogroup` if there is a group in the given direction. Behaves as `moveoutofgroup` if there is no group in the given direction relative to the active group. Otherwise behaves like `movewindow`. | direction | | movegroupwindow | Swaps the active window with the next or previous in a group | `b` for back, anything else for forward | +| denywindowfromgroup | Prohibit the active window from becoming or being inserted into group | `on`, `off` or, `toggle` | | setignoregrouplock | Temporarily enable or disable binds:ignore_group_lock | `on`, `off`, or `toggle` | | global | Executes a Global Shortcut using the GlobalShortcuts portal. See [here](../Binds/#global-keybinds) | name | | submap | Change the current mapping group. See [Submaps](../Binds/#submaps) | `reset` or name | @@ -97,6 +98,9 @@ You can lock a group with the `lockactivegroup` dispatcher in order to stop new In addition, the `lockgroups` dispatcher can be used to toggle an independent global group lock that will prevent new window from entering any groups, regardless of their local group lock stat. +You can prevent a window from being added to group or becoming a group with the `denywindowfromgroup` dispatcher. +`movewindoworgroup` will behave like `movewindow` if current active window or window in direction has this property set. + # Workspaces You have eight choices: diff --git a/pages/Configuring/Variables.md b/pages/Configuring/Variables.md index ac8a60f..bbf8c0f 100644 --- a/pages/Configuring/Variables.md +++ b/pages/Configuring/Variables.md @@ -52,6 +52,8 @@ SHIFT CAPS CTRL/CONTROL ALT MOD2 MOD3 SUPER/WIN/LOGO/MOD4 MOD5 | gaps_out | gaps between windows and monitor edges | int | 20 | | col.inactive_border | border color for inactive windows | gradient | 0xffffffff | | col.active_border | border color for the active window | gradient | 0xff444444 | +| col.nogroup_border | inactive border color for window that cannot be added to a group (see `denywindowfromgroup` dispatcher) | gradient | 0xffffaaff | +| col.nogroup_border_active | active border color for window that cannot be added to a group | gradient | 0xffff00ff | | col.group_border | inactive (out of focus) group border color | gradient | 0x66777700 | | col.group_border_active | active group border color | gradient | 0x66ffff00 | | col.group_border_locked | inactive locked group border color | gradient | 0x66775500 | diff --git a/pages/Configuring/Window-Rules.md b/pages/Configuring/Window-Rules.md index f146920..9a0e8b6 100644 --- a/pages/Configuring/Window-Rules.md +++ b/pages/Configuring/Window-Rules.md @@ -114,6 +114,26 @@ you can use `hyprctl clients`. | dimaround | dims everything around the window . Please note this rule is meant for floating windows and using it on tiled ones may result in strange behavior. | ✓ | | stayfocused | forces focus on the window as long as it's visible | | | xray \[on\] | sets blur xray mode for the window (0 for off, 1 for on, unset for default) | ✓ | +| group \[options\] | set window group properties. See the note below. | | + +{{< hint type=info >}} + +## `group` window rule options + +- `set` \[`always`\] - Open window as a group. +- `new` - Shorthand of `barred set`. +- `lock` \[`always`\] - Lock the group that added this window. Use with `set` or `new` (i.e. `new lock`) to create a new locked group. +- `barred` - Do not add the window to the focused group. By default, a window with a `group set` rule will be added to an active group if possible. +- `deny` - Do not allow window to be toggled as or added to group (see `denywindowfromgroup` dispatcher). +- `invade` - Force open window in the locked group. +- `override` \[other options\] - Override other `group` rules, e.g. You can make all windows in a particular workspace open as a group, and use `group override barred` to make windows with specific titles open as normal windows. +- `unset` - Clear all `group` rules. + +The `group` rule without options is a shorthand for `group set`. + +By default, `set` and `lock` only affect new windows once. The `always` qualifier makes them always effective. + +{{< /hint >}} ### Example Rules