Border values: per model | per monitor option (#470 redesign) - #499
Merged
Conversation
Bezel borders are per-model by design (a property of the make/model), shared by all monitors of the same PnpCode — and the future online border database keys on the model. #470 wanted them per-monitor; instead of changing the default, add an option so users who want it can opt in without forcing triple-identical-screen users to enter the same values three times. - ILayoutOptions/LbmOptions: `BorderValues` ("PerModel" default | "PerMonitor"), persisted on the main registry key. - DisplayBorderOverride: a size decorator keeping width/height/position from the shared per-model size but taking the four borders from a per-monitor holder. - PhysicalMonitor: `EffectivePhysicalSize` (the Phase-2 geometry seam) is now reactive on the option — PerMonitor roots the chain at the override, else at the model. A `Borders` (DisplayBorders) holds the per-monitor values; a mirror keeps it aligned with the model while NOT in PerMonitor, so switching modes doesn't jump. - Persistence: PerMonitor borders load/save under the monitor key (Layouts\{id}\PhysicalMonitors\{Id}\Borders\*); PerModel keeps the existing per-model key untouched. Absent per-monitor key seeds from the model. - UI: a "Border values" choice card in the Layout options. Default is PerModel, so existing behaviour and stored values are unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
the per monitor part does not seem to work, when selecting the per monitor i should be able to customize the boarders even if they are the same model but i am unable to, editing a side of one monitor also changes the sides of the other just like per model. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacks on #498 (the geometry seam). GitHub will retarget this to
masteronce #498 merges.Redesign of #470. Bezel borders are per-model by design (a property of the make/model, shared by all monitors of the same PnpCode — and the planned online border DB keys on the model). Rather than change the default, this adds an option so users who want per-monitor borders can opt in, without forcing triple-identical-screen users to enter the same values three times.
Changes
BorderValuesoption ("PerModel"default |"PerMonitor"), persisted on the main key.DisplayBorderOverride: a size decorator keeping width/height/position from the shared per-model size but taking the four borders from a per-monitor holder.PhysicalMonitor.EffectivePhysicalSize(the Phase-2 seam) is now reactive on the option: PerMonitor roots geometry at the override, else at the model. ABordersholder carries the per-monitor values; a mirror keeps it aligned with the model while NOT in PerMonitor, so switching modes doesn't jump.Layouts\{id}\PhysicalMonitors\{Id}\Borders\*); PerModel keeps the existing per-model key untouched; absent per-monitor key seeds from the model.Default is PerModel → existing behaviour and stored values unchanged.
Needs runtime verification (two identical monitors)
Plan:
.claude/plans/border-values.md.🤖 Generated with Claude Code