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.94k stars 336 forks source link

Ability to easily create and switch display layout protection presets #382

Open waydabber opened 2 years ago

waydabber commented 2 years ago

MacOS stores the last saved layout for a given combination of active displays. This is great but sometimes it is annoying. Would not it be great to be able to save a specific display layout (display location, main/extended status for displays and mirroring) configuration and restore it as needed?

The function should be intelligent - if one or more of the displays are missing or not connected, the function still could restore the settings and adapt to the missing displays.

waydabber commented 2 years ago

Also, layouts could be set as preferred - so if a new display is connected or there is some change or during app startup BetterDummy would restore the preferred configuration - connecting a new display would not totally mess up the desktop layout anymore.

mbennoer commented 2 years ago

+1 for this, would be great to have this included in BetterDummy. My displays change the window layout nearly every time the external one sleeps, I currently cope with that by using the window manager Moom, which can save individual layouts and have them restored with a keyboard shortcut.

waydabber commented 2 years ago

This is definitely a priority on the todo list. My plan is to have the ability save these data as a profile to be recalled:

I'd like to make the various configurations available in a menu for quick access and also hotkey assignable. I'd also like to give the ability to self-recover if one or more displays are unavailable. Also there would be a hotkey to update the savedata for a configuration.

waydabber commented 2 years ago

Presets could be invoked via menu, hotkey or tied to applications and application window state (full screen or not). See this discussion: https://github.com/waydabber/BetterDisplay/discussions/817#discussioncomment-3331646

mankittens commented 2 years ago

I would love this feature. I'm trying out this application with a mix of my laptop, a TV, and a monitor, and while the configuration ability is amazing, my presets for arrangement, resolution, etc. are consistently forgotten. Given how much time it can take to dial these in, a way to quickly recover would be much appreciated and convert me into a paying customer!

waydabber commented 2 years ago

Yes, still on it, will get there eventually! :)

alex-popov-tech commented 1 year ago

Hey, just wanted to say thank you for such a great tool, and that M1 users could really use that feature especially when displaylist is not working anymore :)

Having your monitors layout messed up after sleep/restart/disconnect and need to arrange them manually every time is extremely annoying :(

waydabber commented 1 year ago

Right, this is continuously on my todo list but I am getting tangled up with all the other stuff that needs to be done. Will get there. But will not put a milestone on it anymore unless I actually I know I can finish it properly. :) The same with syncing which is an other major feature I want to do right.

ShravanSunder commented 1 year ago

Will this also impact arrangements of multimonitor. Sometimes when the monitor with better display is connected, it moves the laptop display around @waydabber

mikewolf1127 commented 1 year ago

+1

waydabber commented 1 year ago

Yes, the goal should be to restore multi-monitor arrangements if for some reason displays are mixed up.

matkoch commented 11 months ago

@waydabber do you know any workaround to automate switching the source of a mirror from one display to another?

waydabber commented 11 months ago

Yes, but it involves coding so that might not be very useful. When I finally add CLI support it should have commands eventually to manage mirroring.

matkoch commented 11 months ago

"coding" is fine :) can you give some more hints on that?

waydabber commented 11 months ago

Sure, take a look at https://developer.apple.com/documentation/coregraphics/1454531-cgconfiguredisplaymirrorofdispla and other associated functions. You can find a lot of code examples out there I think utilizing these.

timmystokes commented 3 months ago

Hi @waydabber - any updates on this feature request?

waydabber commented 3 months ago

You can configure display layout and protection under Groups - the layout protection will take effect on mode changes, fixing macOS moving displays around.

The preset part is not yet implemented - you can of course create "presets" using the various positioning commands of betterdisplaycli in a Shell Script type action in the macOS Shortcuts app.

waydabber commented 3 months ago

Note: display groups have activation policies so you can configure a group and layout protection to automatically activate depending on the displays connected. All this can be found and configured under Settings/Groups.