* 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
44 lines
894 B
TOML
44 lines
894 B
TOML
id = "alexander/game-launcher"
|
|
name = "Game Launcher"
|
|
version = "1.0.0"
|
|
plugin_api = 4
|
|
author = "Alexander"
|
|
license = "MIT"
|
|
icon = "device-gamepad-2"
|
|
description = "Browse and launch games from Steam, Lutris, and Heroic."
|
|
dependencies = ["cc", "libsqlite3-dev", "xdg-utils"]
|
|
tags = ["gaming", "launcher", "utility"]
|
|
|
|
[[widget]]
|
|
id = "launcher"
|
|
entry = "widget.luau"
|
|
|
|
[[widget.setting]]
|
|
key = "glyph"
|
|
type = "glyph"
|
|
label_key = "settings.glyph.label"
|
|
default = "device-gamepad-2"
|
|
|
|
[[panel]]
|
|
id = "browser"
|
|
entry = "panel.luau"
|
|
width = 720
|
|
height = 520
|
|
placement = "floating"
|
|
position = "center"
|
|
open_near_click = true
|
|
|
|
[[panel.setting]]
|
|
key = "steampoacher_enabled"
|
|
type = "bool"
|
|
label_key = "settings.steampoacher_enabled.label"
|
|
default = false
|
|
|
|
[[launcher_provider]]
|
|
id = "search"
|
|
entry = "search.luau"
|
|
prefix = "g"
|
|
glyph = "device-gamepad-2"
|
|
include_in_global_search = true
|
|
debounce_ms = 150
|