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
20.99k stars 880 forks source link

After monitor disconnect: mouse can still move to the space out of main monitor #6700

Closed mklan closed 3 months ago

mklan commented 3 months ago

Regression?

No

System Info and Version

System/Version info ```sh Hyprland, built from branch at commit 918d8340afd652b011b937d29d5eea0be08467f5 (flake.lock: update). Date: Tue Jun 25 12:06:02 2024 Tag: v0.41.2, commits: 4886 flags: (if any) System Information: System name: Linux Node name: t14-arch Release: 6.9.6-arch1-1 Version: #1 SMP PREEMPT_DYNAMIC Fri, 21 Jun 2024 19:49:19 +0000 GPU information: 64:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Phoenix1 [1002:15bf] (rev dd) (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/matze/.config/hypr/hyprland.conf: Read Succeeded # This is an example Hyprland config file. # Syntax is the same as in Hypr, but settings might differ. # # Refer to the wiki for more information. source = ./conf/autostart.conf source = ./conf/envs.conf source = ./conf/hyprland-styling.conf source = ./conf/displays.conf #monitor=,preferred,auto,2 #monitor=,highres,auto,2 source = ./conf/windowrules.conf source = ./conf/binds.conf source = ./conf/animations.conf source = ./conf/input.conf general { resize_on_border=true # no_cursor_warps=false } misc { disable_hyprland_logo = true disable_splash_rendering = true focus_on_activate = true vfr = true background_color = 0x000000 #mouse_move_enables_dpms = true # no_vfr = false # enable_swallow = true # swallow_regex = ^(wezterm)$ } Config File: /home/matze/.config/hypr/conf/autostart.conf: Read Succeeded #Autostart # Setup XDG for screen sharing exec-once = ~/.config/hypr/scripts/xdg.sh # ----------------------------------------------------- # Environment for xdg-desktop-portal-hyprland # ----------------------------------------------------- exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP # Start Polkit exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 # for hyprshade exec-once = dbus-update-activation-environment --systemd HYPRLAND_INSTANCE_SIGNATURE exec-once=dbus-daemon --session --address=unix:path=$XDG_RUNTIME_DIR/bus ##exec-once=~/.config/hypr/scripts/listener/listen.sh #exec-once=wal -l --theme ~/dotfiles/config/.config/wal/colorschemes/dark/everforest.json exec-once=hypridle exec-once=pypr ##exec-once=swww init && swww img ~/wallpaper/ice.jpg exec-once=nm-applet #exec-once=blueman-applet #exec=killall -q waybar || env GTK_DEBUG=interactive waybar & disown exec-once=waybar exec-once=redshift-gtk -l 48.20849:16.37208 # fix for wrong keyboard layout in vscode exec=setxkbmap de exec-once=~/.config/hypr/scripts/prevent-oled-burnin.sh Config File: /home/matze/.config/hypr/conf/envs.conf: Read Succeeded env = XDG_CURRENT_DESKTOP,Hyprland env = XDG_SESSION_TYPE,wayland env = XDG_SESSION_DESKTOP,Hyprland env = MOZ_ENABLE_WAYLAND,1 # use intel gpu # Renv = WLR_DRM_DEVICES,/dev/dri/card1:/dev/dri/card0 env = GDK_BACKEND,wayland,x11 env = ELECTRON_OZONE_PLATFORM_HINT,wayland env = QT_QPA_PLATFORM,wayland env = QT_QPA_PLATFORMTHEME,qt5ct #qt6ct env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1 env = QT_AUTO_SCREEN_SCALE_FACTOR,1 env = QT_STYLE_OVERRIDE,kvantum Config File: /home/matze/.config/hypr/conf/hyprland-styling.conf: Read Succeeded source = ~/.cache/wal/colors-hyprland.conf general { gaps_in=3 gaps_out=4 border_size=1 col.active_border=$color5 col.inactive_border=$color6 } decoration { rounding=0 # multisample_edges=1 # enable antialiasing for rounded corners dim_inactive=false dim_strength=0.5 drop_shadow=false blur { enabled = false size = 8 passes = 2 noise = 0 contrast = 1 } } Config File: /home/matze/.cache/wal/colors-hyprland.conf: Read Succeeded $background = rgb(000000) $foreground = rgb(d8caac) $color0 = rgb(000000) $color1 = rgb(e68183) $color2 = rgb(a7c080) $color3 = rgb(d9bb80) $color4 = rgb(89beba) $color5 = rgb(d3a0bc) $color6 = rgb(87c095) $color7 = rgb(d8caac) $color8 = rgb(868d80) $color9 = rgb(e68183) $color10 = rgb(a7c080) $color11 = rgb(d9bb80) $color12 = rgb(89beba) $color13 = rgb(d3a0bc) $color14 = rgb(87c095) $color15 = rgb(d8caac) Config File: /home/matze/.config/hypr/conf/displays.conf: Read Succeeded # Laptop monitor=eDP-1,2880x1800@90,0x0,2 #hyprctl keyword monitor eDP-1,2880x1800@90,0x0,1.5 monitor=DP-10,3840x2160@60,-1920x0,2 monitor=DP-9,3840x2160@60,-1920x0,2 monitor=HDMI-A-1,3840x2160@60,auto-up,2 # unscale XWayland #xwayland { # force_zero_scaling = true #} # toolkit-specific scale env = GDK_SCALE,2 #env = XCURSOR_SIZE,32 Config File: /home/matze/.config/hypr/conf/windowrules.conf: Read Succeeded # example window rules # for windows named/classed as abc and xyz #windowrule=move 69 420,abc #windowrule=size 420 69,abc #windowrule=tile,xyz windowrulev2 = float,title:abc windowrulev2 = nofocus,title:abc windowrule=float,keepassxc windowrule=float,title:^(File Operation Progress)$ windowrule=move 100%-600 100%-400,keepassxc windowrule=move 83% 50%,Authy windowrule=float,^(pavucontrol)$ windowrule=float,^(blueman-manager)$ windowrule=float,org.kde.polkit-kde-authentication-agent-1 windowrule=animation slide,rofi # sets the animation style for kitty windowrule=noanim,Wlogout # sets the animation style for kitty #windowrule=pseudo,abc #windowrule=monitor 0,xyz windowrule=float,rofi windowrule=stayfocused,rofi layerrule = blur,rofi layerrule = blur,waybar layerrule = blur,notifications windowrule=float,title:^(Picture-in-Picture)$ windowrule=size 640 360,title:^(Picture-in-Picture)$ windowrule=move 100%-680 100%-400,title:^(Picture-in-Picture)$ windowrule=pin,title:^(Picture-in-Picture)$ windowrulev2 = idleinhibit fullscreen, class:^(*)$ windowrulev2 = idleinhibit fullscreen, title:^(*)$ windowrulev2 = idleinhibit fullscreen, fullscreen:1 Config File: /home/matze/.config/hypr/conf/binds.conf: Read Succeeded # BINDINGS $HYPER = CTRL+SUPER+ALT $CONFIG = ~/.config/hypr bind = $HYPER, space, fullscreen, bind=SUPER,D,exec, killall rofi || rofi -show run bind=$HYPER,return,exec,kitty bind=SUPER,Q,killactive, bind=SUPER,C,exec,vscode-projects bind=SUPER,space,togglefloating, #bindr=SUPER,R,exec, pkill wofi || wofi --show drun #bind=SUPER,P,pseudo, bind = SUPER, L, exec, ~/.config/hypr/scripts/lock.sh bind = SUPER, PRINT, exec, hyprshot -m region bind=$HYPER,K,exec, ~/.config/hypr/scripts/active_window_pip.ts binde=$HYPER,plus,exec,$CONFIG/scripts/gap.sh -2 binde=$HYPER,minus,exec,$CONFIG/scripts/gap.sh 2 binde=$HYPER,M,exec,$CONFIG/scripts/set_gap.sh 2 bind=$HYPER,O,exec, hyprctl dispatch dpms off && sleep 1 && hyprctl dispatch dpms on bind=$HYPER,left,movefocus,l bind=$HYPER,right,movefocus,r bind=$HYPER,up,movefocus,u bind=$HYPER,down,movefocus,d bind=CTRL+SUPER,left,movewindow,l bind=CTRL+SUPER,right,movewindow,r bind=CTRL+SUPER,up,movewindow,u bind=CTRL+SUPER,down,movewindow,d binde=SUPER+ALT,left,resizeactive,-40 0 binde=SUPER+ALT,right,resizeactive,40 0 binde=SUPER+ALT,up,resizeactive,0 -40 binde=SUPER+ALT,down,resizeactive,0 40 $DEBUG = deno run -A ~/.config/hypr/scripts/debug.ts #$SET_WORKSPACE = /usr/bin/deno run -A ~/.config/hypr/scripts/setWorkspace.ts $SET_WORKSPACE = ~/.config/hypr/scripts/setWorkspace.ts bind=CTRL,1,exec,$SET_WORKSPACE 1 bind=CTRL,2,exec,$SET_WORKSPACE 2 bind=CTRL,3,exec,$SET_WORKSPACE 3 bind=CTRL,4,exec,$SET_WORKSPACE 4 bind=CTRL,5,exec,$SET_WORKSPACE 5 bind=CTRL,6,exec,$SET_WORKSPACE 6 bind=CTRL,7,exec,$SET_WORKSPACE 7 bind=CTRL,8,exec,$SET_WORKSPACE 8 bind=CTRL,9,exec,$SET_WORKSPACE 9 bind=CTRL,0,exec,$SET_WORKSPACE 10 bind=ALT,TAB,exec,$SET_WORKSPACE last bind=SUPER,TAB,exec,$SET_WORKSPACE next bind=$HYPER,1,movetoworkspace,1 bind=$HYPER,2,movetoworkspace,2 bind=$HYPER,3,movetoworkspace,3 bind=$HYPER,4,movetoworkspace,4 bind=$HYPER,5,movetoworkspace,5 bind=$HYPER,6,movetoworkspace,6 bind=$HYPER,7,movetoworkspace,7 bind=$HYPER,8,movetoworkspace,8 bind=$HYPER,9,movetoworkspace,9 bind=$HYPER,0,movetoworkspace,10 bind=SHIFT+ALT,R,exec,hyprctl reload && notify-send "hyprland reloaded" bind=$HYPER,F,exec,firefox bind=$HYPER,P,exec,firefox -private-window #bind=ALT+SUPER,-, # #### sound control ##### binde=,xf86audioraisevolume,exec,~/.config/hypr/scripts/audio-control.ts up binde=,xf86audiolowervolume,exec,~/.config/hypr/scripts/audio-control.ts down bind=,xf86audiomute,exec,pulseaudio-control togmute bind=,xf86audiomicmute,exec,~/.config/hypr/scripts/mic-control.ts binde=,xf86monbrightnessup,exec, brightnessctl s +3 #brightness.sh 3 bind=$HYPER, xf86monbrightnessup, exec, light -S 100 binde=,xf86monbrightnessdown,exec,brightnessctl s 3- #brightness.sh -3 bind=$HYPER, xf86monbrightnessdown, exec, light -S 0.5 # Move/resize windows with mainMod + LMB/RMB and dragging bindm = SUPER, mouse:272, movewindow bindm = SUPER, mouse:273, resizewindow bind = SUPER,A,exec,pypr toggle term $dropterm = ^(kitty-dropterm)$ windowrule = float,$dropterm windowrule = pin,$dropterm windowrule = workspace special silent,$dropterm windowrule = size 75% 60%,$dropterm bind = SUPER,K,exec,pypr toggle keepassxc $dropkeepass = ^(keepassxc)$ windowrule = float,$dropkeepass windowrule = workspace special silent,$dropkeepass windowrule = size 75% 60%,$dropkeepass $nmtui = ^(nmtui)$ windowrule = float,$nmtui windowrule = pin,$nmtui windowrule = size 50% 50%,$nmtui windowrule = move 50%-5 25,$nmtui # ----------------------------------------------------- # Passthrough SUPER KEY to Virtual Machine # ----------------------------------------------------- #bind = $mainMod, P, submap, passthru #submap = passthru #bind = SUPER, Escape, submap, reset #submap = reset Config File: /home/matze/.config/hypr/conf/animations.conf: Read Succeeded animations { enabled = yes bezier = myBezier, 0.05, 0.9, 0.1, 1.05 animation = windows, 1, 7, myBezier, slide animation = windowsOut, 1, 3, default, slide animation = border, 1, 10, default animation = borderangle, 1, 8, default animation = fade, 1, 7, default animation = workspaces, 1, 5, default animation = specialWorkspace, 1, 5, myBezier, slidevert } Config File: /home/matze/.config/hypr/conf/input.conf: Read Succeeded input { kb_layout=de repeat_rate = 25 follow_mouse=1 natural_scroll=1 #sensitivity=0.5 # for mouse cursor touchpad { natural_scroll=1 } } # hyprctl devices device { name = tpps/2-synaptics-trackpoint sensitivity=-0.2 } # this is new, maybe after an update device { name = tpps/2-elan-trackpoint sensitivity=-0.2 } gestures { workspace_swipe = true } ======Config-End======== ```

