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.