Problems enabling HDR

Hyprland version
❯ hyprctl version
Hyprland 0.50.0 built from branch  at commit c4a4c341568944bd4fb9cd503558b2de602c0213  (version: bump to 0.50.0).
Date: Wed Jul 16 09:33:42 2025
Tag: v0.50.0, commits: 6279
built against:
 aquamarine 0.9.1
 hyprlang 0.6.3
 hyprutils 0.8.1
 hyprcursor 0.1.12
 hyprgraphics 0.1.5


no flags were set


output of hyprctl systeminfo -c
Hyprland 0.50.0 built from branch  at commit c4a4c341568944bd4fb9cd503558b2de602c0213  (version: bump to 0.50.0).
Date: Wed Jul 16 09:33:42 2025
Tag: v0.50.0, commits: 6279
built against:
 aquamarine 0.9.1
 hyprlang 0.6.3
 hyprutils 0.8.1
 hyprcursor 0.1.12
 hyprgraphics 0.1.5


no flags were set


System Information:
System name: Linux
Node name: SMPC
Release: 6.15.7-arch1-1
Version: #1 SMP PREEMPT_DYNAMIC Thu, 17 Jul 2025 21:05:29 +0000


GPU information: 
03:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 31 [Radeon RX 7900 XT/7900 XTX/7900 GRE/7900M] [1002:744c] (rev c8) (prog-if 00 [VGA controller])
15:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Raphael [1002:164e] (rev c9) (prog-if 00 [VGA controller])


os-release: NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues"
PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
LOGO=archlinux-logo


plugins:
  hy3 by outfoxxed ver 0.1

======Config-Start======


Config File: /home/smitropoulos/.config/hypr/hyprland.conf: Read Succeeded
#          ╭──────────────────────────────────────────────────────────╮
#          │                Set programs that you use                 │
#          ╰──────────────────────────────────────────────────────────╯

# See https://wiki.hyprland.org/Configuring/Keywords/ for more
$mod = SUPER
$terminal = kitty
$fileManager = nemo
$browser = brave
$menu = albert toggle
$lock_screen = hyprlock
$idler = hypridle

#          ╭──────────────────────────────────────────────────────────╮
#          │                     Monitor Configs                      │
#          ╰──────────────────────────────────────────────────────────╯
source = ~/.config/hypr/config/monitors.conf

#          ╭──────────────────────────────────────────────────────────╮
#          │                   Autostart background                   │
#          ╰──────────────────────────────────────────────────────────╯
source = ~/.config/hypr/config/autostart.conf

#          ╭──────────────────────────────────────────────────────────╮
#          │                         Settings                         │
#          ╰──────────────────────────────────────────────────────────╯
source = ~/.config/hypr/config/general.conf

#          ╭──────────────────────────────────────────────────────────╮
#          │                     Plugin settings                      │
#          ╰──────────────────────────────────────────────────────────╯
source = ~/.config/hypr/config/plugins.conf

#          ╭──────────────────────────────────────────────────────────╮
#          │                      basic keybinds                      │
#          ╰──────────────────────────────────────────────────────────╯
source = ~/.config/hypr/config/keybinds.conf

#          ╭──────────────────────────────────────────────────────────╮
#          │                        Workspaces                        │
#          ╰──────────────────────────────────────────────────────────╯
source = ~/.config/hypr/config/workspaces.conf

#          ╭──────────────────────────────────────────────────────────╮
#          │                       Window rules                       │
#          ╰──────────────────────────────────────────────────────────╯
source = ~/.config/hypr/config/rules.conf


Config File: /home/smitropoulos/.config/hypr/config/monitors.conf: Read Succeeded

#          ╭──────────────────────────────────────────────────────────╮
#          │                     Monitor Configs                      │
#          ╰──────────────────────────────────────────────────────────╯
# ─[ source https://wiki.hyprland.org/Configuring/Monitors/#general ]─────

$dell_monitor = desc:Dell Inc. DELL P2416D 07C536950FKU
$LG_monitor = desc:LG Electronics LG ULTRAGEAR 209MAMBFWE23
$AOC_monitor = desc:AOC Q27P1B GNXKBHA113837
$SAMSUNG_G8 = desc:Samsung Electric Company Odyssey G85SB H1AK500000
# $SAMSUNG_G8 = DP-1

