Open ghost opened 1 year ago
Have similar issue where whenever I plug a monitor in or out hyprpaper stops working. fix is doing Hyprctl reload with an exec of hyprpaper in my conf
should be fixed in 654647f7b3cdeaf2f22df0b6744b3d63fb12bc0e, lmk
I'm still experiencing this problem, same output in logs.
hyprland 0.24.1-1, hyprpaper 0.2.0-1, xdg-desktop-portal-hyprland 0.2.1-1 from new Arch community repository.
Same here, built from commit b4fdc0be52d7c3e48e932698bafc3f69dbd45b3b (CI: update nix install action). The hyprpaper detected the monitor changed event but didn't apply the configuration to the new monitor.
Same issue started occurring on release 0.3.0: Hyprpaper doesn't apply the wallpaper when the monitor is plugged out then in.
Downgrading to 0.2.0 seems to fix it.
uhh wat, can you git bisect
it?
uhh wat, can you
git bisect
it?
Sorry, but it might take time for me to bisect. I've haven't learned how to yet; I will maybe do it this week.
I did git bisect
and it seems the commit 66b3ba8 introduced the issue.
Im getting the same issue. Once the screen it turned off the wallpaper is no longer displayed. I have to kill hyprpaper and start it again to regain a wallpaper. (built from commit - a1d9ab7584485fe0b4a992abf19486a72179d4b2)
I did
git bisect
and it seems the commit 66b3ba8 introduced the issue.
I can also confirm that the bug appears in 66b3ba8, but not in its parent commit 3bfaac0.
Bug still happens with patch :/
I tried a few times and found that the new description
field is the problem. New monitor detection works on 3bfaac0 but stops working after adding this property only.
This might relate to the structure SMonitor
's size. Notice that:
struct SMonitor {
std::string name = "";
int test;
int test1;
wl_output* output = nullptr;
works, it needs 248 bytes. and:
struct SMonitor {
std::string name = "";
int test;
int test1;
int test2;
wl_output* output = nullptr;
doesn't, it needs 256 bytes.
struct SMonitor {
std::string name = "";
std::string description = "";
wl_output* output = nullptr;
needs 272 bytes.
I hope this helps.
The event listeners are correctly registered for all monitors, but the event handler: https://github.com/hyprwm/hyprpaper/blob/66b3ba8d9faa6b6a8894ecc03ac61667d344b8bc/src/events/Events.cpp#L81 is not called for my external monitor.
c2fb8a2 fixes the issue for me; please give it a try.
@vaxerski We may also want to consider switching m_mMonitorActiveWallpaperTargets
to a string-based map (with keys being monitor names, similar to other maps in CHyperpaper
) to avoid the size-based side effects described here. After switching, the issue always appears without the fix from PR #79 applied (regardless of the size of SMonitor
) and never appears after the fix.
For me, this doesn't fix the issue, but hyprpaper doesn't even output [LOG] Destroying output DP-1
when I run hyprctl keyword monitor "eDP-1, disable"; hyprctl keyword monitor "eDP-1, preferred, 0x1080, 1"
.
@lfos if anything, wl_output*
and not string.
For me hyprpaper
crashes when I turn a monitor back on after turning it off.
[LOG] Destroying output DP-2
[LOG] configure for DP-1
[LOG] Image data for DP-1: /home/sam/.dotfiles/wallpaper.jpg at [-0.00, 0.00], scale: 1.00 (original image size: [2560, 1440])
[LOG] Submitting viewport dest size 2560x1440 for c8bec0c0
[LOG] handlePreferredScale: 1.00 for 5556c8bec0c0
[LOG] configure for DP-2
[LOG] handlePreferredScale: 1.00 for 5556c8be5240
[LOG] handlePreferredScale: 1.00 for 5556c8be5240
[LOG] Accepted incoming socket connection request on fd 5
[LOG] Image data for DP-2: /home/sam/.dotfiles/wallpaper.jpg at [-0.00, 0.00], scale: 1.00 (original image size: [2560, 1440])
[LOG] Submitting viewport dest size 2560x1440 for c8be5240
[LOG] Received a request: wallpaper DP-2,~/Pictures/wallpaper.jpg
[LOG] configure for DP-2
[LOG] handlePreferredScale: 1.00 for 5556c8be5240
[LOG] handlePreferredScale: 1.00 for 5556c8be5240
[LOG] Image data for DP-2: /home/sam/.dotfiles/wallpaper.jpg at [-0.00, 0.00], scale: 1.00 (original image size: [2560, 1440])
[LOG] Submitting viewport dest size 2560x1440 for 5c000d30
[LOG] configure for DP-2
[LOG] handlePreferredScale: 1.00 for 7f115c000d30
[LOG] handlePreferredScale: 1.00 for 7f115c000d30
[LOG] configure for DP-2
[LOG] Image data for DP-2: /home/sam/.dotfiles/wallpaper.jpg at [-0.00, 0.00], scale: 1.00 (original image size: [2560, 1440])
[LOG] Submitting viewport dest size 2560x1440 for 5c000d30
zwlr_layer_surface_v1@30: error 0: wrong configure serial: 2415
What happens:
When I turn off my monitor, this disconnects DP-1. Hyprpaper reacts accordingly:
[LOG] Destroying output DP-1
Steps to reproduce:
hyprpaper
killall hyprpaper && hyprpaper
fixes this, but it needs to be run every time I turn the monitor back on. I've tried this with bothwallpaper = ,/path/to/img
andwallpaper = 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)