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
  • tools
  • midiviz.desktop
Find file
BlameHistoryPermalink
  • PLN (Algolia)'s avatar
    feat(midiviz): a permanent lens — own app id, all desktops, CC numbers · d1dbae36
    PLN, after the first look at it: "the midi mon is beautiful! so lets
    streamline, now it should always oppen, with always on top, all desktops
    displayed when i switch from desk 1 to 2 3 4" -- and then "would help to
    see the chan num: 33 or 53 etc so as i press i can wire".
    
    Always-on-top needed no change: the WindowStaysOnTopHint at :293 is
    unconditional and KWin honours it. The other three did.
    
    IDENTITY. The Wayland app_id comes from desktopFileName, not
    applicationName, so KWin saw resourceClass "python3" -- verified by
    querying workspace.windowList(), not assumed. Two consequences: a window
    rule keyed on the app id would have matched EVERY python GUI on the box,
    and launchers.focus_window("midimon") could never match, so clicking the
    Bridge/tray button on an already-running lens silently did nothing. Set
    desktopFileName + ship a .desktop (which also silences the portal's "App
    info not found" warning), and point the launcher's focus at "midiviz".
    
    ALL DESKTOPS is a compositor property, not a Qt flag, so it lives in a
    KWin rule (~/.config/kwinrulesrc, wmclass=midiviz, desktops= empty with
    desktopsrule=2/Force). Declarative on purpose: it applies at map time,
    every time, with no post-launch retry racing the window's existence.
    Verified on the live window rather than inferred from the key names --
    onAllDesktops=true keepAbove=true.
    
    CC NUMBERS, two layers. Per-cell dim decimals are the map you consult
    while wiring; they render in their own pass because f_micro is already
    current there, and a per-cell setFont would add 96 font switches a frame
    to a path this file keeps to a counted number of drawText calls. They
    are skipped when a cell is too narrow to hold them beside the value. And
    the header now prints the last-touched control as ^53=127 -- decimal,
    with the corpus's caret, so it is the literal token to type into a
    pattern instead of a hex value to convert mid-set.
    
    Autostart as a systemd --user unit bound to graphical-session.target,
    not default.target: it needs WAYLAND_DISPLAY/XDG_RUNTIME_DIR imported
    into the user manager first. Registered "login" in rig_units.py.
    
    Paint path exercised by the offscreen selftest: 116 paints, PASS.
    PLN (Algolia) authored Sep 05, 2026
    d1dbae36
midiviz.desktop 315 Bytes
EditWeb IDE
×

Replace midiviz.desktop

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.