Skip to content

feat: dim HDR-dependent settings and remove HDR toggle - #43

Closed
Eclipse-Dominator wants to merge 2 commits into
ToRvaLDz:mainfrom
Eclipse-Dominator:branch-remove-hdr-btn
Closed

feat: dim HDR-dependent settings and remove HDR toggle#43
Eclipse-Dominator wants to merge 2 commits into
ToRvaLDz:mainfrom
Eclipse-Dominator:branch-remove-hdr-btn

Conversation

@Eclipse-Dominator

@Eclipse-Dominator Eclipse-Dominator commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Fixes #41

Changes

1. Dim HDR-dependent controls when CM isn't HDR-capable

Controls under the HDR/EDID Override group (SDR EOTF, luminance fields, etc.) as well as some other settings only affect the visual output when Color Management is set to a potential HDR-capable preset (auto, hdr, or hdredid). They now get the dim-label CSS class when CM is set to any other value, indicating their values won't be relevant — while remaining modifiable. (auto is included because Hyprland have an auto hdr setting)

image
  • properties_panel.py — Added _hdr_dependent_rows list collecting relevant widgets
  • properties_panel.py — Added _set_rows_dimmed helper and _sync_hdr_dependent_setting_dimming sync method
  • Syncs on profile load (update_from_monitor) and on every property change (_on_changed)

2. Remove standalone HDR toggle

color_management = "hdr" already produces the same config output as the old hdr: true toggle. The standalone switch (_sw_hdr) was redundant with the Color Management dropdown and potentially confusing.

  • models.py — Removed hdr: bool from MonitorConfig
  • models.py — Simplified config output: cm = self.color_management (removed the ("hdr" if self.hdr else "") fallback in both legacy and Lua paths)
  • models.py — Added legacy migration in Profile.from_dict: profiles with "hdr": true and no explicit CM are auto-converted to color_management: "hdr" on load
  • properties_panel.py — Removed _sw_hdr widget creation, set_active, and get_active

Tests

Added tests/test_hdr_migration.py covering:

  • Legacy hdr: true without CM → color_management: "hdr"
  • Explicit CM takes priority over hdr: true
  • No hdr key → unchanged
  • hdr: false → unchanged
  • Round-trip preserves migrated value, hdr not present in serialized output
  • Multiple monitors migrate independently

For ux wise I feel that tooltips/hints could be add to address why they are dimmed and that changing cm to a hdr capable mode would resolve it. For users who never touched color mode and only used hdr toggles. This change should auto migrate existing profiles over but for creating new profiles, users who aren't sure of cm could be confused.

I have some considerations which is why I have yet to implement the tooltips. As of now none of the widget that is affect by this commit uses tooltips, so _set_rows_dimmed can have an optional field to include tooltips and remove it otherwise, but to account for potential future uses if something does have a preset tooltip, it would mean that dimming/undimming it would replace/removing the existing tooltips. The workaround would be to cache their original tooltip or using an append to the existing tooltips.

Alternative would be a toast that would be displayed once (per profile?/per session) when the user tried to change some of the dimmed field.

ZQL added 2 commits July 17, 2026 06:28
…pable

Collect HDR-dependent controls into _hdr_dependent_rows and dim them
via dim-label CSS class when Color Management is set to a value that
does not enable HDR output (i.e. not auto, hdr, or hdredid),
indicating their values won't be relevant.
Remove the hdr field from `MonitorConfig` — it was redundant with
setting `color_management = "hdr"` and served no purpose beyond the
toggle. Legacy profiles with `hdr: true` and no explicit CM preset
are auto-converted to `color_management: "hdr"` on load in
`Profile.from_dict`.
@Eclipse-Dominator Eclipse-Dominator changed the title Remove standalone HDR toggle in favor of Color Management preset + dim HDR-dependent settings feat: dim HDR-dependent settings and remove HDR toggle Jul 16, 2026
@Eclipse-Dominator
Eclipse-Dominator marked this pull request as draft July 17, 2026 00:25
@Eclipse-Dominator

Eclipse-Dominator commented Jul 17, 2026

Copy link
Copy Markdown
Contributor Author

Update:
I recalled cm_auto_hdr could convert to hdr even on sdr cm modes, which means the dimming of text might be a bit too intrusive from a UX standpoint.

I made a new PR #44, which uses hints over the row dimming to have a less intrusive UX (as an alternative approach). I think the other might overall be better than full row dimming approach here? Do check it out.

An alternative could be to just dim the text and not the controls and add the tooltip? Like what was doing in #44.

@ToRvaLDz

ToRvaLDz commented Aug 2, 2026

Copy link
Copy Markdown
Owner

Closing in favor of #44, which is the refined alternative you proposed here: subtitle + tooltip hints instead of full dimming, so the HDR-dependent fields stay legible and explain themselves. Thank you for both approaches, and sorry again for the delay.

@ToRvaLDz ToRvaLDz closed this Aug 2, 2026
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.

[UX/refactor] HDR/EDID Override section: redundant HDR toggle

2 participants