Commit graph

123 commits

Author SHA1 Message Date
c0938aa62a dbus: add authoritative XML for GameCenter1/Runner1 2026-02-15 13:54:48 +01:00
9cda4ce476 app/daemons: set standard app metadata 2026-02-15 13:54:08 +01:00
5b26b85cc3 tests: add ProcessScanner stability test
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.
2026-02-14 17:56:09 +01:00
f03eb95b52 gamecenter: refactor ProcessScanner for cancellable single-pass scans
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.
2026-02-14 17:38:28 +01:00
7200ad179c Harden systemd scope cleanup
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.
2026-02-14 16:45:37 +01:00
985f6dac03 Harden transient scope lifecycle
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.
2026-02-14 16:16:59 +01:00
d56b91dbd0 gamecenter: harden KAuth helper power profile setting 2026-02-14 14:08:45 +01:00
f3b130008f ui: drop system-bus GameCenter fallback 2026-02-14 14:02:07 +01:00
8891e85dbc tests: recover sessions after gamecenter restart 2026-02-14 13:34:10 +01:00
57d1e6e130 tests: cover GameCenter unique DBus service behavior 2026-02-14 13:07:51 +01:00
d4e0326974 gamecenter: move DBus object path to avoid KDBusService conflict 2026-02-14 12:42:18 +01:00
cca49615d6 App: guard individual import tasks during shutdown 2026-02-13 18:55:33 +01:00
4b7655bc6b App: guard importAllGames task during shutdown 2026-02-13 18:30:00 +01:00
058fe8c8e0 gamecenter: bound waitForStarted during direct launch 2026-02-13 14:04:11 +01:00
88db54458e gamecenter: delete detached processes when they finish 2026-02-13 13:47:50 +01:00
6080962cf9 lutris: avoid lingering process on import timeout 2026-02-13 13:40:33 +01:00
2285de6b1e gamecenter: detach running processes on shutdown 2026-02-13 13:36:06 +01:00
144076675c steamgriddb: save covers atomically 2026-02-13 13:20:45 +01:00
a032bec8c4 inputd: save profiles atomically 2026-02-13 13:16:36 +01:00
9160076aa2 runnerd: save registry and profiles atomically 2026-02-13 13:11:49 +01:00
c6f3e645f4 app: save library.json atomically 2026-02-13 13:06:19 +01:00
05ca3de5f5 runner: shutdown spawned runnerd QProcess reliably 2026-02-13 12:52:40 +01:00
ca19e21661 qml: avoid StackView footer anchor conflicts 2026-02-13 12:52:39 +01:00
b1dc8afd48 qml: fix menu popup visible bool binding 2026-02-13 12:52:28 +01:00
b0d09be497 tests: add dbus smoke + stop-launching regression 2026-02-12 14:52:34 +01:00
e9071c2b86 gamecenter: add KAuth helper for power profiles 2026-02-12 14:51:20 +01:00
9dbff6fdb8 settings: input service + compatibility UI 2026-02-12 14:48:39 +01:00
1e5a86fda8 input: add input service daemon + client 2026-02-12 14:47:50 +01:00
7724205354 runner: add game profile API 2026-02-12 14:44:20 +01:00
27a385e3c3 ui: enforce daemon-only launches 2026-02-12 14:42:22 +01:00
8e77a35f7f krunner: remove unscoped launch fallbacks 2026-02-12 14:36:19 +01:00
fbd9311384 gamecenter: systemd scopes + Stop reliability 2026-02-12 14:34:56 +01:00
c7956eed8b QML: runner inventory, prefix actions, and runner error notifications 2026-02-09 14:03:38 +01:00
4573a3106e GameCenter: integrate Runner1 resolution and improve daemon launch 2026-02-09 14:03:01 +01:00
97d915abc6 GameCenter: install system-bus service + DBus policy 2026-02-09 14:01:56 +01:00
1f1be64c8f Runner: add Runner1 daemon + client 2026-02-09 14:01:15 +01:00
d87c227347 Core: persist per-game runner launch config 2026-02-09 13:58:19 +01:00
ded8ad83da QML: show daemon availability banner
Expose the Game Center daemon availability to the UI and show\nan inline error banner when it is not reachable, with a retry action.
2026-02-06 14:03:22 +01:00
0485954eb8 KRunner: launch via Game Center daemon
Prefer launching through the Game Center DBus daemon and\nfall back to xdg-open for URL-based commands when needed.
2026-02-06 14:02:47 +01:00
fa9c86415f Launcher: use Game Center daemon
Route game launching and running-state tracking through the\nGame Center DBus daemon. This removes the in-process QProcess-based\ntracking in favor of daemon sessions and adds availability checks.
2026-02-06 14:02:24 +01:00
017073c162 Add Game Center daemon target
Build and install the Game Center daemon as a DBus-activated\nuser service. This introduces the new src/gamecenter target and\nwires it into the main build.
2026-02-06 14:01:35 +01:00
55d5a70656 Persist window size across restarts 2026-02-03 11:22:11 +01:00
1889f9cf81 Merge branch 'feat/couch-mode-diagnostics' into 'master'
Couch Mode: add diagnostics overlay

See merge request marcoa/a-la-karte!2
2026-01-30 11:52:12 +00:00
aabb8d0f4b Couch Mode: add diagnostics overlay 2026-01-30 11:02:28 +01:00
8ecc1e3a74 Merge branch 'fix/couch-mode-focus' into 'master'
Fix/couch mode focus

See merge request marcoa/a-la-karte!1
2026-01-29 20:06:35 +00:00
f02b26f681 Core: set QT_DESKTOP_FILE_NAME early for portals 2026-01-29 19:57:07 +01:00
5b993cff6b QML: fix couch focus/menu scoping and overlays 2026-01-29 19:49:45 +01:00
444ef65a78 Core: add InputManager and couch UI mode 2026-01-29 19:49:27 +01:00
ed9367fd71 Core: harden library.json loading for migration 2026-01-25 14:32:42 +01:00
3ec2badcd7 Media: add per-game screenshots manager and gallery 2026-01-25 14:30:02 +01:00