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
19.61k stars 827 forks source link

System cursor appears in full screen apps #7258

Closed LimticRage closed 2 weeks ago

LimticRage commented 1 month ago

Regression?

Yes

System Info and Version

System/Version info ```sh 28 apps (may help) env = ELECTRON_OZONE_PLATFORM_HINT,auto # Hyprcursor env = HYPRCURSOR_THEME,Bibata-Modern-Classic env = HYPRCURSOR_SIZE,24 # FOR VM and POSSIBLY NVIDIA #env = WLR_RENDERER_ALLOW_SOFTWARE,1 Config File: /home/bunny/.config/hypr/UserConfigs/Monitors.conf: Read Succeeded # /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # # Monitor Configuration # See Hyprland wiki for more details # https://wiki.hyprland.org/Configuring/Monitors/ # Configure your Display resolution, offset, scale and Monitors here, use `hyprctl monitors` to get the info. # Monitors monitor=,preferred,auto,1 # NOTE: for laptop, kindly check notes in Laptops.conf regarding display # Created this inorder for the monitor display to not wake up if not intended. # See here: https://github.com/hyprwm/Hyprland/issues/4090 #monitor = eDP-1, preferred, auto, 1 #monitor = eDP-1, 2560x1440@165, 0x0, 1 #own screen #monitor = DP-3, 1920x1080@240, auto, 1 #monitor = DP-1, preferred, auto, 1 #monitor = HDMI-A-1, preferred,auto,1 # QEMU-KVM or any virtual box #monitor = Virtual-1, 1920x1080@60,auto,1 # Hi Refresh Rate #monitor=,highrr,auto,1 # High Resolution #monitor=,highres,auto,1 # to disable a monitor #monitor=name,disable # Mirror #monitor=DP-3,1920x1080@60,0x0,1,mirror,DP-2 #monitor=,preferred,auto,1,mirror,eDP-1 # Example : #monitor=eDP-1,2560x1440@165,0x0,1 #workspace=HDMI-A-1,1 #monitor=HDMI-A-1,2560x1440@144,0x0,1,mirror,eDP-1 #workspace=HDMI-A-2,2 #monitor=eDP-1,transform,0 #monitor=eDP-1,addreserved,10,10,10,49 #workspace=eDP-1,1 Config File: /home/bunny/.config/hypr/UserConfigs/Laptops.conf: Read Succeeded # /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # # See https://wiki.hyprland.org/Configuring/Keywords/ for more variable settings # These configs are mostly for laptops. This is addemdum to Keybinds.conf $mainMod = SUPER $scriptsDir = $HOME/.config/hypr/scripts $UserConfigs = $HOME/.config/hypr/UserConfigs bind = , xf86KbdBrightnessDown, exec, $scriptsDir/BrightnessKbd.sh --dec #Keyboard brightness Down bind = , xf86KbdBrightnessUp, exec, $scriptsDir/BrightnessKbd.sh --inc #Keyboard brightness up bind = , xf86Launch1, exec, rog-control-center # ASUS Armory crate button bind = , xf86Launch3, exec, asusctl led-mode -n #FN+F4 Switch keyboard RGB profile bind = , xf86Launch4, exec, asusctl profile -n #FN+F5 change of fan profiles (Quite, Balance, Performance) bind = , xf86MonBrightnessDown, exec, $scriptsDir/Brightness.sh --dec bind = , xf86MonBrightnessUp, exec, $scriptsDir/Brightness.sh --inc bind = , xf86TouchpadToggle, exec, $scriptsDir/TouchPad.sh #disable touchpad # Screenshot keybindings for Asus G15 (no PrinSrc button) bind = $mainMod, F6, exec, $scriptsDir/ScreenShot.sh --now # Fullscreen bind = $mainMod SHIFT, F6, exec, $scriptsDir/ScreenShot.sh --area bind = $mainMod CTRL, F6, exec, $scriptsDir/ScreenShot.sh --in5 # Screenshot in 5 secs bind = $mainMod ALT, F6, exec, $scriptsDir/ScreenShot.sh --in10 # Screenshot in 10 secs bind = ALT, F6, exec, $scriptsDir/ScreenShot.sh --active # Screenshot active window # Below are useful when you are connecting your laptop in external display # Suggest you edit below for your laptop display # From WIKI This is to disable laptop monitor when lid is closed. # consult https://wiki.hyprland.org/hyprland-wiki/pages/Configuring/Binds/#switches #bindl = , switch:off:Lid Switch,exec,hyprctl keyword monitor "eDP-1, preferred, auto, 1" #bindl = , switch:on:Lid Switch,exec,hyprctl keyword monitor "eDP-1, disable" # WARNING! Using this method has some caveats!! USE THIS PART WITH SOME CAUTION! # CONS of doing this, is that you need to set up your wallpaper (SUPER W) and choose wallpaper. # CAVEATS! Sometimes the Main Laptop Monitor DOES NOT have display that it needs to re-connect your external monitor # One work around is to ensure that before shutting down laptop, MAKE SURE your laptop lid is OPEN!! # Make sure to comment (put # on the both the bindl = , switch ......) above # NOTE: Display for laptop are being generated into LaptopDisplay.conf # This part is to be use if you do not want your main laptop monitor to wake up during say wallpaper change etc #bindl = , switch:off:Lid Switch,exec,echo "monitor = eDP-1, preferred, auto, 1" > $UserConfigs/LaptopDisplay.conf #bindl = , switch:on:Lid Switch,exec,echo "monitor = eDP-1, disable" > $UserConfigs/LaptopDisplay.conf # for laptop-lid action (to erase the last entry) #exec-once = echo "eDP-1, preferred, auto, 1" > $HOME/.config/hypr/UserConfigs/LaptopDisplay.conf # Config File: /home/bunny/.config/hypr/UserConfigs/LaptopDisplay.conf: Read Succeeded # NOTE, THIS FILE IS BEING USED by disabling Laptop display monitor behaviour when closing lid. # See notes on Laptops.conf #monitor = eDP-1, preferred, auto, 1 Config File: /home/bunny/.config/hypr/UserConfigs/WindowRules.conf: Read Succeeded # /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more #windowrule = noblur,gamescope #windowrule = fullscreen,gamescope #windowrule = workspace 6 silent,^(gamescope)$ windowrule = center,^(pavucontrol|org.pulseaudio.pavucontrol)$ windowrulev2 = stayfocused, class:^(polkit-gnome-authentication-agent-1)$ # windowrule v2 move to workspace windowrulev2 = workspace 1, class:^(librewolf-default)$ windowrulev2 = workspace 3, class:^([Tt]hunar)$ windowrulev2 = workspace 5, class:^([Ll]utris)$ # windowrule v2 move to workspace (silent) windowrulev2 = workspace 2 silent, class:^([Ff]irefox|org.mozilla.firefox|[Ff]irefox-esr)$ windowrulev2 = workspace 4 silent, class:^(io.github.tdesktop_x64.TDesktop)$ windowrulev2 = workspace 4 silent, class:^(vesktop)$ windowrulev2 = workspace 5 silent, class:^([Ss]team)$ # Named windowrulev2 = workspace name:Art, class:^(krita)$ windowrulev2 = workspace name:Games, class:^(steam_app.*)$ windowrulev2 = workspace name:Games, class:^(gamescope)$ windowrulev2 = workspace name:Games, class:^(valheim.x86_64)$ # Valheim windowrulev2 = workspace name:Games, class:^(RimWorldLinux)$ # Game tearing windowrulev2 = immediate, class:^(gamescope)$ windowrulev2 = immediate, class:^(steam_app.*)$ windowrulev2 = immediate, class:^(valheim.x86_64)$ # windowrule v2 - float windowrulev2 = float, class:^(org.kde.polkit-kde-authentication-agent-1)$ windowrulev2 = float, class:([Zz]oom|onedriver|onedriver-launcher)$ windowrulev2 = float, class:([Tt]hunar), title:(File Operation Progress) windowrulev2 = float, class:([Tt]hunar), title:(Confirm to replace files) windowrulev2 = float, class:(xdg-desktop-portal-gtk) windowrulev2 = float, class:(org.gnome.Calculator), title:(Calculator) windowrulev2 = float, class:(codium|codium-url-handler|VSCodium), title:(Add Folder to Workspace) windowrulev2 = float, class:^([Rr]ofi)$ windowrulev2 = float, class:^(eog)$ windowrulev2 = float, class:^(pavucontrol|org.pulseaudio.pavucontrol)$ windowrulev2 = float, class:^(nwg-look|qt5ct|qt6ct|mpv)$ windowrulev2 = float, class:^(nm-applet|nm-connection-editor|blueman-manager)$ windowrulev2 = float, class:^(gnome-system-monitor|org.gnome.SystemMonitor)$ # system monitor windowrulev2 = float, class:^(yad)$ # icon browser windowrulev2 = float, class:^(wihotspot-gui)$ # wifi hotspot windowrulev2 = float, class:^(evince)$ # document viewer windowrulev2 = float, class:^(file-roller|org.gnome.FileRoller)$ # archive manager windowrulev2 = float, class:^([Bb]aobab|org.gnome.[Bb]aobab)$ # Disk usage analyzer windowrulev2 = float, title:(Kvantum Manager) windowrulev2 = float, class:^([Ss]team)$,title:^((?![Ss]team).*|[Ss]team [Ss]ettings)$ windowrulev2 = float, class:^([Qq]alculate-gtk)$ windowrulev2 = float, class:^(ckb-next)$ windowrulev2 = float, class:^(vesktop)$ windowrulev2 = float, class:^(io.github.tdesktop_x64.TDesktop)$ windowrulev2 = float, class:^(veracrypt)$ windowrulev2 = float, class:^(net.davidotek.pupgui2)$ windowrulev2 = float, class:^(RimSort)$ # windowrule v2 - position windowrulev2 = center, class:([Tt]hunar), title:(File Operation Progress) windowrulev2 = center, class:([Tt]hunar), title:(Confirm to replace files) windowrulev2 = move 10 49, class:^(vesktop)$ windowrulev2 = move 1864 49, class:^(io.github.tdesktop_x64.TDesktop)$ # windowrule v2 - size windowrulev2 = size 70% 70%, class:^(gnome-system-monitor|org.gnome.SystemMonitor)$ windowrulev2 = size 70% 70%, class:^(xdg-desktop-portal-gtk)$ windowrulev2 = size 60% 70%, title:(Kvantum Manager) windowrulev2 = size 60% 70%, class:^(qt6ct)$ windowrulev2 = size 70% 70%, class:^(evince|wihotspot-gui)$ windowrulev2 = size 60% 70%, class:^(file-roller|org.gnome.FileRoller)$ windowrulev2 = size 686 1381, class:^(io.github.tdesktop_x64.TDesktop)$ windowrulev2 = size 1838 1381, class:^(vesktop)$ # windowrule v2 - opacity #enable as desired windowrulev2 = opacity 0.9 0.6, class:^([Rr]ofi)$ #windowrulev2 = opacity 0.9 0.7, class:^(Brave-browser(-beta|-dev)?)$ #windowrulev2 = opacity 0.9 0.7, class:^([Ff]irefox|org.mozilla.firefox|[Ff]irefox-esr)$ #windowrulev2 = opacity 0.9 0.8, class:^([Mm]icrosoft-edge(-stable|-beta|-dev|-unstable)?)$ #windowrulev2 = opacity 0.9 0.8, class:^(google-chrome(-beta|-dev|-unstable)?)$ #windowrulev2 = opacity 0.94 0.86, class:^(chrome-.+-Default)$ # Chrome PWAs windowrulev2 = opacity 0.9 0.8, class:^([Tt]hunar)$ windowrulev2 = opacity 0.8 0.6, class:^(pcmanfm-qt)$ windowrulev2 = opacity 0.8 0.7, class:^(gedit|org.gnome.TextEditor)$ windowrulev2 = opacity 0.9 0.8, class:^(deluge)$ windowrulev2 = opacity 0.9 0.8, class:^(Alacritty)$ windowrulev2 = opacity 0.9 0.8, class:^(kitty)$ windowrulev2 = opacity 0.9 0.7, class:^(mousepad)$ windowrulev2 = opacity 0.9 0.7, class:^(VSCodium|codium-url-handler)$ windowrulev2 = opacity 0.9 0.8, class:^(nwg-look|qt5ct|qt6ct|yad)$ windowrulev2 = opacity 0.9 0.8, title:(Kvantum Manager) windowrulev2 = opacity 0.9 0.7, class:^(com.obsproject.Studio)$ windowrulev2 = opacity 0.9 0.7, class:^([Aa]udacious)$ windowrulev2 = opacity 0.9 0.8, class:^(org.gnome.Nautilus)$ windowrulev2 = opacity 0.9 0.8, class:^(VSCode|code-url-handler)$ windowrulev2 = opacity 0.9 0.8, class:^(jetbrains-.+)$ # JetBrains IDEs #windowrulev2 = opacity 0.94 0.86, class:^([Dd]iscord|[Vv]esktop)$ #windowrulev2 = opacity 0.9 0.8, class:^(org.telegram.desktop|io.github.tdesktop_x64.TDesktop)$ windowrulev2 = opacity 0.94 0.86, class:^(gnome-disks|evince|wihotspot-gui|org.gnome.baobab)$ windowrulev2 = opacity 0.9 0.8, class:^(file-roller|org.gnome.FileRoller)$ # archive manager windowrulev2 = opacity 0.8 0.7, class:^(app.drey.Warp)$ # Warp file transfer windowrulev2 = opacity 0.9 0.8, class:^(seahorse)$ # gnome-keyring gui windowrulev2 = opacity 0.82 0.75, class:^(gnome-system-monitor|org.gnome.SystemMonitor)$ windowrulev2 = opacity 0.9 0.8, class:^(xdg-desktop-portal-gtk)$ # gnome-keyring gui #layerrule = unset,class:^([Rr]ofi)$ #layerrule = blur,class:^([Rr]ofi)$ #layerrule = ignorezero, layerrule = ignorezero, overview layerrule = blur, overview #windowrulev2 = bordercolor rgb(EE4B55) rgb(880808), fullscreen:1 #windowrulev2 = bordercolor rgb(282737) rgb(1E1D2D), floating:1 #windowrulev2 = opacity 0.8 0.8, pinned:1 # Picture-in-a-Picture (PIP) rules: Oddly, some need re-duplication. This is because the window for # PIP changes after on first launch, and will not inherant the rules... windowrulev2=opacity 0.95 0.75,title:^(Picture-in-Picture)$ # for opacity: [focus num] [bg num] # Interestingly, the opacity rule above doesn't need the reduplication? windowrulev2=pin,title:^(Picture-in-Picture)$ #windowrulev2=pin,title:^(Firefox)$ windowrulev2=float, title:^(Picture-in-Picture)$ #windowrulev2=float, title:^(Firefox)$ windowrulev2=size 25% 25%,title:^(Picture-in-Picture)$ #windowrulev2=size 25% 25%,title:^(Firefox)$ windowrulev2=move 72% 7%,title:^(Picture-in-Picture)$ #windowrulev2=move 72% 7%,title:^(Firefox)$ Config File: /home/bunny/.config/hypr/UserConfigs/UserKeybinds.conf: Read Succeeded # /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # # This is where you put your own keybinds. Be Mindful to check as well ~/.config/hypr/configs/Keybinds.conf to avoid conflict # if you think I should replace the Pre-defined Keybinds in ~/.config/hypr/configs/Keybinds.conf , submit an issue or let me know in DC and present me a valid reason as to why, such as conflicting with global shortcuts, etc etc # See https://wiki.hyprland.org/Configuring/Keywords/ for more settings and variables # See also Laptops.conf for laptops keybinds $mainMod = SUPER $files = thunar $term = kitty $scriptsDir = $HOME/.config/hypr/scripts $UserScripts = $HOME/.config/hypr/UserScripts # rofi App launcher #bindr = $mainMod, $mainMod_L, exec, pkill rofi || rofi -show drun -modi drun,filebrowser,run,window # Super Key to Launch rofi menu bind = $mainMod, D, exec, pkill rofi || rofi -show drun -modi drun,filebrowser,run,window # ags overview bind = $mainMod, A, exec, pkill rofi || true && ags -t 'overview' bind = $mainMod, Return, exec, $term # Launch terminal bind = $mainMod, T, exec, $files # Launch file manager bind = $mainMod ALT, C, exec, $UserScripts/RofiCalc.sh # calculator (qalculate) # pyprland bind = $mainMod SHIFT, Return, exec, pypr toggle term # Dropdown terminal bind = $mainMod, Z, exec, pypr zoom # Toggle Zoom # User Added Keybinds bind = $mainMod SHIFT, O, exec, $UserScripts/ZshChangeTheme.sh # Change oh-my-zsh theme #bindn = ALT_L, SHIFT_L, exec, $scriptsDir/SwitchKeyboardLayout.sh # Changing the keyboard layout # For passthrough keyboard into a VM # bind = $mainMod ALT, P, submap, passthru #submap = passthru # to unbind #bind = $mainMod ALT, P, submap, reset #submap = reset Config File: /home/bunny/.config/hypr/UserConfigs/UserSettings.conf: Read Succeeded # /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # # User Settings # This is where you put your own settings as this will not be touched during update # if the upgrade.sh is used. # refer to Hyprland wiki for more info https://wiki.hyprland.org/Configuring/Variables # Sourcing colors generated by wallust source = $HOME/.config/hypr/wallust/wallust-hyprland.conf # blurls = waybar # blurls = rofi dwindle { pseudotile = yes preserve_split = yes special_scale_factor = 0.8 } master { new_status = master } general { sensitivity=1.00 apply_sens_to_raw=1 gaps_in = 6 gaps_out = 8 border_size = 2 resize_on_border = true #allow_tearing = true col.active_border = $color0 $color2 $color9 $color12 $color15 90deg col.inactive_border = $backgroundCol layout = dwindle } group { col.border_active = $color15 groupbar { col.active = $color0 } } decoration { rounding = 10 active_opacity = 1.0 inactive_opacity = 0.9 fullscreen_opacity = 1.0 dim_inactive = true dim_strength = 0.1 dim_special = 0.8 drop_shadow=true shadow_range=6 shadow_render_power = 1 col.shadow = $color12 col.shadow_inactive = 0x50000000 blur { enabled = true size = 6 passes = 2 ignore_opacity = true new_optimizations = true special = true } } animations { enabled = yes bezier = wind, 0.05, 0.9, 0.1, 1.05 bezier = winIn, 0.1, 1.1, 0.1, 1.1 bezier = winOut, 0.3, -0.3, 0, 1 bezier = liner, 1, 1, 1, 1 animation = windows, 1, 6, wind, slide animation = windowsIn, 1, 6, winIn, slide animation = windowsOut, 1, 5, winOut, slide animation = windowsMove, 1, 5, wind, slide animation = border, 1, 1, liner animation = borderangle, 1, 180, liner, loop #used by rainbow borders and rotating colors animation = fade, 1, 10, default animation = workspaces, 1, 5, wind } input { kb_layout=us kb_variant= kb_model= kb_options= kb_rules= repeat_rate=50 repeat_delay=300 numlock_by_default=true left_handed=false follow_mouse=true float_switch_override_focus=false accel_profile = flat sensitivity = -0.1 } gestures { workspace_swipe=true workspace_swipe_fingers=3 workspace_swipe_distance=400 workspace_swipe_invert=true workspace_swipe_min_speed_to_force=30 workspace_swipe_cancel_ratio=0.5 workspace_swipe_create_new=true workspace_swipe_forever=true } misc { disable_hyprland_logo = true disable_splash_rendering = true vfr = true vrr = 2 mouse_move_enables_dpms = true enable_swallow = true swallow_regex = ^(kitty)$ focus_on_activate = false initial_workspace_tracking = 0 middle_click_paste = false } binds { workspace_back_and_forth=true allow_workspace_cycles=true pass_mouse_when_bound=false } #Could help when scaling and not pixelating xwayland { force_zero_scaling = true } Config File: /home/bunny/.config/hypr/wallust/wallust-hyprland.conf: Read Succeeded $background = rgb(150E10) $foreground = rgb(F9F3E6) $color0 = rgb(150E10) $color1 = rgb(4D4E88) $color2 = rgb(704C3A) $color3 = rgb(735073) $color4 = rgb(8E724A) $color5 = rgb(927A83) $color6 = rgb(B2A68B) $color7 = rgb(EEE6D4) $color8 = rgb(A6A194) $color9 = rgb(6768B6) $color10 = rgb(96664D) $color11 = rgb(996A99) $color12 = rgb(BD9863) $color13 = rgb(C2A3AF) $color14 = rgb(EDDDB9) $color15 = rgb(EEE6D4) Config File: /home/bunny/.config/hypr/UserConfigs/WorkspaceRules.conf: Read Succeeded # /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # # You can set workspace rules to achieve workspace-specific behaviors. # For instance, you can define a workspace where all windows are drawn without borders or gaps. # https://wiki.hyprland.org/Configuring/Workspace-Rules/ # Assigning workspace to a certain monitor # workspace = 1, monitor:eDP-1 # workspace = 2, monitor:DP-2 # example rules (from wiki) # workspace = 3, rounding:false, decorate:false # workspace = name:coding, rounding:false, decorate:false, gapsin:0, gapsout:0, border:false, decorate:false, monitor:DP-1 # workspace = 8,bordersize:8 # workspace = name:Hello, monitor:DP-1, default:true # workspace = name:gaming, monitor:desc:Chimei Innolux Corporation 0x150C, default:true # workspace = 5, on-created-empty:[float] firefox # workspace = special:scratchpad, on-created-empty:foot # My Rules workspace = name:Art, rounding:false, decorate:false, gapsin:0, gapsout:0, border:false, decorate:false workspace = name:Games, rounding:false, decorate:false border:false ======Config-End========> ```

Description

system cursor appears while playing a game (full screen) or watching a video fulls screen after a while, to make it go away opening a menu in game that brings up the game cursor, change workspace or bringing steam overlay, but after some time it will come back. The game has a micro-stutter when it happens. It started with the v0.41.0 if i remember correctly, other people have the problem under fedora for what others told me.

How to reproduce

Use an app in full screen where the system cursor shouldn't be and wait until it appears...

Crash reports, logs, images, videos

No response

vaxerski commented 1 month ago

can you bisect the issue?

LimticRage commented 1 month ago

I have a bibata cursor, when i play a game the cursor after some time playing pops up... If you play for example terraria/starbound after some time the bibata cursor will overlay on top of the game cursor, gonna start a game and send a picture

LimticRage commented 1 month ago

photo_2024-08-09_23-53-44 and here what happens when i "shift +tab" steam overlay

https://github.com/user-attachments/assets/c26695fe-a4a3-4745-9e10-ed1461129d71

LimticRage commented 2 weeks ago

It seems it was my issue with some settings, D'OH...

Don't know which settings but i have redone my hypr folder settings and now it doesn't happen anymore.