Coder Social home page Coder Social logo

Comments (10)

waydabber avatar waydabber commented on May 14, 2024 1

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.

joevt avatar joevt commented on May 14, 2024

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.

waydabber avatar waydabber commented on May 14, 2024

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.

waydabber avatar waydabber commented on May 14, 2024

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.

vividfog avatar vividfog commented on May 14, 2024

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.

vividfog avatar vividfog commented on May 14, 2024

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.

waydabber avatar waydabber commented on May 14, 2024

@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.

vividfog avatar vividfog commented on May 14, 2024

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.

waydabber avatar waydabber commented on May 14, 2024

There will be a nice menu to autoconfigure mirrors.

Screen Shot 2021-12-05 at 21 39 06

from betterdisplay.

waydabber avatar waydabber commented on May 14, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.