• v0.1.0 982ab6c595

    akelsey released this 2026-10-18 07:10:11 +00:00 | 4 commits to main since this release

    Orebuoys Desktop v0.1.0

    orebuoys-desktop v0.1.0

    Highlights

    The first release of the desktop tray client: one static Go binary that turns
    global keyboard shortcuts into requests to an Orebuoys board. There is no
    embedded browser, no Qt, no CGO and no local audio path — shortcuts queue
    playback in the board's voice channel, where the audio already lives.

    • Global shortcuts through the XDG GlobalShortcuts portal
      (org.freedesktop.portal.GlobalShortcuts), with a KGlobalAccel D-Bus
      fallback for KDE sessions where the portal is absent.
    • Tray menu over StatusNotifierItem and com.canonical.dbusmenu: status,
      configure shortcuts, silence waiting plays, reload config, open the board and
      quit.
    • Actions: play a clip, play a filter (query, tag or library), capture a
      snapshot, silence your waiting plays, and repeat the last clip.
    • Existing board routes only: a personal token is sent as a bearer token,
      with ?guild= on guild-scoped requests. Nothing in this release needs a new
      server endpoint.
    • doctor, list clips and list tags for diagnosing the server, token,
      portal, tray and bindings without a GUI, and configure to reopen the
      portal's shortcut configuration UI.
    • Config guarded at 0600, unknown JSON fields refused, and the token, the
      Authorization header and credentialed URLs never logged.

    linux/amd64 and linux/arm64 builds are produced from the same tag.

    What is exercised

    The repository's unit tests cover config loading and validation, trigger
    parsing and the KGlobalAccel key encoding, the exact HTTP method, path,
    ?guild=, bearer header and JSON body for every action, tag/library resolution,
    the D-Bus signatures of the portal and KGlobalAccel structs, the tray menu
    model, and doctor's formatting and failure exits.

    The desktop integration is reasoned and unit-tested rather than live-tested on
    every compositor: portal binding and its permission dialog, activation delivery
    from the compositor, tray rendering and KGlobalAccel registration still need a
    real Plasma Wayland session. The checklist is at the end of
    docs/wayland-hotkeys.md.

    Known limitations

    • Silence is not a stop button. It withdraws your own waiting plays; it
      cannot cut off the clip the channel is already hearing.
    • Repeat is per-process. It remembers the last clip this daemon queued and
      has nothing to repeat after a restart or a config reload.
    • One server per daemon. Two instances would collide on the control bus
      name, the portal app id and the fixed shortcut ids. Change guild and reload,
      or restart, instead of running two copies.
    • No local preview or local audio. Playback happens on the board.
    • A tray host restart requires restarting the daemon to re-register the
      icon; registration is one-shot.
    • X11 is not live-tested. The portal backend may work there, otherwise the
      KGlobalAccel fallback is the path.

    Requirements

    • KDE Plasma 6 on Wayland for the intended experience, with
      xdg-desktop-portal, xdg-desktop-portal-kde and a StatusNotifier host.
    • A board account whose roles include play for clips, filters, silence and
      repeat, and record for snapshots. A token is exactly its owner.
    • The installed desktop file: its basename is the application id the portal
      associates with the process, so installing it is not optional.

    Upgrading

    This is the first tagged release, so there is no upgrade or migration path yet.

    Install

    The binaries are static Linux builds (CGO_ENABLED=0); they need no Go
    toolchain, C library, Qt or browser engine at runtime.

    tar -xzf orebuoys-desktop-linux-amd64.tar.gz   # or -arm64
    cd orebuoys-desktop-amd64                       # or orebuoys-desktop-arm64
    sudo install -Dm755 orebuoys-desktop /usr/local/bin/orebuoys-desktop
    sudo install -Dm644 io.github.psychofox.OrebuoysDesktop.desktop \
      /usr/local/share/applications/io.github.psychofox.OrebuoysDesktop.desktop
    sudo install -Dm644 orebuoys-desktop.service \
      /usr/local/lib/systemd/user/orebuoys-desktop.service
    orebuoys-desktop --version
    

    Create ~/.config/orebuoys-desktop/config.json (mode 0600) with the
    board URL and token, then run orebuoys-desktop doctor. The README
    covers the config, shortcuts and the systemd user unit.

    To verify the downloads, run this in the directory that holds
    SHA256SUMS and the assets:

    sha256sum -c SHA256SUMS
    

    Assets

    Each .tar.gz contains the binary, README.md, LICENSE, the desktop file and the systemd user unit.

    Asset Platform Size
    orebuoys-desktop-linux-amd64 linux/amd64 8495266 bytes
    orebuoys-desktop-linux-amd64.tar.gz linux/amd64 3507917 bytes
    orebuoys-desktop-linux-arm64 linux/arm64 7930018 bytes
    orebuoys-desktop-linux-arm64.tar.gz linux/arm64 3160891 bytes
    SHA256SUMS all 394 bytes

    Checksums

    79e599b6dbeea5c421bcbb22ae76bfb35cd241cf631c4065ee03f09b7a25ce38  orebuoys-desktop-linux-amd64
    8d5003d93e2cd833ec9b54d5a5c608e11c47b597b173292d062d608a60b145a6  orebuoys-desktop-linux-arm64
    b38fc508acc8baf4f91ab98759cf031b075859b3b561968eb5596cbd2be137e2  orebuoys-desktop-linux-amd64.tar.gz
    8c96bc61b1f6a2d5d7700c7b79f124296e43ce700e38cce0de2c436ea6f2003a  orebuoys-desktop-linux-arm64.tar.gz
    
    Downloads