Resource management for desktop applications
Currently most desktop applications run in their own cgroup and are allocated equal resources. We can use various indicators to determine whether one application should be allocated more resources compared to others. For now we are using indicators like application's window focused state or if it's playing audio.
Using systemd's dbus API allows us to then dynamically modify resource allocated to an application and therefore provide a smoother experience in a resource throttled system.
- libpipewire: for audio integration
- program which sets "inactive-since" xattr on change in application's focused state.
The following changes work in user mode of uresourced.
- r-app-monitor: Responsible for tracking information about applications. Emits signal when active application changes.
- r-app-policy: Makes the resource allocation decisions upon receiving changed signal from r-app-monitor.
- r-pw-monitor: Allows boosting applications playing audio. Uses pipewire-pulse API
- r-game-monitor: Allows boosting games which have been registered under GameMode