waydabber / BetterDisplay

Unlock your displays on your Mac! Flexible HiDPI scaling, XDR/HDR extra brightness, virtual screens, DDC control, extra dimming, PIP/streaming, EDID override and lots more!
https://betterdisplay.pro
18.98k stars 336 forks source link

Stream dummy screen to a peer over the local network (screen sharing?) #220

Open duffyjp opened 2 years ago

duffyjp commented 2 years ago

I just tried this out on a new Macbook Pro with the goal of matching the 16:9 aspect ratio of my iMac so Screen Sharing could use the full monitor when connected remotely. It worked fine with a third party VNC client, but the performance was awful. When connecting to the MBP from the iMac through the native Screen Sharing the window resizes wildly for a few seconds and then the app crashes. When connecting without BetterDummy the performance is great, so I'm hoping to combine the two.

Is this a known limitation of Screen Sharing or is there a possible workaround I could try? I've never found a third party VNC client that has a usable level of performance when connecting to a Mac server.

The M1 Macbook is running Monterey and the intel iMac Big Sur.

waydabber commented 2 years ago

Hi, Screen Sharing does not work for mirrored screens in Monterey - it will go into a wild resize frenzy death loop. It's a macOS bug. :(

Yes, VNC performance is awful.

I could add a function to stream the dummy directly over the local network, it might be added as a future feature (in this case the receiving end would run BetterDummy as well to access the remote dummy and show it in a window - like a "remote Picture in Picture" feature).

stldo commented 2 years ago

This feature would be very useful, but instead of requiring BetterDummy on the client side, maybe an HTTP stream would be a better option. This way, any device with a web browser could be used as a screen. Currently, I'm using BetterDummy to create a second screen and access it through screen sharing, but the image quality is really low and consumes a lot of bandwidth.

3DCoded commented 2 years ago

This feature could bypass the M1's single monitor limit, if you have another computer connected to a monitor, you could just go to the URL and have another screen!

mygizli04 commented 2 years ago

For anyone else looking for this, I've managed to get it working by using AnyDesk and sharing the dummy screen. The built-in VNC would show both screens at the same time but I found AnyDesk has an acceptable latency ( doesn't route through the internet or anything ) and free for personal use as well

chrisspiegl commented 2 years ago

I second the idea of a browser window / http stream for dummy screens. I was just trying to get something like Duet / Side-car working with an iPad and that integrated into BetterDisplay would be wonderful. Reason as an alternative to Sidecar: Apple limits Side Car to only work when both iPad and MacBook are connected to the same iCloud account. However, that is kinda dum because what if I want to use my girlfriends iPad as an external display. Better Display could bridge that gap. I'll subscribe to this topic and see what happens in the future. Much love 🌸.

chrisspiegl commented 2 years ago

Workaround App: https://deskreen.com This app has the ability to share a screen into a browser window on any device on the local network. It seems to work great after initial testing and could be a workaround for now.

Steps:

  1. Create a Dummy (I use a non HiDPI 1920x1080 one
  2. Install and connect Deskcreen based on their instructions
  3. Select the Dummy to be used for the screen sharing
  4. And it works.
jackluo923 commented 1 year ago

The stream quality of deskreen seems to be subpar, (font is aliased, generally very blurry), even when compared against screen sharing via zoom. It could be my configuration, but doing any texy-based work using deskreen is impossible.

Semmu commented 1 year ago

I tried this Deskreen solution, which is almost perfect, but unfortunately it is view-only, i.e. not usable to control the host machine from the stream. Which is really unfortunate :(