From dc93f1c1fd7b67e2da5af2ffada732b9ddeb2d6a Mon Sep 17 00:00:00 2001 From: Kent Daleng Date: Sun, 17 Aug 2025 16:05:41 +0200 Subject: 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 --- wiki/Configuration:-Layer-Rules.md | 193 ------------------------------------- 1 file changed, 193 deletions(-) delete mode 100644 wiki/Configuration:-Layer-Rules.md (limited to 'wiki/Configuration:-Layer-Rules.md') 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 - -Since: 25.01 - -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. - -![Screenshot showing a notification visible normally, but blocked out on OBS.](./img/layer-block-out-from-screencast.png) - -```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` - -Since: 25.02 - -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` - -Since: 25.02 - -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` - -Since: 25.05 - -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` - -Since: 25.05 - -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 -} -``` -- cgit