You know what? I did look into this a couple years ago but kind of just forgot about it.
TL;DR: the issue is related to pkexec
(which is used in the desktop files for the Garuda apps that need elevation). pkexec
expects to have a parent process with which it can communicate. But the way fuzzel works is it just starts whatever the process is and immediately exits. Once it is gone, pkexec
no longer has a parent process and refuses to continue.
The reason nwg-drawer
is able to launch the same application with no issue is it doesn’t exit like fuzzel does–it continues running in the background. Since pkexec
has a parent process to interact with in this case, it is able to continue launching the application.
One way to fix this is to use dbus-run-session
in the Exec=
line of the desktop file. This creates a new D-Bus session bus that will last as long as the command is running.
Copy the desktop file to your local desktop overrides:
cp /usr/share/applications/garuda-boot-options.desktop ~/.local/share/applications/
Open the file with an editor, and modify the Exec=
line to add the dbus-run-session
command.
micro ~/.local/share/applications/garuda-boot-options.desktop
[...]
Exec=dbus-run-session -- /usr/lib/garuda/pkexec-gui garuda-boot-options
[...]
Save and exit the file, then you should be able to launch the application with fuzzel.
I had every intention of either adding this dbus-run-session
command to the main desktop file of these applications (if is causes no issues with the other editions), or creating some local desktop files special for the Sway edition to ship with but…it seems to have slipped my mind! So thank you for the reminder.
Update:
I finished testing the other editions to confirm adding dbus-run-session
to the desktop file doesn’t cause any issues launching the application on those, then updated the main desktop files. This should be fixed in Garuda Boot Options 1.0.5 and Garuda Network Assistant 1.1.4.
Thanks again for the reminder on that one @tr1es.