-
feat(tray): Launch Gig — and Wayland can focus a window after all · 05df7fee
PLN: "wheres the 'run parvagues' big HUD menu button? I see perf modes, open bridge, then the gear 4/6 up, but below open bridge, i want a 'Launch Gig' button that opens and focuses auto the parvagues". Two problems behind that one sentence. DEPTH. Pulsar was reachable only through Gear ▸ Pulsar — the hot path buried under the tool drawer. It is now a top-level entry directly below Open Bridge, labelled with what the click will actually do ("focus ParVagues" when it is up, "open ParVagues" when it is not), because "Focus" vs "Open" is the difference between a confident click and one that looks like a no-op. FOCUS DID NOT EXIST. launchers.py's docstring said "on Wayland there's no portable window-focus", so clicking a running app answered with the string "already-running" and did nothing. That is true of the X11 toolbox — xdotool, wmctrl and kdotool are all absent here and the first two cannot work under Wayland anyway — but it is not true of THIS desktop. Plasma exposes KWin's scripting engine on the session bus, and a script running inside the compositor is simply allowed to activate a window. So focus_window() registers a tiny KWin script, runs it, and unregisters it. It matches on resourceClass (the app id), not the window title: the title changes with every file PLN opens, and matching it would break the moment a filename stopped containing "Tidal". The script name carries our pid so two clicks cannot collide on an already-registered name. Verified live against the running Pulsar: focus_window('pulsar') -> True. Consequence worth noting: running native apps in the Gear menu used to be greyed out, because the only honest thing a click could do was refuse. They are live again — clicking a running app now raises it, which is the thing you actually want mid-set. Deliberately editor-only. Launch Gig does not start SuperCollider, boot Tidal or arm Ardour: #116 is the standing rule that the hot path must not be able to start the sound by accident, and one wrong click before a set is a stuck scsynth rather than a convenience. Every failure path falls back to reporting. A focus button that quietly does nothing is a papercut; one that throws during a gig is not acceptable. Bridge suite: 43 passed.PLN (Algolia) authored05df7fee
×