hyprwm / Hyprland

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

Game Stuttering In Hogwarts Legacy #6359

Open DarkMoon1557 opened 1 month ago

DarkMoon1557 commented 1 month ago

System Info and Version

System/Version info ```sh Hyprland, built from branch pr-6268 at commit ca14b2d770b2f98465a73451bfffd2677633392a (wayland/core/dmabuf: move to new impl). Date: Fri Jun 7 15:59:37 2024 Tag: v0.40.0-159-gca14b2d7, commits: 4765 flags: (if any) System Information: System name: Linux Node name: dark-systemproductname Release: 6.9.3-zen1-1-zen Version: #1 ZEN SMP PREEMPT_DYNAMIC Fri, 31 May 2024 15:14:26 +0000 GPU information: 0a:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 22 [Radeon RX 6700/6700 XT/6750 XT / 6800M/6850M XT] [1002:73df] (rev c1) (prog-if 00 [VGA controller]) os-release: NAME="EndeavourOS" PRETTY_NAME="EndeavourOS" ID="endeavouros" ID_LIKE="arch" BUILD_ID=rolling ANSI_COLOR="38;2;23;147;209" HOME_URL="https://endeavouros.com" DOCUMENTATION_URL="https://discovery.endeavouros.com" SUPPORT_URL="https://forum.endeavouros.com" BUG_REPORT_URL="https://forum.endeavouros.com/c/general-system/endeavouros-installation" PRIVACY_POLICY_URL="https://endeavouros.com/privacy-policy-2" LOGO="endeavouros" plugins: ======Config-Start====== Config File: /home/dark/.config/hypr/hyprland.conf: Read Succeeded # This file sources other files in `hyprland` and `custom` folders # You wanna add your stuff in file in `custom` # Defaults source=~/.config/hypr/hyprland/env.conf source=~/.config/hypr/hyprland/execs.conf source=~/.config/hypr/hyprland/general.conf source=~/.config/hypr/hyprland/rules.conf source=~/.config/hypr/hyprland/colors.conf source=~/.config/hypr/hyprland/keybinds.conf # Custom source=~/.config/hypr/custom/env.conf source=~/.config/hypr/custom/execs.conf source=~/.config/hypr/custom/general.conf source=~/.config/hypr/custom/rules.conf source=~/.config/hypr/custom/keybinds.conf Config File: /home/dark/.config/hypr/hyprland/env.conf: Read Succeeded # ######### Input method ########## # See https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland env = QT_IM_MODULE, fcitx env = XMODIFIERS, @im=fcitx # env = GTK_IM_MODULE, wayland # Crashes electron apps in xwayland # env = GTK_IM_MODULE, fcitx # My Gtk apps no longer require this to work with fcitx5 hmm env = SDL_IM_MODULE, fcitx env = GLFW_IM_MODULE, ibus env = INPUT_METHOD, fcitx # ############ Themes ############# env = QT_QPA_PLATFORM, wayland env = QT_QPA_PLATFORMTHEME, qt5ct env = QT_STYLE_OVERRIDE,kvantum # env = WLR_NO_HARDWARE_CURSORS, 1 # ######## Screen tearing ######### # env = WLR_DRM_NO_ATOMIC, 1 # ############ Others ############# Config File: /home/dark/.config/hypr/hyprland/execs.conf: Read Succeeded # Bar, wallpaper exec-once = swww-daemon --format xrgb exec-once = /usr/lib/geoclue-2.0/demos/agent & gammastep exec-once = ags & # Input method exec-once = fcitx5 # Core components (authentication, lock screen, notification daemon) exec-once = gnome-keyring-daemon --start --components=secrets exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 || /usr/libexec/polkit-gnome-authentication-agent-1 exec-once = hypridle exec-once = dbus-update-activation-environment --all exec-once = sleep 1 && dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP # Some fix idk exec-once = hyprpm reload # Clipboard: history # exec-once = wl-paste --watch cliphist store & exec-once = wl-paste --type text --watch cliphist store exec-once = wl-paste --type image --watch cliphist store # Cursor exec-once = hyprctl setcursor Bibata-Modern-Classic 24 Config File: /home/dark/.config/hypr/hyprland/general.conf: Read Succeeded # MONITOR CONFIG monitor=,highrr,auto,1 monitor=DP-2,1920x1080@60,1080x200,1 monitor=DP-1,1920x1080@144,3000x0,1, vrr,0 monitor=DP-3,1920x1080@60,4920x-270,1,transform,1 # monitor=,addreserved, 0, 0, 0, 0 # Custom reserved area # HDMI port: mirror display. To see device name, use `hyprctl monitors` # monitor=HDMI-A-1,1920x1080@60,1920x0,1,mirror,eDP-1 input { # Keyboard: Add a layout and uncomment kb_options for Win+Space switching shortcut kb_layout = us,lt kb_options = grp:win_space_toggle numlock_by_default = true repeat_delay = 250 repeat_rate = 35 touchpad { natural_scroll = yes disable_while_typing = true clickfinger_behavior = true scroll_factor = 0.5 } special_fallthrough = true follow_mouse = 1 } binds { # focus_window_on_workspace_c# For Auto-run stuff see execs.confhange = true scroll_event_delay = 0 } gestures { workspace_swipe = true workspace_swipe_distance = 700 workspace_swipe_fingers = 4 workspace_swipe_cancel_ratio = 0.2 workspace_swipe_min_speed_to_force = 5 workspace_swipe_direction_lock = true workspace_swipe_direction_lock_threshold = 10 workspace_swipe_create_new = true } general { # Gaps and border gaps_in = 4 gaps_out = 5 gaps_workspaces = 50 border_size = 1 # Fallback colors col.active_border = rgba(0DB7D4FF) col.inactive_border = rgba(31313600) resize_on_border = true no_focus_fallback = true layout = dwindle #focus_to_other_workspaces = true # ahhhh i still haven't properly implemented this allow_tearing = false # some guy told me tearing might make things smoother idk } dwindle { preserve_split = true # no_gaps_when_only = 1 smart_split = false smart_resizing = false } decoration { rounding = 18 blur { enabled = true xray = true special = false new_optimizations = true size = 7 passes = 4 brightness = 1 noise = 0.01 contrast = 1 popups = true popups_ignorealpha = 0.6 } # Shadow drop_shadow = false shadow_ignore_window = true shadow_range = 20 shadow_offset = 0 2 shadow_render_power = 2 col.shadow = rgba(0000001A) # Shader # screen_shader = ~/.config/hypr/shaders/nothing.frag # screen_shader = ~/.config/hypr/shaders/vibrance.frag # Dim dim_inactive = false dim_strength = 0.1 dim_special = 0 } animations { enabled = true # Animation curves 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 = menu_decel, 0.1, 1, 0, 1 bezier = menu_accel, 0.38, 0.04, 1, 0.07 bezier = easeInOutCirc, 0.85, 0, 0.15, 1 bezier = easeOutCirc, 0, 0.55, 0.45, 1 bezier = easeOutExpo, 0.16, 1, 0.3, 1 bezier = softAcDecel, 0.26, 0.26, 0.15, 1 bezier = md2, 0.4, 0, 0.2, 1 # use with .2s duration # Animation configs animation = windows, 1, 3, md3_decel, popin 60% animation = windowsIn, 1, 3, md3_decel, popin 60% animation = windowsOut, 1, 3, md3_accel, popin 60% animation = border, 1, 10, default animation = fade, 1, 3, md3_decel # animation = layers, 1, 2, md3_decel, slide animation = layersIn, 1, 3, menu_decel, slide animation = layersOut, 1, 1.6, menu_accel animation = fadeLayersIn, 1, 3, menu_decel animation = fadeLayersOut, 1, 1.6, menu_accel animation = workspaces, 1, 7, menu_decel, slide # animation = workspaces, 1, 2.5, softAcDecel, slide # animation = workspaces, 1, 7, menu_decel, slidefade 15% # animation = specialWorkspace, 1, 3, md3_decel, slidefadevert 15% animation = specialWorkspace, 1, 3, md3_decel, slidevert } misc { vfr = 1 vrr = 1 # layers_hog_mouse_focus = true focus_on_activate = true animate_manual_resizes = false animate_mouse_windowdragging = false enable_swallow = false swallow_regex = (foot|kitty|allacritty|Alacritty) disable_hyprland_logo = true force_default_wallpaper = 0 new_window_takes_over_fullscreen = 2 } # Overview plugin { hyprexpo { columns = 3 gap_size = 5 bg_col = rgb(000000) workspace_method = first 1 # [center/first] [workspace] e.g. first 1 or center m+1 enable_gesture = false # laptop touchpad, 4 fingers gesture_distance = 300 # how far is the "max" gesture_positive = false } } Config File: /home/dark/.config/hypr/hyprland/rules.conf: Read Succeeded # ######## Window rules ######## windowrule = noblur,.* # windowrule = opacity 0.89 override 0.89 override, .* # Applies transparency to EVERY WINDOW windowrule = float, ^(blueberry.py)$ windowrule = float, ^(steam)$ windowrule = float, ^(guifetch)$ # FlafyDev/guifetch windowrulev2 = tile,class:(dev.warp.Warp) # Dialogs windowrule=float,title:^(Open File)(.*)$ windowrule=float,title:^(Select a File)(.*)$ windowrule=float,title:^(Choose wallpaper)(.*)$ windowrule=float,title:^(Open Folder)(.*)$ windowrule=float,title:^(Save As)(.*)$ windowrule=float,title:^(Library)(.*)$ # Tearing windowrule=immediate,.*\.exe windowrulev2=immediate,class:(steam_app) # No shadow for tiled windows windowrulev2 = noshadow,floating:0 # ######## Layer rules ######## layerrule = xray 1, .* # layerrule = noanim, .* layerrule = noanim, walker layerrule = noanim, selection layerrule = noanim, overview layerrule = noanim, anyrun layerrule = noanim, indicator.* layerrule = noanim, osk layerrule = noanim, hyprpicker layerrule = blur, shell:* layerrule = ignorealpha 0.6, shell:* layerrule = noanim, noanim layerrule = blur, gtk-layer-shell layerrule = ignorezero, gtk-layer-shell layerrule = blur, launcher layerrule = ignorealpha 0.5, launcher layerrule = blur, notifications layerrule = ignorealpha 0.69, notifications # ags layerrule = blur, session layerrule = blur, bar layerrule = ignorealpha 0.6, bar layerrule = blur, corner.* layerrule = ignorealpha 0.6, corner.* layerrule = blur, dock layerrule = ignorealpha 0.6, dock layerrule = blur, indicator.* layerrule = ignorealpha 0.6, indicator.* layerrule = blur, overview layerrule = ignorealpha 0.6, overview layerrule = blur, cheatsheet layerrule = ignorealpha 0.6, cheatsheet layerrule = blur, sideright layerrule = ignorealpha 0.6, sideright layerrule = blur, sideleft layerrule = ignorealpha 0.6, sideleft layerrule = blur, indicator* layerrule = ignorealpha 0.6, indicator* layerrule = blur, osk layerrule = ignorealpha 0.6, osk Config File: /home/dark/.config/hypr/hyprland/colors.conf: Read Succeeded # exec = export SLURP_ARGS='-d -c FFDAD4BB -b 673B3444 -s 00000000' general { col.active_border = rgba(F7DCDE39) col.inactive_border = rgba(A58A8D30) } misc { background_color = rgba(1D1011FF) } plugin { hyprbars { # Honestly idk if it works like css, but well, why not bar_text_font = Rubik, Geist, AR One Sans, Reddit Sans, Inter, Roboto, Ubuntu, Noto Sans, sans-serif bar_height = 35 bar_padding = 15 bar_button_padding = 10 bar_precedence_over_border = true bar_part_of_window = true bar_color = rgba(1D1011FF) col.text = rgba(F7DCDEFF) # example buttons (R -> L) # hyprbars-button = color, size, on-click hyprbars-button = rgb(F7DCDE), 13, 󰖭, hyprctl dispatch killactive hyprbars-button = rgb(F7DCDE), 13, 󰖯, hyprctl dispatch fullscreen 1 hyprbars-button = rgb(F7DCDE), 13, 󰖰, hyprctl dispatch movetoworkspacesilent special } } windowrulev2 = bordercolor rgba(FFB2BCAA) rgba(FFB2BC77),pinned:1 Config File: /home/dark/.config/hypr/hyprland/keybinds.conf: Read Succeeded # ################### It just works™ keybinds ################### # Volume bindl = Super ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle bindl = Alt ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle bindl = ,XF86AudioMute, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0% bindl = Super+Shift,M, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0% bindle=, XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+ bindle=, XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- # System-control bind = Control+Super, END, exec, shutdown now bind = Control+Super, L, exec, pkill -KILL -u dark # Brightness # Uncomment these if you can't get AGS to work #bindle=, XF86MonBrightnessUp, exec, brightnessctl set '12.75+' #bindle=, XF86MonBrightnessDown, exec, brightnessctl set '12.75-' # ################################### Applications ################################### # Apps: just normal apps bind = Super, Z, exec, Zed bind = Super, C, exec, code --password-store=gnome --enable-features=UseOzonePlatform --ozone-platform=wayland bind = Super, X, exec, foot # bind = Super, Return, exec, foot --override shell=fish bind = Super, G, exec, lutris bind = Super, E, exec, nautilus --new-window bind = Super+Alt, E, exec, thunar bind = Super, S, exec, signal-desktop bind = Super, B, exec, librewolf #bind = Control+Super, W, exec, thorium-browser --ozone-platform-hint=wayland --gtk-version=4 --ignore-gpu-blocklist --enable-features=TouchpadOverscrollHistoryNavigation --enable-wayland-ime #bind = Super, X, exec, gnome-text-editor --new-window bind = Super+Shift, W, exec, wps # Apps: Settings and config bind = Super, I, exec, XDG_CURRENT_DESKTOP="gnome" gnome-control-center bind = Control+Super, V, exec, pavucontrol bind = Control+Super+Shift, V, exec, easyeffects bind = Control+Shift, Escape, exec, gnome-system-monitor # Actions bind = Super, Period, exec, pkill fuzzel || ~/.local/bin/fuzzel-emoji bind = Super, Q, killactive, bind = Super+Alt, Space, togglefloating, bind = Shift+Super+Alt, Q, exec, hyprctl kill bind = Control+Shift+Alt, Delete, exec, pkill wlogout || wlogout -p layer-shell bind = Control+Shift+Alt+Super, Delete, exec, systemctl poweroff || loginctl poweroff # Screenshot, Record, OCR, Color picker, Clipboard history bind = Super+Shift+Alt, S, exec, grim -g "$(slurp)" - | swappy -f - bindl=,Print,exec,grim - | wl-copy bindl= Control,Print, exec, mkdir -p ~/Pictures/Screenshots && ~/.config/ags/scripts/grimblast.sh copysave screen ~/Pictures/Screenshots/Screenshot_"$(date '+%Y-%m-%d_%H.%M.%S')".png bind = Super+Shift, S, exec, ~/.config/ags/scripts/grimblast.sh --freeze copy area bind = Super+Alt, R, exec, ~/.config/ags/scripts/record-script.sh bind = Control+Alt, R, exec, ~/.config/ags/scripts/record-script.sh --fullscreen bind = Super+Shift+Alt, R, exec, ~/.config/ags/scripts/record-script.sh --fullscreen-sound bind = Super+Shift, C, exec, hyprpicker -a bind = Super, V, exec, pkill fuzzel || cliphist list | fuzzel --no-fuzzy --dmenu | cliphist decode | wl-copy # Text-to-image # Normal bind = Control+Super+Shift,S,exec,grim -g "$(slurp $SLURP_ARGS)" "tmp.png" && tesseract "tmp.png" - | wl-copy && rm "tmp.png" # English bind = Super+Shift,T,exec,grim -g "$(slurp $SLURP_ARGS)" "tmp.png" && tesseract -l eng "tmp.png" - | wl-copy && rm "tmp.png" # Japanese bind = Super+Shift,J,exec,grim -g "$(slurp $SLURP_ARGS)" "tmp.png" && tesseract -l jpn "tmp.png" - | wl-copy && rm "tmp.png" # Media bindl= Super+Shift, N, exec, playerctl next || playerctl position `bc <<< "100 * $(playerctl metadata mpris:length) / 1000000 / 100"` bindl= ,XF86AudioNext, exec, playerctl next || playerctl position `bc <<< "100 * $(playerctl metadata mpris:length) / 1000000 / 100"` bind = Super+Shift+Alt, mouse:275, exec, playerctl previous bind = Super+Shift+Alt, mouse:276, exec, playerctl next || playerctl position `bc <<< "100 * $(playerctl metadata mpris:length) / 1000000 / 100"` bindl= Super+Shift, B, exec, playerctl previous bindl= Super+Shift, P, exec, playerctl play-pause bindl= ,XF86AudioPlay, exec, playerctl play-pause # Lock screen bind = Super, L, exec, loginctl lock-session bind = Super+Shift, L, exec, loginctl lock-session bindl = Super+Shift, L, exec, sleep 0.1 && systemctl suspend || loginctl suspend # App launcher bind = Control+Super, Slash, exec, pkill anyrun || anyrun # ##################################### AGS keybinds ##################################### bindr = Control+Super, R, exec, killall ags ydotool; ags & bindr = Control+Super+Alt, R, exec, hyprctl reload; killall ags ydotool; ags & bind = Control+Super, T, exec, ~/.config/ags/scripts/color_generation/switchwall.sh bind = Control+Alt, Slash, exec, ags run-js 'cycleMode();' bindir = Super, Super_L, exec, ags -t 'overview' bind = Super, Tab, exec, ags -t 'overview' bind = Super, Slash, exec, for ((i=0; i<$(hyprctl monitors -j | jq length); i++)); do ags -t "cheatsheet""$i"; done #bind = Super, B, exec, ags -t 'sideleft' bind = Super, A, exec, ags -t 'sideleft' bind = Super, O, exec, ags -t 'sideleft' bind = Super, N, exec, ags -t 'sideright' bind = Super, M, exec, ags run-js 'openMusicControls.value = (!mpris.getPlayer() ? false : !openMusicControls.value);' bind = Super, Comma, exec, ags run-js 'openColorScheme.value = true; Utils.timeout(2000, () => openColorScheme.value = false);' bind = Super, K, exec, for ((i=0; i<$(hyprctl monitors -j | jq length); i++)); do ags -t "osk""$i"; done bind = Control+Alt, Delete, exec, for ((i=0; i<$(hyprctl monitors -j | jq length); i++)); do ags -t "session""$i"; done bind = Control+Super, G, exec, for ((i=0; i<$(hyprctl monitors -j | jq length); i++)); do ags -t "crosshair""$i"; done bindle = , XF86AudioRaiseVolume, exec, ags run-js 'indicator.popup(1);' bindle = , XF86AudioLowerVolume, exec, ags run-js 'indicator.popup(1);' bindle=, XF86MonBrightnessUp, exec, ags run-js 'brightness.screen_value += 0.05; indicator.popup(1);' bindle=, XF86MonBrightnessDown, exec, ags run-js 'brightness.screen_value -= 0.05; indicator.popup(1);' bindl = , XF86AudioMute, exec, ags run-js 'indicator.popup(1);' bindl = Super+Shift,M, exec, ags run-js 'indicator.popup(1);' # ##################################### Plugins ######################################### # Testing # bind = SuperAlt, f12, exec, notify-send "Hyprland version: $(hyprctl version | head -2 | tail -1 | cut -f2 -d ' ')" "owo" -a 'Hyprland keybind' # bind = Super+Alt, f12, exec, notify-send "Millis since epoch" "$(date +%s%N | cut -b1-13)" -a 'Hyprland keybind' bind = Super+Alt, f12, exec, notify-send 'Test notification' "Here's a really long message to test truncation and wrapping\nYou can middle click or flick this notification to dismiss it!" -a 'Shell' -A "Test1=I got it!" -A "Test2=Another action" -t 5000 bind = Super+Alt, Equal, exec, notify-send "Urgent notification" "Ah hell no" -u critical -a 'Hyprland keybind' # ########################### Keybinds for Hyprland ############################ # Swap windows bind = Super+Shift, left, movewindow, l bind = Super+Shift, right, movewindow, r bind = Super+Shift, up, movewindow, u bind = Super+Shift, down, movewindow, d bind = Super, P, pin # Move focus bind = Super, left, movefocus, l bind = Super, right, movefocus, r bind = Super, up, movefocus, u bind = Super, down, movefocus, d bind = Super, BracketLeft, movefocus, l bind = Super, BracketRight, movefocus, r # Workspace, window, tab switch with keyboard bind = Control+Super, right, workspace, +1 bind = Control+Super, left, workspace, -1 bind = Super, mouse:275, workspace, -1 bind = Super, mouse:276, workspace, +1 bind = Control+Super, BracketLeft, workspace, -1 bind = Control+Super, BracketRight, workspace, +1 bind = Control+Super, up, workspace, -5 bind = Control+Super, down, workspace, +5 bind = Super, Page_Down, workspace, +1 bind = Super, Page_Up, workspace, -1 bind = Control+Super, Page_Down, workspace, +1 bind = Control+Super, Page_Up, workspace, -1 bind = Super+Alt, Page_Down, movetoworkspace, +1 bind = Super+Alt, Page_Up, movetoworkspace, -1 bind = Super+Shift, Page_Down, movetoworkspace, +1 bind = Super+Shift, Page_Up, movetoworkspace, -1 bind = Control+Super+Shift, Right, movetoworkspace, +1 bind = Control+Super+Shift, Left, movetoworkspace, -1 bind = Super+Shift, mouse_down, movetoworkspace, -1 bind = Super+Shift, mouse_up, movetoworkspace, +1 bind = Super+Alt, mouse_down, movetoworkspace, -1 bind = Super+Alt, mouse_up, movetoworkspace, +1 # Window split ratio binde = Super, Minus, splitratio, -0.1 binde = Super, Equal, splitratio, 0.1 binde = Super, Semicolon, splitratio, -0.1 binde = Super, Apostrophe, splitratio, 0.1 # Fullscreen bind = Super, F, fullscreen, 0 bind = Super, D, fullscreen, 1 bind = Super_Alt, F, fakefullscreen, 0 # Switching bind = Super, 1, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh workspace 1 bind = Super, 2, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh workspace 2 bind = Super, 3, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh workspace 3 bind = Super, 4, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh workspace 4 bind = Super, 5, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh workspace 5 bind = Super, 6, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh workspace 6 bind = Super, 7, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh workspace 7 bind = Super, 8, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh workspace 8 bind = Super, 9, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh workspace 9 bind = Super, 0, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh workspace 10 #bind = Super, S, togglespecialworkspace, bind = Control+Super, S, togglespecialworkspace, bind = Alt, Tab, cyclenext bind = Alt, Tab, bringactivetotop, # bring it to the top # Move window to workspace Super + Alt + [0-9] bind = Super+Alt, 1, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh movetoworkspacesilent 1 bind = Super+Alt, 2, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh movetoworkspacesilent 2 bind = Super+Alt, 3, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh movetoworkspacesilent 3 bind = Super+Alt, 4, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh movetoworkspacesilent 4 bind = Super+Alt, 5, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh movetoworkspacesilent 5 bind = Super+Alt, 6, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh movetoworkspacesilent 6 bind = Super+Alt, 7, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh movetoworkspacesilent 7 bind = Super+Alt, 8, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh movetoworkspacesilent 8 bind = Super+Alt, 9, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh movetoworkspacesilent 9 bind = Super+Alt, 0, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh movetoworkspacesilent 10 bind = Control+Shift+Super, Up, movetoworkspacesilent, special bind = Super+Alt, S, movetoworkspacesilent, special # Scroll through existing workspaces with (Control) + Super + scroll bind = Super, mouse_up, workspace, +1 bind = Super, mouse_down, workspace, -1 bind = Control+Super, mouse_up, workspace, +1 bind = Control+Super, mouse_down, workspace, -1 # Move/resize windows with Super + LMB/RMB and dragging bindm = Super, mouse:272, movewindow bindm = Super, mouse:273, resizewindow # bindm = Super, mouse:274, movewindow bind = Control+Super, Backslash, resizeactive, exact 640 480 # Arrow keys with IJKL bindle = Alt, I, exec, ydotool key 103:1 103:0 bindle = Alt, K, exec, ydotool key 108:1 108:0 bindle = Alt, J, exec, ydotool key 105:1 105:0 bindle = Alt, L, exec, ydotool key 106:1 106:0 # Control + Side mouse btn for switching tabs (Ctrl+PgUp/PgDn) # bind = Control, mouse:275, exec, ydotool key 29:1 104:1 104:0 29:0 # bind = Control, mouse:276, exec, ydotool key 29:1 109:1 109:0 29:0 Config File: /home/dark/.config/hypr/custom/env.conf: Read Succeeded # You can put extra environment variables here # https://wiki.hyprland.org/Configuring/Environment-variables/ Config File: /home/dark/.config/hypr/custom/execs.conf: Read Succeeded # You can make apps auto-start here # Relevant Hyprland wiki section: https://wiki.hyprland.org/Configuring/Keywords/#executing exec=/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 exec-once=steam -silent exec-once=~/AppImages/gearlever_vesktop_c9cacb.appimage exec-once=mullvad connect exec-once=waypaper --restore exec-once=easyeffects --gapplication-service Config File: /home/dark/.config/hypr/custom/general.conf: Read Succeeded # Put general config stuff here # Here's a list of every variable: https://wiki.hyprland.org/Configuring/Variables/ # Bind workspaces 1-10 (group 1) to primary monitor # Monitor DP-1 workspace = 1, monitor:DP-2, default:false workspace = 2, monitor:DP-2, default:false workspace = 3, monitor:DP-2, default:false # Monitor DP-2 workspace = 4, monitor:DP-1, default:true workspace = 5, monitor:DP-1, default:false workspace = 6, monitor:DP-1, default:false workspace = 7, monitor:DP-1, default:false # Monitor DP-3 workspace = 8, monitor:DP-3, default:false workspace = 9, monitor:DP-3, default:false workspace = 10, monitor:DP-3, default:false Config File: /home/dark/.config/hypr/custom/rules.conf: Read Succeeded # You can put custom rules here # Window/layer rules: https://wiki.hyprland.org/Configuring/Window-Rules/ # Workspace rules: https://wiki.hyprland.org/Configuring/Workspace-Rules/ Config File: /home/dark/.config/hypr/custom/keybinds.conf: Read Succeeded # You can put your preferred keybinds here # https://wiki.hyprland.org/Configuring/Binds/ ======Config-End======== ```