Description

When I disconnect my external monitor, I am still able to move the mouse into the space out of the primary integrated monitor of my laptop.

How to reproduce

  1. Connect external monitor
  2. Disconnect
  3. Move mouse where external monitor was positioned

Crash reports, logs, images, videos

No response

c-danil0o commented 3 months ago

+1

MightyPlaza commented 3 months ago

post hyprctl monitors output

mklan commented 3 months ago
monitors     
Monitor eDP-1 (ID 0):
    2880x1800@90.00100 at 0x0
    description: Samsung Display Corp. 0x4193
    make: Samsung Display Corp.
    model: 0x4193
    serial: 
    active workspace: 1 (1)
    special workspace: 0 ()
    reserved: 0 22 0 0
    scale: 2.00
    transform: 0
    focused: yes
    dpmsStatus: 1
    vrr: 0
    activelyTearing: false
    disabled: false
    currentFormat: XRGB8888
    availableModes: 2880x1800@90.00Hz 2880x1800@60.00Hz 1920x1200@90.00Hz 1920x1080@90.00Hz 1600x1200@90.00Hz 1680x1050@90.00Hz 1280x1024@90.00Hz 1440x900@90.00Hz 1280x800@90.00Hz 1280x720@90.00Hz 1024x768@90.00Hz 800x600@90.00Hz 640x480@90.00Hz

