{"id":51099040,"url":"https://github.com/rollecode/dms-gaming-status","last_synced_at":"2026-06-24T09:02:35.003Z","repository":{"id":356971223,"uuid":"1234807114","full_name":"rollecode/dms-gaming-status","owner":"rollecode","description":"Gaming-mode toggle, auto-detection of running games (Steam / Lutris / Heroic), RAM/swap pressure and CPU governor in your DankBar","archived":false,"fork":false,"pushed_at":"2026-05-10T17:37:21.000Z","size":41,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-05-10T19:13:53.485Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"QML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rollecode.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-10T17:04:06.000Z","updated_at":"2026-05-10T17:37:25.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/rollecode/dms-gaming-status","commit_stats":null,"previous_names":["rollecode/dms-gaming-status"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/rollecode/dms-gaming-status","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rollecode%2Fdms-gaming-status","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rollecode%2Fdms-gaming-status/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rollecode%2Fdms-gaming-status/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rollecode%2Fdms-gaming-status/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rollecode","download_url":"https://codeload.github.com/rollecode/dms-gaming-status/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rollecode%2Fdms-gaming-status/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34724743,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-24T02:00:07.484Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-24T09:02:34.086Z","updated_at":"2026-06-24T09:02:34.997Z","avatar_url":"https://github.com/rollecode.png","language":"QML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🕹️ Gaming Status\n\nGaming-mode toggle, auto-detection of running games, RAM/swap pressure and CPU governor — all in your DankBar.\n\n## What it does\n\nA single bar pill that:\n\n- toggles **Gaming mode** on / off (closes Spotify / Slack / Telegram and drops RAM caches via a tiny shell helper)\n- auto-detects the active game from running processes (Wine + native), with proper names pulled from your installed game launchers\n- changes color when memory is tight (orange at \u003e85% RAM, red at \u003e95% or swap thrashing)\n- exposes a popout with the active game card, RAM and swap usage, gamemode-daemon state and CPU governor\n\nClick the pill to open the popout; the on/off switch lives there.\n\n## Auto-discovery (zero-touch)\n\nThe plugin scans every common launcher on Linux every hour, so launching any installed game shows the proper title in the bar without any manual setup:\n\n| Source | Path |\n|---|---|\n| Steam (native install) | `~/.local/share/Steam`, `~/.steam/steam` |\n| Steam (Flatpak) | `~/.var/app/com.valvesoftware.Steam/data/Steam` |\n| Lutris (native + Flatpak) | `~/.config/lutris/games/*.yml` |\n| Heroic — Epic / GOG / Amazon | `~/.config/heroic/store_cache/*_library.json` |\n\nPlus a built-in fallback list (The Sims 4, Baldur's Gate 3, Overwatch, Factorio, Stardew Valley, RimWorld, Civilization VI/VII, Minecraft, StarCraft, CS2, Dota 2). If a Wine `.exe` runs that no source recognizes, the bar shows it as the executable basename, and the popout offers a one-click **Add to my games** button.\n\n## Installation\n\n### Via the DMS plugin browser\n\nDMS Settings → **Plugins** → **Browse**, find **Gaming Status**, install. (Once accepted into the [DMS plugin registry](https://github.com/AvengeMedia/danklinux-plugins).)\n\n### Manually\n\n```bash\ngit clone https://github.com/rollecode/dms-gaming-status.git \\\n    ~/.config/DankMaterialShell/plugins/gamingStatus\ndms restart\n```\n\n### Gaming Mode toggle (zero-config, optional customisation)\n\nThe toggle in the popout works out of the box: when you flip it on, the plugin runs a minimal `sync \u0026\u0026 drop_caches` (frees RAM that the kernel was using for I/O cache). No apps are killed, no services touched.\n\nIf you want richer behaviour — close Spotify / Slack / Telegram, stop a local LLM that's hogging VRAM, etc. — drop a customised script at `~/Games/gaming-mode.sh` and the plugin will use that instead. A starter template is bundled with the plugin:\n\n```bash\nmkdir -p ~/Games\ncp ~/.config/DankMaterialShell/plugins/gamingStatus/gaming-mode.sh ~/Games/\nchmod +x ~/Games/gaming-mode.sh\n$EDITOR ~/Games/gaming-mode.sh   # edit KILL_APPS and VRAM_SERVICES\n```\n\nThe starter ships with `KILL_APPS=()` and `VRAM_SERVICES=()` empty — opinion-free. Anything that needs `sudo` (like `drop_caches`) requires passwordless sudo or it'll silently no-op.\n\n### Optional companions\n\nFor the full reliable-gaming experience the plugin assumes you already have these (the toggle and detection still work without them):\n\n- **gamescope, mangohud, gamemode** — `pacman -S gamescope mangohud lib32-mangohud gamemode goverlay` (Arch). Set `MANGOHUD=1` in `~/.config/environment.d/gaming.conf` so every Vulkan / OpenGL game shows the overlay automatically.\n- **firejail** — for an \"offline / sandboxed\" launcher variant. Wrap a game's launch with `firejail --quiet --noprofile --net=none -- wine ...`.\n- **earlyoom** — protect the running game from OOM kills. Add the game's binary name to `--avoid` and put browsers / chat in `--prefer`.\n- **CPU governor pinned to performance** — a system-wide systemd unit; set once and forget.\n\n## Settings\n\nSettings → **Plugins** → click the caret next to **Gaming Status**:\n\n- **Show label** — toggle the \"Gaming on / off\" or active-game text in the bar pill\n- **Show RAM badge** — toggle the compact `RAM xx%` badge that appears when a game runs or memory pressure rises\n- **Custom games** — add games that aren't covered by built-ins or auto-discovery. Two fields: **Display name** and **Process name**. Easiest way to find a process name: launch the game once, click the bar pill, the popout shows `PID #### – \u003cprocess_name\u003e`.\n\nCustom-game entries are stored in `~/.config/DankMaterialShell/plugin_settings.json` under `gamingStatus.customGames`.\n\n## How it works\n\nA single QML widget polls four cheap commands every 3 seconds:\n\n| Job | Command |\n|---|---|\n| Active game | `ps -e -o pid=,args=` filtered by built-in + custom + Steam / Lutris / Heroic library entries |\n| Optimization daemon state | `gamemoded -s` |\n| Memory | `free -m` |\n| Governor | `cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor` |\n\nLibrary scan runs at startup and every hour after that. Detection uses a regex with path / word boundaries, so neighbouring args like `earlyoom --avoid '(^|/)(...|TS4_x64.exe|...)'` don't false-match.\n\n## Adding new games to the built-in list\n\nOpen `GameDetector.js`, append to `KNOWN_GAMES`:\n\n```javascript\n{ match: \"yourgame.exe\", name: \"Your Game\", icon: \"videogame_asset\" }\n```\n\nPRs welcome.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frollecode%2Fdms-gaming-status","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frollecode%2Fdms-gaming-status","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frollecode%2Fdms-gaming-status/lists"}