Bug or Regression?

Bug

Description

Game stuttering (tearing) happens only in Hyprland (hyprland-git) and with "wayland/core: move to new impl #6268". Running it in Plasma-6 all stuttering disappears. No others games seems to be affected.

GPU: AMD Radeon RX 6700 XT

https://github.com/hyprwm/Hyprland/assets/73890789/e34acb8f-3e8b-479b-83e8-e4c8b5cd083d

How to reproduce

Run Hogwarts Legacy through Steam or others listed in comments (I'm using GE-Proton9-7) but it doesn't matter since other Proton versions have the same issue.

(Edit) Workaround

Downgrading xorg-xwayland to 23.2.7 seems to help this issue. Thanks @czM1K3

vaxerski commented 1 month ago

wait, so does it happen only on the MR or also on main?

if on main too, does it happen on 0.40.0? if not, please bisect.

DarkMoon1557 commented 1 month ago

Hey, it does happen on both main and v0.40.0-159-gca14b2d7.

vaxerski commented 1 month ago

is this a regression? does it happen on 0.40? 0.39.1?

czM1K3 commented 1 month ago

Same issue here. On 0.39.1 it's exactly the same. It started to happening after the latest update. And on sway it runs just fine.

vaxerski commented 1 month ago

Same issue here. On 0.39.1 it's exactly the same. It started to happening after the latest update. And on sway it runs just fine.

update of what? 0.39.1 is quite old by now

czM1K3 commented 1 month ago

Update of the game. Sorry.

DarkMoon1557 commented 1 month ago

is this a regression? does it happen on 0.40? 0.39.1?

Sorry, i can't verify if it's regression, since i only tried it recently. I tried to gather more data on what games it happens since i think OW2 (and some others) did had very minor artifacts as well, but it was very rare so i couldn't document it.

vaxerski commented 1 month ago

if an update of the game caused this, why would this be a hyprland issue?

czM1K3 commented 1 month ago

Because other compositors doesn't suffer from this issue.

vaxerski commented 1 month ago

does it continue if you do debug:damage_tracking = 0? (note: really not recommended to leave it on outside testing)

czM1K3 commented 1 month ago

does it continue if you do debug:damage_tracking = 0? (note: really not recommended to leave it on outside testing)

I have tested it on 0.40.0 and it looks better, but it's still happening. I have also noticed, that it is much worse when I lock framerate to something low, for example 30 fps. It looks like it shows much older frame than it should show.

vaxerski commented 1 month ago

tbh sounds like nvidia xd

czM1K3 commented 1 month ago

That's exactly what I thought initially, but I do have RX 6600 so it shouldn't be a problem.

DarkMoon1557 commented 1 month ago

does it continue if you do debug:damage_tracking = 0? (note: really not recommended to leave it on outside testing)

Nope, still there. I'm on AMD 6700 xt

Etmix commented 1 month ago

Not sure if it's the same issue, but I have the weird stuttering in Soulmask as well. (Also can't click on anything on the right side of the screen, but that is a separate issue). Works fine in sway.

