Skip to content

display: support generic wlr-output-management-unstable-v1#1840

Open
ezemtsov wants to merge 1 commit intoAvengeMedia:masterfrom
ezemtsov:master
Open

display: support generic wlr-output-management-unstable-v1#1840
ezemtsov wants to merge 1 commit intoAvengeMedia:masterfrom
ezemtsov:master

Conversation

@ezemtsov
Copy link
Contributor

The display config UI only applied changes for compositors with a config-file backend (niri, hyprland, dwl). For any other compositor that supports wlr-output-management-unstable-v1 the "Apply Changes" button was silently a no-op.

Add WlrOutputService.applyOutputsConfig() as a high-level apply that mirrors the generateOutputsConfig() pattern of the existing services but applies directly via the protocol instead of writing a config file. Route the default case in backendWriteOutputsConfig() to it.

This change enables using dms-shell as a wayland compositor for emacs wayland manager (ewm).

The display config UI only applied changes for compositors with a
config-file backend (niri, hyprland, dwl).  For any other compositor
that supports wlr-output-management-unstable-v1 the "Apply Changes"
button was silently a no-op.

Add WlrOutputService.applyOutputsConfig() as a high-level apply that
mirrors the generateOutputsConfig() pattern of the existing services
but applies directly via the protocol instead of writing a config file.
Route the default case in backendWriteOutputsConfig() to it.

This enables using dms-shell as a wayland compositor for emacs wayland
manager (ewm).
@bbedward
Copy link
Collaborator

This is good, but the original reason to skip this was because of the potential risk in writing bad settings that could potentially damage displays (idk how possible it is exactly, but might need more oversight). And the secondary issue of persistence, that is the display settings won't be remembered at all. Would it make sense to have some memory and compare + apply settings at DMS startup (when settings are managed this way)

@ezemtsov
Copy link
Contributor Author

ezemtsov commented Mar 6, 2026

Is it expected that the persistence peoblems would be solved by a shell? A compositor could just memorize the last setup for a unique set of EDID in the xdg cache folder.

As to the safety concerns, how would user send a faulty configuration from UI. Outputs only support a predefined set of modes, it's not possible to my knowledge to force them to work beyond their capacity.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants