hyprwm / Hyprland

Hyprland is an independent, highly customizable, dynamic tiling Wayland compositor that doesn't sacrifice on its looks.
https://hyprland.org
BSD 3-Clause "New" or "Revised" License
20.7k stars 874 forks source link

Bad refresh rate in Steam with dual monitor setup #7068

Closed tomkoid closed 2 months ago

tomkoid commented 2 months ago

Regression?

No

System Info and Version

System/Version info ```sh Hyprland, built from branch at commit 918d8340afd652b011b937d29d5eea0be08467f5 (flake.lock: update). Date: Tue Jun 25 12:06:02 2024 Tag: v0.41.2, commits: 4886 flags: (if any) System Information: System name: Linux Node name: netherite Release: 6.6.42-1-lts Version: #1 SMP PREEMPT_DYNAMIC Thu, 25 Jul 2024 08:14:54 +0000 GPU information: 00:02.0 VGA compatible controller [0300]: Intel Corporation Alder Lake-UP3 GT2 [Iris Xe Graphics] [8086:46a8] (rev 0c) (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: ======Config-Start====== Config File: /home/tom/.config/hypr/hyprland.conf: Read Succeeded source=~/.config/hypr/mocha.conf # # Please note not all available settings / options are set here. # For a full list, see the wiki # # autogenerated = 1 # remove this line to remove the warning # See https://wiki.hyprland.org/Configuring/Monitors/ monitor=HDMI-A-1,1920x1080@120,0x0,1 # monitor=HDMI-A-1,1920x1080@60,1920x0,1 monitor=eDP-1,1920x1080@60,1920x0,1 # monitor=eDP-1,1920x1080@60,1920x0,1 # monitor=eDP-1,disable # monitor=,preferred,auto,1 # monitor=HDMI-A-1,1920x1080,1,0x0,mirror,eDP-1 # monitor=,preferred,auto,1 # monitor=HDMI-A-1,preferred,auto,1,mirror,eDP-1 # wsbind=5, eDP-1 # wsbind=4, HDMI-A-1 workspace = 1, monitor:HDMI-A-1,default:true workspace = 2, monitor:HDMI-A-1 workspace = 3, monitor:HDMI-A-1 workspace = 4, monitor:HDMI-A-1 workspace = 5, monitor:HDMI-A-1 workspace = 6, monitor:HDMI-A-1 workspace = 7, monitor:HDMI-A-1 workspace = 8, monitor:HDMI-A-1 workspace = 10, monitor:HDMI-A-1 # # windowrulev2 = monitor HDMI-A-1,class:(espdesktop) # See https://wiki.hyprland.org/Configuring/Keywords/ for more # Execute your favorite apps at launch exec-once = exec dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK # this sometimes fixes slow startup of GTK apps exec-once = waybar & /home/tom/Scripts/wallpaper.sh r & exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 & exec-once = mpd exec-once = udiskie & # auto mount usb drives exec-once = swayidle -w timeout 700 "/home/tom/Scripts/suspend.sh" timeout 8 'echo "idle" > /tmp/idle' resume 'echo "active" > /tmp/idle' & exec-once = sway-audio-idle-inhibit --dry-print-both & exec-once = swaync & exec-once = wlsunset -S 7:00 -s 21:00 & exec-once = wluma & exec-once = nm-applet & exec-once = /home/tom/.local/bin/audstopper & exec-once = xwaylandvideobridge & exec-once = /usr/lib/kdeconnectd & # exec-once = element-desktop --hidden & exec-once = /usr/bin/chromium --profile-directory=Default --app-id=ejhkdoiecgkmdpomoahkdihbcldkgjci & exec-once = systemctl --user start polkit-gnome-authentication-agent-1.service & exec-once = systemctl --user start graphical-session.target & # Source a file (multi-file configs) # source = ~/.config/hypr/myColors.conf # For all categories, see https://wiki.hyprland.org/Configuring/Variables/ input { kb_layout = us,cz kb_variant = ,qwerty kb_model = kb_options = grp:win_space_toggle kb_rules = follow_mouse = 1 # mouse_refocus = false touchpad { natural_scroll = yes scroll_factor = 0.5 } sensitivity = 0.0 # -1.0 - 1.0, 0 means no modification. # accel_profile = flat # flat, adaptive, linear, power, cubic, smooth, none repeat_delay = 210 repeat_rate = 40 } # UNCOMMENT THIS WHEN 0.36.0 IS OUT device { name = ELAN076D:00 04F3:3244 Touchpad # sensitivity = -2.5 natural_scroll = yes # accel_profile = adaptive } device { name = vgp-bms55-mouse sensitivity = 0 accel_profile = flat } device { name = logitech-usb-receiver-mouse sensitivity = 0.0 accel_profile = flat } # # COMMENT THIS WHEN 0.36.0 IS OUT # device:ELAN076D:00 04F3:3244 Touchpad { # sensitivity = 0.0 # natural_scroll = yes # accel_profile = adaptive # } # # # device:vgp-bms55-mouse { # sensitivity = 0 # accel_profile = flat # } # # # device:logitech-usb-receiver-mouse { # sensitivity = 0 # accel_profile = flat # } general { # See https://wiki.hyprland.org/Configuring/Variables/ for more gaps_in = 2 gaps_out = 0 border_size = 2 col.active_border = $mauve col.inactive_border = $lavender no_border_on_floating = false layout = master # allow_tearing = true } decoration { # See https://wiki.hyprland.org/Configuring/Variables/ for more blur { enabled = false } rounding = 5 drop_shadow = false shadow_range = 4 shadow_render_power = 3 col.shadow = rgba(1a1a1aee) } animations { enabled = yes # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more # bezier = myBezier, 0.05, 0.9, 0.1, 1.05 # animation = windows, 1, 4, myBezier # animation = windowsOut, 1, 3, default, popin 80% # animation = border, 1, 10, default # animation = fade, 1, 7, default # animation = workspaces, 1, 2, default # interesting animations bezier = linear, 0, 0, 1, 1 bezier = md3_standard, 0.2, 0, 0, 1 bezier = md3_decel, 0.05, 0.7, 0.1, 1 bezier = md3_accel, 0.3, 0, 0.8, 0.15 bezier = overshot, 0.05, 0.9, 0.1, 1.1 bezier = crazyshot, 0.1, 1.5, 0.76, 0.92 bezier = hyprnostretch, 0.05, 0.9, 0.1, 1.0 bezier = fluent_decel, 0.1, 1, 0, 1 bezier = easeInOutCirc, 0.85, 0, 0.15, 1 bezier = easeOutCirc, 0, 0.55, 0.45, 1 bezier = easeOutExpo, 0.16, 1, 0.3, 1 # Animation configs animation = windows, 1, 3, md3_decel, popin 60% animation = border, 1, 10, default animation = fade, 1, 2.5, md3_decel # animation = workspaces, 1, 3.5, md3_decel, slide animation = workspaces, 1, 3.5, easeOutExpo, slide # animation = workspaces, 1, 7, fluent_decel, slidefade 15% # animation = specialWorkspace, 1, 3, md3_decel, slidefadevert 15% animation = specialWorkspace, 1, 3, md3_decel, slidevert # bezier = overshot, 0.05, 0.9, 0.1, 1.05 # bezier = smoothOut, 0.36, 0, 0.66, -0.56 # bezier = smoothIn, 0.25, 1, 0.5, 1 # animation = windows, 1, 5, overshot, slide # animation = windowsOut, 1, 4, smoothOut, slide # animation = windowsMove, 1, 4, default # animation = border, 1, 10, default # animation = fade, 1, 10, smoothIn # animation = fadeDim, 1, 10, smoothIn # animation = workspaces, 1, 6, default } dwindle { # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below preserve_split = yes # you probably want this } master { # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more # new_is_master = false } gestures { # See https://wiki.hyprland.org/Configuring/Variables/ for more workspace_swipe = on } misc { disable_hyprland_logo = yes # suppress_portal_warnings = true animate_manual_resizes = true vfr = true enable_swallow = true swallow_regex = ^(Alacritty|kitty|footclient|org.wezfurlong.wezterm)$ } debug { disable_logs = false } xwayland { force_zero_scaling = true } # Example per-device config # See https://wiki.hyprland.org/Configuring/Keywords/#executing for more #device { # name = epic mouse V1 # sensitivity = 1.0 #} # Example windowrule v1 # windowrule = float, ^(kitty)$ # Example windowrule v2 # windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more windowrule = float, file_progress windowrule = float, confirm windowrule = float, dialog windowrule = float, download windowrule = float, notification windowrule = float, error windowrule = float, splash windowrule = float, confirmreset # Steam fixes windowrulev2 = stayfocused, title:^()$,class:^(steam)$ windowrulev2 = minsize 1 1, title:^()$,class:^(steam)$ # Current web browser to launch # $webBrowser = "chromium" $webBrowser = "chromium" $terminal = "wezterm" # See https://wiki.hyprland.org/Configuring/Keywords/ for more $mainMod = SUPER # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more #bind = $mainMod, RETURN, exec, wezterm start # bind = $mainMod, RETURN, exec, kitty bind = $mainMod, RETURN, exec, $terminal bind = $mainMod SHIFT, C, killactive, bind = $mainMod SHIFT, Q, exit, bind = $mainMod, E, exec, dolphin bind = $mainMod, V, togglefloating, bind = $mainMod SHIFT, RETURN, exec, fuzzel bind = $mainMod SHIFT, B, exec, $webBrowser bind = $mainMod, P, pseudo, # dwindle bind = $mainMod, J, togglesplit, # dwindle bind = $mainMod, F, fullscreen, 1 # toggle fullscreen bind = $mainMod SHIFT, F, fullscreen # toggle mega fullscreen # Move focus with mainMod + arrow keys bind = $mainMod, left, movefocus, l bind = $mainMod, right, movefocus, r bind = $mainMod, up, movefocus, u bind = $mainMod, down, movefocus, d bind = $mainMod, h, movefocus, l bind = $mainMod, l, movefocus, r bind = $mainMod, k, movefocus, u bind = $mainMod, j, movefocus, d # Switch workspaces with mainMod + [0-9] bind = $mainMod, 1, workspace, 1 bind = $mainMod, 2, workspace, 2 bind = $mainMod, 3, workspace, 3 bind = $mainMod, 4, workspace, 4 bind = $mainMod, 5, workspace, 5 bind = $mainMod, 6, workspace, 6 bind = $mainMod, 7, workspace, 7 bind = $mainMod, 8, workspace, 8 bind = $mainMod, 9, workspace, 9 bind = $mainMod, 0, workspace, 10 # Move active window to a workspace with mainMod + SHIFT + [0-9] bind = $mainMod SHIFT, 1, movetoworkspace, 1 bind = $mainMod SHIFT, 2, movetoworkspace, 2 bind = $mainMod SHIFT, 3, movetoworkspace, 3 bind = $mainMod SHIFT, 4, movetoworkspace, 4 bind = $mainMod SHIFT, 5, movetoworkspace, 5 bind = $mainMod SHIFT, 6, movetoworkspace, 6 bind = $mainMod SHIFT, 7, movetoworkspace, 7 bind = $mainMod SHIFT, 8, movetoworkspace, 8 bind = $mainMod SHIFT, 9, movetoworkspace, 9 bind = $mainMod SHIFT, 0, movetoworkspace, 10 # Brightness bind = ,XF86MonBrightnessUp, exec, brightnessctl s +10% bind = ,XF86MonBrightnessDown, exec, brightnessctl s 10%- # Switch keyboard layout # bind = $mainMod, space, exec, ~/Scripts/switchkeyboard-hyprland.sh # Locking bind = $mainMod SHIFT, L, exec, hyprlock # Sound bind = ,XF86AudioRaiseVolume, exec, pamixer -i 5 bind = ,XF86AudioLowerVolume, exec, pamixer -d 5 bind = ,XF86AudioMute, exec, pamixer -t bind = ,XF86AudioMicMute, exec, wpctl set-mute 72 toggle bind = $mainMod, m, exec, ~/Scripts/mute.sh # quick mute bind = SUPER SHIFT, W, exec, killall -SIGUSR2 waybar # Reload Waybar # █▀▄▀█ █▀█ █░█ █▀▀ # █░▀░█ █▄█ ▀▄▀ ██▄ bind = $mainMod SHIFT, left, movewindow, l bind = $mainMod SHIFT, right, movewindow, r bind = $mainMod SHIFT, up, movewindow, u bind = $mainMod SHIFT, down, movewindow, d # █▀█ █▀▀ █▀ █ ▀█ █▀▀ # █▀▄ ██▄ ▄█ █ █▄ ██▄ bind = $mainMod CTRL, left, resizeactive, -20 0 bind = $mainMod CTRL, right, resizeactive, 20 0 bind = $mainMod CTRL, up, resizeactive, 0 -20 bind = $mainMod CTRL, down, resizeactive, 0 20 bind = $mainMod CTRL SHIFT, left, movecurrentworkspacetomonitor, l bind = $mainMod CTRL SHIFT, right, movecurrentworkspacetomonitor, r # Scroll through existing workspaces with mainMod + scroll bind = $mainMod, mouse_down, workspace, e+1 bind = $mainMod, mouse_up, workspace, e-1 # Move/resize windows with mainMod + LMB/RMB and dragging bindm = $mainMod, mouse:272, movewindow bindm = $mainMod, mouse:273, resizewindow # cycle monitors bind = $mainMod ALT, h, focusmonitor, l bind = $mainMod ALT, l, focusmonitor, r # Virt Manager grabbing bind = $mainMod ALT, v, submap, clean submap = clean bind = $mainMod ALT, b, submap, reset submap = reset # Screenshot tool bind=,Print,exec,~/Scripts/wayscr.sh # Picker tool bind = $mainMod, p, exec, ~/Scripts/hyprpicker.sh # KeePassXC bind = $mainMod SHIFT, k, exec, ~/.config/bspwm/scripts/keepass.sh bind = $mainMod ALT, B, exec, /home/tom/Scripts/jbl-headphones.sh # XwaylandVideoBridge windowrulev2 = opacity 0.0 override 0.0 override,class:^(xwaylandvideobridge)$ windowrulev2 = noanim,class:^(xwaylandvideobridge)$ windowrulev2 = noinitialfocus,class:^(xwaylandvideobridge)$ windowrulev2 = maxsize 1 1,class:^(xwaylandvideobridge)$ windowrulev2 = noblur,class:^(xwaylandvideobridge)$ exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP Config File: /home/tom/.config/hypr/mocha.conf: Read Succeeded $rosewaterAlpha = f5e0dc $flamingoAlpha = f2cdcd $pinkAlpha = f5c2e7 $mauveAlpha = cba6f7 $redAlpha = f38ba8 $maroonAlpha = eba0ac $peachAlpha = fab387 $yellowAlpha = f9e2af $greenAlpha = a6e3a1 $tealAlpha = 94e2d5 $skyAlpha = 89dceb $sapphireAlpha = 74c7ec $blueAlpha = 89b4fa $lavenderAlpha = b4befe $textAlpha = cdd6f4 $subtext1Alpha = bac2de $subtext0Alpha = a6adc8 $overlay2Alpha = 9399b2 $overlay1Alpha = 7f849c $overlay0Alpha = 6c7086 $surface2Alpha = 585b70 $surface1Alpha = 45475a $surface0Alpha = 313244 $baseAlpha = 1e1e2e $mantleAlpha = 181825 $crustAlpha = 11111b $rosewater = 0xfff5e0dc $flamingo = 0xfff2cdcd $pink = 0xfff5c2e7 $mauve = 0xffcba6f7 $red = 0xfff38ba8 $maroon = 0xffeba0ac $peach = 0xfffab387 $yellow = 0xfff9e2af $green = 0xffa6e3a1 $teal = 0xff94e2d5 $sky = 0xff89dceb $sapphire = 0xff74c7ec $blue = 0xff89b4fa $lavender = 0xffb4befe $text = 0xffcdd6f4 $subtext1 = 0xffbac2de $subtext0 = 0xffa6adc8 $overlay2 = 0xff9399b2 $overlay1 = 0xff7f849c $overlay0 = 0xff6c7086 $surface2 = 0xff585b70 $surface1 = 0xff45475a $surface0 = 0xff313244 $base = 0xff1e1e2e $mantle = 0xff181825 $crust = 0xff11111b ======Config-End======== ```

Description

I'm experiencing an issue with my dual monitor setup, where certain applications (e.g., Steam and Brave by default) are capped at 60fps by default, even when the window is moved to the 120Hz monitor (HDMI-A-1). However, when I disable my laptop screen (eDP-1, 60Hz), these applications run smoothly at 120Hz.

It appears that when VSync is enabled, the suggested refresh rate is 60Hz, whereas disabling the laptop screen allows the suggested refresh rate to increase to 120Hz.

How to reproduce

Crash reports, logs, images, videos

No response

vaxerski commented 2 months ago

xwayland issue, set the primary monitor to your high refresh rate one with xrandr