NixOS and Hyprland on c95845b1488b4bd63e901cbdc4cb68c27a45971b

Edit: Using AMD 6800xt as well. Kernel is 6.9.3-cachyos

Wyrmilius commented 1 month ago

I have the same problem with The Witcher 3. Also AMD GPU (6800 XT), hyprland .0.40.0-1. On my system, the issue is happening now also on older versions. On sway there are no problems though. Looks like all of us are on AMD, wonder if people with Nvidia have this problem also.

Cha1N1 commented 4 weeks ago

same issue within ghost of tsushima and xdefiant for me on hyprland. I just cant game on this rn i need to use KDE to not have that weird flicker with tearing enabled. Also AMD GPU 6700 XT and hyprland 0.41.0-1.

Etmix commented 4 weeks ago

same issue within ghost of tsushima and xdefiant for me on hyprland. I just cant game on this rn i need to use KDE to not have that weird flicker with tearing enabled. Also AMD GPU 6700 XT and hyprland 0.41.0-1.

Is it working for you without tearing enabled?

Cha1N1 commented 4 weeks ago

same issue within ghost of tsushima and xdefiant for me on hyprland. I just cant game on this rn i need to use KDE to not have that weird flicker with tearing enabled. Also AMD GPU 6700 XT and hyprland 0.41.0-1.

