Skip to content

Commit 0c04a1d

Browse files
committed
init niri docs
1 parent f3a3dad commit 0c04a1d

2 files changed

Lines changed: 99 additions & 0 deletions

File tree

‎.vitepress/config.mts‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ export default defineConfig({
119119
items: [
120120
{ text: 'Sway', link: '/docs/sway' },
121121
{ text: 'Hyprland', link: '/docs/hyprland' },
122+
{ text: 'Niri', link: '/docs/niri' },
122123
]
123124
},
124125
{

‎docs/niri.md‎

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
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

Comments
 (0)