wiki: Document named workspaces

This commit is contained in:
Ivan Molodetskikh 2024-05-16 12:12:51 +04:00
parent 109d99fe82
commit 4e31f7e047
3 changed files with 55 additions and 0 deletions

View File

@ -0,0 +1,36 @@
### Overview
You can declare named workspaces at the top level of the config:
```
workspace "browser"
workspace "chat" {
open-on-output "DP-2"
}
```
Contrary to normal dynamic workspaces, named workspaces always exist, even when they have no windows.
Otherwise, they behave like any other workspace: you can move them around, move to a different monitor, and so on.
Actions like `focus-workspace` or `move-column-to-workspace` can refer to workspaces by name.
Also, you can use an `open-on-workspace` window rule to make a window open on a specific named workspace:
```
// Declare a workspace named "chat" that opens on the "DP-2" output.
workspace "chat" {
open-on-output "DP-2"
}
// Open Telegram on the "chat" workspace at niri startup.
window-rule {
match at-startup=true app-id=r#"^org\.telegram\.desktop$"#
open-on-workspace "chat"
}
```
Named workspaces initially appear in the order they are declared in the config file.
When editing the config while niri is running, newly declared named workspaces will appear at the very top of a monitor.
If you delete some named workspace from the config, the workspace will become normal (unnamed), and if there are no windows on it, it will be removed (as any other normal workspace).
There's no way to give a name to an already existing workspace, but you can simply move windows that you want to a new, empty named workspace.

View File

@ -37,6 +37,7 @@ window-rule {
// Properties that apply once upon window opening.
default-column-width { proportion 0.75; }
open-on-output "eDP-1"
open-on-workspace "chat"
open-maximized true
open-fullscreen true
@ -234,6 +235,23 @@ window-rule {
}
```
#### `open-on-workspace`
Make the window open on a specific [named workspace](./Configuration:-Named-Workspaces.md).
If such a workspace does not exist, the window will open on the currently focused workspace as usual.
If the window opens on an output that is not currently focused, the window will not be automatically focused.
```
// Open Telegram on the "chat" workspace.
window-rule {
match app-id=r#"^org\.telegram\.desktop$"#
open-on-workspace "chat"
}
```
#### `open-maximized`
Make the window open as a maximized column.

View File

@ -15,6 +15,7 @@
* [Outputs](./Configuration:-Outputs.md)
* [Key Bindings](./Configuration:-Key-Bindings.md)
* [Layout](./Configuration:-Layout.md)
* [Named Workspaces](./Configuration:-Named-Workspaces.md)
* [Miscellaneous](./Configuration:-Miscellaneous.md)
* [Window Rules](./Configuration:-Window-Rules.md)
* [Animations](./Configuration:-Animations.md)