With this state I can move the mouse out of the screen. When I exit Hyprland and login again the issue is gone. Up until I connect and disconnect the external monitor again.

MightyPlaza commented 3 months ago

could be related to https://github.com/hyprwm/Hyprland/issues/6740#issuecomment-2203572927 which includes a first bad commit

vaxerski commented 3 months ago

patch.txt try

alexlnkp commented 3 months ago

patch.txt try

Tried this patch on both 41.2 tag and the latest commit on main. It segfaults on both.

Here's the latest commit on main crash log:

--------------------------------------------
   Hyprland Crash Report
--------------------------------------------
Vaxry is going to be upset.

Hyprland received signal 11(SEGV)
Version: 0a6e83005f1910b5c1ec78476fcffc05af47833a
Tag: v0.41.2-20-g0a6e8300

System info:
    System name: Linux
    Node name: 413x1nkp
    Release: 6.9.7-arch1-1
    Version: #1 SMP PREEMPT_DYNAMIC Fri, 28 Jun 2024 04:32:50 +0000

GPU:
    01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA106 [GeForce RTX 3060 Lite Hash Rate] [10de:2504] (rev a1) (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
Backtrace:
    # | Hyprland(_Z12getBacktracev+0x46) [0x559283bc2ab6]
        getBacktrace()
        ??:?
    #1 | Hyprland(_ZN13CrashReporter18createAndSaveCrashEi+0x945) [0x559283b30be5]
        CrashReporter::createAndSaveCrash(int)
        ??:?
    #2 | Hyprland(_Z25handleUnrecoverableSignali+0x5c) [0x559283aab6ec]
        handleUnrecoverableSignal(int)
        ??:?
    #3 | /usr/lib/libc.so.6(+0x3cae0) [0x768da5565ae0]
        ??
        ??:0
    #4 | /usr/lib/libwayland-server.so.0(wl_event_loop_add_idle+0x3b) [0x768da62582eb]
        ??
        ??:0
    #5 | Hyprland(_ZN17CEventLoopManager7doLaterERKSt8functionIFvvEE+0x1b9) [0x559283c5bd39]
        CEventLoopManager::doLater(std::function<void ()> const&)
        ??:?
    #6 | Hyprland(+0x3ac3a8) [0x559283c373a8]
        std::_Function_handler<void (void*, std::any), CPointerManager::CPointerManager()::{lambda(void*, SCallbackInfo&, std::any)#1}::operator()(void*, SCallbackInfo&, std::any) const::{lambda(void*, std::any)#1}>::_M_invoke(std::_Any_data const&, void*&&, std::any&&)
        PointerManager.cpp:?
    #7 | /usr/lib/libhyprutils.so.0(_ZN9Hyprutils6Signal21CStaticSignalListener4emitESt3any+0x66) [0x768da5b75976]
        ??
        ??:0
    #8 | /usr/lib/libhyprutils.so.0(_ZN9Hyprutils6Signal7CSignal4emitESt3any+0x5b8) [0x768da5b75f88]
        ??
        ??:0
    #9 | Hyprland(_ZN13CHyprRenderer16applyMonitorRuleEP8CMonitorP12SMonitorRuleb+0x7f8) [0x559283dd4d98]
        CHyprRenderer::applyMonitorRule(CMonitor*, SMonitorRule*, bool)
        ??:?
    #1 | Hyprland(_ZN8CMonitor9onConnectEb+0x9d4) [0x559283bd1604]
        CMonitor::onConnect(bool)
        ??:?
    #11 | Hyprland(_ZN6Events18listener_newOutputEP11wl_listenerPv+0x214) [0x559283bac8d4]
        Events::listener_newOutput(wl_listener*, void*)
        ??:?
    #12 | /usr/lib/libwayland-server.so.0(wl_signal_emit_mutable+0x7e) [0x768da625842e]
        ??
        ??:0
    #13 | /usr/lib/libwayland-server.so.0(wl_signal_emit_mutable+0x7e) [0x768da625842e]
        ??
        ??:0
    #14 | Hyprland(scan_drm_connectors+0x343) [0x559283e68923]
        scan_drm_connectors
        ??:?
    #15 | Hyprland(+0x5d8d53) [0x559283e63d53]
        backend_start
        backend.c:?
    #16 | Hyprland(+0x5e5ab5) [0x559283e70ab5]
        multi_backend_start
        backend.c:?
    #17 | Hyprland(_ZN11CCompositor15startCompositorEv+0x490) [0x559283ac35f0]
        CCompositor::startCompositor()
        ??:?
    #18 | Hyprland(main+0xa85) [0x559283a6f285]
        main
        ??:?
    #19 | /usr/lib/libc.so.6(+0x25c88) [0x768da554ec88]
        ??
        ??:0
    #2 | /usr/lib/libc.so.6(__libc_start_main+0x8c) [0x768da554ed4c]
        ??
        ??:0
    #21 | Hyprland(_start+0x25) [0x559283aab555]
        _start
        ??:?

Log tail:
[LOG] Registered signal for owner 5592b069b350: 5592b06ae718 -> 5592b069b648 (owner: CKeyboard)
[LOG] Registered signal for owner 5592b069b350: 5592b06ae738 -> 5592b069b718 (owner: CKeyboard)
[LOG] ApplyConfigToKeyboard for "gaming-keyboard-1", hasconfig: 0
[LOG] Attempting to create a keymap for layout us,ru with variant  (rules: , model: , options: )
[LOG] Updating keyboard 5592b069b350's translation state from an active index 0
[LOG] Set the keyboard layout to us,ru and variant to  for keyboard "gaming-keyboard-1"
[LOG] New keyboard created, pointers Hypr: 5592b069b350 and WLR: 5592b06ae5d8
[LOG] Attached a mouse with name Gaming Keyboard Mouse
[LOG] Registered signal for owner 5592b0701de0: 5592b0715220 -> 5592b07020e0 (owner: CMouse)
[LOG] Registered signal for owner 5592b0701de0: 5592b0715248 -> 5592b0702148 (owner: CMouse)
[LOG] Registered signal for owner 5592b0701de0: 5592b0715258 -> 5592b07021b0 (owner: CMouse)
[LOG] Registered signal for owner 5592b0701de0: 5592b0715268 -> 5592b0702218 (owner: CMouse)
[LOG] Registered signal for owner 5592b0701de0: 5592b0715278 -> 5592b0702280 (owner: CMouse)
[LOG] Registered signal for owner 5592b0701de0: 5592b0715288 -> 5592b07022e8 (owner: CMouse)
[LOG] Registered signal for owner 5592b0701de0: 5592b0715298 -> 5592b0702350 (owner: CMouse)
[LOG] Registered signal for owner 5592b0701de0: 5592b07152b8 -> 5592b07023b8 (owner: CMouse)
[LOG] Registered signal for owner 5592b0701de0: 5592b07152a8 -> 5592b0702420 (owner: CMouse)
[LOG] Registered signal for owner 5592b0701de0: 5592b07152c8 -> 5592b0702488 (owner: CMouse)
[LOG] Registered signal for owner 5592b0701de0: 5592b07152e8 -> 5592b07024f0 (owner: CMouse)
[LOG] Registered signal for owner 5592b0701de0: 5592b07152d8 -> 5592b0702558 (owner: CMouse)
[LOG] Registered signal for owner 5592b0701de0: 5592b07152f8 -> 5592b07025c0 (owner: CMouse)
[LOG] Registered signal for owner 5592b0701de0: 5592b0715308 -> 5592b0702628 (owner: CMouse)
[LOG] New mouse has libinput sens 0.00 (0.00) with accel profile 2 (2)
[LOG] Attached pointer gaming-keyboard-mouse to global
[LOG] Applied config to mouse steelseries-steelseries-prime, sens 0.00
[LOG] Applied config to mouse steelseries-steelseries-prime-keyboard-1, sens 0.00
[LOG] Applied config to mouse gaming-keyboard-mouse, sens 0.00
[LOG] New mouse created, pointer WLR: 5592b0715210
[LOG] Registered signal for owner 5592b071cdd0: 5592b07037d8 -> 5592b071d2d8 (owner: CMonitor)
[LOG] Registered signal for owner 5592b071cdd0: 5592b0703868 -> 5592b071d340 (owner: CMonitor)
[LOG] Registered signal for owner 5592b071cdd0: 5592b0703858 -> 5592b071d3a8 (owner: CMonitor)
[LOG] Registered signal for owner 5592b071cdd0: 5592b07037e8 -> 5592b071d410 (owner: CMonitor)
[LOG] Registered signal for owner 5592b071cdd0: 5592b07037f8 -> 5592b071d478 (owner: CMonitor)
[LOG] Registered signal for owner 5592b071cdd0: 5592b0703818 -> 5592b071d4e0 (owner: CMonitor)
[LOG] Registered signal for owner 5592b071cdd0: 5592b0703838 -> 5592b071d548 (owner: CMonitor)
[LOG] Registered signal for owner 5592b071cdd0: 5592b0703828 -> 5592b071d5b0 (owner: CMonitor)
[LOG] Applying monitor rule for DP-2
[LOG] Monitor DP-2: requested 1920x1080@165.000000, found available mode: 1920x1080@165000mHz, applying.
[LOG] output DP-2 succeeded basic test on format DRM_FORMAT_XRGB8888
[LOG] Monitor DP-2 -> destroyed all render data
[LOG] arrangeMonitors: 1 to arrange
[LOG] arrangeMonitors: DP-2 explicit [0, 0]
[LOG] arrangeMonitors: DP-2 xwayland [0, 0]
[LOG] Monitor DP-2 data dump: res 1920x1080@165.00Hz, scale 1.00, transform 0, pos 0x0, 10b 0
[LOG] Callback 5592b004b760 -> 5592b004b758, CPointerManager removed.
[LOG] Registered signal for owner 5592b004b680: 5592b03bba68 -> 5592b004b738 (owner: CPointerManager)
[LOG] CRenderbuffer: wlr_egl_create_image_from_dmabuf found at 559283e5c570
[LOG] Registered signal for owner 5592b0458600: 5592b07283e8 -> 5592b0458610 (owner: CRenderbuffer)
[LOG] Shaders initialized successfully.
[LOG] Callback 5592b0458638 -> 5592b0458630, CRenderbuffer removed.
[backend/drm/drm.c:1049] Failed to pick cursor plane format
[render/gles2/renderer.c:89] DMA-BUF format is external-only
[backend/drm/renderer.c:177] Failed to begin render pass with multi-GPU destination buffer

Here's the tag v0.41.2 crash log:

--------------------------------------------
   Hyprland Crash Report
--------------------------------------------
I don't feel so good...

Hyprland received signal 11(SEGV)
Version: 918d8340afd652b011b937d29d5eea0be08467f5
Tag: v0.41.2

System info:
    System name: Linux
    Node name: 413x1nkp
    Release: 6.9.7-arch1-1
    Version: #1 SMP PREEMPT_DYNAMIC Fri, 28 Jun 2024 04:32:50 +0000

GPU:
    01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA106 [GeForce RTX 3060 Lite Hash Rate] [10de:2504] (rev a1) (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
Backtrace:
    # | Hyprland(_Z12getBacktracev+0x46) [0x583095d079b6]
        getBacktrace()
        ??:?
    #1 | Hyprland(_ZN13CrashReporter18createAndSaveCrashEi+0x945) [0x583095c75b85]
        CrashReporter::createAndSaveCrash(int)
        ??:?
    #2 | Hyprland(_Z25handleUnrecoverableSignali+0x5c) [0x583095bf068c]
        handleUnrecoverableSignal(int)
        ??:?
    #3 | /usr/lib/libc.so.6(+0x3cae0) [0x75779bd65ae0]
        ??
        ??:0
    #4 | /usr/lib/libwayland-server.so.0(wl_event_loop_add_idle+0x3b) [0x75779cac72eb]
        ??
        ??:0
    #5 | Hyprland(_ZN17CEventLoopManager7doLaterERKSt8functionIFvvEE+0x1b9) [0x583095da0fd9]
        CEventLoopManager::doLater(std::function<void ()> const&)
        ??:?
    #6 | Hyprland(+0x3ad658) [0x583095d7c658]
        std::_Function_handler<void (void*, std::any), CPointerManager::CPointerManager()::{lambda(void*, SCallbackInfo&, std::any)#1}::operator()(void*, SCallbackInfo&, std::any) const::{lambda(void*, std::any)#1}>::_M_invoke(std::_Any_data const&, void*&&, std::any&&)
        PointerManager.cpp:?
    #7 | /usr/lib/libhyprutils.so.0(_ZN9Hyprutils6Signal21CStaticSignalListener4emitESt3any+0x66) [0x75779c3e4976]
        ??
        ??:0
    #8 | /usr/lib/libhyprutils.so.0(_ZN9Hyprutils6Signal7CSignal4emitESt3any+0x5b8) [0x75779c3e4f88]
        ??
        ??:0
    #9 | Hyprland(_ZN13CHyprRenderer16applyMonitorRuleEP8CMonitorP12SMonitorRuleb+0x7f8) [0x583095f19f98]
        CHyprRenderer::applyMonitorRule(CMonitor*, SMonitorRule*, bool)
        ??:?
    #1 | Hyprland(_ZN8CMonitor9onConnectEb+0x9d4) [0x583095d16504]
        CMonitor::onConnect(bool)
        ??:?
    #11 | Hyprland(_ZN6Events18listener_newOutputEP11wl_listenerPv+0x214) [0x583095cf17d4]
        Events::listener_newOutput(wl_listener*, void*)
        ??:?
    #12 | /usr/lib/libwayland-server.so.0(wl_signal_emit_mutable+0x7e) [0x75779cac742e]
        ??
        ??:0
    #13 | /usr/lib/libwayland-server.so.0(wl_signal_emit_mutable+0x7e) [0x75779cac742e]
        ??
        ??:0
    #14 | Hyprland(scan_drm_connectors+0x343) [0x583095fadbc3]
        scan_drm_connectors
        ??:?
    #15 | Hyprland(+0x5d9ff3) [0x583095fa8ff3]
        backend_start
        backend.c:?
    #16 | Hyprland(+0x5e6d55) [0x583095fb5d55]
        multi_backend_start
        backend.c:?
    #17 | Hyprland(_ZN11CCompositor15startCompositorEv+0x490) [0x583095c08590]
        CCompositor::startCompositor()
        ??:?
    #18 | Hyprland(main+0xa85) [0x583095bb4225]
        main
        ??:?
    #19 | /usr/lib/libc.so.6(+0x25c88) [0x75779bd4ec88]
        ??
        ??:0
    #2 | /usr/lib/libc.so.6(__libc_start_main+0x8c) [0x75779bd4ed4c]
        ??
        ??:0
    #21 | Hyprland(_start+0x25) [0x583095bf04f5]
        _start
        ??:?

Log tail:
[LOG] Registered signal for owner 5830ad598c30: 5830ad5ab408 -> 5830ad598f28 (owner: CKeyboard)
[LOG] Registered signal for owner 5830ad598c30: 5830ad5ab428 -> 5830ad598ff8 (owner: CKeyboard)
[LOG] ApplyConfigToKeyboard for "gaming-keyboard-1", hasconfig: 0
[LOG] Attempting to create a keymap for layout us,ru with variant  (rules: , model: , options: )
[LOG] Updating keyboard 5830ad598c30's translation state from an active index 0
[LOG] Set the keyboard layout to us,ru and variant to  for keyboard "gaming-keyboard-1"
[LOG] New keyboard created, pointers Hypr: 5830ad598c30 and WLR: 5830ad5ab2c8
[LOG] Attached a mouse with name Gaming Keyboard Mouse
[LOG] Registered signal for owner 5830ad5fe6c0: 5830ad611b00 -> 5830ad5fe9c0 (owner: CMouse)
[LOG] Registered signal for owner 5830ad5fe6c0: 5830ad611b28 -> 5830ad5fea28 (owner: CMouse)
[LOG] Registered signal for owner 5830ad5fe6c0: 5830ad611b38 -> 5830ad5fea90 (owner: CMouse)
[LOG] Registered signal for owner 5830ad5fe6c0: 5830ad611b48 -> 5830ad5feaf8 (owner: CMouse)
[LOG] Registered signal for owner 5830ad5fe6c0: 5830ad611b58 -> 5830ad5feb60 (owner: CMouse)
[LOG] Registered signal for owner 5830ad5fe6c0: 5830ad611b68 -> 5830ad5febc8 (owner: CMouse)
[LOG] Registered signal for owner 5830ad5fe6c0: 5830ad611b78 -> 5830ad5fec30 (owner: CMouse)
[LOG] Registered signal for owner 5830ad5fe6c0: 5830ad611b98 -> 5830ad5fec98 (owner: CMouse)
[LOG] Registered signal for owner 5830ad5fe6c0: 5830ad611b88 -> 5830ad5fed00 (owner: CMouse)
[LOG] Registered signal for owner 5830ad5fe6c0: 5830ad611ba8 -> 5830ad5fed68 (owner: CMouse)
[LOG] Registered signal for owner 5830ad5fe6c0: 5830ad611bc8 -> 5830ad5fedd0 (owner: CMouse)
[LOG] Registered signal for owner 5830ad5fe6c0: 5830ad611bb8 -> 5830ad5fee38 (owner: CMouse)
[LOG] Registered signal for owner 5830ad5fe6c0: 5830ad611bd8 -> 5830ad5feea0 (owner: CMouse)
[LOG] Registered signal for owner 5830ad5fe6c0: 5830ad611be8 -> 5830ad5fef08 (owner: CMouse)
[LOG] New mouse has libinput sens 0.00 (0.00) with accel profile 2 (2)
[LOG] Attached pointer gaming-keyboard-mouse to global
[LOG] Applied config to mouse steelseries-steelseries-prime, sens 0.00
[LOG] Applied config to mouse steelseries-steelseries-prime-keyboard-1, sens 0.00
[LOG] Applied config to mouse gaming-keyboard-mouse, sens 0.00
[LOG] New mouse created, pointer WLR: 5830ad611af0
[LOG] Registered signal for owner 5830ad6196b0: 5830ad5ff2d8 -> 5830ad619bb8 (owner: CMonitor)
[LOG] Registered signal for owner 5830ad6196b0: 5830ad5ff368 -> 5830ad619c20 (owner: CMonitor)
[LOG] Registered signal for owner 5830ad6196b0: 5830ad5ff358 -> 5830ad619c88 (owner: CMonitor)
[LOG] Registered signal for owner 5830ad6196b0: 5830ad5ff2e8 -> 5830ad619cf0 (owner: CMonitor)
[LOG] Registered signal for owner 5830ad6196b0: 5830ad5ff2f8 -> 5830ad619d58 (owner: CMonitor)
[LOG] Registered signal for owner 5830ad6196b0: 5830ad5ff318 -> 5830ad619dc0 (owner: CMonitor)
[LOG] Registered signal for owner 5830ad6196b0: 5830ad5ff338 -> 5830ad619e28 (owner: CMonitor)
[LOG] Registered signal for owner 5830ad6196b0: 5830ad5ff328 -> 5830ad619e90 (owner: CMonitor)
[LOG] Applying monitor rule for DP-2
[LOG] Monitor DP-2: requested 1920x1080@165.000000, found available mode: 1920x1080@165000mHz, applying.
[LOG] output DP-2 succeeded basic test on format DRM_FORMAT_XRGB8888
[LOG] Monitor DP-2 -> destroyed all render data
[LOG] arrangeMonitors: 1 to arrange
[LOG] arrangeMonitors: DP-2 explicit [0, 0]
[LOG] arrangeMonitors: DP-2 xwayland [0, 0]
[LOG] Monitor DP-2 data dump: res 1920x1080@165.00Hz, scale 1.00, transform 0, pos 0x0, 10b 0
[LOG] Callback 5830acf45760 -> 5830acf45758, CPointerManager removed.
[LOG] Registered signal for owner 5830acf45680: 5830ad2b62d8 -> 5830acf45738 (owner: CPointerManager)
[LOG] CRenderbuffer: wlr_egl_create_image_from_dmabuf found at 583095fa1810
[LOG] Registered signal for owner 5830ad2dba40: 5830ad624cc8 -> 5830ad2dba50 (owner: CRenderbuffer)
[LOG] Shaders initialized successfully.
[LOG] Callback 5830ad2dba78 -> 5830ad2dba70, CRenderbuffer removed.
[backend/drm/drm.c:1049] Failed to pick cursor plane format
[render/gles2/renderer.c:89] DMA-BUF format is external-only
[backend/drm/renderer.c:177] Failed to begin render pass with multi-GPU destination buffer

Both seem to mention multi-GPU, not sure exactly what that means (didn't study the source code too extensively), I only have one GPU (sadly, NVIDIA) NVIDIA driver specs:

lib32-nvidia-utils-beta 555.58.02-1
libva-nvidia-driver 0.0.12-1
nvidia-beta-dkms 555.58.02-1
nvidia-settings-beta 555.58.02-1
nvidia-utils-beta 555.58.02-1
opencl-nvidia-beta 555.58.02-1

OS specs:

OS: Arch Linux x86_64
Kernel: Linux 6.9.7-arch1-1
Display (GM27-FFS): 1920x1080 @ 165Hz
WM: Hyprland (Wayland)
CPU: 12th Gen Intel(R) Core(TM) i5-12400F (12) @ 4.40 GHz
GPU: NVIDIA GeForce RTX 3060 Lite Hash Rate [Discrete]

Please let me know if I'm an idiot (a.k.a. if I did something wrong). Would love to test more if that helps with fixing issues

vaxerski commented 3 months ago

no, I am.

fixed: patch.txt

alexlnkp commented 3 months ago

no, I am.

fixed: patch.txt

Oh! That works flawlessly! Even the floating windows spawning at -1920,0 issue is gone.

Overall looks like it worked.

mklan commented 3 months ago

Awesome thanks for the patch! @vaxerski