Code Monkey home page Code Monkey logo

hyprpaper's Introduction

hyprpaper

Hyprpaper is a blazing fast wallpaper utility for Hyprland with the ability to dynamically change wallpapers through sockets. It will work on all wlroots-based compositors, though.

Features

  • Per-output wallpapers
  • fill or contain modes
  • fractional scaling support
  • IPC for blazing fast wallpaper switches
  • preloading targets into memory

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).

  • 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:

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

Usage

Hyprpaper is controlled by the config, like this:

~/.config/hypr/hyprpaper.conf

preload = /path/to/image.png
#if more than one preload is desired then continue to preload other backgrounds
preload = /path/to/next_image.png
# .. more preloads

#set the default wallpaper(s) seen on initial workspace(s) --depending on the number of monitors used
wallpaper = monitor1,/path/to/image.png
#if more than one monitor in use, can load a 2nd image
wallpaper = monitor2,/path/to/next_image.png
# .. more monitors

#enable splash text rendering over the wallpaper
splash = true

#fully disable ipc
# ipc = off


Preload will tell Hyprland to load a particular image (supported formats: png, jpg, jpeg, webp). Wallpaper will apply the wallpaper to the selected output (monitor is the monitor's name, easily can be retrieved with hyprctl monitors. You can leave it empty to set all monitors without an active wallpaper. You can also use desc: followed by the monitor's description without the (PORT) at the end)

You may add contain: before the file path in wallpaper= to set the mode to contain instead of cover:

wallpaper = monitor,contain:/path/to/image.jpg

A Wallpaper cannot be applied without preloading. The config is not reloaded dynamically.

Important note to the inner workings

Preload does exactly what it says. It loads the entire wallpaper into memory. This can result in around 8 - 20MB of mem usage. It is not recommended to preload every wallpaper you have, as it will be a) taking a couple seconds at the beginning to load and b) take 100s of MBs of disk and RAM usage.

Preload is meant only for situations in which you want a wallpaper to switch INSTANTLY when you issue a wallpaper keyword (e.g. wallpaper per workspace)

In any and all cases when you don't mind waiting 300ms for the wallpaper to change, consider making a script that:

  • preloads the new wallpaper
  • sets the new wallpaper
  • unloads the old wallpaper (to free memory)

IPC

You can use hyprctl hyprpaper (if on Hyprland) to issue a keyword, for example

Example:

If your wallpapers are stored in ~/Pictures, then make sure you have already preloaded the desired wallpapers in hyprpaper.conf.

~/.config/hypr/hyprpaper.conf

preload = ~/Pictures/myepicpng.png
preload = ~/Pictures/myepicpngToo.png
preload = ~/Pictures/myepicpngAlso.png
#... continue as desired, but be mindful of the impact on memory.

In the actual configuration for Hyprland, hyprland.conf, variables can be set for ease of reading and to be used as shortcuts in the bind command. The following example uses $w shorthand wallpaper variables:

~/.config/hypr/hyprland.conf

$w1 = hyprctl hyprpaper wallpaper "DP-1,~/Pictures/myepicpng.png"
$w2 = hyprctl hyprpaper wallpaper "DP-1,~/Pictures/myepicpngToo.png"
$w3 = hyprctl hyprpaper wallpaper "DP-1,~/Pictures/myepicpngAlso.png"
#yes use quotes around desired monitor and wallpaper
#... continued with desired amount

With the variables created we can now "exec" the actions.

Remember in Hyprland we can bind more than one action to a key so in the case where we'd like to change the wallpaper when we switch workspace we have to ensure that the actions are bound to the same key such as...

~/.config/hypr/hyprland.conf

bind=SUPER,1,workspace,1  #Superkey + 1 switches to workspace 1
bind=SUPER,1,exec,$w1     #SuperKey + 1 switches to wallpaper $w1 on DP-1 as defined in the variable

bind=SUPER,2,workspace,2  #Superkey + 2 switches to workspace 2
bind=SUPER,2,exec,$w2     #SuperKey + 2 switches to wallpaper $w2 on DP-1 as defined in the variable

bind=SUPER,3,workspace,3  #Superkey + 3 switches to workspace 3
bind=SUPER,3,exec,$w3     #SuperKey + 3 switches to wallpaper $w3 on DP-1 as defined in the variable

#... and so on

Because the default behavior in Hyprland is to also switch the workspace whenever movetoworkspace is used to move a window to another workspace you may want to include the following:

bind=SUPERSHIFT,1,movetoworkspace,1  #Superkey + Shift + 1 moves windows and switches to workspace 1
bind=SUPERSHIFT,1,exec,$w1           #SuperKey + Shift + 1 switches to wallpaper $w1 on DP-1 as defined in the variable

Getting information from hyprpaper

You can also use hyprctl hyprpaper to get information about the state of hyprpaper using the following commands:

listloaded - lists the wallpapers that are currently preloaded (useful for dynamically preloading and unloading)
listactive - prints the active wallpapers hyprpaper is displaying, along with its accociated monitor

Battery life

Since the IPC has to tick every now and then, and poll in the background, battery life might be a tiny bit worse with IPC on. If you want to fully disable it, use

ipc = off

in the config.

Misc

You can set splash = true to enable the splash rendering over the wallpaper.

The value for splash_offset sets, in percentage, the splash rendering offset relative to the bottom of the display.

Unloading

If you use a lot of wallpapers, consider unloading those that you no longer need. This will mean you need to load them again if you wish to use them for a second time, but will free the memory used by the preloaded bitmap. (Usually 8 - 20MB, depending on the resolution)

You can issue a hyprctl hyprpaper unload [PATH] to do that.

You can also issue a hyprctl hyprpaper unload all to unload all inactive wallpapers.


For other compositors, the socket works like socket1 of Hyprland, and is located in /tmp/hypr/.hyprpaper.sock (this path only when Hyprland is not running!)

hyprpaper's People

Contributors

2e0byo avatar alyanser avatar amythicdev avatar andresmaldonado2 avatar ataraxiasjel avatar barrrguzin avatar bekaertruben avatar cijo7 avatar condor0010 avatar czadowanie avatar dedguy21 avatar fakemichau avatar fufexan avatar kiecla avatar lamprospitsillos avatar lfos avatar mightyplaza avatar nexec avatar pg83 avatar pinnouse avatar seyfullahgundogdu avatar slowsage avatar stephentoth avatar tobiichi3227 avatar uncomfyhalomacro avatar vaxerski avatar vilari-mickopf avatar vinhig avatar xenhat avatar xiaowenhu96 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

hyprpaper's Issues

Hyprpaper crash latest aur build

Upgraded to hyprpaper-git-r73.1c19aa2 and get:

