Compare commits

..

3 commits

Author SHA1 Message Date
c941539b47 Bump version to v0.1.4
All checks were successful
Build plugin / build (push) Successful in 1m14s
2026-08-19 16:42:26 -03:00
005412fa71 readability: MAX_POLL_FRAMES, _poll_for_power_menu, BUTTON_LABEL 2026-08-19 16:41:33 -03:00
e611e16651 readability: add type annotations, fix logger method
- Added : Variant annotations to exit_button, container, focus_group
- Fixed logger.warning -> logger.warn for consistency
2026-08-19 16:20:25 -03:00
2 changed files with 11 additions and 10 deletions

View file

@ -10,7 +10,8 @@ extends Plugin
const SESSION_SELECT_PATH := "/usr/lib/os-session-select" const SESSION_SELECT_PATH := "/usr/lib/os-session-select"
const POWER_MENU_GROUP := "power_menu" const POWER_MENU_GROUP := "power_menu"
const BUTTON_NAME := "SwitchToSteamButton" const BUTTON_NAME := "SwitchToSteamButton"
const MAX_ATTEMPTS := 600 const BUTTON_LABEL := "Switch to Steam"
const MAX_POLL_FRAMES := 600
# ChimeraOS records the session that was active before OpenGamepadUI took over # ChimeraOS records the session that was active before OpenGamepadUI took over
# in this file when the OpenGamepadUI session is entered. We return to that # in this file when the OpenGamepadUI session is entered. We return to that
@ -35,11 +36,11 @@ func _ready() -> void:
if not _has_session_switcher(): if not _has_session_switcher():
logger.info("No session switcher script detected: " + SESSION_SELECT_PATH) logger.info("No session switcher script detected: " + SESSION_SELECT_PATH)
return return
_add_button_when_ready() _poll_for_power_menu()
func _add_button_when_ready() -> void: func _poll_for_power_menu() -> void:
for i in MAX_ATTEMPTS: for i in MAX_POLL_FRAMES:
if _try_add_button(): if _try_add_button():
return return
await get_tree().process_frame await get_tree().process_frame
@ -51,11 +52,11 @@ func _try_add_button() -> bool:
if not power_menu: if not power_menu:
return false return false
var exit_button = power_menu.get("exit_button") var exit_button: Variant = power_menu.get("exit_button")
if not exit_button: if not exit_button:
return false return false
var container = exit_button.get_parent() var container: Variant = exit_button.get_parent()
if not container: if not container:
return false return false
if container.has_node(BUTTON_NAME): if container.has_node(BUTTON_NAME):
@ -68,13 +69,13 @@ func _try_add_button() -> bool:
var button := button_scene.instantiate() var button := button_scene.instantiate()
button.name = BUTTON_NAME button.name = BUTTON_NAME
button.set("click_focuses", false) button.set("click_focuses", false)
button.set("text", "Switch to Steam") button.set("text", BUTTON_LABEL)
button.pressed.connect(_switch_session) button.pressed.connect(_switch_session)
container.add_child(button) container.add_child(button)
container.move_child(button, exit_button.get_index()) container.move_child(button, exit_button.get_index())
var focus_group = power_menu.get("focus_group") var focus_group: Variant = power_menu.get("focus_group")
if focus_group and focus_group.has_method("recalculate_focus"): if focus_group and focus_group.has_method("recalculate_focus"):
focus_group.recalculate_focus() focus_group.recalculate_focus()
@ -106,7 +107,7 @@ func _restart_inputplumber() -> void:
var out: Array = [] var out: Array = []
var code := OS.execute("sudo", ["-n", "systemctl", "restart", "inputplumber"], out) var code := OS.execute("sudo", ["-n", "systemctl", "restart", "inputplumber"], out)
if code != OK: if code != OK:
logger.warning("Unable to restart InputPlumber: " + _result_text(out)) logger.warn("Unable to restart InputPlumber: " + _result_text(out))
## Returns the session recorded by os-session-select before OpenGamepadUI was ## Returns the session recorded by os-session-select before OpenGamepadUI was

View file

@ -1,7 +1,7 @@
{ {
"plugin.id": "chimera-steam-switch", "plugin.id": "chimera-steam-switch",
"plugin.name": "Chimera Steam Switch", "plugin.name": "Chimera Steam Switch",
"plugin.version": "0.1.3", "plugin.version": "0.1.4",
"plugin.min-api-version": "1.1.0", "plugin.min-api-version": "1.1.0",
"plugin.link": "https://forge.thergic.ar/jose/steam-button-opengamepadui-plugin", "plugin.link": "https://forge.thergic.ar/jose/steam-button-opengamepadui-plugin",
"plugin.source": "https://forge.thergic.ar/jose/steam-button-opengamepadui-plugin", "plugin.source": "https://forge.thergic.ar/jose/steam-button-opengamepadui-plugin",