$monitor_left = $LG_monitor
$monitor_center = $SAMSUNG_G8
$monitor_right = $monitor_center

monitorv2 {
    output = $monitor_left
    mode = 2560x1440@144
    transform = 3
    position = 0x0
    scale = 1
    bitdepth = 10
    # cm = hdr
    vrr = 3
    supports_wide_color = 1
    supports_hdr = 1
    sdrbrightness = 1.15
    sdrsaturation = 1.0
    sdr_min_luminance = 0.005
    sdr_max_luminance = 200
    min_luminance = 0
    max_luminance = 1000
    max_avg_luminance = 200
}

monitorv2 {
    output = $monitor_center
    mode = 3440x1440@175
    position = 1440x560
    scale = 1
    bitdepth = 10
    # cm = hdr
    vrr = 3
    supports_wide_color = 1
    supports_hdr = 1
    sdrbrightness = 1.15
    sdrsaturation = 1.0
    sdr_min_luminance = 0.005
    sdr_max_luminance = 200
    min_luminance = 0
    max_luminance = 1000
    max_avg_luminance = 200
}

# Default rule fallback
monitor = ,preferred,auto,auto

# experimental {
#   xx_color_management_v4 = true
# }

render {
  cm_fs_passthrough = 0
  cm_auto_hdr = 2
}


Config File: /home/smitropoulos/.config/hypr/config/autostart.conf: Read Succeeded
#          ╭──────────────────────────────────────────────────────────╮
#          │                   Autostart background                   │
#          ╰──────────────────────────────────────────────────────────╯
exec-once = sleep 3 && hyprpm reload -n

exec-once = $terminal --title kitty_scratchpad

exec-once = wl-paste --type text --watch cliphist store #Stores only text data
exec-once = wl-paste --type image --watch cliphist store #Stores only image data

exec-once = albert
exec-once = dunst
exec-once = systemctl --user start hyprpolkitagent
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP

exec-once =  $idler
exec-once = sway-audio-idle-inhibit &
# Auto mounting devices
exec-once = udiskie -s
# wallpapers
exec-once = systemctl --user start hyprpaper
# Night-shift
exec-once = gammastep
exec-once = easyeffects --gapplication-service
# Tmux envs
exec-once = sleep 3 && ~/.config/hypr/import_env.sh tmux && ~/.config/hypr/import_env.sh system

exec-once = waybar -c /home/smitropoulos/.config/waybar/config_hyprland

#          ╭──────────────────────────────────────────────────────────╮
#          │                 Autostart on workspaces                  │
#          ╰──────────────────────────────────────────────────────────╯
exec-once = [workspace 1 silent] $browser
exec-once = [workspace 2 silent] kitty --hold sh -c "tmux attach-session -t 0 || tmux"
exec-once = [workspace 4 silent] $fileManager
exec-once = [workspace 5 silent] steam
exec-once = [workspace 9 silent] thunderbird
exec-once = [workspace 10 silent] spotify-launcher


Config File: /home/smitropoulos/.config/hypr/config/general.conf: Read Succeeded
#          ╭──────────────────────────────────────────────────────────╮
#          │                     Cursor settings                      │
#          ╰──────────────────────────────────────────────────────────╯
#
env = HYPRCURSOR_THEME,capitaine-cursors-light
env = HYPRCURSOR_SIZE,24
env = XCURSOR_THEME,capitaine-cursors-light
env = XCURSOR_SIZE,24

#          ╭──────────────────────────────────────────────────────────╮
#          │                         Settings                         │
#          ╰──────────────────────────────────────────────────────────╯

general {
  gaps_in = 5
    gaps_out = 8
    border_size = 3
    col.active_border = rgba(16,183,127,0.5) rgba(99,178,184,0.5) rgba(130,89,156,0.5) 45deg
    col.inactive_border = rgba(110,115,141,0.5)

    layout = hy3
}

input {
  kb_layout = us, gr
    kb_options = grp:alt_shift_toggle

    repeat_delay = 190
    repeat_rate = 35

    sensitivity = 0

# 0 - Cursor movement will not change focus.
# 1 - Cursor movement will always change focus to the window under the cursor.
# 2 - Cursor focus will be detached from keyboard focus. Clicking on a window will move keyboard focus to that window.
# 3 - Cursor focus will be completely separate from keyboard focus. Clicking on a window will not change keyboard focus.
    follow_mouse = 1
    mouse_refocus = false
}