hyprpaper: ../cairo/src/cairo-surface.c:955: cairo_surface_destroy: Assertion `CAIRO_REFERENCE_COUNT_HAS_REFERENCE (&surface->ref_count)' failed.

Downgrading to hyprpaper-git-r71.c68cc7b and it works again.

Turning off monitor stops outputting wallpaper

What happens:

When I turn off my monitor, this disconnects DP-1. Hyprpaper reacts accordingly: [LOG] Destroying output DP-1

Steps to reproduce:

  1. run hyprpaper
  2. turn off monitor
  3. turn on monitor
  4. wallpaper is gone

killall hyprpaper && hyprpaper fixes this, but it needs to be run every time I turn the monitor back on. I've tried this with both wallpaper = ,/path/to/img and wallpaper = DP-1,/path/to/img in the config, same result.

Expected result:

Wallpaper is persistent; re-apply wallpaper after DP-1/fallback display is reconnected (turned back on)

Failed to read image file.png because of: out of memory

OS: gentoo (kernel 6.1.1)
GPU: NVIDIA GeForce 9600 GT (nouveau)

when I try to open hyprpaper after opening Hyprland, It gives this error

┌──(mertoalex㉿gentoocore2duo)-[~]
└─$ hyprpaper
[LOG] Welcome to hyprpaper!
built from commit 0c2386861afbb10c8c5eb6de868fa2a519df2907 (    add --no-fractional arg)
[CRITICAL] Failed to read image /home/mertoalex/wallpapers/desktop-1920x1080aaa.png because of:
out of memory

┌──(mertoalex㉿gentoocore2duo)-[~]
└─$ cat ~/.config/hypr/hyprpaper.conf                                                                                                                                                                                    1 ⨯
preload = /home/mertoalex/wallpapers/desktop-1920x1080aaa.png
wallpaper = DVI-I-1, /home/mertoalex/wallpapers/desktop-1920x1080aaa.png

┌──(mertoalex㉿gentoocore2duo)-[~]
└─$ hyprctl monitors
Monitor DVI-I-1 (ID 0):
        [email protected] at 0x0
        description: BNQ BenQ VL2040Z K3E01744019 (DVI-I-1 via DVI-A)
        make: BNQ
        model: BenQ VL2040Z
        serial: K3E01744019
        active workspace: 2 (2)
        reserved: 0 0 0 0
        scale: 1.00
        transform: 0
        focused: yes
        dpmsStatus: 1



┌──(mertoalex㉿gentoocore2duo)-[~]
└─$ hyprctl hyprpaper preload /home/mertoalex/wallpapers/desktop-1920x1080aaa.png
Couldn't connect to /tmp/hypr/d4e2a0fd1635d90043e38d47931e7132ebcde559_1675183675/.hyprpaper.sock. (3)

┌──(mertoalex㉿gentoocore2duo)-[~]
└─$ hyprctl hyprpaper wallpaper DVI-I-1,/home/mertoalex/wallpapers/desktop-1920x1080aaa.png
Couldn't connect to /tmp/hypr/d4e2a0fd1635d90043e38d47931e7132ebcde559_1675183675/.hyprpaper.sock. (3)

┌──(mertoalex㉿gentoocore2duo)-[~]
└─$ file /home/mertoalex/wallpapers/desktop-1920x1080aaa.png
/home/mertoalex/wallpapers/desktop-1920x1080aaa.png: JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, progressive, precision 8, 1920x1080, components 3

image

Unload all crashes

Crashes when preloading a new image from hyprctl and then calling unload all.

Does not crash when if I just call unload all without preloading any new images.

steps:

  • preload and set image in config
  • run cmds from terminal
hyprctl hyprpaper preload aujo2c6gtzq61.jpg
hyprctl hyprpaper unload all

logs:

jacob@jacob-hp-noteboook ~ [SIGSEGV]> hyprpaper
[LOG] Welcome to hyprpaper!
built from commit 3293f37662a79077640b02609059fee27a44539d (    fix unload all)
[LOG] Cleaned old hyprpaper preloads (1), removing 8.3MB
[LOG] Preloaded target /home/jacob/Pictures/Wallpapers/Others/0oaeyq2oqvu61.jpg in 36.12ms -> Pixel size: [1920, 1080]
[LOG] hyprpaper socket started at /tmp/hypr/c02bfc3897137439596df4670cef2441d24c8367_1669565531/.hyprpaper.sock (fd: 4)
[LOG] configure for HDMI-A-1
[LOG] Buffer created for target /home/jacob/Pictures/Wallpapers/Others/0oaeyq2oqvu61.jpg, Shared Memory usage: 8.3MB
[LOG] Total SM usage for all buffers: 8.3MB
[LOG] Image data for HDMI-A-1: /home/jacob/Pictures/Wallpapers/Others/0oaeyq2oqvu61.jpg at [-0.00, 0.00], scale: 1.00 (original image size: [1920, 1080])
[LOG] configure for HDMI-A-1
[LOG] Image data for HDMI-A-1: /home/jacob/Pictures/Wallpapers/Others/0oaeyq2oqvu61.jpg at [-0.00, 0.00], scale: 1.00 (original image size: [1920, 1080])


[LOG] Accepted incoming socket connection request on fd 5
[LOG] Received a request: preload /home/jacob/Pictures/Wallpapers/Others/aujo2c6gtzq61.jpg
[LOG] Preloaded target /home/jacob/Pictures/Wallpapers/Others/aujo2c6gtzq61.jpg in 36.58ms -> Pixel size: [2560, 1600]
[LOG] Buffer created for target /home/jacob/Pictures/Wallpapers/Others/aujo2c6gtzq61.jpg, Shared Memory usage: 8.3MB
[LOG] Total SM usage for all buffers: 16.6MB


[LOG] Accepted incoming socket connection request on fd 5
[LOG] Received a request: unload all
[LOG] Unloading target /home/jacob/Pictures/Wallpapers/Others/aujo2c6gtzq61.jpg, preload path /run/user/1000/.hyprpaper_unjLIh
fish: Job 1, 'hyprpaper' terminated by signal SIGSEGV (Address boundary error)
  • 0oaeyq2oqvu61.jpg -> image from config
  • aujo2c6gtzq61.jpg -> new preloaded image

If I apply the new image as the wallpaper, it tries to unload the previous image but still fails

Hyprpaper segfaults while setting wallpaper

Software Versions


Issue

Whenever I run hyprpaper, it crashes with the following:

[LOG] Welcome to hyprpaper!
built from commit 83867464c523c3ac2f7ce53d2c4b8d4f9b7551cd (?)
[LOG] Cleaned old hyprpaper preloads (2), removing 27.1MB
[LOG] Preloaded target /home/fjorge/.config/hypr/wallpapers/forest-with-river.jpg in 284.23ms -> Pixel size: [5312, 2988]
[LOG] hyprpaper socket started at /tmp/hypr/4f647a8e8be78d3817f126e41940bef49e81232e_1678124441/.hyprpaper.sock (fd: 4)
[LOG] configure for eDP-1
[LOG] handlePreferredScale: 1.40 for 564a9f2a15f0
[LOG] Buffer created for target /home/fjorge/.config/hypr/wallpapers/forest-with-river.jpg, Shared Memory usage: 13.6MB
[LOG] Total SM usage for all buffers: 13.6MB
[LOG] Pool buffer missing for available target??
[LOG] Buffer created for target /home/fjorge/.config/hypr/wallpapers/forest-with-river.jpg, Shared Memory usage: 13.6MB
[LOG] Total SM usage for all buffers: 27.1MB
zsh: segmentation fault (core dumped)  hyprpaper

My hyprpaper configuration file consists of:

preload = ~/.config/hypr/wallpapers/forest-with-river.jpg

wallpaper = ,~/.config/hypr/wallpapers/forest-with-river.jpg

Running coredumpctl gdb hyprpaper and then bt within the gdb prompt gives me:

#0  0x0000561cbf28b229 in CHyprpaper::renderWallpaperForMonitor(SMonitor*) ()
#1  0x0000561cbf28ca03 in CHyprpaper::tick(bool) ()
#2  0x00007f1891cc94f6 in ffi_call_unix64 () at ../src/x86/unix64.S:104
#3  0x00007f1891cc5f5e in ffi_call_int
    (cif=cif@entry=0x7ffc0a886ce0, fn=<optimized out>, rvalue=<optimized out>, avalue=<optimized out>, closure=closure@entry=0x0) at ../src/x86/ffi64.c:673
#4  0x00007f1891cc8b73 in ffi_call (cif=cif@entry=0x7ffc0a886ce0, fn=<optimized out>, rvalue=rvalue@entry=0x0, avalue=avalue@entry=0x7ffc0a886db0)
    at ../src/x86/ffi64.c:710
#5  0x00007f18922a9645 in wl_closure_invoke (closure=closure@entry=0x561cc0127d50, target=<optimized out>, 
    target@entry=0x561cc01278c0, opcode=opcode@entry=0, data=<optimized out>, flags=1) at ../wayland-1.21.0/src/connection.c:1025
#6  0x00007f18922a9e03 in dispatch_event (display=display@entry=0x561cc0121190, queue=0x561cc0121260) at ../wayland-1.21.0/src/wayland-client.c:1595
#7  0x00007f18922a9ffc in dispatch_queue (queue=0x561cc0121260, display=0x561cc0121190) at ../wayland-1.21.0/src/wayland-client.c:1741
#8  wl_display_dispatch_queue_pending (display=0x561cc0121190, queue=0x561cc0121260) at ../wayland-1.21.0/src/wayland-client.c:1983
#9  0x0000561cbf28cd06 in CHyprpaper::init() ()
#10 0x0000561cbf286db9 in main ()

Additional Information

https://github.com/swaywm/swaybg works perfectly fine.

Feature Request: Allow `desc` as monitor name

If i understand correctly currently only the monitor names eDP-1, DP-1, ... are allowed to be used inside the config, while Hyprland also allows specifying a monitor through it's description.

I often connect to different Monitors/Docking stations so that the actual monitor connected to e.g. DP-1 can have different resolutions, orientations, ...

I think it would be nice if one could utilize the description string to specify which wallpaper should be shown on which monitor.

Crash when changing wallpaper

Now in the right project:

after commit update wlroots dep hyprpaper crashes with [destroyed object]: error -1: surface was destroyed before its role object when trying to change the wallpaper. The initial wallpaper works fine.

Build dependencies in README

It'd be nice if the build dependencies were in the README for the manual installation. I figured it out a bit and ended up with this (just in case anyone else on OpenSUSE was having trouble):

sudo zypper install ninja gcc-c++ wayland-protocols-devel Mesa-libGLESv3-devel

Am happy to send a pull request with the change if that'd be easier for you :)

/wrkdirs/usr/ports/x11/hyprpaper/work/hyprpaper-f77a664/src/helpers/Jpeg.cpp:8:2: error: #error "your system is not little endian, jpeg will not work, ping vaxry or something"

While building on FreeBSD/powerpc64:

/usr/local/bin/g++12 -DGIT_BRANCH=\"main\" -DGIT_COMMIT_HASH=\"f77a664\" -DGIT_COMMIT_MESSAGE="\"<unknown>\"" -DGIT_DIRTY=\"portbld\" -I/wrkdirs/usr/ports/x11/hyprpaper/work/hyprpaper-f77a664/. -isystem /usr/local/include/libepoll-shim -isystem /usr/local/include/cairo -isystem /usr/local/include/glib-2.0 -isystem /usr/local/lib/glib-2.0/include -isystem /usr/local/include/pixman-1 -isystem /usr/local/include/freetype2 -isystem /usr/local/include/libpng16 -O2 -pipe  -fstack-protector-strong -Wl,-rpath=/usr/local/lib/gcc12  -Wl,-rpath=/usr/local/lib/gcc12 -O2 -pipe  -fstack-protector-strong -Wl,-rpath=/usr/local/lib/gcc12  -Wl,-rpath=/usr/local/lib/gcc12  -DNDEBUG -std=c++23 -DWLR_USE_UNSTABLE -Wall -Wextra -Wno-unused-parameter -Wno-unused-value -Wno-missing-field-initializers -Wno-narrowing -D_THREAD_SAFE -pthread -MD -MT CMakeFiles/hyprpaper.dir/src/helpers/Jpeg.cpp.o -MF CMakeFiles/hyprpaper.dir/src/helpers/Jpeg.cpp.o.d -o CMakeFiles/hyprpaper.dir/src/helpers/Jpeg.cpp.o -c /wrkdirs/usr/ports/x11/hyprpaper/work/hyprpaper-f77a664/src/helpers/Jpeg.cpp
/wrkdirs/usr/ports/x11/hyprpaper/work/hyprpaper-f77a664/src/helpers/Jpeg.cpp:8:2: error: #error "your system is not little endian, jpeg will not work, ping vaxry or something"
    8 | #error "your system is not little endian, jpeg will not work, ping vaxry or something"
      |  ^~~~~

This is indeed big-endian system :)

@vaxerski

Support for "fit"

Currently hyprpaper would just zoom in if it doesn't fit.
image
I hope that hyprpaper can do the same thing that sway here.
Doesn't zoom in.

Support for webp

When I try to use a webp image I get this

[LOG] Welcome to hyprpaper!
built from commit 8f4c712950ad6a9bc7c7281c15a63f5fa06ba92b ()
[CRITICAL] unrecognized image /home/michael/wallpaper/gruvbox-arch.webp

I'm assuming this is because hyprpaper does not support the webp format. Is there any plan to support webp?

No initial image prevents IPC usage

Hi,

I have a small golang application which prepares tmp images and tries to set them via hyprctl hyprpaper [preload/wallpaper]

This does not work if there is no initial preload/wallpaper specified in the static defined config. I would assume that this should also be possible.

Best regards

Wallpaper fallback not implemented

According to the documentation, an empty monitor name will act as a fallback and set the wallpaper on all connected monitors: Wallpaper will apply the wallpaper to the selected output (monitor is the monitor's name, easily can be retrieved with hyprctl monitors. You can leave it empty for a wildcard (aka fallback))

This doesn't seem to be currently implemented. When using:

wallpaper=,~/wallpaper.png

The wallpaper does not appear on any of the connected monitors.

Wallpaper can't be loaded

got the following warning

[WARN] Monitor DP-1 does not have a target! A wallpaper will not be created.

config:

`preload = ~/.config/Wallpapers/Nord_Night-EE80E.png

