Repository navigation
Conversation
…ackpad - A monitor's scene (UISceneSession role windowExternalDisplayNonInteractive: a USB-C monitor with Stage Manager off, or AirPlay) gets its own window (ExternalDisplaySceneDelegate); the picture of the stream screen last shown moves there (ExternalDisplay, in SillAppDelegate.swift), and back as the monitor goes. Every other scene stays SwiftUI's. - The iPad: sideways, the trackpad in the picture's place over the input view (the hardware keyboard stays), "The Mac is on the external display."; upright, the picture pane says so above the trackpad it already has. - The viewport is the monitor's size in points, so the Mac sizes the window to it; sent again as a monitor comes or goes. - The session judges "in front" by its own window's scene (homeScene) while its display view is in the monitor's window. - DEBUG: -SillExternalDisplay WxH, a monitor's size without its scene. Found on the way: handing back the main scene's own configuration from configurationForConnecting left the app with no window at all (a white screen on a private iPad simulator); it returns an unnamed one, SwiftUI's. Checks: the three iOS builds; on a private iPad Pro 13" simulator (iOS 27.0, deleted after) against a synthetic loopback host with -SillExternalDisplay 1920x1080: viewport 1920×1080 sent, the trackpad upright and sideways. Not run: a real external scene (this Xcode has no Simulator.app to attach one).
|
Hey @addhumal thanks for this one. I tried it on an iPhone 17 Pro (iOS 27.2) with XREAL One Pro glasses. iOS 27 only connects the external display scene through a registered scene accessory, so I added that. While I was there, I also kept the phone awake while streaming to the glasses, turned off overscan, and made the black pane work as a trackpad, plus a couple of small fixes. With those changes the picture moves to the glasses and the phone works as the controller. I haven't tried it on an iPad. Commits are here if you want them: https://github.com/kolyan94/sill/commits/xr-glasses/ |
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
With a monitor on the iPad, the Mac's picture now goes to the monitor, at the monitor's size, and the iPad becomes its trackpad.
What changed
-SillExternalDisplay 1920x1080stands in for a monitor's size without its scene, for photos.Problems found, and how they were fixed
configurationForConnecting, and the app came up as a white screen. It returns an unnamed configuration, SwiftUI's own, now. Found on the simulator before anything else.Checks
-SillExternalDisplay 1920x1080: the host got a 1920×1080 viewport, and the trackpad and the line show upright and sideways.Not checked: a real external scene. This Xcode has no Simulator.app to attach a display, so the picture actually moving to a monitor, and back, is untested. AirPlay. VoiceOver on the trackpad.
@Saffsanity: this one needs a monitor on the iPad. With Stage Manager off, plug in USB-C: the Mac on the monitor at its size, the iPad a trackpad. Unplug: the picture back on the iPad.