Is it working for you without tearing enabled?

yes it does. also i noticed if i use flatpak lutris or flatpak heroic the issue seems to go away its hella weird looks like it could be related to some system package but it only happens on hyprland so i really don't know what package could cause it.

czM1K3 commented 4 weeks ago

I have just tried to downgrade xorg-xwayland to 23.2.7 and problem just went away! Maybe it's happening because explicit sync is not yet implemented in Hyprland?

Cha1N1 commented 4 weeks ago

I have just tried to downgrade xorg-xwayland to 23.2.7 and problem just went away! Maybe it's happening because explicit sync is not yet implemented in Hyprland?

Can confirm this fixed this issue for me as well. Looks like we just need explicit sync support for newest xwayland and it should be sorted.

DarkMoon1557 commented 4 weeks ago

I have just tried to downgrade xorg-xwayland to 23.2.7 and problem just went away! Maybe it's happening because explicit sync is not yet implemented in Hyprland?

Amazing will try it out and report if that worked. I wonder if explicit sync is being worked on @vaxerski

vaxerski commented 4 weeks ago

not yet

Etmix commented 3 weeks ago

I have just tried to downgrade xorg-xwayland to 23.2.7 and problem just went away! Maybe it's happening because explicit sync is not yet implemented in Hyprland?

