Hyprpaper is a wayland wallpaper utility with IPC controls. https://wiki.hyprland.org/Hypr-Ecosystem/hyprpaper/
  • C++ 79.6%
  • CMake 10.5%
  • Nix 9.9%
Find a file
Kioz c011bd2088
internal: fix missing null check for g_IPCSocket in onRepeatTimer (#368)
CWallpaperTarget::onRepeatTimer() calls IPC::g_IPCSocket->onWallpaperChanged()
without checking if g_IPCSocket is valid. When IPC is disabled (ipc=0) or
not initialized, g_IPCSocket is nullptr, causing a SIGSEGV.

Stack trace from coredump:
  #0  __normal_iterator constructor (this->m_statusObjects at 0x60)
  #1  IPC::CSocket::onWallpaperChanged (this=0x0)
  #2  CWallpaperTarget::onRepeatTimer

GDB confirms this=0x0 in onWallpaperChanged, meaning g_IPCSocket.get()
returned nullptr when dereferenced.

Fix: add a null guard matching the pattern already used in registerOutput()
and elsewhere in the codebase.
2026-05-25 16:27:25 +01:00
.github/workflows CI: use org-wide actions 2026-04-17 15:20:11 +03:00
hw-protocols protocol/IPC: add a status object (#313) 2026-02-10 19:13:14 +00:00
nix nix: separate overlay with deps 2026-03-02 18:34:38 +02:00
protocols initial code commit 2022-07-01 23:05:58 +02:00
src internal: fix missing null check for g_IPCSocket in onRepeatTimer (#368) 2026-05-25 16:27:25 +01:00
systemd Add systemd service (#208) 2024-10-26 00:14:47 +03:00
.clang-format core: migrate to hyprwayland-scanner 2024-07-17 16:25:07 +02:00
.gitignore core: migrate to hyprtoolkit (#288) 2025-12-04 17:58:54 +00:00
CMakeLists.txt core: migrate to hyprtoolkit (#288) 2025-12-04 17:58:54 +00:00
flake.lock flake.lock: update 2026-03-02 18:34:50 +02:00
flake.nix nix: separate overlay with deps 2026-03-02 18:34:38 +02:00
LICENSE Initial commit 2022-07-01 20:16:45 +02:00
README.md core: migrate to hyprtoolkit (#288) 2025-12-04 17:58:54 +00:00
VERSION version: bump to 0.8.4 2026-04-29 21:21:53 +01:00

hyprpaper

Hyprpaper is a simple and fast wallpaper utility for Hyprland with the ability to dynamically change wallpapers through sockets.

Features

  • Per-output wallpapers
  • fill, tile, cover or contain modes
  • fractional scaling support
  • IPC for fast wallpaper switches

Installation

Arch Linux: pacman -S hyprpaper

OpenSuse Linux: zypper install hyprpaper

Manual:

Dependencies

The development files of these packages need to be installed on the system for hyprpaper to build correctly. (Development packages are usually suffixed with -dev or -devel in most distros' repos).

  • hyprtoolkit
  • hyprlang
  • hyprutils
  • hyprwire

Building

Building is done via CMake:

cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B ./build
cmake --build ./build --config Release --target hyprpaper -j`nproc 2>/dev/null || getconf _NPROCESSORS_CONF`

Install with:

cmake --install ./build