debug {
  error_position = 1
  disable_logs = false
}

misc {
  vrr = 0
    mouse_move_enables_dpms = true
    key_press_enables_dpms = true
    disable_splash_rendering = true
}

decoration {

    shadow {
    color = 0xff0f0f0f
    }

    rounding = 4
    blur {
      enabled = true
    }
}

animations {
  enabled = yes

    bezier = overshot, 0.25,0.9,0.1,1.1

    animation = windows, 1, 9, overshot
    animation = windowsOut, 1, 7, overshot, popin 80%
    animation = border, 1, 10, overshot
    animation = fade, 1, 7, overshot
    animation = workspaces, 1, 4, overshot, slidefadeavert
    animation = specialWorkspace, 1, 4, overshot, slidefadevert
}


Config File: /home/smitropoulos/.config/hypr/config/plugins.conf: Read Succeeded
plugin {
    hy3 {
        node_collapse_policy =1

        tabs {
            height = 24
	          padding = 4
	          render_text = true
            text_center = true
            text_height = 11

            # tab bar border width
            border_width = 1

            # active tab bar segment color
            col.active = rgba(16,185,129,0.6)
            col.active.border = rgba(16,185,129,0.1)

            # # urgent tab bar segment color
            col.urgent =  rgba(230,77,77,0.6)
            col.urgent.border =  rgba(230,77,77,0.9)

            # # inactive tab bar segment color
            col.inactive =  rgba(16,185,129,0.1)
            col.inactive.border =  rgba(16,185,129,0.1)

            # opacity multiplier for tabs
            # Applies to blur as well as the given colors.
            opacity = 0.65
        }

        autotile {
            enable = false
            trigger_width = 1000
            trigger_height = 1000
        }
    }
}



Config File: /home/smitropoulos/.config/hypr/config/keybinds.conf: Read Succeeded
#          ╭──────────────────────────────────────────────────────────╮
#          │                         Keybinds                         │
#          ╰──────────────────────────────────────────────────────────╯

# ─[ bar ]────────────────────────────────────────────────────────────────
bind = SUPER,M,exec,waybar -c /home/smitropoulos/.config/waybar/config_hyprland &
bind = SUPERSHIFT,M,exec,killall waybar

# ─[ resize binds ]───────────────────────────────────────────────────────
bindm = SUPER,mouse:272,movewindow
bindm = SUPER,mouse:273,resizewindow

bindn = , mouse:272, hy3:focustab, mouse
bindn = , mouse_down, hy3:focustab, l, require_hovered
bindn = , mouse_up, hy3:focustab, r, require_hovered

bind = SUPER,Q,hy3:killactive
bind = SUPERCTRLSHIFT,E,exec, uwsm stop
bind = SUPERSHIFT,space,togglefloating
bind = SUPER,space,exec,albert toggle
# bind = SUPER,space,exec,killall rofi > /dev/null 2>&1|| rofi -show combi -combi-modes "drun, run" -modes combi
bind = SUPERSHIFT,space,pseudo
bind = SUPER,F,fullscreen

# ─[ Screenshotting ]─────────────────────────────────────────────────────
bind = ,Print, exec, hyprshot --mode output --output-folder ~/Pictures/Screenshots/
bind = SHIFT, Print, exec, hyprshot --mode region --output-folder ~/Pictures/Screenshots/

# ─[ Kitty ]──────────────────────────────────────────────────────────────
bind = SUPER,RETURN,exec,$terminal
# bind=CTRLALT,T,exec,kitty -o 'font_size=13' --title ok_its_kitty
# bind=SUPER,t,exec,kitty --start-as=fullscreen -o 'font_size=18' --title all_is_kitty
# bind=SUPER,N,exec,nvim
# bind=SUPER,I,exec,kitty --title ok_its_kitty --hold nmtui
# bind=SUPER,Y,exec,kitty --title ok_its_kitty --hold yay

# ─[ Gaming ]───────────────────────────────────────────────────────────
bind = SUPER,F11,exec,~/.config/hypr/cursorlock.sh

