-
Notifications
You must be signed in to change notification settings - Fork 356
dunstctl reload
from #1350 stops dunst from working on native wayland
#1434
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Comments
dunstctl reload
from #1350 stops dunst from working on native waylandddunstctl reload
from #1350 stops dunst from working on native wayland
Probably something is wrong in the wayland deinit/init process |
so no window shows up if you reload with open notification? but is the notification itself closed? maybe wayland doesn't like that we close the connection with the compositor when there are pending windows? |
Yeah, that's correct. If a dunst window / notification is open at the time of reloading, it then fails to create new windows. Maybe we need to make sure all the notifications are closed first before reloading? Force all notifications to close before reload? |
I'm not an expert in wayland but I'll look into it. Hopefully its not some obscure protocol thing |
Improve the wayland deinit and init process to fix problems after running deinit followed by init in case of a reload. Furthermore destroy otherwise leaked objects and clear associated pointers to prevent potential use after free bugs. This change fixes dunst from breaking sometimes, when a reload is triggered while a notification is displayed. This issue happed because of either ctx.dirty not being cleared, which causes an set_dirty to do an early exit without scheduling a frame to the surface. Or because the frame_callback was not being cleared, which prevented further surface commits, as the callback would never be triggered after the surface was destroyed by the deinit process. Fixes dunst-project#1434
Can confirm this fixed the issue for me and services.dunst.package = pkgs.dunst.overrideAttrs {
patches = [
(pkgs.fetchpatch {
# patch to fix `dunstctl reload` on native wayland dunst
name = "1458.patch";
url = "https://github.com/dunst-project/dunst/pull/1458.patch";
sha256 = "sha256-uLY0atUjHRy7hCkAoEkWRk5kl8VvO6nygwuK5aqaG5c=";
})
];
}; Thank you for your work :) P.S. also working with drop-in configs (i use it for theming and it reloads them perfectly too) |
thanks fxzzi for the feedback, I will merge the pr shortly |
Hey,
As I mentioned in #1350 , the
dunstctl reload
mechanism does not seem to work correctly when running dunst through wayland native. It seems to reload fine if a notification is not visible on screen, but if a reload occurs whilst a notification is visible, no new notifications will show up for some reason. They still show in the verbose logs.It does however work fine on X11 and XWayland.
As mentioned in the comments there, I tried the latest master with no change.
The logs after running
dunst -verbosity debug
, and triggering the bug are as follows: https://paste.rs/yrEGc.txtIf any more info is required please do not hesitate to let me know. I'll be happy to provide anything else.
The text was updated successfully, but these errors were encountered: