Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make Swap Position compatible with Layout Protection #3758

Open
Jip-Hop opened this issue Dec 8, 2024 · 7 comments
Open

Make Swap Position compatible with Layout Protection #3758

Jip-Hop opened this issue Dec 8, 2024 · 7 comments
Assignees
Labels
done All tasks are completed enhancement New feature or request internal pre-release Enable internal pre-releases under Settings/Applications/Updates
Milestone

Comments

@Jip-Hop
Copy link

Jip-Hop commented Dec 8, 2024

I'd like to protect the layout of my displays. However, I'm using PbP on my monitor and connect a single MacBook to both inputs of the monitor. This may cause the displays to be come misidentified and swapped. Fortunately there's the handy Swap Position button in the menubar. But swapping a display like this should also swap all the settings for these displays in Layout Protection, else the swap won't be effective.

Screenshot 2024-12-08 at 12 27 18 Screenshot 2024-12-08 at 12 27 52

Due to the above Layout Protection, clicking Swap Position does nothing.

@waydabber
Copy link
Owner

Hmm. Indeed. Might be complicated to make this work well.

@waydabber waydabber added the enhancement New feature or request label Dec 8, 2024
@waydabber waydabber changed the title Swap Position incompatible with Layout Protection Make Swap Position compatible with Layout Protection Dec 8, 2024
@Jip-Hop
Copy link
Author

Jip-Hop commented Dec 8, 2024

Probably I'm oversimplifying things, but wouldn't it work to swap the Stystem UUID's for both displays? I mean:

Before:

System UUID ABCD = Display 1
System UUID EFGH = Display 2

After:

System UUID ABCD = Display 2
System UUID EFGH = Display 1

Since Swap Position only applies to identical displays I can't immediately think of any unwanted side effects.

@waydabber
Copy link
Owner

The problem is that BetterDisplay may recognize the displays properly (depending on how the identification method is configured - for example if ioreg location is used), only macOS might mix them up - in this case it would be wrong to generally swap the displays (except for their positions). I think I will make it so that the displays are swapped when both displays use the default UUID identification - in which case if the system mixed them up, the app must be confused as well.

@waydabber waydabber self-assigned this Dec 11, 2024
@waydabber waydabber added done All tasks are completed unreleased Still baking in the oven labels Dec 11, 2024
@waydabber waydabber added this to the v3.2.2 milestone Dec 11, 2024
@waydabber
Copy link
Owner

I added a logic to swap the UUIDs of the two displays and remove them and let configuration redetect them. I am not sure how well it works though as I don't happen to have two identical displays to test. Let me know if you'd like to test the update and report back whether this works (or breaks everything horribly). :)

@waydabber
Copy link
Owner

Added this to the latest internal pre-release. Enable it under Settings/Applications/Updates/Pre-release and then Internal... Also do an update. Let me know if this does not work or what happens if you try it.

@waydabber waydabber added internal pre-release Enable internal pre-releases under Settings/Applications/Updates and removed unreleased Still baking in the oven labels Dec 11, 2024
@Jip-Hop
Copy link
Author

Jip-Hop commented Dec 12, 2024

This seems to work great when using System UUID match identification! I can now swap displays with layout protection enabled. Thanks a lot! It doesn't work with Basic + extended + location identification. I'm not testing the location identification method but I think it doesn't eliminate my screen mixup problem.

@waydabber
Copy link
Owner

Yep. Location identification does not work that well in some scenarios as the ioreg location can also move for identical connections. I swap the UUID only with this solution. 99.5% of users use the System UUID identification anyway.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
done All tasks are completed enhancement New feature or request internal pre-release Enable internal pre-releases under Settings/Applications/Updates
Projects
None yet
Development

No branches or pull requests

2 participants