# ─[ lock screen ]────────────────────────────────────────────────────────
bind = SUPER,escape,exec, pkill remmina;playerctl pause;sleep 1; $lock_screen
bind = SUPERSHIFT,escape,exec, systemctl suspend
bind = SUPER,X,exec, wlogout --protocol layer-shell

# ─[ Colorschemes ]─────────────────────────────────────────────────────
bind = SUPER,F2,exec, ~/scripts/utility/colorschemes/changeColorscheme.sh

# ─[ binds for workspaces ]───────────────────────────────────────────────
# ─[ focusing windows ]───────────────────────────────────────────────────
bind = SUPER,left,hy3:movefocus,l
bind = SUPER,right,hy3:movefocus,r
bind = SUPER,up,hy3:movefocus,u
bind = SUPER,down,hy3:movefocus,d
# vim-keybinds
bind = SUPER,h,hy3:movefocus,l
bind = SUPER,l,hy3:movefocus,r
bind = SUPER,k,hy3:movefocus,u
bind = SUPER,j,hy3:movefocus,d

# ─[ moving windows ]─────────────────────────────────────────────────────
bind = SUPERSHIFT,left,hy3:movewindow,l
bind = SUPERSHIFT,right,hy3:movewindow,r
bind = SUPERSHIFT,up,hy3:movewindow,u
bind = SUPERSHIFT,down,hy3:movewindow,d
# vim-keybinds
bind = SUPERSHIFT,h,hy3:movewindow,l
bind = SUPERSHIFT,l,hy3:movewindow,r
bind = SUPERSHIFT,k,hy3:movewindow,u
bind = SUPERSHIFT,j,hy3:movewindow,d

# ─[ workspaces ]─────────────────────────────────────────────────────────
# ─[ focusing other workspaces ]──────────────────────────────────────────
bind = SUPER,1,workspace,1
bind = SUPER,2,workspace,2
bind = SUPER,3,workspace,3
bind = SUPER,4,workspace,4
bind = SUPER,5,workspace,5
bind = SUPER,6,workspace,6
bind = SUPER,7,workspace,7
bind = SUPER,8,workspace,8
bind = SUPER,9,workspace,9
bind = SUPER,0,workspace,10

# ─[ Tabbed ]─────────────────────────────────────────────────────────────
bind = $mod, e, hy3:changegroup, opposite
bind = $mod, w, hy3:makegroup, tab
bind = $mod, a, hy3:changefocus, raise
bind = $mod+SHIFT, a, hy3:changefocus, lower

# ─[ moving windows to other workspaces ]─────────────────────────────────
bind = SUPERSHIFT,1,movetoworkspace,1
bind = SUPERSHIFT,2,movetoworkspace,2
bind = SUPERSHIFT,3,movetoworkspace,3
bind = SUPERSHIFT,4,movetoworkspace,4
bind = SUPERSHIFT,5,movetoworkspace,5
bind = SUPERSHIFT,6,movetoworkspace,6
bind = SUPERSHIFT,7,movetoworkspace,7
bind = SUPERSHIFT,8,movetoworkspace,8
bind = SUPERSHIFT,9,movetoworkspace,9
bind = SUPERSHIFT,0,movetoworkspace,10

# ─[ moving windows to other workspaces (silent) ]────────────────────────
bind = SUPERCTRL,1,movetoworkspacesilent,1
bind = SUPERCTRL,2,movetoworkspacesilent,2
bind = SUPERCTRL,3,movetoworkspacesilent,3
bind = SUPERCTRL,4,movetoworkspacesilent,4
bind = SUPERCTRL,5,movetoworkspacesilent,5
bind = SUPERCTRL,6,movetoworkspacesilent,6
bind = SUPERCTRL,7,movetoworkspacesilent,7
bind = SUPERCTRL,8,movetoworkspacesilent,8
bind = SUPERCTRL,9,movetoworkspacesilent,9
bind = SUPERCTRL,0,movetoworkspacesilent,10

# ─[ moving to other wokspace with mouse control ]────────────────────────
bind = SUPER,mouse_down,workspace,e-1
bind = SUPER,mouse_up,workspace,e+1

