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.66k stars 830 forks source link

armcord crashes #7133

Closed BluewyDiamond closed 1 month ago

BluewyDiamond commented 1 month ago

Regression?

Yes

System Info and Version

System/Version info ```sh Hyprland, built from branch main at commit 60571cd5ccc76f91209ef2faac93ecea542de221 (border: fixup infinite recursion). Date: Thu Aug 1 12:36:15 2024 Tag: v0.41.2-152-g60571cd5, commits: 5038 flags: (if any) System Information: System name: Linux Node name: CachyOS Release: 6.10.2-2-cachyos-lto Version: #1 SMP PREEMPT_DYNAMIC Sat, 27 Jul 2024 16:45:35 +0000 GPU information: 2f:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 [Radeon RX 5600 OEM/5600 XT / 5700/5700 XT] [1002:731f] (rev c1) (prog-if 00 [VGA controller]) os-release: NAME="CachyOS Linux" PRETTY_NAME="CachyOS" ID=cachyos ID_LIKE=arch BUILD_ID=rolling ANSI_COLOR="38;2;23;147;209" HOME_URL="https://cachyos.org/" DOCUMENTATION_URL="https://wiki.cachyos.org/" SUPPORT_URL="https://forum.cachyos.org/" BUG_REPORT_URL="https://github.com/cachyos" PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/" LOGO=cachyos plugins: ======Config-Start====== Config File: /home/bluewy/.config/hypr/hyprland.conf: Read Succeeded # ----------------------------------------------------- # Monitors # ----------------------------------------------------- source = $HOME/.config/hypr/sections/monitors.conf # ----------------------------------------------------- # Inputs # ----------------------------------------------------- source = $HOME/.config/hypr/sections/inputs.conf # ----------------------------------------------------- # Keybinds # ----------------------------------------------------- source = $HOME/.config/hypr/sections/keybinds.conf # ----------------------------------------------------- # Environment Variables # ----------------------------------------------------- source = $HOME/.config/hypr/sections/env.conf # ----------------------------------------------------- # Window Rules # ----------------------------------------------------- source = $HOME/.config/hypr/sections/window_rules.conf # ----------------------------------------------------- # Behaviour Rules # ----------------------------------------------------- source = $HOME/.config/hypr/sections/behaviours.conf # ----------------------------------------------------- # Tiling Rules # ----------------------------------------------------- source = $HOME/.config/hypr/sections/tiling.conf # ----------------------------------------------------- # Aesthetics # ----------------------------------------------------- source = $HOME/.config/hypr/sections/aesthetics.conf # ----------------------------------------------------- # Autostart # ----------------------------------------------------- source = $HOME/.config/hypr/sections/autostart.conf Config File: /home/bluewy/.config/hypr/sections/monitors.conf: Read Succeeded monitor = DP-2, 1920x1080@239.964, 0x0, 1 misc { vfr = on vrr = 2 } general { allow_tearing = true } Config File: /home/bluewy/.config/hypr/sections/inputs.conf: Read Succeeded # ----------------------------------------------------- # Keyboard # ----------------------------------------------------- input { kb_layout = bluewy kb_variant = colemak_dh_wide_custom_iso kb_options = grp:win_space_toggle } # ----------------------------------------------------- # Mouse # ----------------------------------------------------- device { name = steelseries-steelseries-rival-3 sensitivity = -0.5 accel_profile = flat } Config File: /home/bluewy/.config/hypr/sections/keybinds.conf: Read Succeeded # ----------------------------------------------------- # Main Keybinds # ----------------------------------------------------- bind = SUPER, 1, focusworkspaceoncurrentmonitor, 1 bind = SUPER, 2, focusworkspaceoncurrentmonitor, 2 bind = SUPER, 3, focusworkspaceoncurrentmonitor, 3 bind = SUPER, 4, focusworkspaceoncurrentmonitor, 4 bind = SUPER, 8, focusworkspaceoncurrentmonitor, 8 bind = SUPER, 9, focusworkspaceoncurrentmonitor, 9 bind = SUPER, 0, focusworkspaceoncurrentmonitor, 10 bind = SUPER + SHIFT, 1, movetoworkspace, 1 bind = SUPER + SHIFT, 2, movetoworkspace, 2 bind = SUPER + SHIFT, 3, movetoworkspace, 3 bind = SUPER + SHIFT, 4, movetoworkspace, 4 bind = SUPER + SHIFT, 8, movetoworkspace, 8 bind = SUPER + SHIFT, 9, movetoworkspace, 9 bind = SUPER + SHIFT, 0, movetoworkspace, 10 bind = SUPER, Left, movefocus, l bind = SUPER, Right, movefocus, r bind = SUPER, Up, movefocus, u bind = SUPER, Down, movefocus, d bind = SUPER, N, movefocus, l bind = SUPER, I, movefocus, r bind = SUPER, U, movefocus, u bind = SUPER, E, movefocus, d bind = SUPER + SHIFT, Left, movewindoworgroup, l bind = SUPER + SHIFT, Right, movewindoworgroup, r bind = SUPER + SHIFT, Up, movewindoworgroup, u bind = SUPER + SHIFT, Down, movewindoworgroup, d bind = SUPER + SHIFT, N, movewindoworgroup, l bind = SUPER + SHIFT, I, movewindoworgroup, r bind = SUPER + SHIFT, U, movewindoworgroup, u bind = SUPER + SHIFT, E, movewindoworgroup, d bind = SUPER, B, togglefloating, bind = SUPER, S, togglesplit, bind = SUPER, G, togglegroup bind = SUPER, K, lockgroups, toggle bind = SUPER, period, changegroupactive bind = SUPER, H, changegroupactive, b bind = SUPER, M, fullscreen, 1 # bind = SUPER, Q, fakefullscreen bind = SUPER, F, fullscreen bindm = SUPER, mouse:272, movewindow bindm = SUPER, mouse:273, resizewindow bind = SUPER + SHIFT, Escape, exit bind = SUPER, X, killactive # ----------------------------------------------------- # Other Keybinds # ----------------------------------------------------- bind = SUPER, L, exec, wezterm bind = SUPER, Y, exec, ags -t ags-launcher bind = SUPER, P, exec, ags -r 'recorder.screenshot(true)' bind = SUPER + SHIFT, P, exec, ags -r 'recorder.screenshot()' bind = SUPER, TAB, exec, ags -t ags-overview bind = ALT, TAB, exec, ags -t ags-overview bind = SUPER, V, exec, cliphist list | fuzzel --dmenu | cliphist decode | wl-copy bind = SUPER, O, exec, $HOME/.config/fuzzel/scripts/hyprland/show_quick_options.fish # ----------------------------------------------------- # Laptop Specific # ----------------------------------------------------- # screen brightness bind = , XF86MonBrightnessUp, exec, brightnessctl s +5% bind = , XF86MonBrightnessDown, exec, brightnessctl s 5%- # keyboard brightness bind = , xf86KbdBrightnessUp, exec, brightnessctl -d *::kbd_backlight set +33% bind = , xf86KbdBrightnessDown, exec, brightnessctl -d *::kbd_backlight set 33%- # volume and media control bind = , XF86AudioRaiseVolume, exec, pamixer -i 5 bind = , XF86AudioLowerVolume, exec, pamixer -d 5 bind = , XF86AudioMicMute, exec, pamixer --default-source -m bind = , XF86AudioMute, exec, pamixer -t bind = , XF86AudioPlay, exec, playerctl play-pause bind = , XF86AudioPause, exec, playerctl play-pause bind = , XF86AudioNext, exec, playerctl next bind = , XF86AudioPrev, exec, playerctl previous Config File: /home/bluewy/.config/hypr/sections/env.conf: Read Succeeded env = XDG_CURRENT_DESKTOP, Hyprland env = XDG_SESSION_DESKTOP, Hyprland env = XDG_SESSION_TYPE, wayland env = XDG_CONFIG_HOME, $HOME/.config env = XDG_DATA_HOME, $HOME/.local/share env = XDG_STATE_HOME, $HOME/.local/state env = XDG_CACHE_HOME, $HOME/.cache env = PATH, $PATH:$HOME/.local/bin:$HOME/.cargo/bin # wayland stuff env = SDL_VIDEODRIVER, wayland env = CLUTTER_BACKEND, wayland env = GDK_BACKEND, wayland,x11 env = QT_QPA_PLATFORM, wayland;xcb # more wayland stuff but from other sources env = WAYLAND, 1 env = MOZ_DBUS_REMOTE, 1 env = MOZ_ENABLE_WAYLAND, 1 env = _JAVA_AWT_WM_NONREPARENTING, 1 env = BEMENU_BACKEND, wayland env = ECORE_EVAS_ENGINE, wayland_egl env = ELM_ENGINE, wayland_egl # enable tearing support for hyprland env = WLR_DRM_NO_ATOMIC, 1 env = EDITOR, nvim # Manage sensitive information with kwallet. env = GIT_ASKPASS, /usr/bin/ksshaskpass env = SSH_ASKPASS, /usr/bin/ksshaskpass env = SSH_ASKPASS_REQUIRE, prefer # GTK stuff env = GTK_THEME, Sweet-Dark # QT stuff env = QT_QPA_PLATFORMTHEME, qt6ct env = QT_WAYLAND_DISABLE_WINDOWDECORATION, 1 # pointer env = XCURSOR_THEME, Bibata-Modern-Classic Config File: /home/bluewy/.config/hypr/sections/window_rules.conf: Read Succeeded layerrule = blur, launcher layerrule = blur, waybar layerrule = blur, gtk-layer-shell layerrule = blur, nwg-dock layerrule = blur, class:^(ags.*)$ layerrule = animation slide right, swaync-control-center layerrule = animation slide top, waybar windowrulev2 = idleinhibit fullscreen, class:^(.*)$ # Improve responsiveness for all applications with exceptions. # example of how the regular expression might look like -> class:^(?!LibreWolf$|Firefox$).*$ windowrulev2 = immediate, class:^(?!LibreWolf$).*$ # Disable potentially annoying requests with exceptions. windowrulev2 = suppressevent fullscreen, class:^(?!LibreWolf$).*$ windowrulev2 = suppressevent maximize, class:^(.*)$ windowrulev2 = suppressevent activate, class:^(.*)$ windowrulev2 = suppressevent activatefocus, class:^(.*)$ # Make jetbrains applications less buggy. windowrulev2 = noinitialfocus, class:^(jetbrains-.*)$, title:^(win.*)$ Config File: /home/bluewy/.config/hypr/sections/behaviours.conf: Read Succeeded input { follow_mouse = 2 mouse_refocus = false float_switch_override_focus = 0 } gestures { workspace_swipe = true workspace_swipe_fingers = 3 } misc { key_press_enables_dpms = true new_window_takes_over_fullscreen = 2 disable_hyprland_logo = true } xwayland { force_zero_scaling = true } experimental { explicit_sync = true } Config File: /home/bluewy/.config/hypr/sections/tiling.conf: Read Succeeded general { layout = dwindle } dwindle { pseudotile = yes preserve_split = yes } Config File: /home/bluewy/.config/hypr/sections/aesthetics.conf: Read Succeeded # ----------------------------------------------------- # Visuals # ----------------------------------------------------- general { gaps_in = 4 gaps_out = 8 border_size = 3 col.active_border = rgba(E06C75ff) # red col.inactive_border = 0xff5c6370 # grey } group { col.border_active = rgba(98C379CC) # green col.border_inactive = rgba(c678ddff) # grey col.border_locked_active = rgba(E06C75ff) # red col.border_locked_inactive = rgba(c678ddff) # grey groupbar { enabled = false gradients = false text_color = 0xffabb2bf font_size = 10 col.active = rgba(98C379CC) # green col.inactive = rgba(d19a66ff) # orange col.locked_active = rgba(e06c75ff) # red col.locked_inactive = rgba(d19a66ff) # orange render_titles = false } } decoration { blur { size = 7 passes = 2 } rounding = 4 drop_shadow = false } # ----------------------------------------------------- # Animations # ----------------------------------------------------- animations { enabled = yes bezier = easeOutQuart, 0.165, 0.84, 0.44, 1 animation = fade, 0 animation = workspaces, 1, 7, easeOutQuart, slide animation = windowsIn, 1, 7, easeOutQuart, popin 0% animation = windowsOut, 1, 7, easeOutQuart, popin 0% animation = windowsMove, 1, 7, easeOutQuart, popin 0% animation = layersIn, 1, 7, easeOutQuart, popin 0% animation = layersOut, 1, 7, easeOutQuart, popin 0% } Config File: /home/bluewy/.config/hypr/sections/autostart.conf: Read Succeeded # Make systemd aware of the specified environment variables. exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP exec-once = systemctl --user import-environment XDG_SESSION_TYPE XDG_CURRENT_DESKTOP exec-once = systemctl --user import-environment QT_QPA_PLATFORMTHEME # Use preferred privilage elevation tool. exec-once = /usr/lib/polkit-kde-authentication-agent-1 # Use portals for additional features. (though its started automatically) exec-once = systemctl start --user xdg-desktop-portal-hyprland exec-once = systemctl start --user xdg-desktop-portal-gtk # Get widgets such as status bar, notifications popups, launcher... # exec-once = sleep 1 && ags -c $HOME/.config/ags-ayulr/config.js # Listen for user absence. # exec-once = hypridle # Record notifications history. exec-once = bash $HOME/.config/hypr/scripts/hyprland/log_notifications.sh $XDG_DATA_HOME/notify.log # Set background wallpaper. # exec-once = hyprpaper # Enable clipboard capabilities. exec-once = wl-paste --type text --watch cliphist store # stores only text data exec-once = wl-paste --type image --watch cliphist store # stores only image data # Start sensitive information manager. exec-once = /usr/lib/pam_kwallet_init # Prevent idle during sound playback. exec-once = wayland-pipewire-idle-inhibit ======Config-End======== ```

