diff options
| -rw-r--r-- | desktop/modules/status/README.md | 6 | ||||
| -rw-r--r-- | shared/Status.qml | 8 |
2 files changed, 7 insertions, 7 deletions
diff --git a/desktop/modules/status/README.md b/desktop/modules/status/README.md index 438ead8..4d18342 100644 --- a/desktop/modules/status/README.md +++ b/desktop/modules/status/README.md @@ -103,14 +103,14 @@ edited from here; `breaktimer.sh config` prints what is in effect. Presentation is set automatically while a game runs, so a fullscreen game does not get locked or interrupted by the idle timer, DND or breaktimer. The shell polls every five seconds for a `gamescope` process, a running Steam binary, or -DuckStation, and any one is enough: +the DuckStation or PCSX2 emulators, and any one is enough: - pgrep -x gamescope || pgrep -f 'steamapps/commo[n]' || pgrep -x duckstation-qt + pgrep -x gamescope || pgrep -f 'steamapps/commo[n]' || pgrep -x duckstation-qt || pgrep -x pcsx2-qt The steam pattern is bracketed so it cannot match the check's own command line: `pgrep -f` reads the whole argv, and a literal `steamapps/common` would match the `sh` running the check and report a game forever. `gamescope` and -`duckstation-qt` use `pgrep -x`, an exact match on the process name, which +the emulators use `pgrep -x`, an exact match on the process name, which cannot self-match. The result is written to `status.gaming`, a file separate from diff --git a/shared/Status.qml b/shared/Status.qml index 3460dca..e1d0d17 100644 --- a/shared/Status.qml +++ b/shared/Status.qml @@ -177,19 +177,19 @@ Singleton { // A game is a fullscreen app that already holds the screen, and the idle // lock, DND and breaktimer are all unwanted while it runs, so presentation // is set automatically. This machine's games come from Steam and launch - // either under gamescope or directly, and DuckStation runs standalone, so - // all three are tested and any one is enough. + // either under gamescope or directly, and the DuckStation and PCSX2 emulators + // run standalone, so all four are tested and any one is enough. // // The steam pattern is bracketed so it cannot match this very command // line: pgrep -f reads the whole argv, and the literal "steamapps/common" // here would otherwise match the sh running the check and report a game // forever. The character class makes the needle miss itself while still - // matching a real game path. gamescope and duckstation-qt use pgrep -x, an + // matching a real game path. gamescope and the emulators use pgrep -x, an // exact match on the process name, which cannot self-match. Process { id: gameProc command: ["sh", "-c", - "pgrep -x gamescope >/dev/null 2>&1 || pgrep -f 'steamapps/commo[n]' >/dev/null 2>&1 || pgrep -x duckstation-qt >/dev/null 2>&1"] + "pgrep -x gamescope >/dev/null 2>&1 || pgrep -f 'steamapps/commo[n]' >/dev/null 2>&1 || pgrep -x duckstation-qt >/dev/null 2>&1 || pgrep -x pcsx2-qt >/dev/null 2>&1"] onExited: code => root.setGaming(code === 0) } |