# ─[ simple movement between spaces ]─────────────────────────────────────
bind = SUPER,u,togglespecialworkspace
bind = SUPER,minus,movetoworkspace,special

# ─[ Audio ]──────────────────────────────────────────────────────────────
bind = ,XF86AudioPlay,exec,playerctl play-pause
bind = ,XF86AudioPrev,exec,playerctl previous
bind = ,XF86AudioNext,exec,playerctl next

bindl = ,XF86AudioMedia,exec,playerctl play-pause
bindl = ,XF86AudioStop,exec,playerctl stop

# Use pactl to adjust volume in PulseAudio.
bindle = ,XF86AudioRaiseVolume,exec, pactl set-sink-volume @DEFAULT_SINK@ +5%
bindle = ,XF86AudioLowerVolume,exec, pactl set-sink-volume @DEFAULT_SINK@ -5%
bindle = ,XF86AudioMute,exec, pactl set-sink-mute @DEFAULT_SINK@ toggle
bindle = ,XF86AudioMicMute,exec, pactl set-source-mute @DEFAULT_SOURCE@ toggle

# ─[ brightness ]─────────────────────────────────────────────────────────
bindle = ,XF86MonBrightnessUp,exec,brightnessctl set 5%+
bindle = ,XF86MonBrightnessDown,exec,brightnessctl set 5%-

#          ╭──────────────────────────────────────────────────────────╮
#          │                          Resize                          │
#          ╰──────────────────────────────────────────────────────────╯

# will switch to a submap called resize
bind = SUPER,R,submap,resize

# will start a submap called "resize"
submap = resize

# sets repeatable binds for resizing the active window
binde = ,L,resizeactive,40 0
binde = ,H,resizeactive,-40 0
binde = ,K,resizeactive,0 -40
binde = ,J,resizeactive,0 40

# use reset to go back to the global submap
bind = ,escape,submap,reset
bind = ,Return,submap,reset

# will reset the submap, meaning end the current one and return to the global one
submap = reset


Config File: /home/smitropoulos/.config/hypr/config/workspaces.conf: Read Succeeded
# ─[ Workspaces bindings ]────────────────────────────────────────────────

workspace = 1,monitor:$monitor_left,default:true
workspace = 2,monitor:$monitor_center,default:true
workspace = 3,monitor:$monitor_right,default:true

workspace = 4,monitor:$monitor_left
workspace = 5,monitor:$monitor_center
workspace = 6,monitor:$monitor_right

workspace = 7,monitor:$monitor_left
workspace = 8,monitor:$monitor_center
workspace = 9,monitor:$monitor_right

workspace = 10,monitor:$monitor_left


Config File: /home/smitropoulos/.config/hypr/config/rules.conf: Read Succeeded
#          ╭──────────────────────────────────────────────────────────╮
#          │                       Window rules                       │
#          ╰──────────────────────────────────────────────────────────╯

# ─[ Kitty on the scratchpad ]──────────────────────────────────────────
windowrulev2 = float, class:(kitty), title:(kitty_scratchpad)
windowrulev2 = workspace special silent,class:(kitty), title:(kitty_scratchpad)
windowrulev2 = center 1, class:(kitty), title:(kitty_scratchpad)
windowrulev2 = size 2928 1168, class:(kitty), title:(kitty_scratchpad)
windowrulev2 = monitor 0, class:(kitty), title:(kitty_scratchpad)

# ─[ Steam focus ]──────────────────────────────────────────────────────
# Steam do not steal focus
windowrulev2 = workspace 5 silent,class:(\bsteam\b)
windowrulev2 = noinitialfocus, class:(\bsteam\b)
windowrulev2 = minsize 1 1, title:^()$,class:^(steam)$
windowrulev2 = idleinhibit focus, class:(\bsteam\b)

windowrulev2 = tag +game, class:(steam_app_\d+)

# ─[ Battlenet focus ]──────────────────────────────────────────────────
$battle_net_class=battle\.net\..*
windowrulev2 = workspace 5 silent,class:($battle_net_class)
windowrulev2 = noinitialfocus, class:($battle_net_class)
windowrulev2 = suppressevent activatefocus, class:($battle_net_class)
windowrulev2 = tag +game, class:($battle_net_class)

