Comments (10)
Thanks @vividfog for the input! I'll consider all this. I am planning a staged approach, add features but by bit until all the building blocks are in place for automatic handling. Will take a while as I simply don't have as much time for the project as I want, but we'll get there hopefully!
from betterdisplay.
The physical display might have a notch (M1 Pro or M1 Max MacBook Pro). If macOS doesn't draw the mirrored display in the notch area, then the aspect ratio needs to be adjusted.
from betterdisplay.
I'll provide an updated test build with aspect ratios that conform to the nMBP notched resolutions (it is a bit tricky though since especially on the 14" model the resolution is so weird, its greatest common divider is 4 which means there aren't many proper resolutions that fit the aspect ratio correctly so some kind of approximation will be happening which hopefully won't break things).
If you have an nMBP, will you help testing me what happens, how mirroring works? I've got a humble baseline M1 MBA so I can't test it. :)
from betterdisplay.
Here is a test build to try and see how the notch behaves and how the aspect ratio approximations work:
https://github.com/waydabber/BetterDummy/releases/tag/v1.0.7c
from betterdisplay.
I hope some day Apple hires you, or purchases your code/routines. This functionality should come out of the box. I've now set 3 physical monitors, each with their own hand-picked HiDPI resolution. Everything is sharp and tidy. Maybe I should send feedback to Apple.
Optimally in macOS 14 I should be able to not install any software, just go to System Preferences, reveal all resolutions, and select whatever the heck I want, with tiny increments, automatically rendered at 2x, no matter what the physical panels are.
And that's what I indeed CAN do now, and have done, if I just first go through the manual mirroring and careful orchestration of six displays, three of them dummies.
The hand-picked resolutions are very out of the ordinary, but they render perfectly on my panels and produce smooth font rendering, exactly optimized for my pretty good but not perfect eyesight. I went through the options in 16 pixel increments or so, until it was perfect for all 3 panels, individually.
It's amazing that it's possible at all, but it would be even more amazing if indeed you find some way to automate that interim step of adding dummies for each screen and mirroring them correctly to each other. I'm all for the enhancement in this topic.
Maybe the final list of displays, after the automatic mirroring, could also automatically reflect the naming conventions set out by the default displays. For example:
LG Foobar
LG Foobar (Scaled by BetterDummy) - Main display
Samsung ABC
Samsung ABC (Scaled by BetterDummy) - Extended display
Dell XYZ
Dell XYZ (Scaled by BetterDummy) - Extended display
Or something like that. Whatever auto-generated names fit the space given to us by Apple. That way it would be more clear, which (virtual) monitor to pick, if I want to test through the list of resolutions, say in RDM.app. Right now my display list looks a bit of a mess. If the dummy display names would automatically reflect the physical panel they are mirroring, things would already be more clear. This could perhaps serve as an interim enhancement?
Maybe BetterDummy could, over time, implement an RDM-style generous resolution list of its own, accessible via the Menu Bar? Another enhancement option. Apple's menu is very constrained for a long list. Integrating the menu into BetterDummy would also circumvent the UX problem of "which of these dummies matches with my main display", etc., you could make it clear in your own UI.
From there it'd be possible to build up towards auto-generating the mirrors for each detected physical panel and setting their parameters correctly.
Now, I don't know how viable that is, or if this even works like above. Just a thought after a day of experimenting with this. I think a 1000x more people should install this little helper tool!
from betterdisplay.
A related enhancement would be to auto-detect the docking/undocking operation and then proactively switch to a different "profile" of naming conventions. While docked, my laptop is in clamshell mode. The display doesn't show up in Display Preferences, rightly so. But when undocked, it's the only display that shows up, along with the dummy.
I don't know if "profiles" is the right way to think about it. But docking/undocking is a thing with laptops. I saw some other enhancements driving at this direction, but I think auto-setup and auto-naming plays a role in those other enhancements as well. These are somewhat interconnected I suppose.
from betterdisplay.
@vividfog, yes, by automation I mean something like this, I'd like to make the whole process seamless to the user as much as possible. I am not sure about popping a menu with a superlong resolution list is a good idea (BetterDummy creates so much resolutions in fine grained way), I think using a nice scaling slider would be more intuitive.
Automating connect/disconnect for the dummy associated with the physical display will of course be supported.
I really do hope that Apple will improve things significantly over time on the display support department for M1 especially as more and more pro users will switch to M1, demanding solutions. I guess BetterDummy will be obsolete sometime in the future (better sooner than later). The app is built upon the functionality of some private macOS frameworks that provide most of the low level stuff needed, so I think Apple engineers will not have any difficulty implementing much better built-in solutions with little effort (once their managers decide that this should be in the product roadmap :)).
from betterdisplay.
Interesting insight. Some thoughts on the slider approach:
It would be faster to use for sure. And it would leave generous screen estate to show the selected numbers, or parts of the range. Overall it sounds better to me than a dropdown. I'm just used to RDM.app, limited by it...
Since there are a lot of resolutions, the slider would have to be very big though, if it covers the whole range. At least in my case the useful resolutions are all in the middle of the full range, like a Gaussian distribution. I'd never drag it to either edge, except by accident. If the slider was too small, it'd probably be easy to overshoot by a lot, and hard to make an exact selection of "2016 x 1134" from the middle.
Direct access to favorite resolutions would then be a useful if not necessary complement to that. Some kind of shortlist approach.
Or maybe even a "favorite range" ... initially fixing the slider to move from (something like) 1200 x 720 HiDPI ..... 3232 x 1818 HiDPI only. That'd increase the accuracy of a quick selection. Those example numbers are from/for a 5k display.
Maybe it should by default offer the "Looks like" range that Apple itself offers to those displays. I think that range generally already covers the usable range of resolutions for a given screen. But BetterDummy would provide 10x more granularity to choose from, and every result would be HiDPI. Add a checkbox "Show all" and that could revert to a big dropdown to cover the rare edge cases... or it could just extend the slider range to the full 800 x 450 ....... 6976 x 3924.
Resolution change in M1 is pretty fast. I'd love to see how the slider behaves, if it would indeed be switching the resolution in real time. If it's fast enough, it'd look sweet. But if the window containing the slider itself moves during this resolution change, and the pointer overshoots to the edge every time, then yeah, an explicit Apply is required. 😅
from betterdisplay.
There will be a nice menu to autoconfigure mirrors.
from betterdisplay.
This is generally done. Needs some testing as there are edge cases. Mirroring can be a bit complicated in macOS. The logic tries to figure out and restore all resolutions, restore the main display as it is logical so everything should work out well without too much manual adjustments afterwards.
from betterdisplay.
Related Issues (20)
- Auto brightness not working on login screen HOT 1
- Input Source DDC not working - LG 27GP950-B HOT 1
- Add HTTP based integration with customizable port HOT 1
- Localization: Swedish HOT 16
- MacOS forgets display layout layout after wake HOT 3
- Add Custom SF Symbols Icon Set for Virtual Screens HOT 1
- Unlimited AirPlay (Sidecar and TV) Target for Extending, Screen Mirroring, Streaming HOT 1
- Display tag id and display UUID erroneously presented under a virtual screen in Settings/Displays
- Custom virtual screen icon color scheme looks inverted in the Settings page + not shown as main display app icon in the menu bar HOT 1
- Native Smooth Scaling resolution is gone after each startup/wake HOT 1
- Colorsync profile list update might crash the app (memory allocation issue) in v2.1.x
- There is a leading space in the Color Profile section of Display Information...
- App menu icon not updating immediately when it is set to match main display icon and the main display SF icon is changed
- App crashes when licensing is disabled in v2.1.x HOT 8
- Multi-destination screen streaming HOT 1
- Wallpaper looks zoomed (and normal while switching spaces with a swipe) - can somebody reproduce this? HOT 7
- Traditional command line integration (CLI) HOT 1
- Distributed Notification Center based integration possibility HOT 1
- Add option to hide app OSDs HOT 2
- Localization: Italian HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from betterdisplay.