2024-02-20 21:16:07 +01:00
|
|
|
---
|
|
|
|
weight: 1
|
|
|
|
title: hyprpaper
|
|
|
|
---
|
2024-02-19 17:52:58 +01:00
|
|
|
|
2024-04-21 16:35:48 +02:00
|
|
|
hyprpaper is a fast, IPC-controlled wallpaper utility for Hyprland.
|
2024-02-19 17:52:58 +01:00
|
|
|
|
2024-10-23 17:05:51 +02:00
|
|
|
## Installation
|
|
|
|
|
|
|
|
{{% details title="Arch" closed="true" %}}
|
|
|
|
|
|
|
|
```sh
|
|
|
|
pacman -S hyprpaper
|
|
|
|
```
|
|
|
|
|
|
|
|
{{% /details %}}
|
|
|
|
|
|
|
|
{{% details title="OpenSuse" closed="true" %}}
|
|
|
|
|
|
|
|
```sh
|
|
|
|
zypper install hyprpaper
|
|
|
|
```
|
|
|
|
|
|
|
|
{{% /details %}}
|
|
|
|
|
|
|
|
{{% details title="Fedora" closed="true" %}}
|
|
|
|
|
|
|
|
```sh
|
|
|
|
sudo dnf install hyprpaper
|
|
|
|
```
|
|
|
|
|
|
|
|
{{% /details %}}
|
|
|
|
|
|
|
|
|
|
|
|
{{% details title="Manual" closed="true" %}}
|
|
|
|
|
|
|
|
### 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).
|
|
|
|
- wayland
|
|
|
|
- wayland-protocols
|
|
|
|
- pango
|
|
|
|
- cairo
|
|
|
|
- file
|
|
|
|
- libglvnd
|
|
|
|
- libglvnd-core
|
|
|
|
- libjpeg-turbo
|
|
|
|
- libwebp
|
|
|
|
- hyprlang
|
|
|
|
- hyprutils
|
|
|
|
- hyprwayland-scanner
|
|
|
|
|
|
|
|
To install all of these in Fedora, run this command:
|
|
|
|
```
|
|
|
|
sudo dnf install wayland-devel wayland-protocols-devel hyprlang-devel pango-devel cairo-devel file-devel libglvnd-devel libglvnd-core-devel libjpeg-turbo-devel libwebp-devel gcc-c++ hyprutils-devel hyprwayland-scanner
|
|
|
|
```
|
|
|
|
|
|
|
|
On Arch:
|
|
|
|
```
|
|
|
|
sudo pacman -S ninja gcc wayland-protocols libjpeg-turbo libwebp pango cairo pkgconf cmake libglvnd wayland hyprutils hyprwayland-scanner hyprlang
|
|
|
|
```
|
|
|
|
|
|
|
|
On OpenSUSE:
|
|
|
|
```
|
|
|
|
sudo zypper install ninja gcc-c++ wayland-protocols-devel Mesa-libGLESv3-devel file-devel hyprutils-devel hyprwayland-scanner
|
|
|
|
```
|
|
|
|
|
|
|
|
### Building
|
|
|
|
|
|
|
|
Building is done via CMake:
|
|
|
|
|
|
|
|
```sh
|
|
|
|
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:
|
|
|
|
|
|
|
|
```sh
|
|
|
|
cmake --install ./build
|
|
|
|
```
|
|
|
|
|
|
|
|
{{% /details %}}
|
|
|
|
|
2024-02-19 17:52:58 +01:00
|
|
|
## Configuration
|
|
|
|
|
2024-02-20 21:16:07 +01:00
|
|
|
The config file is located at `~/.config/hypr/hyprpaper.conf`. It is not
|
|
|
|
required.
|
2024-02-19 17:52:58 +01:00
|
|
|
|
2024-04-21 16:35:48 +02:00
|
|
|
Configuration is done using `preload`, which _loads_ an image into memory. Then,
|
|
|
|
the `wallpaper` keyword is used to apply the preloaded image to your monitor(s):
|
2024-02-19 17:52:58 +01:00
|
|
|
|
|
|
|
```ini
|
|
|
|
preload = /home/me/amongus.png
|
2024-07-30 22:44:45 +02:00
|
|
|
wallpaper = monitor, /home/me/amongus.png
|
2024-02-19 17:52:58 +01:00
|
|
|
```
|
|
|
|
|
2024-05-01 21:25:54 +02:00
|
|
|
`monitor` can be left empty to set to all monitors without a set wallpaper:
|
|
|
|
|
2024-07-30 22:44:45 +02:00
|
|
|
```ini
|
|
|
|
wallpaper = , /home/me/amongus.png
|
2024-05-01 21:25:54 +02:00
|
|
|
```
|
|
|
|
|
|
|
|
Monitor names can be checked with `hyprctl monitors`
|
|
|
|
|
|
|
|
Also can be used with `desc:` followed by the monitor's description without the (PORT) at the end
|
|
|
|
|
2024-07-30 22:44:45 +02:00
|
|
|
You may add `contain:` before the file path in `wallpaper =` to set the mode to contain instead of cover:
|
2024-05-01 21:25:54 +02:00
|
|
|
|
2024-07-30 22:44:45 +02:00
|
|
|
```ini
|
|
|
|
wallpaper = monitor, contain:/home/me/amongus.png
|
2024-05-01 21:25:54 +02:00
|
|
|
```
|
2024-02-19 17:52:58 +01:00
|
|
|
|
2024-04-21 16:35:48 +02:00
|
|
|
You can use `unload` to unload preloaded images. You can also specify `unload all`
|
|
|
|
to unload all images or `unload unused` to unload images that aren't being used.
|
2024-02-19 17:52:58 +01:00
|
|
|
|
2024-07-30 22:44:45 +02:00
|
|
|
Also you can use `reload` to unload preloaded image from your monitor(s),
|
|
|
|
preload another and set it to your monitor(s). It has the same syntax as
|
|
|
|
`wallpaper` keyword.
|
2024-05-25 19:40:31 +02:00
|
|
|
|
2024-10-23 17:05:51 +02:00
|
|
|
### Run at startup
|
|
|
|
|
2024-07-30 22:44:45 +02:00
|
|
|
To run hyprpaper at startup edit `hyprland.conf` and add: `exec-once =
|
|
|
|
hyprpaper`.
|
2024-03-13 22:25:35 +01:00
|
|
|
|
2024-02-19 17:52:58 +01:00
|
|
|
### Misc options
|
2024-02-20 21:16:07 +01:00
|
|
|
|
2024-02-19 17:52:58 +01:00
|
|
|
| variable | description | type | default |
|
2024-02-20 21:16:07 +01:00
|
|
|
| --- | --- | --- | --- |
|
2024-02-19 17:52:58 +01:00
|
|
|
| splash | enable rendering of the hyprland splash over the wallpaper | bool | false |
|
|
|
|
| splash_offset | how far (in % of height) up should the splash be displayed | float | 2.0 |
|
2024-04-04 21:52:51 +02:00
|
|
|
| splash_color | color to use when rendering splash | color | 55ffffff |
|
2024-02-19 17:52:58 +01:00
|
|
|
| ipc | whether to enable IPC | bool | true |
|
|
|
|
|
|
|
|
## IPC
|
|
|
|
|
2024-02-20 21:16:07 +01:00
|
|
|
hyprpaper supports IPC via `hyprctl`. Every dispatcher mentioned in
|
|
|
|
[Configuration](#configuration) can be called with
|
|
|
|
`hyprctl hyprpaper <dispatcher> <arg(s)>`.
|
2024-02-19 17:52:58 +01:00
|
|
|
|
2024-02-20 21:16:07 +01:00
|
|
|
Additionally, you can get some info about the current state of hyprpaper with
|
|
|
|
`listloaded` and `listactive`.
|
2024-02-19 17:52:58 +01:00
|
|
|
|
|
|
|
Examples:
|
2024-02-20 21:16:07 +01:00
|
|
|
|
2024-02-19 17:52:58 +01:00
|
|
|
```sh
|
|
|
|
hyprctl hyprpaper preload "~/Pictures/myepicpng.png"
|
|
|
|
hyprctl hyprpaper wallpaper "DP-1,~/Pictures/myepicpng.png"
|
|
|
|
```
|
|
|
|
|
|
|
|
```sh
|
|
|
|
hyprctl hyprpaper listloaded
|
|
|
|
```
|
|
|
|
|
|
|
|
Please note all paths have to be absolute (or start with `~`).
|