Skip to content

feat(soundpack): add the connect_waiting cue audio - #149

Merged
Orinks merged 1 commit into
Orinks:devfrom
Nick6489:assets/connect-waiting-sound
Sep 2, 2026
Merged

feat(soundpack): add the connect_waiting cue audio#149
Orinks merged 1 commit into
Orinks:devfrom
Nick6489:assets/connect-waiting-sound

Conversation

@Nick6489

@Nick6489 Nick6489 commented Sep 2, 2026

Copy link
Copy Markdown

Adds connect_waiting.ogg — the audio for the connect_waiting sound event
introduced in #148 (looping "waiting to connect" cue during SSH-agent approval).

48 kHz stereo Ogg Vorbis, 3s, built to loop. Mine, contributed under the
project's licence.

Heads-up: the default sound pack has no audio in this repo

Nothing here loads this file yet, on purpose — but it surfaced something worth
fixing.

  • PackManifest::default_pack_json() is { "name": "Default", ..., "sounds": {} }
    — an empty stub.
  • ensure_default_pack() only writes that manifest; it copies no audio.
  • The Windows build's "Stage the install tree" step copies PortkeyDrop.exe,
    prism.dll, and version.txt into dist/PortkeyDrop_dir/ and nothing else,
    and the installer ships that tree.

So a fresh install — installer or nightly — gets a default pack that plays
nothing. Existing users only have cues because the ~/.portkeydrop → platform
config-dir migration carried the Python-era pack across.

What I'd suggest

Vendor the default sounds into the repo (this file, plus the ~19 you already
shipped with the Python version) and point default_pack_json() at them, so a
brand-new user — including nightly testers — hears cues on first launch
without touching a thing.

crates/portkeydrop-core/assets/soundpacks/default/ is just where I put this
one; move it wherever fits.

Landmines when you wire it up:

  • manifest.rs::the_generated_default_manifest_is_valid_and_empty and the
    assert_eq!(text, PackManifest::default_pack_json()) check in soundpacks/mod.rs
    both assert the stub stays empty.
  • should_write_default_manifest() treats a non-empty manifest as the
    user's and won't overwrite it — a populated default_pack_json() changes that
    "safe to regenerate" logic.
  • ensure_default_pack() writes the manifest but nothing puts the audio on
    disk, so the files need an include_dir! + write-on-first-run, or a copy step
    in build.yml and the installer.

Merge order

Independent of #148 at the file level (this PR only adds a binary), but the file
is only useful once #148's connect_waiting event exists. Either order is
fine.

🤖 Generated with Claude Code

The default sound pack ships no audio in this repo. `default_pack_json()`
is `{"sounds": {}}`, the Windows build stages only the exe, prism.dll,
and version.txt, and `ensure_default_pack` writes just the manifest.
Existing users have cues only because the `~/.portkeydrop` -> platform
config migration carried the Python-era pack across; a fresh nightly or
installer install gets a silent default pack.

This adds the one file the `connect_waiting` event (PR Orinks#148) needs, at a
suggested assets path. It is wired to nothing yet: bundling the default
pack and pointing `default_pack_json()` at it is a separate decision,
noted in the PR.

connect_waiting.ogg is my own work, contributed under the project's
licence. 48 kHz stereo Ogg Vorbis, 3s, designed to loop.

Changelog: none

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ARKC56K8mFfAPPc98JPfCP
@Orinks
Orinks merged commit d1dede4 into Orinks:dev Sep 2, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants