diff options
| author | Kent Daleng <lolexplode@gmail.com> | 2025-08-17 16:05:41 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-08-17 17:05:41 +0300 |
| commit | dc93f1c1fd7b67e2da5af2ffada732b9ddeb2d6a (patch) | |
| tree | a2f2938a7df17c196be7016dc5fe1fc9f75fb484 /wiki/Configuration:-Layer-Rules.md | |
| parent | a6febb86aa5af0df7bf2792ca027ef95a503d599 (diff) | |
| download | niri-dc93f1c1fd7b67e2da5af2ffada732b9ddeb2d6a.tar.gz niri-dc93f1c1fd7b67e2da5af2ffada732b9ddeb2d6a.tar.bz2 niri-dc93f1c1fd7b67e2da5af2ffada732b9ddeb2d6a.zip | |
github wiki replacement / mkdocs-docs (#2147)
* Add wiki based on mkdocs
* wording fixes
* fix github bg color on narrow
* Fix left sidebar section headers being bigger than pages
* fix hover accent
* fix list rendering on fractional layout
* fix videos
* fix automatic full links
* remove redundant commented css
* improve dark mode contrast
* update pygments for better child node coloring
* update logo
* remove blank lines
* add systemd language hint
---------
Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
Diffstat (limited to 'wiki/Configuration:-Layer-Rules.md')
| -rw-r--r-- | wiki/Configuration:-Layer-Rules.md | 193 |
1 files changed, 0 insertions, 193 deletions
diff --git a/wiki/Configuration:-Layer-Rules.md b/wiki/Configuration:-Layer-Rules.md deleted file mode 100644 index 04055bd9..00000000 --- a/wiki/Configuration:-Layer-Rules.md +++ /dev/null @@ -1,193 +0,0 @@ -### Overview - -<sup>Since: 25.01</sup> - -Layer rules let you adjust behavior for individual layer-shell surfaces. -They have `match` and `exclude` directives that control which layer-shell surfaces the rule should apply to, and a number of properties that you can set. - -Layer rules are processed and work very similarly to window rules, just with different matchers and properties. -Please read the [window rules wiki page](./Configuration:-Window-Rules.md) to learn how matching works. - -Here are all matchers and properties that a layer rule could have: - -```kdl -layer-rule { - match namespace="waybar" - match at-startup=true - - // Properties that apply continuously. - opacity 0.5 - block-out-from "screencast" - // block-out-from "screen-capture" - - shadow { - on - // off - softness 40 - spread 5 - offset x=0 y=5 - draw-behind-window true - color "#00000064" - // inactive-color "#00000064" - } - - geometry-corner-radius 12 - place-within-backdrop true - baba-is-float true -} -``` - -### Layer Surface Matching - -Let's look at the matchers in more detail. - -#### `namespace` - -This is a regular expression that should match anywhere in the surface namespace. -You can read about the supported regular expression syntax [here](https://docs.rs/regex/latest/regex/#syntax). - -```kdl -// Match surfaces with namespace containing "waybar", -layer-rule { - match namespace="waybar" -} -``` - -You can find the namespaces of all open layer-shell surfaces by running `niri msg layers`. - -#### `at-startup` - -Can be `true` or `false`. -Matches during the first 60 seconds after starting niri. - -```kdl -// Show layer-shell surfaces with 0.5 opacity at niri startup, but not afterwards. -layer-rule { - match at-startup=true - - opacity 0.5 -} -``` - -### Dynamic Properties - -These properties apply continuously to open layer-shell surfaces. - -#### `block-out-from` - -You can block out surfaces from xdg-desktop-portal screencasts or all screen captures. -They will be replaced with solid black rectangles. - -This can be useful for notifications. - -The same caveats and instructions apply as for the [`block-out-from` window rule](./Configuration:-Window-Rules.md#block-out-from), so check the documentation there. - - - -```kdl -// Block out mako notifications from screencasts. -layer-rule { - match namespace="^notifications$" - - block-out-from "screencast" -} -``` - -#### `opacity` - -Set the opacity of the surface. -`0.0` is fully transparent, `1.0` is fully opaque. -This is applied on top of the surface's own opacity, so semitransparent surfaces will become even more transparent. - -Opacity is applied to every child of the layer-shell surface individually, so subsurfaces and pop-up menus will show window content behind them. - -```kdl -// Make fuzzel semitransparent. -layer-rule { - match namespace="^launcher$" - - opacity 0.95 -} -``` - -#### `shadow` - -<sup>Since: 25.02</sup> - -Override the shadow options for the surface. - -These rules have the same options as the normal [`shadow` config in the layout section](./Configuration:-Layout.md#shadow), so check the documentation there. - -Unlike window shadows, layer surface shadows always need to be enabled with a layer rule. -That is, enabling shadows in the layout config section won't automatically enable them for layer surfaces. - -> [!NOTE] -> Layer surfaces have no way to tell niri about their *visual geometry*. -> For example, if a layer surface includes some invisible margins (like mako), niri has no way of knowing that, and will draw the shadow behind the entire surface, including the invisible margins. -> -> So to use niri shadows, you'll need to configure layer-shell clients to remove their own margins or shadows. - -```kdl -// Add a shadow for fuzzel. -layer-rule { - match namespace="^launcher$" - - shadow { - on - } - - // Fuzzel defaults to 10 px rounded corners. - geometry-corner-radius 10 -} -``` - -#### `geometry-corner-radius` - -<sup>Since: 25.02</sup> - -Set the corner radius of the surface. - -This setting will only affect the shadow—it will round its corners to match the geometry corner radius. - -```kdl -layer-rule { - match namespace="^launcher$" - - geometry-corner-radius 12 -} -``` - -#### `place-within-backdrop` - -<sup>Since: 25.05</sup> - -Set to `true` to place the surface into the backdrop visible in the [Overview](./Overview.md) and between workspaces. - -This will only work for *background* layer surfaces that ignore exclusive zones (typical for wallpaper tools). -Layers within the backdrop will ignore all input. - -```kdl -// Put swaybg inside the overview backdrop. -layer-rule { - match namespace="^wallpaper$" - - place-within-backdrop true -} -``` - -#### `baba-is-float` - -<sup>Since: 25.05</sup> - -Make your layer surfaces FLOAT up and down. - -This is a natural extension of the [April Fools' 2025 feature](./Configuration:-Window-Rules.md#baba-is-float). - -```kdl -// Make fuzzel FLOAT. -layer-rule { - match namespace="^launcher$" - - baba-is-float true -} -``` |
