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
21.58k stars 902 forks source link

Hyprland crash on monitor + TV setup (HDMI + DisplayPort) #7676

Closed leovingi closed 2 months ago

leovingi commented 2 months ago

Regression?

No

System Info and Version

System/Version info ```sh Hyprland, built from branch at commit 9a09eac79b85c846e3a865a9078a3f8ff65a9259 (props: bump version to 0.42.0). Date: Wed Aug 7 19:17:10 2024 Tag: v0.42.0, commits: 5069 flags: (if any) System Information: System name: Linux Node name: archlinux Release: 6.10.8-arch1-1 Version: #1 SMP PREEMPT_DYNAMIC Wed, 04 Sep 2024 15:16:37 +0000 GPU information: 05: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 c0) (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/matiss/.config/hypr/hyprland.conf: Read Succeeded # ####################################################################################### # AUTOGENERATED HYPR CONFIG. # PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hypr.conf AND EDIT IT, # OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS. # ####################################################################################### autogenerated = 0 # remove this line to remove the warning # This is an example Hyprland config file. # Refer to the wiki for more information. # https://wiki.hyprland.org/Configuring/Configuring-Hyprland/ # Please note not all available settings / options are set here. # For a full list, see the wiki # You can split this configuration into multiple files # Create your files separately and then link them to this file like this: # source = ~/.config/hypr/myColors.conf ################ ### MONITORS ### ################ # See https://wiki.hyprland.org/Configuring/Monitors/ monitor=HDMI-A-1,1920x1080,0x0,1,mirror,DP-3 # monitor=HDMI-A-1,1920x1080,0x0,1 # monitor=DP-3,3840x2160,3840x0,1 monitor=,1920x1080,0x0,1 ################### ### MY PROGRAMS ### ################### # See https://wiki.hyprland.org/Configuring/Keywords/ # Set programs that you use $terminal = alacritty $fileManager = thunar $menu = TERMINAL=alacritty rofi -show drun ################# ### AUTOSTART ### ################# # Autostart necessary processes (like notifications daemons, status bars, etc.) # Or execute your favorite apps at launch like this: # exec-once = $terminal # exec-once = nm-applet & # exec-once = waybar & hyprpaper & firefox exec-once = waybar # exec-once = hyprpaper exec-once = waypaper --restore #To change cursors for GTK use nwg-look exec-once = hyprctl setcursor 'phinger-cursors-light' 24 ############################# ### ENVIRONMENT VARIABLES ### ############################# # See https://wiki.hyprland.org/Configuring/Environment-variables/ env = XCURSOR_SIZE,24 env = HYPRCURSOR_SIZE,24 ##################### ### LOOK AND FEEL ### ##################### # Refer to https://wiki.hyprland.org/Configuring/Variables/ # https://wiki.hyprland.org/Configuring/Variables/#general general { gaps_in = 2 gaps_out = 3 border_size = 0 # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors col.active_border = rgba(595959aa) col.inactive_border = rgba(595959aa) # Set to true enable resizing windows by clicking and dragging on borders and gaps resize_on_border = false # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on allow_tearing = false layout = dwindle } # https://wiki.hyprland.org/Configuring/Variables/#decoration decoration { rounding = 5 # Change transparency of focused and unfocused windows active_opacity = 1.0 inactive_opacity = 1.0 drop_shadow = false shadow_range = 4 shadow_render_power = 3 col.shadow = rgba(1a1a1aee) # https://wiki.hyprland.org/Configuring/Variables/#blur blur { enabled = false size = 3 passes = 1 vibrancy = 0.1696 } } # https://wiki.hyprland.org/Configuring/Variables/#animations animations { enabled = false # Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more bezier = myBezier, 0.05, 0.9, 0.1, 1.05 animation = windows, 1, 7, myBezier animation = windowsOut, 1, 7, default, popin 80% animation = border, 1, 10, default animation = borderangle, 1, 8, default animation = fade, 1, 7, default animation = workspaces, 1, 6, default } # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more dwindle { pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below preserve_split = true # You probably want this } # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more master { new_status = master } # https://wiki.hyprland.org/Configuring/Variables/#misc misc { force_default_wallpaper = 0 # Set to 0 or 1 to disable the anime mascot wallpapers disable_hyprland_logo = true # If true disables the random hyprland logo / anime girl background. :( } ############# ### INPUT ### ############# # https://wiki.hyprland.org/Configuring/Variables/#input input { kb_layout = lv kb_variant = apostrophe kb_model = pc105 kb_options = kb_rules = follow_mouse = 1 sensitivity = 0 # -1.0 - 1.0, 0 means no modification. touchpad { natural_scroll = false } } # https://wiki.hyprland.org/Configuring/Variables/#gestures gestures { workspace_swipe = false } # Example per-device config # See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more device { name = epic-mouse-v1 sensitivity = -0.5 } #################### ### KEYBINDINGSS ### #################### # See https://wiki.hyprland.org/Configuring/Keywords/ $mainMod = SUPER # Sets "Windows" key as main modifier # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more bind = $mainMod, C, exec, $terminal bind = $mainMod, Q, killactive, bind = $mainMod, M, exit, bind = $mainMod, F, exec, $fileManager bind = $mainMod, V, togglefloating, bind = $mainMod, R, exec, $menu bind = $mainMod, P, pseudo, # dwindle bind = $mainMod, J, togglesplit, # dwindle # shutdown bind = $mainMod SHIFT, Escape, exec, systemctl poweroff # Move focus with mainMod + arrow keys bind = $mainMod, left, movefocus, l bind = $mainMod, right, movefocus, r bind = $mainMod, up, movefocus, u bind = $mainMod, down, movefocus, d # Switch workspaces with mainMod + [0-9] 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 + [0-9] 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 # Example special workspace (scratchpad) # bind = $mainMod, S, togglespecialworkspace, magic # bind = $mainMod SHIFT, S, movetoworkspace, special:magic # Take screenshot of area and copy to clipboard bind = $mainMod SHIFT, S, exec, slurp | grim -g - - | wl-copy && notify-send "Screenshot saved to clipboard" # Invoke Color Picker bind = $mainMod SHIFT, C, exec, ~/scripts/color-picker-wrapper.sh # Scroll through existing workspaces with mainMod + scroll bind = $mainMod, mouse_down, workspace, e+1 bind = $mainMod, mouse_up, workspace, e-1 # Move/resize windows with mainMod + LMB/RMB and dragging bindm = $mainMod, mouse:272, movewindow bindm = $mainMod, mouse:273, resizewindow # Bind the less key between Shift and Z on Keychron K6 # to output grave and asciitilde # requires the wtype package to be installed bind = ,94,exec,wtype -P grave -p grave bind = Shift_L,94,exec,wtype -P asciitilde -p asciitilde ############################## ### WINDOWS AND WORKSPACES ### ############################## # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more # See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules # workspace = name:1, monitor:HDMI-A-1, default:true # Example windowrule v1 # windowrule = float, ^(kitty)$ # Example windowrule v2 # windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ windowrulev2 = opacity 1.0 override 0.6 override,class:(Chromium) windowrulev2 = opacity 1.0 override 0.6 override,class:(firefox) windowrulev2 = opacity 1.0 override 0.6 override,class:(code-oss) windowrulev2 = opacity 1.0 override 0.6 override,class:(love-git) windowrulev2 = opacity 1.0 override 1.0 override,class:(krita) windowrulev2 = opacity 1.0 override 1.0 override,class:(Ardour-8.6.0) windowrulev2 = opacity 1.0 override 1.0 override,class:(Ardour) windowrulev2 = float,class:(love-git) windowrulev2 = nomaxsize,class:(love-git) windowrulev2 = suppressevent maximize, class:.* # You'll probably like this. windowrulev2 = opaque,class:^()$ windowrulev2 = noshadow,class:^()$ windowrulev2 = noblur,class:^()% windowrulev2 = float,class:(feh) windowrulev2 = center,class:(feh) windowrulev2 = size 70% 70%,class:(feh) ############# ### DEBUG ### ############# debug { disable_logs = false } ======Config-End======== ```

