Skip to content

Plugin: name the USB helper this platform actually needs - #120

Merged
MyNamesEMurray merged 1 commit into
mainfrom
claude/usbmux-status-message
Sep 8, 2026
Merged

Plugin: name the USB helper this platform actually needs#120
MyNamesEMurray merged 1 commit into
mainfrom
claude/usbmux-status-message

Conversation

@MyNamesEMurray

Copy link
Copy Markdown
Owner

What & why

The status shown when USB finds nothing reads:

No device detected on USB — check the cable and tap Trust (Windows also needs iTunes)

For a Linux user that's a dead end. There's no iTunes to check, and no hint
that usbmux.c connects to a usbmuxd daemon at /var/run/usbmuxd which
their distribution may or may not have installed. It's the one line they see at
the moment the answer matters, and it names a fix that can't apply to them.

The usbmuxd protocol comes from somewhere different on each platform, so the
status now names the right one per build:

What the plugin connects to What the status says
Windows Apple Mobile Device Service, localhost:27015 make sure iTunes is installed
Linux /var/run/usbmuxd make sure the usbmuxd daemon is installed and running
macOS the same socket, part of the OS nothing — there's nothing to install

The key is selected at compile time, beside the other platform notes at the top
of the file, so no build ships a string mentioning a system it can't be read
on. All three also now mention a data cable rather than a charge-only one,
which is the other silent failure here.

Status.WaitingUSB keeps its name and becomes the macOS text, so existing
translations of it stay valid rather than being orphaned by a rename. Both help
strings gain the Linux half of the same sentence.

Follows the documentation fix in #119, which corrected the same omission on the
website and in the README.

How it was tested

  • Builds clean on Linux with -Wall -Wextra -Werror, matching CI.
  • strings on the built module shows Status.WaitingUSB.Linux and not the
    other two, confirming the intended branch compiled.
  • Cross-checked every T_() key in ios-camera-source.c against
    en-US.ini — 41 keys, none missing.

Not verified from here: the string as it appears in the OBS properties dialog,
and the Windows and macOS branches, which this container can't compile. The
selection is a three-way #ifdef over a literal, so the risk is wording rather
than behavior.

Releases

No release trailer, so merging cuts a patch releaseobs-plugin/ is in
the release paths. That seems right for a user-facing fix, but add
Release-Skip: true to a commit here if you'd rather batch it with the next
change.

🤖 Generated with Claude Code

https://claude.ai/code/session_01PSuQicA9NrKWwpgzY6SvhA


Generated by Claude Code

"No device detected on USB — check the cable and tap Trust (Windows also
needs iTunes)" is a dead end for a Linux user, who has no iTunes to check
and no hint that the transport speaks to a daemon at /var/run/usbmuxd
which their distribution may not have installed. That is the one status
line they see at the moment the answer matters.

The usbmuxd protocol comes from somewhere different on each platform, so
the status now names the right one per build: the Apple Mobile Device
Service on Windows, the usbmuxd daemon on Linux, and neither on macOS,
where it is part of the OS and there is nothing to suggest. The key is
chosen at compile time beside the other platform notes, so no string
mentions a system it cannot be read on.

The base Status.WaitingUSB key keeps its name, so existing translations of
it stay valid and become the macOS text. Both help strings gain the Linux
half of the same sentence.

Verified: builds clean on Linux with -Wall -Wextra -Werror; the module
carries Status.WaitingUSB.Linux, confirming the intended branch; and every
T_() key in the source resolves in en-US.ini.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PSuQicA9NrKWwpgzY6SvhA
@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying lenslink with  Cloudflare Pages  Cloudflare Pages

Latest commit: 9f51ad8
Status: ✅  Deploy successful!
Preview URL: https://c7a0f6dc.lenslink.pages.dev
Branch Preview URL: https://claude-usbmux-status-message.lenslink.pages.dev

View logs

@MyNamesEMurray
MyNamesEMurray merged commit ddc7ac3 into main Sep 8, 2026
8 checks passed
@MyNamesEMurray
MyNamesEMurray deleted the claude/usbmux-status-message branch September 8, 2026 05:55
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