Set wallpaper on workspaces and backdrop for Niri.
Find a file
2026-03-10 11:14:55 +01:00
external first commit 2025-07-08 10:22:06 +02:00
images Add image example 2025-12-17 13:38:57 +01:00
src Add support for previous "awww" name which was "swww" 2026-03-10 11:03:43 +01:00
.gitignore first commit 2025-07-08 10:22:06 +02:00
.gitmodules first commit 2025-07-08 10:22:06 +02:00
CMakeLists.txt first commit 2025-07-08 10:22:06 +02:00
README.md Add a "awww" rename note to the readme 2026-03-10 11:14:55 +01:00

Niri Wallpaper

Display wallpapers on Niri, this is a wrapper utility for swaybg, swaylock, awww and magick, they are required to run this utility.

swaybg is used for the workspaces wallpapers and swaylock is used for locking the screen.
magick is used to blur the wallpaper and then displays it on the backdrop using awww.

niri wallpaper

Features

  • Set the backdrop wallpaper with a blur effect
  • Specify a directory containing all your wallpapers
  • Specify for which display
  • Set interval to automatically change wallpaper after some time
  • Wallpapers can be chosen randomly
  • Wallpapers can be chosen in alphabetical order
  • No "grey" flash when switching wallpapers

Setup the backdrop wallpaper

Warning

The previous name of awww was swww.
If you're still using an older version please adapt the commands to match your setup:
awww-daemon should be swww-daemon

  1. The awww-daemon needs to be running for the backdrop wallpaper to work.
  2. You need to tell niri that awww-daemon will be used for the backdrop.

Here is a quick code snippet to put in your niri config file that will set it up correctly

spawn-at-startup "awww-daemon"
layer-rule {
    match namespace="^awww-daemon$"
    place-within-backdrop true
}

Usage

usage: niri-wallpaper [options] <path>

required:
  path                The path to the directory containing the wallpapers

options:
  -h, --help          Show help
  -i, --interval      Specify the interval between wallpapers in seconds
  --lock              Lock the screen using swaylock instead of applying a wallpaper
  --never-random      if set, wallpapers order is based on the names of the files
  -o, --output        The outputs as shown with the command `niri msg outputs`, by default the wallpaper will be applied to all outputs
--path-magick          Set the path for executing magick
--path-swaybg          Set the path for executing swaybg
--path-swaylock        Set the path for executing swaylock
--path-awww            Set the path for executing awww (default looks for both awww and swww)

Example in a terminal:

./niri-wallpaper /path/to/wallpapers -i 3600 -o DP-1

Example in the niri config file:

spawn-at-startup "/path/to/niri-wallpaper" "/path/to/wallpapers" "-i" "3600" "-o" "DP-1"

Installation

First, clone this repository git clone --recursive https://codeberg.org/vyn/niri-wallpaper.git (or download it the way you prefer).

You only need gcc and cmake, run these commands in the project directory:

mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make

The executable should be located in build/niri-wallpaper