Expand TrayController with daemon health polling every 10 seconds via
D-Bus Ping calls to org.kde.GameCenter1, org.kde.ALaKarte.Runner1, and
org.kde.ALaKarte.Input1. Add menu actions to toggle console behaviors,
notification mirroring, and to restart each daemon via systemctl --user.
Add NotificationInhibitor, owned by App, which calls
org.freedesktop.Notifications Inhibit/UnInhibit on the session bus
whenever the consoleBehaviors config setting changes. The cookie is
released on application quit.
Add consoleBehaviors and mirrorNotifications properties to Config with
KConfig persistence under the [Console] group.
Ship org.kde.alakarte.notifyrc defining GameLaunched, GameExited, and
LaunchFailed notification events so Plasma attributes them correctly in
the notification history.
Extend RunnerManagerDaemon::ResolveLaunch with a flatpak runner branch
that constructs a flatpak run command, translates environment overrides
to --env= arguments, and respects flatpakAppId, flatpakBranch,
flatpakArch, and flatpakArgs from the launch spec.
Add activate_session, switch_to_vt, and terminate_session actions to
the gamecenter KAuth helper and its polkit policy. Each action calls
the corresponding method on org.freedesktop.login1 over the system bus.
Add CouchSidebar.qml, a horizontal source tab bar shown in couch mode
above the library view, exposing the same sourceSelected, settingsRequested,
importRequested, and aboutRequested signals as SidebarView.
Fix duplicate adaptiveFocusRingWidth property in GameCard.qml.
Add a new QtTest that spawns marker processes and verifies ProcessScanner::scan() matches by env/cmdline, preferEnvironmentMatches behavior, and cancellation. Register the test with ctest.
Add ProcessScanner::scan(ScanOptions) for combined env/cmdline/exe matching, extend Match with match-source flags, and make pollUntilFound() cancellation-aware. Update monitored launch matchers to use the new API.
Tighten transient unit lifecycle handling in GameCenter.
- Drop stale unit watcher mappings on PropertiesChanged for removed sessions.
- When stopping a monitored launch due to timeout or attach failure, fall back
to terminating scope PIDs if StopUnit fails unexpectedly.
This reduces leaked scopes and improves robustness in failure paths.
Improve GameCenter daemon handling of systemd transient scopes.
- Watch monitored-launch scopes early and avoid dropping Launching sessions
when the unit disappears before PIDs are attached.
- Stop leaked scopes on AttachProcessesToUnit failures.
- Make Stop() resilient for recovered sessions by falling back to TERM/KILL
on scope PIDs when StopUnit fails unexpectedly.
- Only recover scopes that match the expected A-La-Karte description.