* game-launcher: bundle self-contained SQLite reader, drop libsqlite3 dependency
Fixes building gamelauncher.c on NixOS where the runtime env lacks
sqlite3.h/libsqlite3. scan_lutris now reads Lutris' pga.db through a
bundled read-only SQLite file parser instead of linking sqlite3.
* game-launcher: rework /g provider to reuse panel scan results
The launcher provider now reads the games the panel already scanned via
state/cache, trims the query, and surfaces status/error rows instead of
duplicating the scan.
---------
Co-authored-by: Ahmed5Emad <ahmed5emad@users.noreply.github.com>
* Add game-launcher plugin
* auto-build: compile gamelauncher.c on first run
* rename leo -> Alexander
* add cc to dependencies for CI
* fix CI issues: lowercase id, prefix, translations, getConfig
* fix: revert prefix to g (noctalia prepends / via provider_prefix)
* game-launcher: fix all 4 security audit issues, cache deletion crash, covers not showing, close button
- Issue 1: Removed all system/popen/curl/wget/python3/grep from C scanner
- Issue 2: Protocol URL validation + character-level filtering + shell escaping
- Issue 3: Added xdg-utils to plugin.toml dependencies
- Issue 4: Steampoacher opt-in setting, documented data flow in README
- Fix: Plugin crash after cache deletion (pcall-wrapped all error paths)
- Fix: Close button uses noctalia.togglePanel instead of panel.close
- Fix: onOpen rescans if any game missing a cover
- Fix: Cover display fallback path reconstruction
* game-launcher: revert close button to panel.close
* game-launcher: note steampoacher needed for HQ covers
* game-launcher: shorten steampoacher note
* 1. Refactored README by hand **Stupid AI**
2. deleted the binary , it will be built with plugin open
* fix: Remove the character-by-character sanitization