$dota2_class=dota2
windowrulev2 = tag +game, class:($dota2_class)

# ─[ New e-mail float ]─────────────────────────────────────────────────
windowrulev2 = tag +floaters, class:(thunderbird)
windowrulev2 = tag +60s, class:(thunderbird)
windowrulev2 = workspace 9 silent,class:(thunderbird)

# ─[ Thunderbird only main no float ]───────────────────────────────────
windowrulev2 = tile, class:(thunderbird), title:(.*Mozilla.Thunderbird.*)
windowrulev2 = workspace 9 silent, class:(thunderbird), title:(.*Mozilla.Thunderbird.*)

# ─[ File popup float ]─────────────────────────────────────────────────
windowrulev2 = tag +floaters, class:(Xdg-desktop-portal.*)
windowrulev2 = tag +noeffects, class:(Xdg-desktop-portal.*)

$file_folder_str = Open|Select|Save .*Image[s]?.*|.*File[s]?.*|.*Folder[s]?.*|.*Document[s]?.*
windowrulev2 = tag +floaters, title:($file_folder_str)
windowrulev2 = tag +60s, title:($file_folder_str)

# ─[ KDEConnect float ]─────────────────────────────────────────────────

$kde_class_str=org.kde.kdeconnect.*
windowrulev2 = tag +floaters, class:($kde_class_str)
windowrulev2 = tag +60s, title:($kde_class_str)

# ─[ Polkit float ]─────────────────────────────────────────────────────
$polkit_class_str=org.kde.polkit.*
windowrulev2 = tag +floaters, class:($polkit_class_str)

# ─[ Gnome Apps float ]─────────────────────────────────────────────────
$gnome_class_str=org\.gnome\..*
windowrulev2 = tag +floaters, class:($gnome_class_str)

# ─[ Popups/menu items for e.g. chrome ]────────────────────────────────
windowrulev2 = noblur, floating:1, class:(^$), title:(^$)

# ─[ Albert rules floating ]────────────────────────────────────────────
windowrulev2 = center, floating:1, class:(albert)
windowrulev2 = dimaround, floating:1, class:(albert)

# ─[ Hyprland Picker ]──────────────────────────────────────────────────
$hyprland_share_picker_class_str=hyprland-share-picker
windowrulev2 = tag +floaters, class:($hyprland_share_picker_class_str)
windowrulev2 = tag +60s, class:($hyprland_share_picker_class_str)

# ─[ Pavu ]─────────────────────────────────────────────────────────────
$pavucontrol_class_str=org.pulseaudio.pavucontrol
windowrulev2 = tag +floaters, class:($pavucontrol_class_str), title:(Volume Control)
windowrulev2 = tag +60s, class:($pavucontrol_class_str)

# ─[ OnlyOffice ]───────────────────────────────────────────────────────
$only_office_class_str=DesktopEditors
windowrulev2 = tag +floaters, class:($only_office_class_str)


# ─[ Fullscreen ]───────────────────────────────────────────────────────
windowrulev2 = idleinhibit focus, class:.*, fullscreen:1

# ─[ Tag rules ]────────────────────────────────────────────────────────


#          ┌                                                          ┐
#          │            This section should be in the end             │
#          └                                                          ┘

# general floaters
windowrulev2 = float, tag:floaters
windowrulev2 = center, tag:floaters
windowrulev2 = dimaround, tag:floaters
# noeffects
windowrulev2 = noblur, tag:noeffects
windowrulev2 = noborder, tag:noeffects
windowrulev2 = noshadow, tag:noeffects
# 60 percents
windowrulev2 = size 60%, tag:60s
# Games
windowrulev2 = float, tag:game
windowrulev2 = monitor 0, tag:game
windowrulev2 = center, tag:game
windowrulev2 = minsize 1 1, tag:game
windowrulev2 = immediate, tag:game
windowrulev2 = noblur, tag:game
windowrulev2 = noborder, tag:game
windowrulev2 = nodim, tag:game
windowrulev2 = noshadow, tag:game
windowrulev2 = noanim, tag:game
windowrulev2 = workspace 5 silent, tag:game

======Config-End========

Describe your issue / feature…

Hello there,

Coming from Color management support · Issue #9064 · hyprwm/Hyprland · GitHub, I am creating a new discussion on this!

