Set wallpaper on workspaces and backdrop for Niri.
Find a file
2025-12-27 11:37:46 +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 Remove old unused pipes 2025-12-27 11:37:46 +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 image + instruction to setup swww backdrop 2025-12-17 14:17:46 +01:00

Niri Wallpaper

Display wallpapers on Niri, this is a wrapper utility for swaybg, swaylock, swww 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 swww.

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

  1. The swww-daemon needs to be running for the backdrop wallpaper to work.
  2. You need to tell niri that swww-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 "swww-daemon"
layer-rule {
    match namespace="^swww-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-swww            Set the path for executing 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