|
| 1 | +# Niri |
| 2 | + |
| 3 | +This page only covers the parts of running niri that are specific to instantOS. |
| 4 | +For everything else, refer to the |
| 5 | +[niri documentation](https://niri-wm.github.io/) - the config format, layout, |
| 6 | +input options and IPC details are all documented there. |
| 7 | + |
| 8 | +## `ins settings` |
| 9 | + |
| 10 | +`ins settings` is fully compatible with niri. Mouse speed, accel profile and |
| 11 | +keyboard layouts are written directly into the niri config file and applied via |
| 12 | +`niri msg action load-config-file`, so changes take effect immediately without |
| 13 | +a session restart. |
| 14 | + |
| 15 | +The same `ins settings apply` fallback that exists for Sway also works on |
| 16 | +niri - run it after login to re-apply the non-persistent parts of your |
| 17 | +settings without going through the full autostart flow. |
| 18 | + |
| 19 | +The `Language → Keyboard` and `Input Devices → Mouse` sections are the ones |
| 20 | +that touch the niri config. See the [ins CLI reference](ins.md) for the |
| 21 | +general settings flow. |
| 22 | + |
| 23 | +## instantASSIST |
| 24 | + |
| 25 | +`++super+a++` opens instantASSIST. On niri it is the Rust `ins assist` |
| 26 | +implementation, the same one used on Sway and Hyprland. The mouse-speed assist |
| 27 | +(tm) is one of the few assists that branches on the detected compositor: on |
| 28 | +niri it edits `accel-speed` and `accel-profile` in the niri config and |
| 29 | +reloads it, instead of talking to a running WM over IPC like instantWM does. |
| 30 | + |
| 31 | +See [instantASSIST](instantassist.md) for the full key catalog. |
| 32 | + |
| 33 | +## Fuzzel and instantMENU |
| 34 | + |
| 35 | +The instantOS niri config binds ++mod+space++ to `fuzzel` and ++mod+p++ to |
| 36 | +`instantmenu_smartrun`, so both launchers are reachable from the keyboard. |
| 37 | +Fuzzel is the default application launcher, chosen for its built-in frecency |
| 38 | +and fast startup. instantMENU works through xWayland and is wired up the same |
| 39 | +way it is on Sway. |
| 40 | + |
| 41 | +## Scratchpads |
| 42 | + |
| 43 | +niri has no built-in scratchpad concept, so `ins` implements its own: a |
| 44 | +scratchpad is a terminal with an `app_id` prefixed `scratchpad_`. When hidden |
| 45 | +it is moved to a reserved workspace named `scratchpad`; if no such workspace |
| 46 | +exists, `ins` renames an empty one. `ins scratchpad` and the assist-based |
| 47 | +scratchpads go through this provider transparently. |
| 48 | + |
| 49 | +## XWayland |
| 50 | + |
| 51 | +The instantOS niri config starts `xwayland-satellite` at startup. instantOS |
| 52 | +relies on xWayland for the legacy instantMENU/X11 tools, so make sure the |
| 53 | +helper stays in your `spawn-at-startup` list if you edit the config. |
| 54 | + |
| 55 | +## Status bar |
| 56 | + |
| 57 | +niri uses [waybar](https://github.com/Alexays/Waybar) (started via |
| 58 | +`spawn-at-startup "waybar"` in the stock config). Unlike instantWM, there is |
| 59 | +no IPC for moving, focusing, minimizing or closing windows from the bar, so |
| 60 | +the bar is a passive indicator rather than an interactive control surface like |
| 61 | +in instantWM. |
| 62 | + |
| 63 | +## Key bindings shipped by instantOS |
| 64 | + |
| 65 | +The stock `~/.config/niri/config.kdl` adds these binds on top of niri's |
| 66 | +defaults: |
| 67 | + |
| 68 | +| Key | Action | |
| 69 | +| --- | --- | |
| 70 | +| ++mod+return++ | Open `kitty` | |
| 71 | +| ++mod+space++ | Open `fuzzel` | |
| 72 | +| ++mod+p++ | Open `instantmenu_smartrun` | |
| 73 | +| ++mod+a++ | Run `ins assist` | |
| 74 | +| ++mod+ctrl+q++ | Open the shutdown menu (`instantshutdown`) | |
| 75 | +| ++super+ctrl+l++ | Lock the screen via `hyprlock` | |
| 76 | +| ++mod+shift+slash++ | Show niri's hotkey overlay | |
| 77 | + |
| 78 | +Laptop users also get a lid-close hook in `switch-events` that spawns |
| 79 | +`hyprlock`, matching the instantOS lock-on-lid behavior. |
| 80 | + |
| 81 | +For everything else, the [niri documentation](https://niri-wm.github.io/) is the source of truth. |
| 82 | + |
| 83 | +## Installer and sessions |
| 84 | + |
| 85 | +`ins arch` lists niri as a desktop option alongside Sway, instantWM, |
| 86 | +Hyprland and a TTY-only install. Selecting it sets up the lightdm |
| 87 | +`user-session`/`autologin-session` to `niri` so the session appears in the |
| 88 | +greeter. |
| 89 | + |
| 90 | +The niri configuration is shipped regardless of the DE selected and niri can be |
| 91 | +installed or uninstalled after the fact without any conflicts or breakage. |
| 92 | + |
| 93 | +## Related pages |
| 94 | + |
| 95 | +- [Sway](sway.md) |
| 96 | +- [Hyprland](hyprland.md) |
| 97 | +- [ins CLI reference](ins.md) |
| 98 | +- [instantASSIST](instantassist.md) |
0 commit comments