I am trying to enable HDR and automatic HDR on games running on steam.
I have tried multiple games, naming a few:

  • Sniper elite 5 / resistance.
  • Baldur’s Gate 3
  • Blair Witch (this runs natively on linux)
  • Red dead redemption 2
  • Clair obscur: Expedition 33

Running the games from Steam directly, forcing GE-Proton-latest from the compatibility tab, which would be version 10.10 atm with these settings:

ENABLE_HDR_WSI=1 PROTON_ENABLE_WAYLAND=1 PROTON_ENABLE_HDR=1 gamemoderun %command%
OR
PROTON_ENABLE_WAYLAND=1 PROTON_ENABLE_HDR=1 gamemoderun %command%

Running

❯ paru -Qe mesa
mesa 1:25.1.6-1

My monitor settings in HL:

monitorv2 {
    output = $monitor_left
    mode = 2560x1440@144
    transform = 3
    position = 0x0
    scale = 1
    bitdepth = 10
    # cm = hdr
    vrr = 3
    supports_wide_color = 1
    supports_hdr = 1
    sdrbrightness = 1.15
    sdrsaturation = 1.0
    sdr_min_luminance = 0.005
    sdr_max_luminance = 200
    min_luminance = 0
    max_luminance = 1000
    max_avg_luminance = 200
}

monitorv2 {
    output = $monitor_center
    mode = 3440x1440@175
    position = 1440x560
    scale = 1
    bitdepth = 10
    # cm = hdr
    vrr = 3
    supports_wide_color = 1
    supports_hdr = 1
    sdrbrightness = 1.15
    sdrsaturation = 1.0
    sdr_min_luminance = 0.005
    sdr_max_luminance = 200
    min_luminance = 0
    max_luminance = 1000
    max_avg_luminance = 200
}

# Default rule fallback
monitor = ,preferred,auto,auto

# experimental {
#   xx_color_management_v4 = true
# }

render {
  cm_fs_passthrough = 0
  cm_auto_hdr = 2
}

Even when I enable the HDR in the monitor settings above, the games either do not have the HDR button enabled (it’s grey’ed out), or the HDR button is completely absent.

I am not sure if this is even the correct way to actually run the games, maybe I am doing something else wrong?

EDIT:
Forgot to mention, auto_hdr does not kick off for me, meaning my monitor does not automatically go into HDR mode

I don’t speak HDR, but ujin said:

it’s either a config issue, a hw issue or scRGB hdr. there are lots of env vars that work a bit differently with different proton versions. I just put all of them together. probably DXVK_HDR is missing (it works both for dxvk and vkd3d). DXVK_HDR=1 should make the game think that hdr is supported. it can be overridden by some other stuff though. ENABLE_HDR_WSI=1 shouldn’t be needed with mesa.
the easiest way to test is WAYLAND_DEBUG=1. in most cases it’ll either show that the cm proto isn’t used. in some cases it’ll be srgb primaries with ext linear tf which means scRGB. scRGB needs 11084 for correct processing and 11000 to trigger auto hdr (internal fp16 might not be needed if it goes straight from the client’s fp16 to our hdr10 pq)

Should I be posting these somewhere that Ujin can see them?

ujin can see this post he just doesn’t feel like making an account it seems to reply :P

Cool, I just don’t wanna bother you being the middle man :smiley:

With DXVK_HDR=1 I fooled BG3 to actually go into HDR mode and the auto HDR worked fine. Enabling WAYLAND_DEBUG as well I can see entries like

