Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fullscreen games lag the desktop super heavy while really high fps #8588

Open
1 task done
rabaimorp opened this issue Nov 26, 2024 · 1 comment
Open
1 task done
Labels
bug Something isn't working

Comments

@rabaimorp
Copy link

rabaimorp commented Nov 26, 2024

Already reported ? *

  • I have searched the existing open and closed issues.

Regression?

No

System Info and Version

Hyprland 0.45.2 built from branch  at commit 12f9a0d0b93f691d4d9923716557154d74777b0a  ([gha] Nix: update inputs).
Date: Tue Nov 19 21:47:18 2024
Tag: v0.45.2, commits: 5451
built against aquamarine 0.5.0


flags set:
debug


System Information:
System name: Linux
Node name: legion
Release: 6.12.1-zen1-1-zen
Version: #1 ZEN SMP PREEMPT_DYNAMIC Fri, 22 Nov 2024 16:04:23 +0000


GPU information: 
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation AD107M [GeForce RTX 4050 Max-Q / Mobile] [10de:28e1] (rev a1) (prog-if 00 [VGA controller])
06:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Raphael [1002:164e] (rev db) (prog-if 00 [VGA controller])
NVRM version: NVIDIA UNIX x86_64 Kernel Module  565.57.01  Thu Oct 10 12:29:05 UTC 2024


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:
  hyprexpo by Vaxry ver 1.0

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


Config File: /home/rabaimor/.config/hypr/hyprland.conf: Read Succeeded
# This file contains general customization options 
# For Environment variables see env.conf
# For Keybinds variables see keybinds.conf 
# For Auto-run stuff see execs.conf
# For Window/layer rules see rules.conf

source=~/.config/hypr/hyprland/env.conf

# MONITOR CONFIG
#monitor=,preferred,auto,1
monitor=,2560x1600@165,0x0,1
#monitor=,addreserved, 0, 0, 0, 0
#monitor=HDMI-A-1,2560x1600@165,1600x,mirror,eDP-1

# Startup executions
source=~/.config/hypr/hyprland/execs.conf

input {
    # Keyboard: Add a layout and uncomment kb_options for Win+Space switching shortcut
#    kb_layout = us
#    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
}

binds {
    # focus_window_on_workspace_c# For Auto-run stuff see execs.confhange = true
    scroll_event_delay = 0
}

# Screensharing
exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP

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 = 20
    
    blur {
        enabled = true
        xray = true
        special = false
        new_optimizations = on
        size = 5
        passes = 4
        brightness = 1
        noise = 0.01
        contrast = 1
    }
    # Shadow
#    drop_shadow = true
#    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 = 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, 7, fluent_decel, slide
    # animation = workspaces, 1, 7, fluent_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 = true
    swallow_regex = (foot|kitty|allacritty|Alacritty)
    
    disable_hyprland_logo = true
#   force_hypr_chan = true
    new_window_takes_over_fullscreen = 2
}

debug {
	# overlay = true
	# damage_tracking = 0

    # damage_blink = yes
}

# Window and layer rules
layerrule = noanim, selection
source=~/.config/hypr/hyprland/rules.conf

# Dynamic colors
#source=~/.config/hypr/colors.conf

# Keybinds
source=~/.config/hypr/hyprland/keybinds.conf
windowrulev2=rounding 20, onworkspace:1

# my custom stuff


Config File: /home/rabaimor/.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

# ############ NVIDIA ############
#env = LIBVA_DRIVER_NAME,nvidia
#env = XDG_SESSION_TYPE,wayland
#env = GBM_BACKEND,nvidia-drm
#env = __GLX_VENDOR_LIBRARY_NAME,nvidia
#env = WLR_NO_HARDWARE_CURSORS,1
# ######### NVIDIA UPDATE #########
env = LIBVA_DRIVER_NAME,nvidia
env = XDG_SESSION_TYPE,wayland
env = GBM_BACKEND,nvidia-drm
env = __GLX_VENDOR_LIBRARY_NAME,nvidia

cursor {
    no_hardware_cursors = true
}

# VA-API hardware video acceleration
# package "nvidia-vaapi-driver" is required
env = NVD_BACKEND,direct
# ############ Others #############
env = STEAM_FORCE_DESKTOPUI_SCALING,2
env = GDK_SCALE,2
env = QT_SCALE_FACTOR,2


Config File: /home/rabaimor/.config/hypr/hyprland/execs.conf: Read Succeeded
# Bar, wallpaper
exec-once = swww-daemon --format xrgb
exec-once = ags &

# Input method
exec-once = fcitx5
# Foot daemon
#exec-once = foot --server

# 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
# 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

# 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

# foot daemon
#exec-once = foot --server --config ~/.config/foot/footserver.ini

