-
Notifications
You must be signed in to change notification settings - Fork 666
Description
Before opening a feature request
- I checked the next branch to see if the feature has already been implemented
- I searched existing reports to see if it is already requested.
What is the user problem or growth opportunity you want to see solved?
Prominent DEs (GNOME, KDE) have launchers that use systemd's desktop environment integration to place launched applications/services into their own service/scope so that they get all of the benefits of cgroup management. Rofi should natively enable this functionality.
There is "support" for doing this integration with systemd-run in rofi, but it is very limited and has issues (#2048).
How do you know that this problem exists today? Why is this important?
This is extremely important for features like OOM (systemd-oomd) which work at the cgroup level, and will cull based on that alone, not processes. Cgroups are also advantageous for proper desktop resource allocation and preventing things such as DoS.
Who will benefit from it?
Anyone who uses rofi with systemd on linux (a plurality most likely?) will benefit from this.
Rofi version (rofi -v)
Version: 2.0.0-dirty (Installed from Arch's repository)
Configuration
I don't currently have any configuration, it is all the defaults of 2.0.0
Additional information
I have seen the other issues on this (#1751, #2048) and I want to clarify that I don't want to write a shell wrapper to do this, I want to do it natively (i.e., in C, using dbus calls). Rofi has all of the information it needs to make this work, trying to shoehorn it into shell/env parsing just makes a mess.
I would be willing to work on this since it is a rather large change. It is "simple" to do using gdbus, you just have to call the StartTransientUnit method on the user session bus. Using the guidelines given on this page you would simply launch a unit as app-rofi-$appid@$RANDOM.service and then systemd would take care of everything else. There's probably an argument to put things into app.slice as well, and expose some way for customizing launching. But I think that's a bit out of scope.