Description

armcord crashes after doing its loading animation thingy with the commit 37e1411e8d94fe8f3fb678588a7df9b8f931910f according to the bisect.

How to reproduce

  1. open armcord
  2. it crashes/disappears

Crash reports, logs, images, videos

output of WAYLAND_DEBUG=1 armcord --enable-features=UseOzonePlatform --ozone-platform=wayland 2>&1 | tee output.txt: output.txt

BluewyDiamond commented 1 month ago

unfortunately i'm still having the same problem even with the commit ab0a3268e04f2295ec4455be90ce8d0c2b107b8d wayland debug: output5.txt

from what i have observed it only works if u're opening armcord for the first time afterwards it will just crash or not open

i have tested it again and it is indeed this commit 37e1411e8d94fe8f3fb678588a7df9b8f931910f which causes my problem, this problem does not happen with the previous commit to it.

vaxerski commented 1 month ago

why

BluewyDiamond commented 1 month ago

i dont know myself on why this is happening

vaxerski commented 1 month ago

launches for me just fine

edit: wait xwayland

edit edit: wayland works too

BluewyDiamond commented 1 month ago

this is after logging in and quitting armcord via tray item and reopening armcord again:

https://github.com/user-attachments/assets/b4c368a1-26d1-4e79-a8a1-6f604893b450

