When I launch a full screen HDR app (mpv, for example) while I have bitdepth 10, hyprland doesn't revert back to SDR when app is exited or full screen is exited, leaving an insanely bright display

Hyprland version
Hyprland 0.54.1 built from branch v0.54.1 at commit 4b07770b9ef1cceb2e6f56d33538aaffb9186b9c clean ([gha] Nix: update inputs).
Date: Tue Mar 3 21:06:41 2026
Tag: v0.54.1, commits: 6979

Libraries:
Hyprgraphics: built against 0.5.0, system has 0.5.0
Hyprutils: built against 0.11.0, system has 0.11.0
Hyprcursor: built against 0.1.13, system has 0.1.13
Hyprlang: built against 0.6.8, system has 0.6.8
Aquamarine: built against 0.10.0, system has 0.10.0

Version ABI string: 4b07770b9ef1cceb2e6f56d33538aaffb9186b9c_aq_0.10_hu_0.11_hg_0.5_hc_0.1_hlg_0.6
no flags were set

Describe your issue / feature…

If I start mpv with an hdr movie in full screen mode, my monitor switches to HDR. This is good.

However, if I exit fullscreen mode or kill the app, it stays in hdr mode with extreme brightness.

Monitor config:

monitorv2 {
  output = DP-1
  mode = 2560x1440@144
  vrr = 3
  bitdepth = 10
  cm = auto
}

If I comment out the bitdepth, it correctly reverts back to SDR mode when exiting fullscreen hdr app.

Monitor is AOC Q27G3XMN

Arch Linux

I am experiencing the same system behavior with HDR when bit depth 10 is enabled.

System specs:

  • Monitor: Aorus MO34WQC2
  • Graphics card: AMD RX 9070 XT
  • Hyprland: 0.54.2
  • OS: nixos

Config:

monitorv2 {
  output = DP-2
  mode = 3440x1440@240
  position = 0x0
  scale = 1
  bitdepth = 10
  cm = auto
}

render {
  cm_enabled = true
  cm_auto_hdr = 2
  cm_fs_passthrough = 2
  direct_scanout = 0
}

Ditto this, not just mpv however.

whether cm is set to auto or wide, fix only seems to be setting bit depth to 8 and then reloading the monitors config. auto hdr option, shader options or anything do not effect. Everything does work correctly if cm is set to srg (or presumably any that don’t require 10 bit depth)

Currently have a script that runs after playing HDR games that sets bit depth to 8 and then reloads my config.

Still using hyprlang for now, not ready for lua yet.

monitor=HDMI-A-1,[email protected],1920x0,1.5,cm,wide
monitor=DP-3,[email protected],0x0,1.0

#monitor=HDMI-A-1,disable
#monitor=DP-3,disable

misc {
vrr = 1
}
render {
cm_auto_hdr = 2 # 0=off, 1=auto, 2=always
}
xwayland {
force_zero_scaling = true
}