Skip to content
MoreDisplays

Type to search.

Manual contents

Protection

After this page you will know which displays to protect, what happens when something fights back, and why turning it on takes effect on the next activation.

Last updated 22 August 2026

Remote desktop software renegotiates resolution on connect. A monitor waking from sleep drops to its default. A stray click in System Settings does the same. On a machine you reach only over the network, a resolution that changes by itself is a machine you cannot use.

A display marked protected in its group is put back.

Turning it on

Per display, inside a group. The switch sits beside the display’s mode in the group editor, and it is disabled until the group actually has a resolution to put back: a switch you can turn on that does nothing is worse than no switch.

mdctl protect physical:A1B2C3D4-5E6F-4071-8293-A4B5C6D7E8F9 on
Protecting "Studio Display" in "Home".

What it puts back

The whole arrangement, not the single mode.

A resolution change moves everything to the right of it. Restoring the size without restoring the origins leaves a desk that is half correct, and blames the app for it. So when a protected display has drifted, the group’s entire layout is re-applied.

What it does not do

It does not touch unprotected displays. Protection is per display, and off unless asked for. An app that fights the user for control of their own screen is worse than one that lets go.

It does not run when no group is active. There is nothing to compare against.

It does not create displays. A display that disappeared entirely is not drift, it is a missing display, and putting it back is what activating the group is for.

It concedes rather than fights

Five restores in twenty seconds is not a correction. It is two programs taking turns rewriting the framebuffer, and that is worse for you than either outcome on its own.

When that happens the engine stops, says so once in the log, and waits. It picks the argument up again the next time the group is activated, because that is you telling it what you want.

What the log says when it gives up
log show --predicate 'subsystem == "pro.moredisplays"' --last 5m | grep conceding
something keeps changing a protected display back; conceding until this group is activated again

Something else wanting the mode as badly as the group does is usually a KVM re-reading EDID, or a remote client renegotiating on every reconnect. The fix is in that other thing, and Remote clients says where the setting lives for the usual suspects.

Which displays are worth protecting

The ones something else has an opinion about. In practice that means attached monitors, because a virtual display is only ever changed by this app in the first place.

If a client keeps resizing your virtual display, protecting it will work, but turning off the client’s automatic resolution is the better fix: one of those stops the argument, the other wins it five times and then stops.

Next