From 5802e0dbef5a839e97076178ac0c5fd50e64fea0 Mon Sep 17 00:00:00 2001 From: ediblerope Date: Mon, 11 May 2026 10:18:49 +0100 Subject: [PATCH] hyprland: clean up frame pacing for smoother cursor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit allow_tearing was causing visible tearing during window drags, and misc.vrr=2 was set but never actually engaging — the G34WQCP doesn't advertise FreeSync on the 190 Hz OC mode. Both were feeding Hyprland's pacing logic bad signals. Drops allow_tearing + the matching immediate windowrules, sets vrr=0 explicitly, and pins cursor.no_hardware_cursors=0 to make sure the HW cursor plane is in use. Co-Authored-By: Claude Opus 4.7 --- settings/hyprland.nix | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/settings/hyprland.nix b/settings/hyprland.nix index 7452994..fcc9346 100644 --- a/settings/hyprland.nix +++ b/settings/hyprland.nix @@ -80,7 +80,6 @@ border_size = 2; layout = "dwindle"; resize_on_border = true; - allow_tearing = true; }; decoration = { @@ -131,16 +130,17 @@ disable_hyprland_logo = true; disable_splash_rendering = true; focus_on_activate = true; - vrr = 2; # 1 = on for fullscreen, 2 = always + # VRR off — the OC'd 190 Hz mode on the G34WQCP doesn't advertise + # FreeSync, so vrr=2 was set but never actually engaged. Leaving + # it set caused pacing weirdness; explicitly off keeps things + # honest. + vrr = 0; vfr = false; # keep compositor ticking, don't idle between frames }; - # Let tearing-tolerant fullscreen apps bypass vsync. allow_tearing - # above is the global gate; these rules opt specific apps in. - windowrulev2 = [ - "immediate, class:^(steam_app_.*)$" - "immediate, class:^(gamescope)$" - ]; + cursor = { + no_hardware_cursors = 0; # force HW cursor plane (AMD) + }; # Mirror the GNOME bindings so muscle memory carries over bind = [