Group rework (#132)

---------

Co-authored-by: vaxerski <vaxry@vaxry.net>
Co-authored-by: Vaxry <43317083+vaxerski@users.noreply.github.com>
This commit is contained in:
Aqa-Ib 2023-02-22 16:06:05 +01:00 committed by GitHub
parent 1a26d555f6
commit 1e3e90aec0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 13 additions and 25 deletions

View file

@ -58,6 +58,8 @@ layout pages (See the sidebar).
| bringactivetotop | Brings the current window to the top of the stack | none | | bringactivetotop | Brings the current window to the top of the stack | none |
| togglespecialworkspace | toggles a special workspace on/off | none (for the first) or name for named (name has to be a special workspace's name) | | togglespecialworkspace | toggles a special workspace on/off | none (for the first) or name for named (name has to be a special workspace's name) |
| focusurgentorlast | Focuses the urgent window or the last window | none | | focusurgentorlast | Focuses the urgent window or the last window | none |
| togglegroup | toggles the current active window into a group | none |
| changegroupactive | switches to the next window in a group. | b - back, f - forward. |
| focuscurrentorlast | Switch focus from current to previously focused window | none | | focuscurrentorlast | Switch focus from current to previously focused window | none |
| lockgroups | Locks the groups (groups will not accept new windows) | `lock` for locking, `unlock` for unlocking | | lockgroups | Locks the groups (groups will not accept new windows) | `lock` for locking, `unlock` for unlocking |
@ -71,6 +73,15 @@ bind = MOD,KEY,exec,sleep 1 && hyprctl dispatch dpms off
{{< /hint >}} {{< /hint >}}
## Grouped (tabbed) windows
Hyprland allows you to make a group from the current active window with the `togglegroup` bind dispatcher.
A group is like i3wms “tabbed” container. It takes the space of one window, and you can change the window to the next one in the tabbed “group” with the `changegroupactive` bind dispatcher.
The new groups border colors are configurable with the appropriate `col.` settings in the general config section.
You can lock a group with the `lockgroups` bind dispatcher in order to stop new windows from entering groups.
# Workspaces # Workspaces
You have eight choices: You have eight choices:

View file

@ -7,27 +7,6 @@ Dwindle splits are NOT PERMANENT. The split is determined dynamically with the
W/H ratio of the parent node. If W > H, it's side-by-side. If H > W, it's W/H ratio of the parent node. If W > H, it's side-by-side. If H > W, it's
top-and-bottom. You can make them permanent by enabling `preserve_split`. top-and-bottom. You can make them permanent by enabling `preserve_split`.
# Grouped (tabbed) windows
Dwindle allows you to make a group with the `togglegroup` bind dispatcher, and
cycle through it with `changegroupactive`.
A group is like i3wm's "tabbed" container. It takes the space of one window, and
you can change the window to the next one in the tabbed "group".
When creating the group, a group will be made from the current active window,
and all children (recursively!) of the parent node. The new group's border
colors are configurable with the appropriate `col.` settings in the config
section below.
_Grouping example (make, add, toggle, remove)_
![groupExampleSmaller](https://user-images.githubusercontent.com/43317083/163003581-69d7a5d0-5757-4183-83f1-256cdc99c96a.gif)
Closing windows within the groups is allowed, however, since the groups in the
backend are still a tree, if you remove a node that makes the original node
container get removed, the group will be broken back to its dwindle form.
# Config # Config
category name: `dwindle` category name: `dwindle`
@ -35,8 +14,6 @@ category name: `dwindle`
| name | description | type | default | | name | description | type | default |
|---|---|---|---|---| |---|---|---|---|---|
| pseudotile | enable pseudotiling. Pseudotiled windows retain their floating size when tiled. | bool | false | | pseudotile | enable pseudotiling. Pseudotiled windows retain their floating size when tiled. | bool | false |
| col.group_border | inactive (out of focus) group border color | gradient | 0x66777700 |
| col.group_border_active | active group border color | gradient | 0x66ffff00 |
| force_split | 0 -> split follows mouse, 1 -> always split to the left (new = left or top) 2 -> always split to the right (new = right or bottom) | int | 0 | | force_split | 0 -> split follows mouse, 1 -> always split to the left (new = left or top) 2 -> always split to the right (new = right or bottom) | int | 0 |
| preserve_split | if enabled, the split (side/top) will not change regardless of what happens to the container. | bool | false | | preserve_split | if enabled, the split (side/top) will not change regardless of what happens to the container. | bool | false |
| special_scale_factor | 0 - 1 -> specifies the scale factor of windows on the special workspace | float | 0.8 | | special_scale_factor | 0 - 1 -> specifies the scale factor of windows on the special workspace | float | 0.8 |
@ -48,7 +25,5 @@ category name: `dwindle`
| dispatcher | description | params | | dispatcher | description | params |
|---|---|---| |---|---|---|
| togglegroup | toggles the current window and its siblings (recursively) into a group | none |
| changegroupactive | switches to the next window in a group. | b - back, f - forward. |
| togglesplit | toggles the split (top/side) of the current window. `preserve_split` must be enabled for toggling to work. | none | | togglesplit | toggles the split (top/side) of the current window. `preserve_split` must be enabled for toggling to work. | none |
| pseudo | toggles the focused window's pseudo mode | none | | pseudo | toggles the focused window's pseudo mode | none |

View file

@ -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 | | gaps_out | gaps between windows and monitor edges | int | 20 |
| col.inactive_border | border color for inactive windows | gradient | 0xffffffff | | col.inactive_border | border color for inactive windows | gradient | 0xffffffff |
| col.active_border | border color for the active window | gradient | 0xff444444 | | col.active_border | border color for the active window | gradient | 0xff444444 |
| col.group_border | inactive (out of focus) group border color | gradient | 0x66777700 |
| col.group_border_active | active group border color | gradient | 0x66ffff00 |
| cursor_inactive_timeout | in seconds, after how many seconds of cursor's inactivity to hide it. Set to `0` for never. | int | 0 | | cursor_inactive_timeout | in seconds, after how many seconds of cursor's inactivity to hide it. Set to `0` for never. | int | 0 |
| layout | which layout to use. (Available: `dwindle`, `master`) | str | dwindle | | layout | which layout to use. (Available: `dwindle`, `master`) | str | dwindle |
| no_cursor_warps | if true, will not warp the cursor in many cases (focusing, keybinds, etc) | bool | false | | no_cursor_warps | if true, will not warp the cursor in many cases (focusing, keybinds, etc) | bool | false |