hhannine / superpaper

A cross-platform multi monitor wallpaper manager.
MIT License
1.11k stars 46 forks source link

Tray icon does not exist on GNOME Wayland #126

Open Commenter25 opened 1 year ago

Commenter25 commented 1 year ago

When using the default Wayland mode in GNOME, the tray icon will not work, even with AppIndicator and KStatusNotifierItem Support installed. However, if running in Xorg mode, or if Superpaper is launched with the prefix GDK_BACKEND=x11, the tray icon appears as expected.

Tested on Fedora 36 + GNOME 42, with manually installed commit 0c502d3.

hhannine commented 1 year ago

Hmmh probably some problem of Wxpython and Wayland. Which installation type were you using? Thanks for the workaround. I don't know if I can do anything for this other than hope that an update for wxpython fixes this.

KarkanAlzwayed commented 7 months ago

I almost opened an issue about the same issue for KDE, but I think it is a similar issue? If not, please let me know, so I can start a new one. The icon doesn't show in the systray on wayland.

jonathanjsimon commented 6 months ago

@KarkanAlzwayed I am also on Plasma Wayland and the icon does not show for me either. Setting GDK_BACKEND=x11 does resolve the issue.

❯ superpaper
/usr/lib/python3.11/site-packages
/home/jsimon/.config/superpaper
/home/jsimon/.config/superpaper/profiles

(superpaper:75735): Gtk-CRITICAL **: 08:27:13.935: gtk_widget_get_scale_factor: assertion 'GTK_IS_WIDGET (widget)' failed
Gtk-Message: 08:27:14.144: Failed to load module "appmenu-gtk-module"
^C

vs...

❯ GDK_BACKEND=x11 superpaper
/usr/lib/python3.11/site-packages
/home/jsimon/.config/superpaper
/home/jsimon/.config/superpaper/profiles
Gtk-Message: 08:27:18.030: Failed to load module "appmenu-gtk-module"
KarkanAlzwayed commented 6 months ago

@KarkanAlzwayed I am also on Plasma Wayland and the icon does not show for me either. Setting GDK_BACKEND=x11 does resolve the issue.

❯ superpaper
/usr/lib/python3.11/site-packages
/home/jsimon/.config/superpaper
/home/jsimon/.config/superpaper/profiles

(superpaper:75735): Gtk-CRITICAL **: 08:27:13.935: gtk_widget_get_scale_factor: assertion 'GTK_IS_WIDGET (widget)' failed
Gtk-Message: 08:27:14.144: Failed to load module "appmenu-gtk-module"
^C

vs...

❯ GDK_BACKEND=x11 superpaper
/usr/lib/python3.11/site-packages
/home/jsimon/.config/superpaper
/home/jsimon/.config/superpaper/profiles
Gtk-Message: 08:27:18.030: Failed to load module "appmenu-gtk-module"

Oh nice. Where do you put that line? In /etc/environment?

jonathanjsimon commented 6 months ago

@KarkanAlzwayed I am also on Plasma Wayland and the icon does not show for me either. Setting GDK_BACKEND=x11 does resolve the issue.

❯ superpaper
/usr/lib/python3.11/site-packages
/home/jsimon/.config/superpaper
/home/jsimon/.config/superpaper/profiles

(superpaper:75735): Gtk-CRITICAL **: 08:27:13.935: gtk_widget_get_scale_factor: assertion 'GTK_IS_WIDGET (widget)' failed
Gtk-Message: 08:27:14.144: Failed to load module "appmenu-gtk-module"
^C

vs...

❯ GDK_BACKEND=x11 superpaper
/usr/lib/python3.11/site-packages
/home/jsimon/.config/superpaper
/home/jsimon/.config/superpaper/profiles
Gtk-Message: 08:27:18.030: Failed to load module "appmenu-gtk-module"

Oh nice. Where do you put that line? In /etc/environment?

Just put GDK_BACKEND=x11 before superpaper in a shell when you launch it. If you modify the .desktop file, just stick that same value at the front of the Exec= entry before /usr/bin/python3 -m superpaper. Or wait for it to be fixed upstream.

KarkanAlzwayed commented 6 months ago

@KarkanAlzwayed I am also on Plasma Wayland and the icon does not show for me either. Setting GDK_BACKEND=x11 does resolve the issue.

❯ superpaper
/usr/lib/python3.11/site-packages
/home/jsimon/.config/superpaper
/home/jsimon/.config/superpaper/profiles

(superpaper:75735): Gtk-CRITICAL **: 08:27:13.935: gtk_widget_get_scale_factor: assertion 'GTK_IS_WIDGET (widget)' failed
Gtk-Message: 08:27:14.144: Failed to load module "appmenu-gtk-module"
^C

vs...

❯ GDK_BACKEND=x11 superpaper
/usr/lib/python3.11/site-packages
/home/jsimon/.config/superpaper
/home/jsimon/.config/superpaper/profiles
Gtk-Message: 08:27:18.030: Failed to load module "appmenu-gtk-module"

Oh nice. Where do you put that line? In /etc/environment?

Just put GDK_BACKEND=x11 before superpaper in a shell when you launch it. If you modify the .desktop file, just stick that same value at the front of the Exec= entry before /usr/bin/python3 -m superpaper. Or wait for it to be fixed upstream.

I put that line in several locations in that exec line, and it is still nothing. Could you please copy how you have it in your .desktop and paste it here? Thank you

Also, launching it through the terminal like you suggested means I have to keep the terminal open, otherwise it closes the icon whenever I close the terminal. Tried adding -d to the line for "detach" and it still closes the app when I closed the terminal

jonathanjsimon commented 6 months ago

@KarkanAlzwayed I am also on Plasma Wayland and the icon does not show for me either. Setting GDK_BACKEND=x11 does resolve the issue.

❯ superpaper
/usr/lib/python3.11/site-packages
/home/jsimon/.config/superpaper
/home/jsimon/.config/superpaper/profiles

(superpaper:75735): Gtk-CRITICAL **: 08:27:13.935: gtk_widget_get_scale_factor: assertion 'GTK_IS_WIDGET (widget)' failed
Gtk-Message: 08:27:14.144: Failed to load module "appmenu-gtk-module"
^C

vs...

❯ GDK_BACKEND=x11 superpaper
/usr/lib/python3.11/site-packages
/home/jsimon/.config/superpaper
/home/jsimon/.config/superpaper/profiles
Gtk-Message: 08:27:18.030: Failed to load module "appmenu-gtk-module"

Oh nice. Where do you put that line? In /etc/environment?

Just put GDK_BACKEND=x11 before superpaper in a shell when you launch it. If you modify the .desktop file, just stick that same value at the front of the Exec= entry before /usr/bin/python3 -m superpaper. Or wait for it to be fixed upstream.

I put that line in several locations in that exec line, and it is still nothing. Could you please copy how you have it in your .desktop and paste it here? Thank you

Also, launching it through the terminal like you suggested means I have to keep the terminal open, otherwise it closes the icon whenever I close the terminal. Tried adding -d to the line for "detach" and it still closes the app when I closed the terminal

My bad, use env GDK_BACKEND=x11 as a prefix rather than just GDK_BACKEND=x11.

❯ cat /usr/share/applications/superpaper.desktop
[Desktop Entry]
Type=Application
Version=1.0
Name=Superpaper
GenericName=Multi-monitor wallpaper manager
Exec=env GDK_BACKEND=x11 /usr/bin/python3 -m superpaper
Icon=superpaper
Terminal=false
Categories=Utility;
X-KDE-autostart-after=panel

If you have superpaper configured to start at login via Plasma's autostart settings pane, you'll also want to modify /home/${USER}/.config/autostart/superpaper.desktop with the same env GDK_BACKEND=x11 prefix in the Exec entry:

[Desktop Entry]
Categories=Utility;
Exec=env GDK_BACKEND=x11 /usr/bin/python3 -m superpaper
GenericName=Multi-monitor wallpaper manager
Icon=superpaper
Name=Superpaper
Terminal=false
Type=Application
Version=1.0
X-KDE-autostart-after=panel

