omatether/README.md
28allday 4d30b9d55a omatether v0.1.0 — iPhone USB tethering for Omarchy/Arch
usbmuxd pairing + ipheth + systemd-networkd profile (Driver=ipheth match,
fallback metric 750, RequiredForOnline=no). Commands: install/pair/unpair/
status/priority/uninstall.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 19:26:31 +01:00

41 lines
1.6 KiB
Markdown

# omatether
iPhone USB tethering for **Omarchy / Arch** (systemd-networkd + iwd stack).
Plug an iPhone in over USB and use its internet connection — the phone's
Wi-Fi if it's on one, cellular otherwise. Fully headless, no GUI required.
## How it works
- `usbmuxd` handles the iOS pairing/trust handshake (udev-activated, no service to enable)
- the kernel's `ipheth` driver exposes the phone as a normal network interface
- a `systemd-networkd` profile (`10-iphone-tether.network`) matches by
`Driver=ipheth` and DHCPs it, at **fallback priority** (route metric 750)
so it never hijacks ethernet (100) or Wi-Fi (600)
## Install
```bash
./omatether.sh install # packages + networkd profile
./omatether.sh pair # unlock phone, tap Trust
```
Then on the phone: **Settings → Personal Hotspot → Allow Others to Join: ON**.
The connection comes up automatically whenever the phone is plugged in.
## Commands
| Command | What it does |
|---|---|
| `install` | Install usbmuxd/libimobiledevice, write networkd profile |
| `pair` / `unpair` | Manage the Trust pairing |
| `status` | Device, interface, IP, route, live connectivity test |
| `priority high` | Route all traffic via the phone even when ethernet is up |
| `priority low` | Back to fallback-only (default) |
| `uninstall` | Remove the networkd profile |
## Notes
- iOS shares whatever uplink it has: on Wi-Fi it shares the Wi-Fi; otherwise cellular.
- The tether interface usually appears as `eth0`; the profile matches by driver, not name.
- `RequiredForOnline=no` — an unplugged phone never blocks boot.
- DNS follows the Omarchy convention (`UseDNS=no`; global resolvers via systemd-resolved).