mirror of
https://github.com/hyprwm/hyprpaper.git
synced 2026-08-18 03:07:47 +00:00
c011bd20886ea3301474e77d7fa4d22ab013ece0
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.
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
Languages
C++
79.6%
CMake
10.5%
Nix
9.9%