Skip to content

Add iPhone cable support via usbmuxd and gvfs-afc - #11731

Open
basalto wants to merge 2 commits into
omacom:quattrofrom
basalto:feat/iphone-cable-support
Open

basalto wants to merge 2 commits into
omacom:quattrofrom
basalto:feat/iphone-cable-support

Conversation

@basalto

@basalto basalto commented Sep 13, 2026

Copy link
Copy Markdown

Summary

Adds out-of-the-box support for Apple iPhone cable connections (both Personal Hotspot / USB tethering and native file/photo access) in Omarchy.

  • usbmuxd: Provides the USB multiplexing daemon and udev rules (/usr/lib/udev/rules.d/39-usbmuxd.rules). When an iPhone is connected, udev automatically triggers usbmuxd.service on-demand and stops it when disconnected.
  • libimobiledevice: CLI tools (idevicepair, ideviceinfo) and communication libraries required for device pairing and trust certificate verification.
  • gvfs-afc: Apple File Conduit backend for GVFS, enabling native iOS document and photo browsing in Nautilus and other file managers without needing FUSE or ifuse.

Screenshot

iPhone USB Ethernet Tethering in Omarchy Network Panel

Changes

  • install/omarchy-base.packages: Adds gvfs-afc, libimobiledevice, and usbmuxd in alphabetical order.
  • migrations/1789324177.sh: Installs gvfs-afc, libimobiledevice, and usbmuxd on existing systems via omarchy-pkg-add.

Testing

  • Executed migration 1789324177.sh via omarchy-pkg-add.
  • Verified on-demand udev activation of usbmuxd.service upon plugging in iPhone.
  • Verified successful pairing validation via idevicepair validate.
  • Verified USB tethering auto-configuration via NetworkManager (nmcli device status).
  • Verified filesystem detection in GVFS via gio mount -l (GProxyVolumeMonitorAfc).
  • Ran ./test/shell.d/preinstalls-test.sh, ./test/shell.d/migrate-scope-test.sh, ./test/shell.d/migrate-wrapper-test.sh, and bin/omarchy commands --check.

@Jamesking56 Jamesking56 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

While I am generally against installing random packages on everyone's machines by default, this feels like it should be merged as most users would just expect connecting an iPhone for tethering to "just work".

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.

3 participants