BluewyDiamond commented 1 month ago

oh im not sure why but i removed my electron-flags.conf under ~/.config and it works it is strange cause this shouldn't be a problem (i manually put the wayland flag when running armcord)

this is the contents of electron-flags.conf: --enable-features=UseOzonePlatform --ozone-platform=wayland it should be one flag per line but i don't know why github is showing it all in one line

edit: nevermind it is still crashing

edit2: it seems like sometimes it does work sometimes but very rarely

edit3: i dont know why this is a thing but running the xwayland version and then running the wayland version will not cause it to crash but running wayland version and running again the wayland version it causes it to crash

BluewyDiamond commented 1 month ago

@vaxerski did you run it through wayland and then through wayland again? (running it once through xwayland will make running it next time through wayland work for some reason)

and armcord is also crashing on my laptop apart from my pc.

vaxerski commented 1 month ago

I launched it like 20 times with wayland native

BluewyDiamond commented 1 month ago

im not sure if this helps but on this one at the end it says

[37976:0801/235836.841920:ERROR:wayland_event_watcher.cc(68)] Fatal Wayland communication error: Connection reset by peer.

instead of the output5.txt

[3009078.291] wl_display@1.error(xdg_wm_base@23, 4294967295, "Surface already has a different role")
[2625:0801/182827.910174:ERROR:wayland_event_watcher.cc(43)] libwayland: xdg_wm_base@23: error -1: Surface already has a different role

output7.txt

vaxerski commented 1 month ago

I realize what happens but I fail to see how that error is hit (after today's patch)

BluewyDiamond commented 1 month ago

does this help?

[LOG] [XDGShell] xdg_surface 5c312fb33740 requests geometry 0x0 942x1058
[LOG] [Window 5c31307cd9d0: title: "ArmCord", class: ArmCord] destroyed, queueing.
[LOG] CWLSurface 5c31309a9780 called destroy()
[ERR] onWindowRemovedTiling node null?
[LOG] Unmapped [Window 5c31307cd9d0: title: "ArmCord"] removed instantly
vaxerski commented 1 month ago

I'll look into it tomorrow

909oce commented 1 month ago

happening for me aswell, exact same issue with error logging: [2548:0802/154129.773888:ERROR:wayland_event_watcher.cc(43)] libwayland: xdg_wm_base@23: error -1: Surface already has a different role

WhySoBad commented 1 month ago

I'm seeing the same issue when running bottles on v0.41.2-159-g4141e675 with explicit sync off:

[2003523.037] {Display Queue} wl_display#1.error(xdg_wm_base#37, 4294967295, "Surface already has a different role")
Gdk-Message: 11:57:06.210: Error 71 (Protocol error) dispatching to Wayland display.

It does not happen instantly but after some clicking in the ui the program crashes

vaxerski commented 1 month ago

thanks, repro'd