mirror of
https://github.com/hyprwm/hyprpaper.git
synced 2026-07-05 17:16:12 -05:00
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%
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. |
||
|---|---|---|
| .github/workflows | ||
| hw-protocols | ||
| nix | ||
| protocols | ||
| src | ||
| systemd | ||
| .clang-format | ||
| .gitignore | ||
| CMakeLists.txt | ||
| flake.lock | ||
| flake.nix | ||
| LICENSE | ||
| README.md | ||
| VERSION | ||
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