Thank you! This and updating to the latest -git improved it somewhat, but it's still not great. Can't get e.g. Helldivers 2 to run anywhere near as smooth as in sway.

It's especially noticable when slowly moving the mouse. Edges of objects seem to "jump". Probably bad frame pacing? Tried with and without vrr or tearing. Either didin't help.

jas3333 commented 3 weeks ago

Having the same issue with Cyberpunk. Thought it was just Arch being Arch and ended up nuking my system after hours of trying to solve it. Had the same issue on NixOS, but everything runs fine in KDE.

I tried downgrading to Xwayland 23.2.6 and the issue persists. When I run it through Gamescope the issue goes away.

My GPU is a 6800XT.

nonetrix commented 2 weeks ago

Same here with Doom Eternal, maybe Aquamarine will fix it idk seems to have a lot to do with rendering and DRM things so idk kek

Edit: Somehow failed to see you can downgrade XWayland to fix it, makes sense now. Trying to figure out how to do that on NixOS

shirohui commented 4 days ago

I’m facing the same issue with Persona 3 Reload. Gamescope helps, but not much. I’m using an AMD 6650 XT.

nonetrix commented 4 days ago

Explicit sync is being added in #6608 should fix it I am pretty sure, I haven't gotten around to testing the version that adds explicit sync. For now you can try downgrading XWayland

nonetrix commented 3 days ago

Tested it! Does indeed fix things so can be closed after that PR is merged. However, worth noting that it it under experimental:explicit_sync doing the following worked on that branch on NixOS

experimental = {
  explicit_sync = 1;
};