[ 923135.029] wl_pointer#32.frame()
[ 923135.031] xdg_surface#40.configure(4152)
[ 923150.947]  -> wl_subsurface#49.set_position(0, 0)
[ 923150.956]  -> wl_subsurface#49.place_above(wl_surface#3)
[ 923150.958]  -> wp_viewport#48.set_destination(3440, 1440)
[ 923150.961]  -> wl_surface#3.commit()
[ 923395.054] wp_color_management_output_v1#24.image_description_changed()
[ 923395.054] wp_color_management_output_v1#24.image_description_changed()
[ 923395.059] wp_color_management_output_v1#24.image_description_changed()
[ 923395.064]  -> wp_image_description_v1#26.destroy()
[ 923395.064]  -> wp_image_description_v1#26.destroy()
[ 923395.063] {Display Queue} wl_display#1.delete_id(123)
[ 923395.067]  -> wp_color_management_output_v1#24.get_image_description(new id wp_image_description_v1#40)
[ 923395.068]  -> wp_color_management_output_v1#24.get_image_description(new id wp_image_description_v1#56)
[ 923395.067]  -> wp_image_description_v1#26.destroy()
[ 923395.069]  -> wp_image_description_v1#40.get_information(new id wp_image_description_info_v1#25)
[ 923395.070]  -> wp_image_description_v1#56.get_information(new id wp_image_description_info_v1#25)
[ 923395.070] wp_color_management_output_v1#24.image_description_changed()
[ 923395.071]  -> wp_color_management_output_v1#24.get_image_description(new id wp_image_description_v1#43)
[ 923395.074]  -> wp_image_description_v1#43.get_information(new id wp_image_description_info_v1#25)
[ 923395.075]  -> wp_image_description_v1#26.destroy()
[ 923395.079]  -> wp_color_management_output_v1#24.get_image_description(new id wp_image_description_v1#108)

and

[ 918736.712] {Display Queue} wl_display#1.delete_id(103)
[ 918736.714] {mesa vk display queue} wp_color_manager_v1#98.supported_feature(1)
[ 918736.716] {mesa vk display queue} wp_color_manager_v1#98.supported_feature(2)
[ 918736.717] {mesa vk display queue} wp_color_manager_v1#98.supported_feature(4)
[ 918736.718] {mesa vk display queue} wp_color_manager_v1#98.supported_primaries_named(1)
[ 918736.720] {mesa vk display queue} wp_color_manager_v1#98.supported_primaries_named(6)
[ 918736.721] {mesa vk display queue} wp_color_manager_v1#98.supported_primaries_named(2)
[ 918736.723] {mesa vk display queue} wp_color_manager_v1#98.supported_primaries_named(3)
[ 918736.725] {mesa vk display queue} wp_color_manager_v1#98.supported_primaries_named(4)
[ 918736.726] {mesa vk display queue} wp_color_manager_v1#98.supported_primaries_named(5)
[ 918736.727] {mesa vk display queue} wp_color_manager_v1#98.supported_primaries_named(8)
[ 918736.730] {mesa vk display queue} wp_color_manager_v1#98.supported_primaries_named(9)
[ 918736.731] {mesa vk display queue} wp_color_manager_v1#98.supported_primaries_named(10)
[ 918736.734] {mesa vk display queue} wp_color_manager_v1#98.supported_tf_named(9)
[ 918736.735] {mesa vk display queue} wp_color_manager_v1#98.supported_tf_named(2)
[ 918736.738] {mesa vk display queue} wp_color_manager_v1#98.supported_tf_named(3)
[ 918736.739] {mesa vk display queue} wp_color_manager_v1#98.supported_tf_named(5)
[ 918736.742] {mesa vk display queue} wp_color_manager_v1#98.supported_tf_named(11)
[ 918736.743] {mesa vk display queue} wp_color_manager_v1#98.supported_tf_named(13)
[ 918736.745] {mesa vk display queue} wp_color_manager_v1#98.supported_intent(0)
[ 918736.749] {mesa vk display queue} wp_color_manager_v1#98.done()

I would guess this is what I should see if it works. The thing is that both Sniper Elite and RDR2 have launchers; they do not launch directly. That would be an issue I would guess?

EDIT:

Checked if Sniper Elite changed behavior by just running the game directly, and it did not.

try launching the launcher with the env, or, export the env globally.

Hmm, I added

# HDR force on wayland and proton
env = DXVK_HDR,1
env = WAYLAND_DEBUG,1
env = PROTON_ENABLE_WAYLAND,1
env = PROTON_ENABLE_HDR,1

under my monitors and restarted, BG3 without any args runs HDR, Sniper Elite does not. I guess it is the game’s issue :man_shrugging:

i use Proton_EM available in protonplus. it makes things like HDR easy to handle. i only need “PROTON_ADD_CONFIG=wayland,ntsync DXVK_HDR=1 %command%” that’s it. auto_hdr i have not tryed yet - i’m not a friend of “auto”-things