#set the default wallpaper(s) seen on inital workspace(s) --depending on the number of monitors used
wallpaper = preload =DP-1, ~/.config/Wallpapers/Nord_Night-EE80E.png
`

Set new wallpaper via script without restarting hyprpaper

I want to write a script that changes wallpaper dynamically when executed, e.g.:

#!/bin/bash

hyprctl hyprpaper unload all
killall hyprpaper

echo "splash = false" >~/.config/hypr/hyprpaper.conf
echo "ipc = off" >>~/.config/hypr/hyprpaper.conf
monitors=$(hyprctl monitors -j | jq -r ".[] | .name")

for monitor in $monitors; do
	wallpaper=$(fd ".png|.jpg|.jpeg" ~/Pictures/wallpapers/ | shuf -n1)
	echo "preload = $wallpaper" >>~/.config/hypr/hyprpaper.conf
	echo "wallpaper = $monitor,$wallpaper" >>~/.config/hypr/hyprpaper.conf
done

hyprpaper &

But I don't want to kill and restart hyprpaper after every rewrite of the config. Is there a way to dynamically switch wallpapers? Is it possible to do something like this?

#!/bin/bash

hyprctl hyprpaper unload all

echo "splash = false" >~/.config/hypr/hyprpaper.conf
echo "ipc = off" >>~/.config/hypr/hyprpaper.conf
monitors=$(hyprctl monitors -j | jq -r ".[] | .name")

for monitor in $monitors; do
	wallpaper=$(fd ".png|.jpg|.jpeg" ~/Pictures/wallpapers/ | shuf -n1)
	echo "preload = $wallpaper" >>~/.config/hypr/hyprpaper.conf
	echo "wallpaper = $monitor,$wallpaper" >>~/.config/hypr/hyprpaper.conf

	hyprctl hyprpaper wallpaper "$monitor,$wallpaper"
done

Additional Info:

OS: Arch Linux x86_64
Kernel: 6.3.2-arch1-1
DE: Hyprland 0.25.0-1
Terminal: kitty 0.28.1

hyprpaper version 0.2.0-1 installed via pacman

Use remote images as wallpaper like feh

I am pretty new to hyprland. I change wallpapers a lot. But I don't like to download them. I just want to use the image url. I used to use feh like this:

feh --bg-fill https://storge.pic2.me/upload/983/5ed56be845142.jpg  

I wanted to do same thing with hyprpaper.

preload = https://cdn.ebaumsworld.com/mediaFiles/picture/2192630/82944372.jpg
wallpaper = eDP-1, https://cdn.ebaumsworld.com/mediaFiles/picture/2192630/82944372.jpg
wallpaper = HDMI-A-1, https://cdn.ebaumsworld.com/mediaFiles/picture/2192630/82944372.jpg

But it is not working.
So, is it even possible to set wallpaper just using a link?

Thanks in advance.

Allow syntax for random preload.

It would be nice to allow for random preloads by specifying a path like this

preload = /path/to/wallpapers/{1}.png

In that case, it would select a random .png from the folder "wallpapers" and store the filename in a register "{1}".
This way we can reference it later by:

wallpaper = monitor, /path/to/wallpapers/{1}.png
or
hyprctl hyprpaper unload = /path/to/wallpapers/{1}.png

This was just a fleeting idea, so some improvements must be made. But in general, I think this feature would be a lovely addition to this project.

bind wallpaper change to workspace change command

Sorry for a rookie question. I am not understanding how to bind the following : hyprctl hyprpaper walllpaper "DP-3, ~/backgrounds/spidey/portrait/spidey-007.png"

I'm getting errors.

The wallpaper is preloaded, and if I run the command in the terminal it works correctly. So just needed some instructions on how to take the command and write it into the hyprland.conf so that it works as expected.

Thank you

Segfault if ipc requests sent too rapidly

If I send ipc requests too rapidly, hyprpaper segfaults in a variety of places (curiously, often in vnsprint), or gets a bus error.

I have a script to load a random wallpaper:

#!/usr/bin/python
from pathlib import Path
from random import choices
from subprocess import run

cmdbase = ["hyprctl", "hyprpaper"]

def load_backgrounds(mapping: dict[str, Path]):
    mapping: dict[str, str] = {k: str(v) for k, v in mapping.items()}
    for bg in mapping.values():
        run(cmdbase + ["preload", bg])
    for monitor, bg in mapping.items():
        run(cmdbase + ["wallpaper", f"{monitor},{bg}"])
    run(cmdbase + ["unload", "all"])


if __name__ == "__main__":
    imgs = Path("~/google-drive/Desktop Backgrounds").expanduser().resolve()
    monitors = {"DP-1", "DP-2"}
    extns = {".jpg", ".jpeg", ".png"}
    available = [x for x in imgs.glob("*") if x.suffix.lower() in extns]
    backgrounds = dict(zip(monitors, choices(available, k=len(monitors))))
    load_backgrounds(backgrounds)

If I run this in a loop at the terminal it will segfault after ~3 iterations. If I add a sleep, i.e.

while true; do
    random_wallpaper.py
    sleep 0.5

I can control the behaviour somewhat. With 0.5 it dies only occasionally, and usually with sigbus. With 0.1 it segfaults pretty quickly. Obviously looping over wallpapers isn't very useful, but I can't guarantee that a user won't hit the 'reload' button in quick succession.

For the time being I can work around it with a file lock. Should the socket code block until the load operation is finished?

version

Latest master with my case-insensitive patch, i.e. 0a85097

[Enhancement]: More simple cli

I wrote a script that simplifies a lot using hyprpaper, I would like to see if you can implement something like this.

#/usr/bin/env bash
#########################################################
# Script to manage hyprpaper easily on the fly			                                    
# By: Waltz												                            
# All credits goes to Hyprwm, they have created: 		                                    
# 	Hypr, Hyprland and Hyprpaper						                            
#########################################################
# This script works by simply pointing hyprpaper to a	                                   
# temp config file, and then we update the contents and	                                   
# we run hyprland again so it can update the wallpaper	                                   
# and unload the previous								                           
#########################################################
# Deps: Hyprpaper, Hyprland								                          
#########################################################


# Config path (You can change this to hyprpaper.conf but be aware to backup your default config file!)
config="$HOME/.config/hypr/hyprpaper_cli.conf"

# Receive image as an argument
image_path="$@"

# Help menu
if [[ "$image_path" == "--help" ]]; then
	echo "Hyprpaper CLI parameters:"
	echo "	--help - Help menu"
	echo "	Usage: hyprpaper_cli <image_path>"
fi

# Pick image from clipboard if we receive clipboard as image path (using wl-paste)
[[ "$image_path" == "clipboard" ]] && image_path="$(wl-paste)"

# Check if user already has a config and hasn't passed an argument
if [[ -z "$image_path" ]]; then

	# Start hyprpaper using user existent config
	[[ -f "$config" ]] && hyprpaper --config "$config" &

	# Tell user to create a config
	[[ -f "$config" ]] || echo "You don't have an config file, you'll need to set some image as wallpaper to create one" && exit 0
fi

echo "$image_path"
# Check if image exists
if [[ -f "$image_path" ]]; then

	# Save image to tmp config path
	echo "preload = "$image_path"" > "$config"
	echo "wallpaper = eDP-1,"$image_path"" >> "$config"

	# Kill previous instance (Not necessary, only enable if needed)
	#[[ $(pgrep hyprpaper) ]] && killall hyprpaper

	# Start hyprpaper
	hyprpaper --config "$config" &
else
	echo "Inexistent image"
fi

Hyprpaper does nothing on NixOS

wallpaper.jpg does exist
hyprpaper.conf

preload = ~/media/pictures/wallpaper.jpg

# Set the default wallpaper seen on inital workspace(s)
wallpaper = , ~/media/pictures/wallpaper.jpg

I've installed on nixos using flakes but running the hyprpaper command with the above config does nothing.

[LOG] Welcome to hyprpaper!
built from commit 9182de9ffc8c76fbf24d16dec0ea7a9430597a06 ()
[LOG] Cleaned old hyprpaper preloads (3), removing 40.7MB
[LOG] Preloaded target /home/will/media/pictures/wallpaper.jpg in 73.48ms -> Pixel size: [3840, 2160]
[LOG] hyprpaper socket started at /tmp/hypr/f23455e592bca14e0abd9249de467cc71cd2850e_1682607044/.hyprpaper.sock (fd: 4)
[LOG] configure for eDP-1
[LOG] handlePreferredScale: 1.65 for 17796b0
[LOG] Buffer created for target /home/will/media/pictures/wallpaper.jpg, Shared Memory usage: 13.6MB
[LOG] Total SM usage for all buffers: 13.6MB
[LOG] Pool buffer missing for available target??
[LOG] Buffer created for target /home/will/media/pictures/wallpaper.jpg, Shared Memory usage: 13.6MB
[LOG] Total SM usage for all buffers: 27.1MB
[LOG] Pool buffer failed #2. Ignoring WP.
[LOG] handlePreferredScale: 1.65 for 17796b0
[LOG] Buffer created for target /home/will/media/pictures/wallpaper.jpg, Shared Memory usage: 13.6MB
[LOG] Total SM usage for all buffers: 40.7MB

but the wallpaper doesn't change

Seg fault when XCURSOR_SIZE=0

Not really a big deal, but having some fail-safe mechanism would be advised since some configuring apps are putting 0 as the default value. Patch from a project with similar issue.

Reproduce

XCURSOR_SIZE=0 hyprpaper

Output:

[LOG] Welcome to hyprpaper!
built from commit ab85578dce442b80aa3378fe0304e6cb6f16f593 (    fix crash with unloadAll)
[LOG] Cleaned old hyprpaper preloads (1), removing 8.3MB
[LOG] Preloaded target /home/filipm/Pictures/wallpaper.jpg in 399.96ms -> Pixel size: [6774, 4492]
[LOG] hyprpaper socket started at /tmp/hypr/bf52545a9136bff63fdc2c2856f358197fb2c2c5_1670241006/.hyprpaper.sock (fd: 4)
[LOG] configure for eDP-1
[LOG] Buffer created for target /home/filipm/Pictures/wallpaper.jpg, Shared Memory usage: 8.3MB
[LOG] Total SM usage for all buffers: 8.3MB
zsh: segmentation fault (core dumped)  XCURSOR_SIZE=0 hyprpaper

Debug info

XCURSOR_SIZE=0 valgrind hyprpaper

Output:

==21937== Memcheck, a memory error detector
==21937== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al.
==21937== Using Valgrind-3.19.0 and LibVEX; rerun with -h for copyright info
==21937== Command: hyprpaper
==21937==
[LOG] Welcome to hyprpaper!
built from commit ab85578dce442b80aa3378fe0304e6cb6f16f593 (    fix crash with unloadAll)
[LOG] Cleaned old hyprpaper preloads (1), removing 8.3MB
[LOG] Preloaded target /home/filipm/Pictures/wallpaper.jpg in 7271.49ms -> Pixel size: [6774, 4492]
[LOG] hyprpaper socket started at /tmp/hypr/bf52545a9136bff63fdc2c2856f358197fb2c2c5_1670241006/.hyprpaper.sock (fd: 4)

[LOG] configure for eDP-1
[LOG] Buffer created for target /home/filipm/Pictures/wallpaper.jpg, Shared Memory usage: 8.3MB
[LOG] Total SM usage for all buffers: 8.3MB
==21937== Invalid read of size 4
==21937==    at 0x48D650E: wl_cursor_theme_get_cursor (wayland-cursor.c:444)
==21937==    by 0x113E5D: CHyprpaper::tick(bool) (in /usr/bin/hyprpaper)
==21937==    by 0x11420C: CHyprpaper::init() (in /usr/bin/hyprpaper)
==21937==    by 0x10EDED: main (in /usr/bin/hyprpaper)
==21937==  Address 0x0 is not stack'd, malloc'd or (recently) free'd
==21937==
==21937==
==21937== Process terminating with default action of signal 11 (SIGSEGV): dumping core
==21937==  Access not within mapped region at address 0x0
==21937==    at 0x48D650E: wl_cursor_theme_get_cursor (wayland-cursor.c:444)
==21937==    by 0x113E5D: CHyprpaper::tick(bool) (in /usr/bin/hyprpaper)
==21937==    by 0x11420C: CHyprpaper::init() (in /usr/bin/hyprpaper)
==21937==    by 0x10EDED: main (in /usr/bin/hyprpaper)
==21937==  If you believe this happened as a result of a stack
==21937==  overflow in your program's main thread (unlikely but
==21937==  possible), you can try to increase the size of the
==21937==  main thread stack using the --main-stacksize= flag.
==21937==  The main thread stack size used in this run was 8388608.
==21937==
==21937== HEAP SUMMARY:
==21937==     in use at exit: 139,975,531 bytes in 325 blocks
==21937==   total heap usage: 661 allocs, 336 frees, 140,245,391 bytes allocated
==21937==
==21937== LEAK SUMMARY:
==21937==    definitely lost: 0 bytes in 0 blocks
==21937==    indirectly lost: 0 bytes in 0 blocks
==21937==      possibly lost: 560 bytes in 4 blocks
==21937==    still reachable: 139,972,955 bytes in 300 blocks
==21937==         suppressed: 0 bytes in 0 blocks
==21937== Rerun with --leak-check=full to see details of leaked memory
==21937==
==21937== For lists of detected and suppressed errors, rerun with: -s
==21937== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
zsh: segmentation fault (core dumped)  XCURSOR_SIZE=0 valgrind hyprpaper

What am I doing wrong/error

The following command:
hyprctl hyprpaper wallpaper DP-4,~/Pictures/wallpapers/HiResWallpaper/6cg02pf.jpg

gives this error:

Couldn't connect to /tmp/hypr/d2011a4ba9ff73e69e8560fab3b2be989eca1429_1660590616/.hyprpaper.sock. (3)

What am I doing wrong here :-(

Or better, how should I use hyprpaper in my hyprland setup? Any real wordl examples to share with me?

Switching wallpapers causes hyprpaper crash

I used a bash script to switch wallpaper using hyprpaper on workspace switches, but after a few switches the hyprpaper crashed, leaving the error message below:

[LOG] Submitting viewport dest size 1504x1002 for 68001890
[LOG] handlePreferredScale: 1.50 for 7ff768001890
zwlr_layer_surface_v1@52: error 0: wrong configure serial: 45405

Version: built from master
WM: Hyprland, built from master bundled with HIDPI patched wlroots.
It happens on both Arch Linux and NixOS.

[WARN] Monitor eDP-1 does not have a target

I followed the readme in the main page
hyprpaper.conf:

preload=/home/madhavpcm/Wallpapers/img1.jpg 
wallpaper=monitor0,/home/madhavpcm/Wallpapers/img1.jpg

hyprland.conf

########################################################################################
AUTOGENERATED HYPR CONFIG.
PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hypr.conf AND EDIT IT,
OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS.
########################################################################################

#
# Please note not all available settings / options are set here.
# For a full list, see the wiki
#


# See https://wiki.hyprland.org/Configuring/Monitors/
monitor=eDP-1,1920x1080@120,0x0,1



# See https://wiki.hyprland.org/Configuring/Keywords/ for more

# Execute your favorite apps at launch
# exec-once = waybar & hyprpaper & firefox

# Source a file (multi-file configs)
# source = ~/.config/hypr/myColors.conf

# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
input {
    kb_layout = us
    kb_variant =
    kb_model =
    kb_options =
    kb_rules =

    follow_mouse = 1

    touchpad {
        natural_scroll = 1
    }

    sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
}

general {
    # See https://wiki.hyprland.org/Configuring/Variables/ for more

    gaps_in = 5
    gaps_out = 10
    border_size = 2
    col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
    col.inactive_border = rgba(595959aa)

    layout = dwindle
}

decoration {
    # See https://wiki.hyprland.org/Configuring/Variables/ for more

    rounding = 4
    blur = yes
    blur_size = 3
    blur_passes = 1
    blur_new_optimizations = on

    drop_shadow = yes
    shadow_range = 4
    shadow_render_power = 3
    col.shadow = rgba(1a1a1aee)
}

animations {
    enabled = yes

    # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more

    bezier = myBezier, 0.05, 0.9, 0.1, 1.05

    animation = windows, 1, 7, myBezier
    animation = windowsOut, 1, 7, default, popin 80%
    animation = border, 1, 10, default
    animation = borderangle, 1, 8, default
    animation = fade, 1, 7, default
    animation = workspaces, 1, 6, default
}

dwindle {
    # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
    pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
    preserve_split = yes # you probably want this
}

master {
    # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
    new_is_master = true
}

gestures {
    # See https://wiki.hyprland.org/Configuring/Variables/ for more
    workspace_swipe = on 
	workspace_swipe_fingers = 4
}
misc {
	disable_hyprland_logo =true
	vrr= 1
}

# Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more
device:epic mouse V1 {
    sensitivity = -0.5
}

windowrule=float,^(albert)$
windowrule=noborder,^(albert)$
# Example windowrulesdf v1
# windowrule = float, ^(kitty)$
# Example windowrule v2
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more


# See https://wiki.hyprland.org/Configuring/Keywords/ for more
$mainMod = SUPER


bind = $mainMod SHIFT,RETURN, exec, alacritty
bind = $mainMod SHIFT, C, killactive, 
bind = $mainMod, B, exec, firefox
bind = $mainMod, M, exit, 
bind = $mainMod, E, exec, dolphin
bind = $mainMod, V, togglefloating, 
bind = $mainMod, R, exec, wofi --show drun
bind = $mainMod, P, exec, albert toggle 
#bind = $mainMod, P, pseudo, # dwindle
#bind = $mainMod, RETURN, togglesplit, # dwindle

# Move focus with mainMod + arrow keys
bind = $mainMod, h, movefocus, l
bind = $mainMod, j, movefocus, r
bind = $mainMod, k, movefocus, u
bind = $mainMod, l, movefocus, d

# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10

# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10
bind=SUPER SHIFT,SPACE,fullscreen,0
bindel=,232,exec, brightnessctl set 5%-
bindel=,233,exec, brightnessctl set 5%+

# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1

# Volume Control
bindel = ,121,exec,wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
bindel = ,122,exec,wpctl set-volume @DEFAULT_AUDIO_SINK@ +5%
bindel = ,123,exec,wpctl set-volume @DEFAULT_AUDIO_SINK@ +5%


# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow


#set the default wallpaper(s) seen on inital workspace(s) --depending on the number of monitors used
#if more than one monitor in use, can load a 2nd image
# .. more monitors

On trying hyprctl hyprpaper wallpaper <path>, hyprpaper says ok but no wallpaper is set

Is hyprpaper.conf sensitive to the file extension?

My hyprpaper.conf

preload = ~/.config/wall
wallpaper = DP-1,~/.config/wall

Executing hyprpaper from the terminal gives

$ hyprpaper
[LOG] Welcome to hyprpaper!
built from commit 8f4c712950ad6a9bc7c7281c15a63f5fa06ba92b ()
[CRITICAL] unrecognized image /home/atif/.config/wall

When I rename the file to wall.png and correspondingly edit the config, hyprpaper seems to work as intended.

Is this the intended behavior?

Documentation Deficiencies

Some of the documentation is insufficient, wrong, or confusing. I will edit this issue as I come across things that I have questions about. The more questions your documentation answers, the less people bother you.

  • What is psuedotile? I can see what it does, but what is the purpose? If there were a description, I would know that it is working correctly.
    • Firefox, when in a tall tile on half of the screen, does not appear to do anything with psuedotiling mode.
    • Even with dwindle.psuedotile set to false, I can still make a bind using the psuedo dispatcher. How does the option interact with the bind dispatcher, and what is it supposed to do if not disable the dispatcher?
  • What is clickfinger and how does it behave?
  • How does middle button emulation work? Is it a three-finger tap? Isn't that a part of tap-to-click?
    • Why does middle_button_emulation change nothing when set to false (under the assumption that it is supposed to be three-finger tap)?
    • Why does tap-to-click have a hyphenated name versus everything else which is underscored? How does it interact with "clickfinger" and "middle button emulation"?
  • What is animate_manual_resizes? From what I can tell, it changes nothing.
  • preserve_split needs elaboration. What can happen to the container? How would it cause the behavior to change? How does this interact with force_split? If they are mutually exclusive, with the former being more "dynamic" in behavior, perhaps they should be combined into split_mode?
  • What is "auto-split"? Why does it need a split_width_multiplier?
  • How does use_active_for_splits behave when force_split is non-zero? What does that mean for preserve_split?

Unloading after setting the wallpaper

I went through the readme and I found consider unloading those that you no longer need but I'm not sure what no longer needed means. Does it mean that once I set the wallpaper I can unload it

eg flow:

hyprctl hyprpaper preload ~/Pictures/myepicpng.png
hyprctl hyprpaper wallpaper DP-1,~/Pictures/myepicpng.png
hyprctl hyprpaper unload ~/Pictures/myepicpng.png

Will the above cause any issues?

Autostart with hyprland

How do you actually autostart it with hyprland?
I searched around but don't seem to find the solution.

hyprpaper crashes when new monitor gets connected

Expected behavior

Monitors display hyprpaper wallpaper when turned on

Acutal behavior

hyprpaper crashes (no wallpaper displayed from hyprpaper)

Steps to reproduce

  1. Configure wallpaper for both monitors
  2. Have one monitor turned off
  3. Run hyprpaper
  4. Turn on the other monitor
  5. Observe hyprpaper crash

Logs

This is the output I get when running hyprpaper from CLI the moment I turn on the monitor:
listener function for opcode 1 of zwlr_layer_surface_v1 is NULL
zsh: IOT instruction (core dumped) hyprpaper

Client config

  • Arch Linux with hyprland
  • hyprpaper-git AUR build (built from commit 50852e5)
  • I'm using hyprland with dedicated workspaces set for both monitors if that matters

`Config error at line 1: preload failed (no such file)` even when there is a file there

title

there very mutch is a working file there, i dont know why its not seeing it

$ hyprpaper
[LOG] Welcome to hyprpaper!
built from commit 61961973cfd10853b32c7f904cdb88f9ab6d84dd (?)
[CRITICAL] Exiting because of config parse errors!
Config error at line 1: preload failed (no such file)
$ ls $HOME/Pictures/wallpapers/mountens\ better.png
'/home/makerio/Pictures/wallpapers/mountens better.png'

config:

preload = /home/makerio/Pictures/wallpapers/mountens\ better.png
wallpaper = DP-1,$HOME/Pictures/wallpapers/mountens\ better.png

hyprctl hyprpaper wallpaper doesn't seem to do anything.

As mentioned in the README.

IPC

You can use hyprctl hyprpaper (if on Hyprland) to issue a keyword, for example

hyprctl hyprpaper wallpaper DP-1,~/Pictures/myepicpng.png

I am running hyprpaper on a laptop (single display) and running

$ hyprctl hyprpaper wallpaper DP-1,/D/Downloads/wallpapers/0010.jpg

returns ok but doesn't change the wallpaper.
(keep in mind I have ran hyprctl hyprpaper preload /D/Downloads/wallpapers/0010.jpg before)

[Bug] Couldn't connect to socket

$ hyprctl hyprpaper wallpaper DP-1,/home/kainoa/Pictures/ghibli/02-modified.png
Couldn't connect to /tmp/hypr/c0c75db62188667a4f42aef1ae6bfd8034093af7_1657590890/.hyprpaper.sock. (3)

Please add tagged releases

I was looking into packaging this for Arch Linux to go along with official hyprland packages, but that's not really possible without any tagged releases on any kind. Having used it a while myself I'd say at least a v0.1.0 is in order. You can always keep iterating and even break and change things, but giving people a spot to start from with prebuilt packages is generally a good thing.

Not working on VMware VM with 3D acceleration

I'm running Arch Linux with Hyprland on a VMware VM by enabling 3D acceleration and Hyprland runs fine by running the wrappedhl as:

#!/usr/bin/env bash
# wrappedhl
# Launch Hyprland with a simple wrapper

cd ~

# Variables
export _JAVA_AWT_WM_NONREPARENTING=1
export XCURSOR_SIZE=24
# For VMware
export WLR_NO_HARDWARE_CURSORS=1
export WLR_RENDERER_ALLOW_SOFTWARE=1

# Execute Hyprland
if [ -f /usr/local/bin/Hyprland ]; then
   exec /usr/local/bin/Hyprland >/dev/null 2>&1 
elif [ -f /usr/bin/Hyprland ]; then
   exec /usr/bin/Hyprland >/dev/null 2>&1 
fi

In .config/hypr/hyprland.conf I set as monitor variable:

monitor = Virtual-1,1920x1080@60,0x0,1

and .config/hypr/hyprpaper.conf as:

preload = ~/Downloads/smile.jpg
wallpaper = Virtual-1,~/Downloads/smile.jpg

but also after reboot, the background wallpaper does not appear despite the image file is in that location.
When I run it on terminal by hyprctl hyprpaper wallpaper "Virtual-1,~/Downloads/smile.jpg", I get the following message:

Couldn't connect to /tmp/hypr/<random_numbers>/.hyprpaper.sock

In /tmp/hypr/<random_numbers>/ I have the following files: .socket.sock, .socket2.sock and hyprland.log. This log file has the following content:

[LOG] Instance Signature: 1a4e6e6a4b3272118a51bebb4a45ecd642383209_1686093650
[LOG] Hyprland PID: 643
[LOG] ===== SYSTEM INFO: =====
[LOG] System name: Linux
[LOG] Node name: athena-vmwarevirtualplatform
[LOG] Release: 6.3.5-zen2-1-zen
[LOG] Version: #1 ZEN SMP PREEMPT_DYNAMIC Sun, 04 Jun 2023 11:52:10 +0000


[LOG] GPU information:
00:0f.0 VGA compatible controller [0300]: VMware SVGA II Adapter [15ad:0405] (prog-if 00 [VGA controller])
	Subsystem: VMware SVGA II Adapter [15ad:0405]


[LOG] os-release:
NAME="Athena OS"
PRETTY_NAME="Athena OS"
ID=athena
BUILD_ID=rolling
VERSION_ID=stable
ANSI_COLOR="38;2;255;230;0"
HOME_URL="https://github.com/Athena-OS/athena-iso"
DOCUMENTATION_URL="https://github.com/Athena-OS/athena-iso/wiki"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://github.com/Athena-OS/athena-iso/issues"
PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
LOGO=athena-hello-logo
IMAGE_ID=athena
IMAGE_VERSION=2023.06.03

[LOG] ========================



[INFO] If you are crashing, or encounter any bugs, please consult https://wiki.hyprland.org/Crashes-and-Bugs/


[LOG] 
Current splash: "Hello everyone this is YOUR daily dose of ‘read the wiki’" - Vaxry


[LOG] Creating the HookSystem!
[LOG] Creating the KeybindManager!
[LOG] Creating the AnimationManager!
[LOG] Created a bezier curve, baked 255 points, mem usage: 4.08kB, time to bake: 26.75µs. Estimated average calc time: 0.00µs.
[LOG] Creating the ConfigManager!
[LOG] Creating the CHyprError!
[LOG]  [hookSystem] New hook event registered: focusedMon
[LOG]  [hookSystem] New hook event registered: preRender
[LOG] Creating the LayoutManager!
[LOG] Reloading the config!
[LOG] Created a bezier curve, baked 255 points, mem usage: 4.08kB, time to bake: 11.07µs. Estimated average calc time: 0.00µs.
[LOG] Created a bezier curve, baked 255 points, mem usage: 4.08kB, time to bake: 11.39µs. Estimated average calc time: 0.00µs.
[LOG] Created a bezier curve, baked 255 points, mem usage: 4.08kB, time to bake: 10.85µs. Estimated average calc time: 0.00µs.
[LOG] Created a bezier curve, baked 255 points, mem usage: 4.08kB, time to bake: 10.61µs. Estimated average calc time: 0.00µs.
[LOG] Disabling stdout logs! Check the log for further logs.
[LOG] Creating the ThreadManager!
[LOG] Hypr socket started at /tmp/hypr/1a4e6e6a4b3272118a51bebb4a45ecd642383209_1686093650/.socket.sock
[LOG] Creating the InputManager!
[LOG]  [hookSystem] New hook event registered: keyboardFocus
[LOG] Creating the CHyprOpenGLImpl!
[LOG] Creating the Hypr OpenGL Renderer!
[LOG] Using: OpenGL ES 3.1 Mesa 23.1.1
[LOG] Vendor: VMware, Inc.
[LOG] Renderer: SVGA3D; build: RELEASE;  LLVM;
[LOG] Supported extensions size: 129
[LOG] Creating the HyprRenderer!
[LOG] Creating the XWaylandManager!
[LOG] Registered signal for owner 55de9994c170: 55de9994c1b0 -> 55de97f1ee60 (owner: XWayland Manager)
[LOG] Registered signal for owner 55de9994c170: 55de9994c1c0 -> 55de97f1ee40 (owner: XWayland Manager)
[LOG] CHyprXWaylandManager started on display :0
[LOG] Creating the ProtocolManager!
[LOG] ToplevelExportManager started successfully!
[LOG] FractionalScaleManager started successfully!
[LOG] TextInputV1Manager started successfully!
[LOG] GlobalShortcutsManager started successfully!
[LOG] ScreencopyProtocolManager started successfully!
[LOG] Creating the SessionLockManager!
[LOG] Creating the EventManager!
[LOG] Creating the HyprDebugOverlay!
[LOG] Creating the HyprNotificationOverlay!
[LOG] Hypr socket 2 started at /tmp/hypr/1a4e6e6a4b3272118a51bebb4a45ecd642383209_1686093650/.socket2.sock
[LOG] Creating the PluginSystem!
[LOG] Hyprland init finished.
[LOG] Registered signal for owner 55de990925d0: 55de990925f8 -> 55de97f1a360 (owner: Backend)
[LOG] Registered signal for owner 55de99975850: 55de999758a0 -> 55de97f1a300 (owner: XDG Shell)
[LOG] Registered signal for owner 55de99975920: 55de99975938 -> 55de97f1a2c0 (owner: WLRCursor)
[LOG] Registered signal for owner 55de99975920: 55de99975948 -> 55de97f1a2a0 (owner: WLRCursor)
[LOG] Registered signal for owner 55de99975920: 55de99975958 -> 55de97f1a280 (owner: WLRCursor)
[LOG] Registered signal for owner 55de99975920: 55de99975968 -> 55de97f1a260 (owner: WLRCursor)
[LOG] Registered signal for owner 55de99975920: 55de99975978 -> 55de97f1a240 (owner: WLRCursor)
[LOG] Registered signal for owner 55de99975920: 55de99975988 -> 55de97f1a020 (owner: WLRCursor)
[LOG] Registered signal for owner 55de99975920: 55de99975998 -> 55de97f19fe0 (owner: WLRCursor)
[LOG] Registered signal for owner 55de99975920: 55de999759a8 -> 55de97f1a000 (owner: WLRCursor)
[LOG] Registered signal for owner 55de99975920: 55de999759b8 -> 55de97f19fc0 (owner: WLRCursor)
[LOG] Registered signal for owner 55de99975920: 55de999759c8 -> 55de97f19fa0 (owner: WLRCursor)
[LOG] Registered signal for owner 55de99975920: 55de999759d8 -> 55de97f19f80 (owner: WLRCursor)
[LOG] Registered signal for owner 55de99975920: 55de99975a18 -> 55de97f19ee0 (owner: WLRCursor)
[LOG] Registered signal for owner 55de99975920: 55de99975a08 -> 55de97f19ec0 (owner: WLRCursor)
[LOG] Registered signal for owner 55de99975920: 55de99975a28 -> 55de97f19ea0 (owner: WLRCursor)
[LOG] Registered signal for owner 55de99975920: 55de99975a48 -> 55de97f19e80 (owner: WLRCursor)
[LOG] Registered signal for owner 55de99975920: 55de999759e8 -> 55de97f19e60 (owner: WLRCursor)
[LOG] Registered signal for owner 55de99975920: 55de999759f8 -> 55de97f19e40 (owner: WLRCursor)
[LOG] Registered signal for owner 55de990925d0: 55de990925e8 -> 55de97f1a220 (owner: Backend)
[LOG] Registered signal for owner 55de99083250: 55de99919108 -> 55de97f1a1c0 (owner: Seat)
[LOG] Registered signal for owner 55de99083250: 55de99919118 -> 55de97f1a1a0 (owner: Seat)
[LOG] Registered signal for owner 55de99083250: 55de99919158 -> 55de97f1a120 (owner: Seat)
[LOG] Registered signal for owner 55de99083250: 55de99919168 -> 55de97f1a100 (owner: Seat)
[LOG] Registered signal for owner 55de99083250: 55de99919118 -> 55de97f1a1a0 (owner: Seat)
[LOG] Registered signal for owner 55de99083250: 55de99919138 -> 55de97f1a180 (owner: Seat)
[LOG] Registered signal for owner 55de999193a0: 55de999193c0 -> 55de97f1a320 (owner: LayerShell)
[LOG] Registered signal for owner 55de9992f110: 55de9992f130 -> 55de97f1a380 (owner: OutputLayout)
[LOG] Registered signal for owner 55de999196b0: 55de999196e8 -> 55de97f1a160 (owner: OutputMgr)
[LOG] Registered signal for owner 55de999196b0: 55de999196f8 -> 55de97f1a140 (owner: OutputMgr)
[LOG] Registered signal for owner 55de99932c40: 55de99932c70 -> 55de97f1a0e0 (owner: InhibitMgr)
[LOG] Registered signal for owner 55de99932c40: 55de99932c80 -> 55de97f1a0c0 (owner: InhibitMgr)
[LOG] Registered signal for owner 55de99932e80: 55de99932e98 -> 55de97f1a1e0 (owner: PointerConstraints)
[LOG] Registered signal for owner 55de99919510: 55de99919540 -> 55de97f1a0a0 (owner: XDGDecoMgr)
[LOG] Registered signal for owner 55de99933080: 55de999330b0 -> 55de97f1a200 (owner: VirtPtrMgr)
[LOG] Registered signal for owner 55de99932fd0: 55de99933000 -> 55de97f19f00 (owner: VKeyboardMgr)
[LOG] Registered signal for owner 55de9926a960: 55de9926a960 -> 55de97f1a080 (owner: WLRRenderer)
[LOG] Registered signal for owner 55de99933430: 55de99933460 -> 55de97f1a060 (owner: WLRIdleInhibitMgr)
[LOG] Registered signal for owner 55de9992f230: 55de9992f260 -> 55de97f19f60 (owner: PowerMgr)
[LOG] Registered signal for owner 55de999338b0: 55de999338e0 -> 55de97f19f40 (owner: IMEMgr)
[LOG] Registered signal for owner 55de99933800: 55de99933830 -> 55de97f19f20 (owner: TextInputMgr)
[LOG] Registered signal for owner 55de99933960: 55de99933988 -> 55de97f1a2e0 (owner: ActivationV1)
[LOG] Registered signal for owner 55de99933ab0: 55de99933ab8 -> 55de97f19e20 (owner: SessionLockMgr)
[LOG] Registered signal for owner 55de99082ff0: 55de99933220 -> 55de97f1a340 (owner: DRM)
[LOG] Registered signal for owner 55de99092660: 55de990927c0 -> 55de97f1a040 (owner: Session)
[LOG] wl_display_add_socket for wayland-1 succeeded with 0
[LOG] Running on WAYLAND_DISPLAY: wayland-1
[LOG] Attached a keyboard with name Power Button
[LOG] Registered signal for owner 55de999d5d00: 55de99aba220 -> 55de999d5d08 (owner: Keyboard)
[LOG] Registered signal for owner 55de999d5d00: 55de99aba210 -> 55de999d5d70 (owner: Keyboard)
[LOG] Registered signal for owner 55de999d5d00: 55de99aba0f0 -> 55de999d5e40 (owner: Keyboard)
[LOG] Registered signal for owner 55de999d5d00: 55de99aba230 -> 55de999d5dd8 (owner: Keyboard)
[LOG] ApplyConfigToKeyboard for "power-button", hasconfig: 0
[LOG] Attempting to create a keymap for layout us with variant  (rules: , model: , options: )
[LOG]  [hookSystem] New hook event registered: activeLayout
[LOG] Set the keyboard layout to us and variant to  for keyboard "Power Button"
[LOG] New keyboard created, pointers Hypr: 55de999d5d00 and WLR: 55de99aba0d8
[LOG] Attached a keyboard with name AT Translated Set 2 keyboard
[LOG] Registered signal for owner 55de99ae0a20: 55de99adcf20 -> 55de99ae0a28 (owner: Keyboard)
[LOG] Registered signal for owner 55de99ae0a20: 55de99adcf10 -> 55de99ae0a90 (owner: Keyboard)
[LOG] Registered signal for owner 55de99ae0a20: 55de99adcdf0 -> 55de99ae0b60 (owner: Keyboard)
[LOG] Registered signal for owner 55de99ae0a20: 55de99adcf30 -> 55de99ae0af8 (owner: Keyboard)
[LOG] ApplyConfigToKeyboard for "at-translated-set-2-keyboard", hasconfig: 0
[LOG] Attempting to create a keymap for layout us with variant  (rules: , model: , options: )
[LOG] Set the keyboard layout to us and variant to  for keyboard "AT Translated Set 2 keyboard"
[LOG] New keyboard created, pointers Hypr: 55de99ae0a20 and WLR: 55de99adcdd8
[LOG] Attached a mouse with name VirtualPS/2 VMware VMMouse
[LOG] New mouse has libinput sens 0.00 (0.00) with accel profile 2 (2)
[LOG] Applied config to mouse virtualps/2-vmware-vmmouse, sens 0.00
[LOG] Registered signal for owner 55de99afa370: 55de99b41540 -> 55de99afa430 (owner: Mouse)
[LOG] New mouse created, pointer WLR: 55de99b41528
[LOG] Attached a mouse with name VirtualPS/2 VMware VMMouse
[LOG] New mouse has libinput sens 0.00 (0.00) with accel profile 0 (0)
[LOG] Applied config to mouse virtualps/2-vmware-vmmouse, sens 0.00
[LOG] Applied config to mouse virtualps/2-vmware-vmmouse-1, sens 0.00
[LOG] Registered signal for owner 55de99ac0c90: 55de99b41a70 -> 55de99ac0d50 (owner: Mouse)
[LOG] New mouse created, pointer WLR: 55de99b41a58
[LOG] Adding completely new monitor.
[LOG] Registered signal for owner 55de99b294b0: 55de99b421c0 -> 55de99b296b0 (owner: )
[LOG] Registered signal for owner 55de99b294b0: 55de99b42250 -> 55de99b29718 (owner: )
[LOG] Registered signal for owner 55de99b294b0: 55de99b42240 -> 55de99b29780 (owner: )
[LOG] Registered signal for owner 55de99b294b0: 55de99b421d0 -> 55de99b297e8 (owner: )
[LOG] Registered signal for owner 55de99b294b0: 55de99b421e0 -> 55de99b29850 (owner: )
[LOG] Registered signal for owner 55de99b294b0: 55de99b42200 -> 55de99b298b8 (owner: )
[LOG] Applying monitor rule for Virtual-1
[LOG] Monitor Virtual-1: requested [email protected], found available mode: 1920x1080@59963mHz, applying.
[LOG] Monitor Virtual-1 -> destroyed all render data
[LOG] Monitor Virtual-1 layers arranged: reserved: 0.000000 0.000000 0.000000 0.000000
[LOG] Monitor Virtual-1 data dump: res [email protected], scale 1.00, transform 0, pos 0x0, 10b 0
[LOG] Added new monitor with name Virtual-1 at 0,0 with size 1920x1080, pointer 55de99b42070
[LOG] New monitor: WORKSPACEID 1, exists: 0
[LOG]  [hookSystem] New hook event registered: createWorkspace
[LOG]  [hookSystem] New hook event registered: monitorAdded
[LOG] Monitor Virtual-1 layers arranged: reserved: 0.000000 0.000000 0.000000 0.000000
[LOG] Hyprland is ready, running the event loop!
[LOG]  [hookSystem] New hook event registered: tick
[LOG] Executing WAYLAND_DISPLAY=wayland-1 DISPLAY=:0 systemctl --user import-environment DISPLAY WAYLAND_DISPLAY HYPRLAND_INSTANCE_SIGNATURE XDG_CURRENT_DESKTOP && hash dbus-update-activation-environment 2>/dev/null && dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP HYPRLAND_INSTANCE_SIGNATURE
[LOG] Process Created with pid 693
[LOG] Executing WAYLAND_DISPLAY=wayland-1 DISPLAY=:0 wl-clipboard-history -t
[LOG] Process Created with pid 695
[LOG] Executing WAYLAND_DISPLAY=wayland-1 DISPLAY=:0 dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
[LOG] Process Created with pid 698
[LOG] Executing WAYLAND_DISPLAY=wayland-1 DISPLAY=:0 systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
[LOG] Process Created with pid 700
[LOG] Executing WAYLAND_DISPLAY=wayland-1 DISPLAY=:0 /usr/lib/polkit-kde-authentication-agent-1
[LOG] Process Created with pid 702
[LOG] Executing WAYLAND_DISPLAY=wayland-1 DISPLAY=:0 wlsunset -t 4500 -S 9:00 -s 19:30
[LOG] Process Created with pid 704
[LOG] Executing WAYLAND_DISPLAY=wayland-1 DISPLAY=:0 ~/.autostart
[LOG] Process Created with pid 706
[LOG] Executing WAYLAND_DISPLAY=wayland-1 DISPLAY=:0 systemctl --user restart pipewire
[LOG] Process Created with pid 708
[LOG] Executing WAYLAND_DISPLAY=wayland-1 DISPLAY=:0 swaybg -m fill -i /home/athena/Downloads/smile.jpg
[LOG] Process Created with pid 710
[LOG] Executing WAYLAND_DISPLAY=wayland-1 DISPLAY=:0 waybar
[LOG] Process Created with pid 713
[LOG] ApplyConfigToKeyboard for "power-button", hasconfig: 0
[LOG] Attempting to create a keymap for layout us with variant  (rules: , model: , options: )
[LOG] Set the keyboard layout to us and variant to  for keyboard "Power Button"
[LOG] ApplyConfigToKeyboard for "at-translated-set-2-keyboard", hasconfig: 0
[LOG] Attempting to create a keymap for layout us with variant  (rules: , model: , options: )
[LOG] Set the keyboard layout to us and variant to  for keyboard "AT Translated Set 2 keyboard"
[LOG] Applied config to mouse virtualps/2-vmware-vmmouse, sens 0.00
[LOG] Applied config to mouse virtualps/2-vmware-vmmouse-1, sens 0.00
[LOG] Applying monitor rule for Virtual-1
[LOG] Not applying a new rule to Virtual-1 because it's already applied!
[LOG] Monitor Virtual-1 layers arranged: reserved: 0.000000 0.000000 0.000000 0.000000
[LOG]  [hookSystem] New hook event registered: render
[LOG] Framebuffer created, status 36053
[LOG] Framebuffer created, status 36053
[LOG] Framebuffer created, status 36053
[LOG] Framebuffer created, status 36053
[LOG] Allocated texture for BGTex
[LOG] Background created for monitor Virtual-1
[LOG] Shaders initialized successfully.
[LOG] Socket 2 accepted a new client at FD 32
[LOG] Registered signal for owner 55de99b597f0: 55de99beedc0 -> 55de99b599d0 (owner: layerSurface)
[LOG] Registered signal for owner 55de99b597f0: 55de99b5a2d0 -> 55de99b59898 (owner: layerSurface)
[LOG] Registered signal for owner 55de99b597f0: 55de99beedd0 -> 55de99b59900 (owner: layerSurface)
[LOG] Registered signal for owner 55de99b597f0: 55de99beede0 -> 55de99b59968 (owner: layerSurface)
[LOG] Registered signal for owner 55de99b597f0: 55de99b5a2e0 -> 55de99b59a38 (owner: layerSurface)
[LOG] LayerSurface 55de99b5a210 (namespace waybar layer 2) created on monitor Virtual-1
[LOG] LayerSurface 55de99aed990 arranged: x: 0 y: 0 w: 1920 h: 40 with margins: t: 0 l: 0 r: 0 b: 0
[LOG] Monitor Virtual-1 layers arranged: reserved: 0.000000 40.000000 0.000000 0.000000
[LOG] LayerSurface 55de99b5a210 mapped
[LOG] Registered signal for owner 55de99b59810: 55de99beee00 -> 55de99b59818 (owner: CWLSurface)
[LOG] CWLSurface 55de99b59810 called init()
[LOG] LayerSurface 55de99aed990 arranged: x: 0 y: 0 w: 1920 h: 42 with margins: t: 0 l: 0 r: 0 b: 0
[LOG] Monitor Virtual-1 layers arranged: reserved: 0.000000 42.000000 0.000000 0.000000
[LOG]  [hookSystem] New hook event registered: openLayer
[LOG] LayerSurface 55de99aed990 arranged: x: 0 y: 0 w: 1920 h: 42 with margins: t: 0 l: 0 r: 0 b: 0
[LOG] Monitor Virtual-1 layers arranged: reserved: 0.000000 42.000000 0.000000 0.000000
[LOG] Keybind triggered, calling dispatcher (64, , 100)
[LOG] Executing WAYLAND_DISPLAY=wayland-1 DISPLAY=:0 konsole
[LOG] Process Created with pid 962
[LOG] New XDG Surface created. (class: org.kde.konsole)
[LOG] Registered signal for owner 55de99c046b0: 55de99cac1f0 -> 55de99c04718 (owner: XDG Window)
[LOG] Registered signal for owner 55de99c046b0: 55de99bd3a50 -> 55de99c047e8 (owner: XDG Window)
[LOG] Registered signal for owner 55de99c046b0: 55de99adf600 -> 55de99c04cc8 (owner: Toplevel)
[LOG] Registered signal for owner 55de99c046b0: 55de99adf610 -> 55de99c04d30 (owner: Toplevel)
[LOG] Registered signal for owner 55de99c046b0: 55de99adf620 -> 55de99c04c60 (owner: Toplevel)
[LOG] Registered signal for owner 55de99c04ed0: 55de99cac220 -> 55de99c04ed8 (owner: CWLSurface)
[LOG] CWLSurface 55de99c04ed0 called init()
[LOG] Registered signal for owner 55de99c046b0: 55de99cac200 -> 55de99c04780 (owner: CWindow)
[LOG] Searching for matching rules for org.kde.konsole (title: ~ : zsh — Konsole)
[LOG] OPENINGON: 55de99bed870, Workspace: 1, Monitor: 0
[LOG] Set keyboard focus to surface 55de99cabf10, with window name: ~ : zsh — Konsole
[LOG]  [hookSystem] New hook event registered: activeWindow
[LOG] Window got assigned a surfaceTreeNode 0
[LOG] Registered signal for owner 55de99c046b0: 55de99cac1e0 -> 55de99c046b0 (owner: XDG Window Late)
[LOG] Registered signal for owner 55de99c046b0: 55de99bc54e0 -> 55de99c04850 (owner: XDG Window Late)
[LOG] Registered signal for owner 55de99c046b0: 55de99bd3a70 -> 55de99c04988 (owner: XDG Window Late)
[LOG] Registered signal for owner 55de99c046b0: 55de99bc5470 -> 55de99c04ac0 (owner: XDG Window Late)
[LOG] Registered signal for owner 55de99c046b0: 55de99bc5490 -> 55de99c04a58 (owner: XDG Window Late)
[LOG] Registered signal for owner 55de99c046b0: 55de99bc54a0 -> 55de99c049f0 (owner: XDG Window Late)
[LOG] Registered signal for owner 55de99c046b0: 55de99bc54b0 -> 55de99c04b28 (owner: XDG Window Late)
[LOG] Registered signal for owner 55de99c046b0: 55de99bc5480 -> 55de99c04920 (owner: XDG Window Late)
[LOG] Registered signal for owner 55de990a0450: 55de99cac210 -> 55de990a04c8 (owner: SurfaceTreeNode)
[LOG] Registered signal for owner 55de990a0450: 55de99cac1e0 -> 55de990a0530 (owner: SurfaceTreeNode)
[LOG] Registered signal for owner 55de990a0450: 55de99cac220 -> 55de990a0598 (owner: SurfaceTreeNode)
[LOG] Creating a surfaceTree Root! (pWindow: 55de99c046b0)
[LOG] Map request dispatched, monitor Virtual-1, xywh: 6.000000 48.000000 1908.000000 1026.000000
[LOG]  [hookSystem] New hook event registered: openWindow
[LOG]  [hookSystem] New hook event registered: mouseMove
[LOG]  [hookSystem] New hook event registered: mouseButton
[LOG]  [hookSystem] New hook event registered: windowTitle
[LOG] Searching for matching rules for org.kde.konsole (title: - : sudo systemctl — Konsole)
[LOG] Window 55de99c046b0 set title to - : sudo systemctl — Konsole
[LOG] Searching for matching rules for org.kde.konsole (title: ~ : zsh — Konsole)
[LOG] Window 55de99c046b0 set title to ~ : zsh — Konsole
[LOG] New layer popup created from XDG window 55de99c046b0 -> ~ : zsh — Konsole
[LOG] Registered signal for owner 55de99af02a0: 55de99c96900 -> 55de99af0330 (owner: HyprPopup)
[LOG] Registered signal for owner 55de99af02a0: 55de99c96710 -> 55de99af0398 (owner: HyprPopup)
[LOG] Registered signal for owner 55de99af02a0: 55de99c96720 -> 55de99af0400 (owner: HyprPopup)
[LOG] Registered signal for owner 55de99af02a0: 55de99c96920 -> 55de99af02c8 (owner: HyprPopup)
[LOG] Registered signal for owner 55de99af02a0: 55de99c96700 -> 55de99af0468 (owner: HyprPopup)
[LOG] Popup: Unconstrained from lx ly: 0.000000 0.000000, pHyprPopup lx ly: 6.000000 48.000000
[LOG] New XDG Popup mapped at 6 48
[LOG] Registered signal for owner 55de99b53d20: 55de99c96740 -> 55de99b53d28 (owner: CWLSurface)
[LOG] CWLSurface 55de99b53d20 called init()
[LOG] Registered signal for owner 55de99ca6070: 55de99c96730 -> 55de99ca60e8 (owner: SurfaceTreeNode)
[LOG] Registered signal for owner 55de99ca6070: 55de99c96700 -> 55de99ca6150 (owner: SurfaceTreeNode)
[LOG] Registered signal for owner 55de99ca6070: 55de99c96740 -> 55de99ca61b8 (owner: SurfaceTreeNode)
[LOG] Creating a surfaceTree Root! (pWindow: 55de99c046b0)
[LOG] XDG Popup got assigned a surfaceTreeNode 55de99ca6070
[LOG] XDG Popup unmapped
[LOG] Callback 55de99ca6178 -> 55de99ca6170, SurfaceTreeNode removed.
[LOG] Callback 55de99ca61e0 -> 55de99ca61d8, SurfaceTreeNode removed.
[LOG] Callback 55de99ca6110 -> 55de99ca6108, SurfaceTreeNode removed.
[LOG] SurfaceTree Node removed
[LOG] Callback 55de99b53d50 -> 55de99b53d48, CWLSurface removed.
[LOG] CWLSurface 55de99b53d20 called destroy()
[LOG] Destroyed popup XDG 55de99af02a0
[LOG] Callback 55de99af0490 -> 55de99af0488, HyprPopup removed.
[LOG] Callback 55de99af0428 -> 55de99af0420, HyprPopup removed.
[LOG] Callback 55de99af03c0 -> 55de99af03b8, HyprPopup removed.
[LOG] Callback 55de99af0358 -> 55de99af0350, HyprPopup removed.
[LOG] Callback 55de99af02f0 -> 55de99af02e8, HyprPopup removed.
[LOG] Searching for matching rules for org.kde.konsole (title: ~ : nano — Konsole)
[LOG] Window 55de99c046b0 set title to ~ : nano — Konsole
[LOG] Searching for matching rules for org.kde.konsole (title: ~ : zsh — Konsole)
[LOG] Window 55de99c046b0 set title to ~ : zsh — Konsole

Is there a further setting to set for making hyprpaper working?

Memory leak?

This is my script for slide show:

#!/bin/sh
#
while (true); do
	sleep 4
	LOOP_COUNT=1

	ls -1 ~/Obrazy/Wallpapers | grep -v webp | grep -v mp4 | shuf | while read each; do
		if [ $(expr $LOOP_COUNT % 2) != "0" ]; then
			hyprctl hyprpaper preload "~/Obrazy/Wallpapers/$each"
			sleep 1
			hyprctl hyprpaper wallpaper "$2,~/Obrazy/Wallpapers/$each"
			sleep 1
			hyprctl hyprpaper unload "~/Obrazy/Wallpapers/$each"
		else
			hyprctl hyprpaper preload "~/Obrazy/Wallpapers/$each"
			sleep 1
			hyprctl hyprpaper wallpaper "$3,~/Obrazy/Wallpapers/$each"
			sleep $1
			hyprctl hyprpaper unload "~/Obrazy/Wallpapers/$each"
		fi

		LOOP_COUNT=$((LOOP_COUNT + 1))
	done
done

But "unload all" seems not to be working. hyprpaper grows in RAM with every loop iteration. Typing manually command for unload throws "ok", but doesn't work either.

libjpeg dependency on Fedora 37

Installing Hyprland on Fedora 37. After making it down to the Wallpaper guide within the Hyprland wiki and trying to manually install hyprpaper, I noticed toward the end of the install I'd seen an error regarding libjpeg, however to my knowledge Fedora (by default) comes with a variant called libjpeg-turbo. Is there anything that could be done to include/account for that to fulfill the libjpeg dependency?:

➜ make all
make clear
make[1]: Entering directory '/home/matt/repos/hyprpaper'
rm -rf build
rm -f *.o *-protocol.h *-protocol.c
make[1]: Leaving directory '/home/matt/repos/hyprpaper'
make protocols
make[1]: Entering directory '/home/matt/repos/hyprpaper'
/usr/bin/wayland-scanner private-code
protocols/wlr-layer-shell-unstable-v1.xml wlr-layer-shell-unstable-v1-protocol.c
/usr/bin/wayland-scanner client-header
protocols/wlr-layer-shell-unstable-v1.xml wlr-layer-shell-unstable-v1-protocol.h
cc -g -Wall -Wextra -Werror -Wno-unused-parameter -Wno-sign-compare -Wno-unused-function -Wno-unused-variable -Wno-unused-result -Wdeclaration-after-statement -I. -DWLR_USE_UNSTABLE -std=c99 -I/usr/local/include -I/usr/include/libdrm -I/usr/include/valgrind -I/usr/include/pixman-1 -c -o wlr-layer-shell-unstable-v1-protocol.o wlr-layer-shell-unstable-v1-protocol.c
/usr/bin/wayland-scanner private-code
//usr/share/wayland-protocols/stable/xdg-shell/xdg-shell.xml xdg-shell-protocol.c
/usr/bin/wayland-scanner client-header
//usr/share/wayland-protocols/stable/xdg-shell/xdg-shell.xml xdg-shell-protocol.h
cc -g -Wall -Wextra -Werror -Wno-unused-parameter -Wno-sign-compare -Wno-unused-function -Wno-unused-variable -Wno-unused-result -Wdeclaration-after-statement -I. -DWLR_USE_UNSTABLE -std=c99 -I/usr/local/include -I/usr/include/libdrm -I/usr/include/valgrind -I/usr/include/pixman-1 -c -o xdg-shell-protocol.o xdg-shell-protocol.c
make[1]: Leaving directory '/home/matt/repos/hyprpaper'
make release
make[1]: Entering directory '/home/matt/repos/hyprpaper'
mkdir -p build && cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -H./ -B./build -G Ninja
Not searching for unused variables given on the command line.
-- The C compiler identification is GNU 12.2.1
-- The CXX compiler identification is GNU 12.2.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/lib64/ccache/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/lib64/ccache/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring hyprpaper!
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Found PkgConfig: /usr/bin/pkg-config (found version "1.8.0")
-- Checking for modules 'wayland-client;wayland-protocols;cairo;pango;pangocairo;libjpeg'
-- Package 'libjpeg', required by 'virtual:world', not found
CMake Error at /usr/share/cmake/Modules/FindPkgConfig.cmake:607 (message):
A required package was not found
Call Stack (most recent call first):
/usr/share/cmake/Modules/FindPkgConfig.cmake:829 (_pkg_check_modules_internal)
CMakeLists.txt:44 (pkg_check_modules)

-- Configuring incomplete, errors occurred!
See also "/home/matt/repos/hyprpaper/build/CMakeFiles/CMakeOutput.log".
make[1]: *** [Makefile:40: release] Error 1
make[1]: Leaving directory '/home/matt/repos/hyprpaper'
make: *** [Makefile:50: all] Error 2

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.