niri
niri is a scrollable-tiling Wayland compositor: windows are arranged in columns on an endless strip that scrolls sideways, and workspaces are stacked vertically. On hybrid-d77 the whole shell is Utumno, built on Quickshell: bar, launcher, lock screen, power menu, wallpaper picker and the volume and brightness display.
| Login screen | none, niri starts on login on tty1 |
| Terminal | foot |
| Bar, launcher, lock screen, power menu | Utumno |
| Notifications | SwayNotificationCenter |
| Lock screen | Utumno, with Super + L or after 5 minutes idle; screen off after 10 |
| Browser | Firefox |
This variant is newer than Sway: its ISO builds and its configuration passes
niri validate, but it has not been booted on real hardware yet.
Where to change things
| What | File |
|---|---|
| programs started with the session, keyboard, outputs, layout, window rules | ~/.config/niri/config.kdl |
| keys | ~/.config/niri/d77/binds.kdl |
| colours, layout details, Alt + Tab | ~/.config/niri/d77/colors.kdl, layout.kdl, alttab.kdl |
| notifications | ~/.config/swaync/ |
| wallpapers for the picker | ~/Wallpaper/ |
niri applies its configuration as soon as it is saved. The originals are in
/etc/skel/.config/.
Programs started with the session are the spawn-at-startup lines in
config.kdl: PipeWire, udiskie, the polkit agent, swaync, swayidle and
Utumno.
Keys
Super is the modifier (Mod).
| Keys | Action |
|---|---|
| Super + Return | terminal (foot) |
| Super + Space | application launcher (Utumno) |
| Super + D / Super + Tab | overview of all windows |
| Super + Y | wallpaper picker |
| Super + N | notification center |
| Super + L | lock screen |
| Super + X | power menu |
| Super + Q | close window |
| Super + Shift + E | quit niri |
| Super + Shift + / | list of shortcuts |
| Super + 1 … 9 | go to workspace |
| Super + Shift + 1 … 9 | move column to workspace |
| Super + arrows | focus column left / window down / up / column right |
| Super + Shift + arrows | move column or window |
| Super + Ctrl + Left / Right | focus another monitor |
| Super + U / Super + I, or Page Down / Page Up | workspace below / above |
| Super + Ctrl + U / Super + Ctrl + I | move column to the workspace below / above |
| Super + Home / End | first / last column |
| Super + F | maximize the column |
| Super + Shift + F | full screen |
| Super + Ctrl + F | expand the column to the free width |
| Super + C | center the column |
| Super + R | next preset column width |
| Super + − / Super + = | column narrower / wider |
| Super + [ / Super + ] | take the window into the column on the left / right, or put it out |
| Super + W | tabbed column |
| Super + Shift + T | toggle floating |
| Super + Shift + V | switch focus between floating and tiling |
| Super + Shift + P | turn the screens off |
| Super + mouse wheel | change workspace |
| Alt + Tab | recent windows |
| Print / Ctrl + Print / Alt + Print | screenshot of an area / the screen / the window |
Screenshots are saved in ~/Pictures/Screenshots/. Volume and brightness
keys work, also on the lock screen.
Utumno from a terminal
Utumno is driven through qsd77, which is also how the keys above call it:
qsd77 launcher -c utumno # application launcher
qsd77 locker -c utumno # lock screen
qsd77 wallpaper -c utumno # wallpaper picker
qsd77 session -c utumno # power menu
qsd77 --help
If the bar is gone, start Utumno again with qsd77 run -c utumno.
Idle
After 5 minutes without input the screen locks (Utumno), after 10 it turns
off and comes back on with any input, and it always locks before the
computer suspends. This is the swayidle line in config.kdl.
Keyboard layout
In config.kdl:
input {
keyboard {
xkb {
layout "pt"
}
}
}
Wallpaper
Press Super + Y and pick an image; the picker lists the images in
~/Wallpaper/. On the first login that folder gets hybrid-d77’s own
wallpaper, d77.png. The chosen wallpaper is set again at every login.