Skip to content

fix media controls F8 hotkey of play_or_pause - #417

Open
9tong wants to merge 4 commits into
sozercan:mainfrom
9tong:fix/f8-media-key-routing
Open

fix media controls F8 hotkey of play_or_pause#417
9tong wants to merge 4 commits into
sozercan:mainfrom
9tong:fix/f8-media-key-routing

Conversation

@9tong

@9tong 9tong commented Aug 5, 2026

Copy link
Copy Markdown

Root cause:

  • Remote media commands were registered from SwiftUI window tasks, leaving an initialization window where F8 was not routed to Kaset.
  • Kaset released its native Now Playing claim during music loading and buffering, allowing macOS to route the media key to another app.
  • The app-wide playback state was only synchronized while Kaset still owned its fallback metadata.

Fix:

  • Register remote media commands and YouTube routing during app initialization.
  • Keep a native playing claim during music loading and buffering until WebKit publishes the rich Now Playing card.
  • Synchronize MPNowPlayingInfoCenter playback state without replacing WebKit metadata.
  • Add regression coverage for loading and buffering ownership.

9tong added 4 commits August 5, 2026 17:37
Root cause:
- Remote media commands were registered from SwiftUI window tasks, leaving an initialization window where F8 was not routed to Kaset.
- Kaset released its native Now Playing claim during music loading and buffering, allowing macOS to route the media key to another app.
- The app-wide playback state was only synchronized while Kaset still owned its fallback metadata.

Fix:
- Register remote media commands and YouTube routing during app initialization.
- Keep a native playing claim during music loading and buffering until WebKit publishes the rich Now Playing card.
- Synchronize MPNowPlayingInfoCenter playback state without replacing WebKit metadata.
- Add regression coverage for loading and buffering ownership.
@9tong

9tong commented Aug 6, 2026

Copy link
Copy Markdown
Author

also add keeping F8 media controls active across audio route changes

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.

1 participant