Closed alba4k closed 5 months ago
You posted a non fatal warning. Post a proper blueman-applet debug log as described https://github.com/blueman-project/blueman/wiki/Troubleshooting#debugging-blueman
Well idk what changed but it's starting now
Still no icon in the tray tho
blueman-tray --loglevel debug
blueman-tray 18.50.52 DEBUG Tray:57 _on_name_vanished: Applet shutdown or not available at startup
Sound a lot like you have a broken dbus environment. Make sure you run dbus-update-activation-environment
in your session. Check the hyprland docs how and what arguments you need to pass to it.
To be clear, blueman does work and display notifications
Also, running that did not help
The only problem is that the tray icon fails to display (at least, on hyprland)
So the blueman-applet process is running and working but running blueman-tray gives Tray:57 _on_name_vanished: Applet shutdown or not available at startup
and dies?
If I try to run blueman-tray
while blueman-applet --loglevel debug
is running, the latter will print (blueman-tray:1543409): Gtk-CRITICAL **: 22:46:47.057: gtk_widget_get_scale_factor: assertion 'GTK_IS_WIDGET (widget)' failed
while the former outputs nothing and returns 0
For some reason blueman-tray
seems to be unable to find the applet on the D-Bus session bus. Do you see org.blueman.Applet
e.g. in dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.ListNames
?
Yes, I see both org.blueman.Applet
and org.blueman.Tray
(after starting only blueman-applet
, manually at least). I don't see any of those after killing that process
To be sure, blueman-applet is the core of blueman and it's supposed to always be running. The applet is what (re)starts blueman-tray (the tray icon). If you are killing it all the time stop that.
Installed hyprlan and waybar. Then setup some basic environment variables for QT, Gtk, XDG_* and a couple others. Added exec-once for waybar and below that exec-once blueman-applet. It worked flawlessly.
Sound to me like you either are completely missing a place for tray icons, what eg waybar provides or your setup is broken. It's not an issue in blueman.
Yes, I see both
org.blueman.Applet
andorg.blueman.Tray
blueman-tray is already running then.
blueman-tray is already running then.
Only if I start the applet. nothing is shown if I dont
Yes I have a system tray set up. Yes it works for everything else. Yes I see the tray icon on polybar on i3
I have a system tray set up
... which is ... waybar? Does it give any warnings or related debug output when you start blueman-applet and blueman-tray?
Yes, it is waybar.
This is everything I get from `blueman-applet
Additionally, this is what I get every time I try to manually start blueman-tray
, in the applet's output
(blueman-tray:10283): Gtk-CRITICAL **: 22:31:42.539: gtk_widget_get_scale_factor: assertion 'GTK_IS_WIDGET (widget)' failed
I'm getting the exact same issue, after killing and relaunching waybar, due to this my other systray icons are also getting hidden
(blueman-tray:62204): Gtk-CRITICAL **: 10:54:48.544: gtk_widget_get_scale_factor: assertion 'GTK_IS_WIDGET (widget)' failed
Oh, I did not get that the GTK assertion message comes from blueman-tray
, not blueman-applet
. That makes a lot more sense, then. :sweat_smile:
Just for better understanding of the linked issue, @Enigma1309: Did this actually start with that hyperdots update? You first stated that all icons are affected, not just blueman-tray, and later stated that it would be an issue with blueman-tray. So which one is correct or are you saying that blueman-tray breaks the other icons as well?
blueman-tray breaks the other icons as well?
yup that's what i think so, since you can see that when relaunching waybar the only thing that's consuming a lot of processing power is blueman tray
Just did some testing and found this, i removed blueman and relaunching the waybar shows the network-manager icon, it's probably a blueman issue
just let me reinstall and reboot now to see if the problem persists
Well, waybar definitely lacks separation there then, but anyway...
I think I get it. You're running into the GTK indicator implementation and getting exactly what's expected when the environment is not properly set up for the graphical session.
On X, with the StatusNotifierItem plugin disabled (I guess it does not work with waybar, so that blueman-tray falls back to the GTK status icon anyway), blueman-applet already running and no blueman-tray running (just killall blueman-tray
when blueman-applet started one), DISPLAY= blueman-tray --loglevel debug
gives me this:
blueman-tray 12.17.32 DEBUG Tray:36 _on_name_appeared: Applet started on name org.blueman.Applet, showing indicator
(blueman-tray:257434): Gtk-CRITICAL **: 12:17:32.526: gtk_widget_get_scale_factor: assertion 'GTK_IS_WIDGET (widget)' failed
blueman-tray 12.17.32 INFO Tray:46 _on_name_appeared: Using indicator "GtkStatusIcon"
(blueman-tray:257434): Gtk-CRITICAL **: 12:17:32.536: _gtk_style_provider_private_get_settings: assertion 'GTK_IS_STYLE_PROVIDER_PRIVATE (provider)' failed
(blueman-tray:257434): Gtk-CRITICAL **: 12:17:32.536: _gtk_style_provider_private_get_settings: assertion 'GTK_IS_STYLE_PROVIDER_PRIVATE (provider)' failed
(blueman-tray:257434): Gtk-CRITICAL **: 12:17:32.536: _gtk_style_provider_private_get_settings: assertion 'GTK_IS_STYLE_PROVIDER_PRIVATE (provider)' failed
and SIGSEGV
s.
So... whatever starts blueman-applet for you, which in terms starts blueman-tray, does not provide a proper environment for GTK to work. On X it means no proper DISPLAY
, but I cannot recall if it's DISPLAY
as well on Wayland.
i think display configuration is good from my side,
anyways...
I've reinstalled blueman
after clearing pacman cache, rebooted the machine( thrice just to be sure ) and now i think it works
idk what's the cause of this issue but now it has started working.
thanks for putting your time in this
Thank You <3
I've reinstalled
blueman
after clearing pacman cache
That's definitely not something that should fix such an issue. Did you happen to install a different version / revision?
nope just did yay -S blueman
here are logs of the previous session if you're interested
So... whatever starts blueman-applet for you, which in terms starts blueman-tray, does not provide a proper environment for GTK to work. On X it means no proper
DISPLAY
, but I cannot recall if it'sDISPLAY
as well on Wayland.
If blueman is using the Gtk.StatusIcon instead of the StatusNotifier then it's expected it breaks as it relies on X11.
On properly configured environments we can check for XDG_SESSION_TYPE
environment variable. But as we regularly see badly configured environments its probably safer to import GdkX11
and if it fails we know it's definitely not X11.
Perhaps we should promote the StatusNotifier plugin as the default and disable the deprecated Gtk.StatusIcon.
If blueman is using the Gtk.StatusIcon instead of the StatusNotifier then it's expected it breaks as it relies on X11.
Oh, true, GTK's Wayland backend does not support it. If that's the only problem, I would expect it to fail silently, though.
Perhaps we should promote the StatusNotifier plugin as the default and disable the deprecated Gtk.StatusIcon.
I'll have to double check, but it should be the default already, no?
I do have an idea what could go wrong on restarts even if of the StatusNotifierItem is enabled and used. Will check.
StatusNotifierItem
is the default as the applet plugin is enabled by default (its __autoload__
defaults to True
) and its indicator implementation takes precedence over the fallback.
Please show us dconf read /org/blueman/general/plugin-list
and - with a running blueman-applet
- killall blueman-tray; blueman-tray --loglevel debug
.
currently only running blueman applet
blueman-tray: no process found
blueman-tray 17.08.59 DEBUG Tray:35 _on_name_appeared: Applet started on name org.blueman.Applet, showing indicator
blueman-tray 17.08.59 INFO Tray:45 _on_name_appeared: Using indicator "StatusNotifierItem"
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
that makes no sense
closing bugs just because they're not recieving work?
It makes sense if we cannot make any progress. In this case we're still waiting on data on our assumption that people might be running into the GTK implementation, see https://github.com/blueman-project/blueman/issues/2282#issuecomment-1991059848
disabling and re-enabling the plugin fixed that
disabling and re-enabling the plugin fixed that
How to disable / enable the plugin? thanks.
I've had the same issue in the past week; can confirm that disabling and re-enabling the StatusIcon
and StatusNotifierItem
fixed the problem for me.
@johnwmail you can find the plugins in the blueman-manager
app at View > Plugins
As a workaround I am running this script on startup:
#!/bin/bash
# Initial attempt to start the blueman-applet
blueman-applet &
# Sleep for 5 seconds to make sure attempt executed
sleep 5
# Do the first check and kill the first instance that fails to draw icon
if pgrep -x "blueman-applet" >/dev/null; then
pkill -x "blueman-applet"
sleep 2
fi
# tragain
blueman-applet &
# Check if ok and if ok exit before the loop
if pgrep -x "blueman-applet" >/dev/null; then
exit 0
fi
# Init the counter to not loop indefinitely but do max of 10 attrempts
counter=0
# Loop to try and start the blueman-applet
while [ $counter -lt 10 ]; do
# Try to start blueman-applet
blueman-applet &
# Sleep for 2 seconds before the next check...
sleep 2
# Check if success
if pgrep -x "blueman-applet" >/dev/null; then
exit 0
# ... and prompt if attempt failed.
else
notify-send -u normal "Attempt $((counter + 1)) to start bluetooth tray applet failed."
fi
((counter++))
done
# Final check and if all fails then prompt
if ! pgrep -x "blueman-applet" >/dev/null; then
notify-send -u critical "Couldn't start bluetooth tray applet!"
fi
It basically kills the first instance of the applet that for whatever reason fails to draw tray icon on startup every time and attempts a start the package again. This action is what seemed to work every time for me when done manually, so I scripted it and it seems to force it to work...
Edit -> btw. This script for me successfully starts working applet for me before entering the loop, so the loop is there only for a good measure.
If anyone's interested in getting this fixed, I'd still be interested in dconf read /org/blueman/general/plugin-list
from an affected setup. The --loglevel debug
output of an automatically started instance that shows the misbehavior would also be helpful (possibly the standard error output could help as well already).
it works, tho?
dconf read /org/blueman/general/plugin-list
has output ['StatusIcon', 'ShowConnected', 'StatusNotifierItem']
Not sure how to embed output for blueman-applet --loglevel debug
here, I'm new to this.
@cschramm
blueman: 2.3.5 BlueZ: 5.72 Distribution: Arch Linux Desktop environment: Hyprland
Edit: this issue is about the tray icon, not the applet