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

Xwayland games freeze after changing focus #6561

Closed
heather7283 opened this issue Jun 17, 2024 · 1 comment
Closed

Xwayland games freeze after changing focus #6561

heather7283 opened this issue Jun 17, 2024 · 1 comment
Labels
bug Something isn't working

Comments

@heather7283
Copy link

Bug or Regression?

Regression

System Info and Version

System/Version info
Hyprland, built from branch  at commit 1f5fd7e64a1c0e8d1815bdd6d168193bf9c28d6d  (hyprpm: add --no-shallow).
Date: Sat Jun 15 23:46:36 2024
Tag: v0.41.1-21-g1f5fd7e6, commits: 4839

flags: (if any)


System Information:
System name: Linux
Node name: FA506IH
Release: 6.9.0-arch1-1-FA506IH
Version: #7 SMP PREEMPT_DYNAMIC Sun, 16 Jun 2024 04:37:59 +0000


GPU information:
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation TU117M [GeForce GTX 1650 Mobile / Max-Q] [10de:1f99] (rev a1) (prog-if 00 [VGA controller])
05:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Renoir [Radeon Vega Series / Radeon Vega Mobile Series] [1002:1636] (rev c7) (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/heather/.config/hypr/hyprland.conf: Read Succeeded
monitor = eDP-1, 1920x1080, 0x0, 1

#workspace = 1, monitor:eDP-1
#workspace = 2, monitor:eDP-1
#workspace = 3, monitor:eDP-1
#workspace = 4, monitor:eDP-1
#workspace = 5, monitor:eDP-1

# Source a file (multi-file configs)
source = ~/.config/hypr/binds.conf                      # Keybinds
source = ~/.config/hypr/windowrules.conf        # Window rules
source = ~/.config/hypr/environment.conf        # Environment variables
source = ~/.config/hypr/autostart.conf          # Autostart


input {
  kb_layout = us,ru     # English and Russian layouts
  kb_options = grp:alt_shift_toggle,caps:none   # Switch with Alt+Shift
  follow_mouse = 1

        repeat_rate = 30
        repeat_delay = 250

  touchpad {
      natural_scroll = yes
  }
}

general {
        gaps_in = 0
  gaps_out = 0

  border_size = 1
  col.inactive_border = rgba(343F44FF)
  col.active_border = rgba(475258FF)

        resize_on_border = true
        extend_border_grab_area = 7

  layout = dwindle
}

decoration {
  rounding = 0
  blur {
    enabled = false
  }
  drop_shadow = false
}

animations {
  enabled = no
}

misc {
        disable_splash_rendering = true
  disable_hyprland_logo = true
  background_color = 0x1E2326

  mouse_move_enables_dpms = true
        key_press_enables_dpms = true

  focus_on_activate = true  # Respect app focus requests
}

dwindle {
  pseudotile = yes
  preserve_split = yes
  no_gaps_when_only = 1 # disable borders when there is one window in the workspace
}



Config File: /home/heather/.config/hypr/binds.conf: Read Succeeded
# Key binds config

# Mian mod key is SUPER (Windows)
$mainMod = SUPER

# Launch applications
bind = $mainMod, T, exec, if pgrep --exact "tmux: server"; then exec foot --term foot-extra tmux attach; else exec foot --term foot-extra tmux; fi
bind = $mainMod_SHIFT, T, exec, foot tmux new-session
bind = $mainMod_SHIFT, R, exec, [float] foot tmux new-session
bind = $mainMod, W, exec, firefox

bind = $mainMod, A, exec, foot-popup pulsemixer
bind = $mainMod, R, exec, foot-popup ~/.config/scripts/drun-fzf/drun-fzf.sh
bind = $mainMod, C, exec, foot-popup ~/.config/scripts/cliphist-fzf/cliphist-fzf.sh
bind = $mainMod, B, exec, foot-popup ~/.config/scripts/firefox-history-fzf/firefox-history-fzf.sh
bind = $mainMod, D, exec, foot-popup ~/.config/scripts/dashboard.sh

# Window management
bind = $mainMod, Q, exec, ~/.config/scripts/hyprland-kill-active-window.sh
#bind = $mainMod, Q, killactive
bind = $mainMod, O, togglefloating,
bind = $mainMod, P, pin,
bind = $mainMod, F, fullscreen,1 # maximize (keep panel)
bind = $mainMod_SHIFT, F, fullscreen,0 # actual fullscreen


bind = $mainMod, S, exec, grim - | tee ~/pictures/sshots/"$(date --iso-8601=ns)".png | wl-copy -t "image/png"
bind = $mainMod_SHIFT, S, exec, grim -g "$(slurp)" - | tee ~/pictures/sshots/"$(date --iso-8601=ns)".png | wl-copy -t "image/png"
bind = $mainMod_CTRL, S, exec, grim -g "$(slurp)" - | swappy -f - -o - | wl-copy -t "image/png"
bind = $mainMod, U, exec, hyprpicker -a -f hex

# Cycle through open windows
bind = $mainMod, N, cyclenext

# Scroll through existing workspaces
bind = $mainMod, L, workspace, r+1
bind = $mainMod, H, workspace, r-1

# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow

# Switch workspaces with mainMod + [9-0]
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 + [9-0]
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

# Audio control with pactl
binde = , XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +5%
binde = , XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -5%
bind = , XF86AudioMute, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle
bind = , XF86AudioMicMute, exec, pactl set-source-mute @DEFAULT_SOURCE@ toggle
bindr = , VoidSymbol, exec, pactl set-source-mute @DEFAULT_SOURCE@ toggle

# Backlight control with brightnessctl
binde = , XF86MonBrightnessDown, exec, brightnessctl --class=backlight s 10-
binde = , XF86MonBrightnessUp, exec, brightnessctl --class=backlight s +10

# Turn display off
# (XF86ScreenSaver doesn't work for some reason so we use the keycode)
bind = , code:160, exec, sleep 0.5 && hyprctl dispatch dpms off

# Bind F10 key to toggle player play/pause
bind = , XF86TouchpadToggle, exec, playerctl play-pause


Config File: /home/heather/.config/hypr/windowrules.conf: Read Succeeded
# Window rules
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more

# Firefox Picture-in-Picture
windowrulev2=float,initialTitle:^Picture-in-Picture$
windowrulev2=pin,initialTitle:^Picture-in-Picture$
windowrulev2=keepaspectratio,initialTitle:^Picture-in-Picture$
windowrulev2=size 30% 30%,initialTitle:^Picture-in-Picture$
windowrulev2 = suppressevent fullscreen maximize,initialTitle:^Picture-in-Picture$

# Make firefox itself tiled
windowrulev2 = tile,initialTitle:^Mozilla Firefox$,initialClass:^firefox$
# All other windows with `firefox` class (file dialogues, etc) should be floating
windowrulev2 = float,initialClass:^firefox$,initialTitle:^(?!Mozilla Firefox$)(.*)$
windowrulev2 = size 60% 80%,initialClass:^firefox$,initialTitle:^(?!Mozilla Firefox$)(.*)$
windowrulev2 = suppressevent fullscreen maximize,initialClass:^firefox$,initialTitle:^(?!Mozilla Firefox$)(.*)$

# gtk portal file browser
windowrulev2 = float,initialClass:^xdg-desktop-portal-gtk$
windowrulev2 = size 60% 80%,initialClass:^xdg-desktop-portal-gtk$

# Make telegram media viewer floating and fullscreen it
windowrulev2=float,initialClass:^org.telegram.desktop$,title:^Media viewer$
windowrulev2=maximize,initialClass:^org.telegram.desktop$,title:^Media viewer$
# Telegram file picker
windowrulev2 = float,initialClass:^telegram-desktop$
windowrulev2 = size 60% 80%,initialClass:^telegram-desktop$

# Pavucontrol
windowrulev2=float,initialClass:^org.pulseaudio.pavucontrol$
windowrulev2=pin,initialClass:^org.pulseaudio.pavucontrol$
windowrulev2=size 40% 40%,initialClass:^org.pulseaudio.pavucontrol$

# Ripdrag
windowrulev2=pin,class:^it.catboy.ripdrag$

# Float foot windows with foot-float class
windowrulev2 = float,initialTitle:^foot-float$
windowrulev2 = size 720 504,initialTitle:^foot-float$

# Float imv windows with imv-float title
windowrulev2 = float,initialTitle:^imv-float$

# Rules for foot-popup windows
# assuming cell_width=9 and cell_height=21, 80 cells wide and 24 cells tall
windowrulev2 = float,initialClass:^foot-popup$
windowrulev2 = center 1,initialClass:^foot-popup$
windowrulev2 = size 720 504,initialClass:^foot-popup$
windowrulev2 = pin,initialClass:^foot-popup$
windowrulev2 = stayfocused,initialClass:^foot-popup$

# Fat borders on floating windows
windowrulev2 = bordersize 2,floating:1
# Explicitly center all floating windows
windowrulev2 = center 1,floating:1



Config File: /home/heather/.config/hypr/environment.conf: Read Succeeded
# Environment variables

# Use AMD integrated GPU
env = WLR_DRM_DEVICES,/dev/dri/by-name/amdgpu-card

# Disable GTK accessibility bus
env = GTK_A11Y,none
env = NO_AT_BRIDGE,1

# Firefox settings
env = MOZ_DISABLE_RDD_SANDBOX,1   # hwaccel refuses to work without this
env = MOZ_DRM_DEVICE,/dev/dri/by-name/amdgpu-render

# Wayland in QT apps
env = QT_QPA_PLATFORM,wayland
env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1

# Nvidia, FUCK YOU
env = VDPAU_DRIVER,radeonsi
env = LIBVA_DRIVER_NAME,radeonsi

# Nvidia cache directory (prevent creating ~/.nv)
env = __GL_SHADER_DISK_CACHE_PATH,/home/heather/.cache/nv/
env = CUDA_CACHE_PATH,/home/heather/.cache/nv/
# npm cache directory
env = npm_config_cache,/home/heather/.cache/npm
# pnpm store
env = PNPM_HOME,/home/heather/.cache/pnpm
# move .cargo out of ~
env = CARGO_HOME,/home/heather/.cache/cargo
# move go out of ~
env = GOPATH,/home/heather/.cache/go

# GTK2 config location
env = GTK2_RC_FILES,/home/heather/.config/gtk-2.0/gtkrc
# GTK theme
#env = GTK_THEME,Adwaita:dark

# Bash startup file for non-interactive shells
env = BASH_ENV,/home/heather/.config/bash/non-interactive.sh

# XDG user dirs
env = XDG_CONFIG_HOME,/home/heather/.config/
env = XDG_DATA_HOME,/home/heather/.local/share/
env = XDG_STATE_HOME,/home/heather/.local/state/
env = XDG_CACHE_HOME,/home/heather/.cache/



Config File: /home/heather/.config/hypr/autostart.conf: Read Succeeded
# Systemd services inherit hyprland environment
exec-once = systemctl --user import-environment

# Portals
exec-once = systemctl --user restart xdg-desktop-portal.service
exec-once = systemctl --user restart xdg-desktop-portal-hyprland.service
exec-once = systemctl --user restart xdg-desktop-portal-gtk.service

# Pipewire
exec-once = systemctl --user start pipewire.service
exec-once = systemctl --user start pipewire-pulse.service
exec-once = systemctl --user start wireplumber.service

# Apps
exec-once = systemctl --user restart hypridle.service
exec-once = systemctl --user restart hyprpaper.service
exec-once = systemctl --user restart dunst.service
exec-once = systemctl --user restart ags.service

# My scripts
exec-once = systemctl --user restart cliphist.service
exec-once = systemctl --user restart capslock-mic-indicator.service
exec-once = systemctl --user restart profile-notify.service
exec-once = systemctl --user restart foot-popup-server.service

# Oneshot cmds
exec-once = hyprctl setcursor Adwaita 20
exec-once = bash -c "while read -r dev; do hyprctl switchxkblayout $dev 0; done < <(hyprctl devices -j | jq -r '.keyboards[] | .name')"
exec-once = if ! pgrep --exact "tmux: server"; then foot -- tmux new-session ~/.config/scripts/tmux-first-session-init.sh; fi


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

Description

After 2566d81, some Xwayland games freeze and completely stop responding to any input (keyboard or mouse) after unfocusing their window.

How to reproduce

  1. Run a fullscreen Xwayland game
  2. Switch to another workspace and then switch back
  3. Game is now frozen

Crash reports, logs, images, videos

Demonstration: https://files.catbox.moe/zht1bt.mp4

@heather7283 heather7283 added the bug Something isn't working label Jun 17, 2024
@vaxerski
Copy link
Member

#6375

@vaxerski vaxerski closed this as not planned Won't fix, can't repro, duplicate, stale Jun 17, 2024
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

2 participants