Skip to content

  • Projects
  • Groups
  • Snippets
  • Help
  • This project
    • Loading...
  • Sign in / Register
T
Tidal
  • Overview
    • Overview
    • Details
    • Activity
    • Cycle Analytics
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Charts
  • Issues 0
    • Issues 0
    • List
    • Board
    • Labels
    • Milestones
  • Merge Requests 0
    • Merge Requests 0
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
    • Charts
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • PLN
  • Tidal
  • Repository

Switch branch/tag
  • Tidal
  • perf-tray.py
Find file
BlameHistoryPermalink
  • PLN (Algolia)'s avatar
    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) authored Aug 03, 2026
    05df7fee
perf-tray.py 14.9 KB
EditWeb IDE
×

Replace perf-tray.py

Attach a file by drag & drop or click to upload


Cancel
A new branch will be created in your fork and a new merge request will be started.