Highlights
✨ Shared clipboard for screen mirroring
serve-web and serve-vnc can now share the clipboard with the device in both directions. Copy on the phone and paste on your computer, or copy on your computer and paste on the phone. There is no polling: the device's pasteboard service pushes a snapshot on every change (AUTONOTIFY / PUSH), exposed as PasteboardMonitor for library users.
serve-web: turn on Sync in the viewer's Clipboard panel. Text and images cross over (a JPEG copied on the device arrives as a PNG the browser clipboard accepts; a picture copied out of Notes is recovered from its web archive). The host clipboard is sent when the page regains focus and right before a forwardedCmd/Ctrl+V, so a paste always uses what you just copied. Needs a secure context (localhostor--https) and the browser's clipboard permission. What the device held before you turned Sync on is never reported.serve-vnc --share-clipboard: text, through the standard RFB cut-text messages, with UTF-8 for clients that support the Extended Clipboard pseudo-encoding (TigerVNC, noVNC, …) and Latin-1 otherwise.
pymobiledevice3 developer core-device display serve-web
# open http://127.0.0.1:8080/ and switch Clipboard → Sync on
pymobiledevice3 developer core-device display serve-vnc --share-clipboard✨ serve-web: redesigned viewer, zoom, and real hardware buttons
The viewer got a new look built around the project logo (also the favicon now). The mute, volume and power buttons are drawn on the edges of the phone frame where they physically sit, follow the device when it rotates, and stay pressed for as long as you hold them — tap Power to sleep/wake, hold it for whatever iOS does with a held side button. Home, Siri and the swipes moved to a dock under the device. New zoom controls (Ctrl+= / Ctrl+- / Ctrl+0) enlarge or shrink the displayed device and the bezel scales with it; the log lives in the side panel instead of floating over it; narrow windows put the device first.
🐛 serve-web: rotating no longer stretches the picture
Rotating the device left a square canvas with the frame stretched into it, because the canvas size lock kept the maximum of both orientations. The lock now starts over when the orientation flips.
🔇 Quieter serve-web logs
The periodic sent RTCP PLI / decoder-refresh lines are debug level now, matching serve-vnc.
📝 Docs
The CLI recipes describe clipboard sharing (including the browser's secure-context and focus rules) and the zoom controls.
What's Changed
- 2d6cf4e docs: Describe clipboard sharing and zoom for serve-web/serve-vnc (#1958) (@doronz88)
- 6a8264a serve-web: Project logo as favicon and in the top bar, palette from the logo (#1958) (@doronz88)
- 951a464 serve-web: Share images through the clipboard sync (#1958) (@doronz88)
- d5924ca serve-web: Log PLI and decoder-refresh at debug level (#1958) (@doronz88)
- 73400c1 serve-web: Redesign the viewer, hardware buttons on the bezel (#1958) (@doronz88)
- b2f2122 serve-web: Fix stretched square canvas after rotating (#1958) (@doronz88)
- 14fae33 serve-web: Add zoom in/out controls (#1958) (@doronz88)
- b9525cb serve-vnc: Add --share-clipboard (#1958) (@doronz88)
- 68b1ad4 serve-web: Add a shared-clipboard toggle (#1958) (@doronz88)
- 27321dc core_device: Monitor device pasteboard changes (AUTONOTIFY/PUSH) (#1958) (@doronz88)
Full Changelog: v11.14.0...v11.15.0