I'm sharing both because they are slightly different.

KarkanAlzwayed commented 6 months ago

@KarkanAlzwayed I am also on Plasma Wayland and the icon does not show for me either. Setting GDK_BACKEND=x11 does resolve the issue.

❯ superpaper
/usr/lib/python3.11/site-packages
/home/jsimon/.config/superpaper
/home/jsimon/.config/superpaper/profiles

(superpaper:75735): Gtk-CRITICAL **: 08:27:13.935: gtk_widget_get_scale_factor: assertion 'GTK_IS_WIDGET (widget)' failed
Gtk-Message: 08:27:14.144: Failed to load module "appmenu-gtk-module"
^C

vs...

❯ GDK_BACKEND=x11 superpaper
/usr/lib/python3.11/site-packages
/home/jsimon/.config/superpaper
/home/jsimon/.config/superpaper/profiles
Gtk-Message: 08:27:18.030: Failed to load module "appmenu-gtk-module"

Oh nice. Where do you put that line? In /etc/environment?

Just put GDK_BACKEND=x11 before superpaper in a shell when you launch it. If you modify the .desktop file, just stick that same value at the front of the Exec= entry before /usr/bin/python3 -m superpaper. Or wait for it to be fixed upstream.

I put that line in several locations in that exec line, and it is still nothing. Could you please copy how you have it in your .desktop and paste it here? Thank you Also, launching it through the terminal like you suggested means I have to keep the terminal open, otherwise it closes the icon whenever I close the terminal. Tried adding -d to the line for "detach" and it still closes the app when I closed the terminal

My bad, use env GDK_BACKEND=x11 as a prefix rather than just GDK_BACKEND=x11.

❯ cat /usr/share/applications/superpaper.desktop
[Desktop Entry]
Type=Application
Version=1.0
Name=Superpaper
GenericName=Multi-monitor wallpaper manager
Exec=env GDK_BACKEND=x11 /usr/bin/python3 -m superpaper
Icon=superpaper
Terminal=false
Categories=Utility;
X-KDE-autostart-after=panel

If you have superpaper configured to start at login via Plasma's autostart settings pane, you'll also want to modify /home/${USER}/.config/autostart/superpaper.desktop with the same env GDK_BACKEND=x11 prefix in the Exec entry:

[Desktop Entry]
Categories=Utility;
Exec=env GDK_BACKEND=x11 /usr/bin/python3 -m superpaper
GenericName=Multi-monitor wallpaper manager
Icon=superpaper
Name=Superpaper
Terminal=false
Type=Application
Version=1.0
X-KDE-autostart-after=panel

I'm sharing both because they are slightly different.

I copied both from yours directly and it doesn't fully work. Clicking on the app doesn't launch it or even put the icon in the panel. If I reboot the machine, the app is already in the panel and functions no problem. The if I right click the icon and exit it, then try to launch it again, nope. It will never launch until I reboot again. So, I think the second one is working, but the first one isn't for some reason. See this is why I stay away from wayland, it is these little things that frustrate me to hell and back.

jonathanjsimon commented 6 months ago

Yep, I'm only checking out Wayland occasionally and early because Plasma 6 won't have X11 as an option (or so I've heard around the internet) and I want to iron out these types of issues while I still have X11 as a fallback.

Not sure what is preventing your global .desktop file from operating....

KarkanAlzwayed commented 6 months ago

Yep, I'm only checking out Wayland occasionally and early because Plasma 6 won't have X11 as an option (or so I've heard around the internet) and I want to iron out these types of issues while I still have X11 as a fallback.

Not sure what is preventing your global .desktop file from operating....

Only Fedora is dropping x11, and you can still re-install it if you wanted to. I use endeavour OS and we are good over here. Off I go back to X11. Not gonna fuss over this anymore. X11 is working just fine for me. I appreciate your help

Cris70 commented 2 months ago

Any news on this bug?