You could try to call that method using zbus, that would save you from linking libgnome-desktop. I don’t think it’s much code to do that, you may just be able to copy the few properties it sets from there.
Thanks a lot for your help, but it’s still a lot for something that’s just about 500 lines of code to glue something into Gnome And it’s not if I had much clue about all these systemd concepts
Emitting signals doesn’t require a main loop
Oh, I wasn’t aware, thanks I’m not familiar with glib.
But you may have to integrate the glib main loop anyway when using
g_app_info_launch. That might be activating services using gdbus and I know there are some issues when trying to use gdbus without a main loop.
So far I haven’t seen any; perhaps I got lucky because the application I’m spawning doesn’t happen to be dbus activatable in fact.
That said, can’t help but think that there’s a lot of “maybe” in this paragraph The documentation of g_app_info_launch doesn’t say it needs a mainloop; is there a implicit assumption that just about anything in glib needs a mainloop unless explicitly said not to?
I can run the mainloop in a different thread and I guess I can also somehow bend Rust’s inter-thread communication stuff to my will so as to make sure I always launch the application from the mainloop thread while keeping the mainloop running, but that’s again a lot of code for what’s just a piece of glue between Gnome search and an external program.
I guess I could alternatively also replace zbus with gdbus and avoid the extra thread but it looks as if the gdbus server API isn’t so nice, and it doesn’t appear to have first-class support in glib.rs, likely making the whole thing rather ugly
Doing any of the above would likely double the size of my code; if all I get in return is keeping the application alive in the unlikely case I ever stop the systemd service and some protection against some “maybe” issues with g_app_info_launch then think I’ll let it pass.
I’m sorry; I appreciate the support you gave me a lot and I thank you very much for the time you’ve spent in answering, and I really hate to be ungrateful, but it’s just that I only have so much time for these things As such, something which works 90% with some small nuisance is good enough for me; I’d not like to spent another weekend to get it past the last 10%