# Set icon theme
exec-once = gsettings set org.gnome.desktop.interface icon-theme 'kora'
# cuda
exec-once = echo a | sudo -S nvidia-modprobe
exec-once = echo a | sudo -S systemctl enable --now nvidia-resume.service

# personal goodness
exec-once = hypridle
exec-once = ~/.config/hypr/wlsunsetlock.sh
#exec-once = jamesdsp -t
#exec-once = echo a | sudo -S legion-kb-rgb set --effect Static --colors 255,0,0,255,0,0,255,0,0,255,0,0
exec-once = hyprpm enable hyprexpo


Config File: /home/rabaimor/.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:(wps)
windowrulev2 = tile,class:(dev.warp.Warp)
windowrulev2 = float,class:(footclient),title:(footclient)$
windowrulev2 = float,class:(mpv),title:(mpv)$

# 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)(.*)$

# ######## Layer rules ########
layerrule = xray 1, .*
# layerrule = noanim, .*
layerrule = noanim, selection
layerrule = noanim, overview
layerrule = noanim, anyrun
layerrule = noanim, sideleft
layerrule = noanim, sideright
layerrule = noanim, osk

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 = noanim, sideright
layerrule = noanim, sideleft

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

# Xwayland video bridge
windowrulev2 = opacity 0.0 override,class:^(xwaylandvideobridge)$
windowrulev2 = noanim,class:^(xwaylandvideobridge)$
windowrulev2 = noinitialfocus,class:^(xwaylandvideobridge)$
windowrulev2 = maxsize 1 1,class:^(xwaylandvideobridge)$
windowrulev2 = noblur,class:^(xwaylandvideobridge)$

# Stayfocused games
#windowrulev2 = stayfocused,title:(steam_app_1707550)


Config File: /home/rabaimor/.config/hypr/hyprland/keybinds.conf: Read Succeeded
bindle =, Home, exec, ags run-js 'indicator.popup(1);'
bindle =, End, exec, ags run-js 'indicator.popup(1);'
bindle = , XF86AudioRaiseVolume, exec, ags run-js 'indicator.popup(1);'
bindle = , XF86AudioLowerVolume, exec, ags run-js 'indicator.popup(1);'
# ################### 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 @DEFAULT_AUDIO_SINK@ 5%+
bindle =, XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
bindle =Super, XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 1%+
bindle =Super, XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 1%-

#bindle =, XF86AudioRaiseVolume, workspace, +1
#bindle =, XF86AudioLowerVolume, workspace, -1

bindle =, Home, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
bindle =, End, exec, wpctl set-volume -l 3 @DEFAULT_AUDIO_SINK@ 5%+
bindle = Super, Home, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 1%-
bindle = Super, End, exec, wpctl set-volume -l 3 @DEFAULT_AUDIO_SINK@ 1%+
#bindle =, Delete, exec, pactl set-sink-volume @DEFAULT_SINK@ -5%
#bindle =, End, exec, pactl set-sink-volume @DEFAULT_SINK@ +5%


#bindle = Super, KP_End, exec, ags run-js 'indicator.popup(1);'
#bindle = Super, KP_Down, exec, ags run-js 'indicator.popup(1);'
bind = Super, V, exec, cliphist list | wofi --dmenu | cliphist decode | wl-copy
# Night Light
bind = Super, O, exec, ~/.config/hypr/wlsunsetlock.sh
bind = Super, I, exec, killall -9 wlsunset
# Wallpaper Toggle
bind = Super, U, exec, ~/.config/hypr/colors_wallpaper_toggle.sh
# Audio toggle
bind = Super, A, exec, ~/.config/hypr/audio_toggle.sh
#bind = Super, A, exec, ~/.config/hypr/dsp_toggle.sh
# 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-'
bindle= Super, KP_Begin, exec, brightnessctl set '12.75+'
bindle= Super, KP_Left, exec, brightnessctl set '12.75-'
bind = Super, Backslash, exec, brightnessctl set 0
bindle=, Scroll_Lock, exec, ags run-js 'brightness.screen_value -= 0.01; indicator.popup(1);'
bindle=, Pause, exec, ags run-js 'brightness.screen_value += 0.01; indicator.popup(1);'

# ################################### Applications ###################################
# Apps: just normal apps
bind = Super, C, exec, waydroid show-full-ui
bind = Super, M, exec, minecraft-launcher
bind = Super, T, exec, foot
# bind = Super, Return, exec, footclient
bind = Super+Shift, S, exec, foot --server --config ~/.config/foot/footserver.ini
bind = Super+Control, T, exec, kitty
bind = Super+Alt, S, exec, steam
bind = Super+Alt, E, exec, thunar
bind = Super, W, exec, env QT_SCALE_FACTOR=1 qutebrowser
#bind = Control, W, exec, wlclock
bind = Super+Control, W, exec, cd ~/tor/nightly/tor-browser/ && ./start-tor-browser.desktop
# bind = Control+Super, W, exec, thorium-browser --ozone-platform-hint=wayland --gtk-version=4 --ignore-gpu-blocklist --enable-features=TouchpadOverscrollHistoryNavigation
bind = Super, X, exec, gnome-text-editor --new-window
bind = Super+Control, C, exec, grim "/home/rabaimor/Pictures/Screenshots/screenshot_$(date +'%Y-%m-%d_%H-%M-%S').png"
# bind = Super+Shift, W, exec, wps