Description

Whenever a second display (Fire TV, connected to DP) is turned on, hyprland crashes and I am forced to restart.

How to reproduce

Currently running a single-monitor + TV setup, monitor connected to the HDMI port, TV connected to the Display Port.

With just the monitor connected and the TV disconnected, everything works fine.

With the monitor connected, the TV connected but switched off, whenever I boot into Arch, I get a frozen ghost-cursor at the top-left of the screen, while I can still move the actual cursor.

With the monitor connected and the TV connected, as soon as I turn the TV on, hyprland crashes and I lose everything except the wallpaper - waybar is gone, I can switch between workspaces, but running any application produces a "Missing X server or $DISPLAY" error. This persists until I restart.

If I boot the system with both the monitor and TV turned on, the ghost-cursor is still there, but nothing crashes. The issue appears only when I turn the TV on

Crash reports, logs, images, videos

Oddly, this does not generate any crash logs, as the ones I can see in ~/.cache/hyprland are older.

romanstingler commented 2 months ago

Can you try a kernel lower than 6.10 like LTS (please no zen)

if this doesn't work, please uninstall hyprland and aquamarine and install the latest -git versions yay -S hyprland-git aquamarine-git --overwrite="*"

If this doesn't work, add env AQ_NO_MODIFIERS,1 to your hyprland.conf

If this still doesn't work, please start hyprland from a TTY with AQ_TRACE=1 HYPRLAND_TRACE=1 hyprland

PS: not sure if this is making problems, but maybe the config should be monitor=,1920x1080,auto,1

no clue how this behaves if you force all monitors on the came coordinates

leovingi commented 2 months ago

Thank you for your suggestions, much appreciated.

not sure if this is making problems, but maybe the config should be monitor=,1920x1080,auto,1

first and easiest change I made, but unfortunately this didn't resolve the issue

Can you try a kernel lower than 6.10 like LTS

Switched to Linux 6.6.49-1-lts

If this doesn't work, add env AQ_NO_MODIFIERS,1 to your hyprland.conf

Added env = AQ_NO_MODIFIERS,1

The longer I use my system, the less consistent the issue appears, so I will keep it running with all the changes you mentioned applied and will report back with results, good or bad.

leovingi commented 2 months ago

So far I've experienced 0 crashes after making the suggested changes. Going to assume it was the Kernel downgrade. If the problem doesn't come back over the course of today I will close this issue.

romanstingler commented 2 months ago

fyi, there have been a significant amount of i915 and AMDGPU fixes in 6.11-RC7, let's hope this is resolved with the final 6.11 kernel.

leovingi commented 2 months ago

Zero crashes after the kernel downgrade. Closing the issue. Thanks @romanstingler