Skip to content

feat: add hints to HDR-dependent settings and remove HDR toggle - #44

Merged
ToRvaLDz merged 2 commits into
ToRvaLDz:mainfrom
Eclipse-Dominator:branch-remove-hdr-btn-hints
Aug 2, 2026
Merged

feat: add hints to HDR-dependent settings and remove HDR toggle#44
ToRvaLDz merged 2 commits into
ToRvaLDz:mainfrom
Eclipse-Dominator:branch-remove-hdr-btn-hints

Conversation

@Eclipse-Dominator

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

Copy link
Copy Markdown
Contributor

Fixes #41

Changes

1. Show "inactive" subtitle hint on HDR-dependent settings 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 hdr or hdredid. When CM is set to any other value, these rows now show an "inactive" subtitle with a tooltip explaining the settings may not apply — while remaining fully modifiable. (Hyprland's auto HDR setting can still make them relevant.)

image
  • properties_panel.py — Added _hdr_dependent_rows list collecting relevant widgets
  • properties_panel.py — Added _hdr_dependent_settings_hints sync method that sets subtitle + tooltip on each row
  • 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

This was chosen as an alternative to the solution offered in #43 due to the presence of hyprland config like cm_auto_hdr which automatically changes color management profile to hdr when in fullscreen application. Thus, full dimming felt to intrusive. Thus this offers an alternative solution to #43.

@ToRvaLDz

ToRvaLDz commented Aug 2, 2026

Copy link
Copy Markdown
Owner

Thank you for this, and for taking the time to work through both approaches, the write-up in each PR made the trade-off easy to follow. Sorry for the long delay in getting to it.

Going with this one over #43: keeping the fields fully legible and explaining why they're inactive via the subtitle + tooltip is less intrusive than full dimming, and it lines up with your own reasoning about cm_auto_hdr. Merging now; closing #43 as the alternative.

@ToRvaLDz
ToRvaLDz merged commit 98eae72 into ToRvaLDz:main Aug 2, 2026
11 checks passed
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