# Apps: Settings and config
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, echo $(wofi-emoji) | wl-copy && wl-copy $(cliphist list | head -n 1 | awk '{for (i=2; i<=NF; i++) printf $i " "; print ""}')
bind = Super, Q, killactive,
bind = Super+Alt, Space, togglefloating,
#bind = ControlControl++Super+Alt, Space, stayfocused,
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+Control+Alt, C, exec, grim -g "$(slurp)" - | swappy -f -
bindl=,Print,exec,grim - | wl-copy
# 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

# 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, R, exec, 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, ags -t 'cheatsheet'
bind = Super, B, 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 = Control+Alt, Pause, exec, ags -t 'session'
bind = Control+Alt, Pause, exec, for ((i=0; i<$(hyprctl monitors -j | jq length); i++)); do ags -t "session""$i"; done 
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 #########################################
bind = Control+Super, P, exec, hyprctl plugin load "~/.config/hypr/plugins/droidbars.so"
bind = Control+Super, O, exec, hyprctl plugin unload "~/.config/hypr/plugins/droidbars.so"

# 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

# alternative

bind = Super, 2, workspace, +1
bind = Super, 1, workspace, -1
bind = Control+Super, 2, workspace, +1
bind = Control+Super, 1, workspace, -1
bind = Super+Alt, 2, movetoworkspace, +1
bind = Super+Alt, 1, movetoworkspace, -1
bind = Super+Shift, 2, movetoworkspace, +1
bind = Super+Shift, 1, movetoworkspace, -1

bind = Super, Apostrophe, workspace, +1
bind = Super, Semicolon, workspace, -1
bind = Control+Super, Apostrophe, workspace, +1
bind = Control+Super, Semicolon, workspace, -1
bind = Super+Alt, Apostrophe, movetoworkspace, +1
bind = Super+Alt, Semicolon, movetoworkspace, -1
bind = Super+Shift, Apostrophe, movetoworkspace, +1
bind = Super+Shift, Semicolon, movetoworkspace, -1

#Semicolon
#Apostrophe

# 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
bindm = Super, Z, 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
#bindle = Alt, W, exec, ydotool click 0xC0
bindle = Alt, W, exec, /home/rabaimor/.config/hypr/autoclicker_toggle.sh
#bindle = Alt, E, exec, echo a | su -c /home/rabaimor/.config/hypr/autoclicker_toggle_E.sh
#bindle = Alt, R, exec, bash -c "ydotool key 18:1 18: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, ydotoiol key 29:1 109:1 109:0 29:0



# rebinds
#input {
#    kb_options = caps:escape
#}
#
bind = Super, 3, hyprexpo:expo, toggle # can be: toggle, off/disable or on/enable

plugin {
    hyprexpo {
        columns = 3
        gap_size = 5
        bg_col = rgb(111111)
        workspace_method = center current # [center/first] [workspace] e.g. first 1 or center m+1

        enable_gesture = true # laptop touchpad
        gesture_fingers = 3  # 3 or 4
        gesture_distance = 300 # how far is the "max"
        gesture_positive = true # positive = swipe down. Negative = swipe up.
    }
}

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

Description

While playing some games in fulscreen mode, with unlocked fps the whole desktop including the game becomes super laggy if the game reaches fps above a few houndred while the game is in focus. This is an issue with linux native and proton games as well. (see demo). Also tried and its not an issue on kde wayland, only on hyprland.

How to reproduce

Launch a game on steam (that you could get 680+ fps in), on fullscreen mode without vsync or fps limiter. Super laggy mouse and game, even if steam overlay shows hundreds of fps. [see video demonstration]

Crash reports, logs, images, videos

Here as you can see when the game is above 700fps its lags the entire desktop, but when it drops to like 200-500 its fine.

highfps_bug.mp4
@rabaimorp rabaimorp added the bug Something isn't working label Nov 26, 2024
@rabaimorp
Copy link
Author

Whats weird is that in this case of a linux native game (Project zomboid) its the same issue even if I put the game in windowed mode, but I tried to reproduce the bug in a windows game running under proton (Geometry Dash) the issue is only present if I use the in-game fullscreen mode, but its not when I set the game windowed, and use hyprland fullscreen.

highfps_bug_proton.mp4

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant