Closed asiantuntija closed 2 weeks ago
@myQwil Is this hard to implement?
I've noticed something similar when trying to snap Pure Data windows together.
However, the example video shows two imv windows snapping together, so the underlying issue must be something else besides the fact that they're the same program. The two windows must be more directly related somehow.
I currently don't have a solution for this, but I'll look into it.
@myQwil I figured that it's because of the PID check
due to ... for example if your running your terminal of choice in server mode, its instance's window will take the terminal server's PID so maybe we can use something else than PID
Already reported ? *
Regression?
No
System Info and Version
System/Version info
```sh Hyprland 0.44.0 built from branch main at commit 0b29caf9ab86518ff474eed5e7d19c12f96ebbd0 (core: fix group members disappearing when you move the group to another monitor (8237)). Date: Sat Oct 26 01:22:37 2024 Tag: v0.44.0-78-g0b29caf9, commits: 5377 built against aquamarine 0.4.3 flags set: debug System Information: System name: Linux Node name: archlinux Release: 6.11.5-2-cachyos Version: #1 SMP PREEMPT_DYNAMIC Fri, 25 Oct 2024 19:38:27 +0000 GPU information: 0a:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 21 [Radeon RX 6800/6800 XT / 6900 XT] [1002:73bf] (rev c1) (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/user/.config/hypr/hyprland.conf: Read Succeeded source=$HOME/.config/hypr/monitors.conf source=$HOME/.config/hypr/startup_programs.conf # Some default env vars. env = XCURSOR_SIZE,28 # env = WLR_DRM_NO_ATOMIC,1 source=$HOME/.config/hypr/inputs.conf general { # See https://wiki.hyprland.org/Configuring/Variables/ for more gaps_in = 5 gaps_out = 16 border_size = 2 col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg col.inactive_border = rgba(595959aa) layout = dwindle snap { enabled = true window_gap = 20 monitor_gap = 20 } # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on allow_tearing = false } decoration { # See https://wiki.hyprland.org/Configuring/Variables/ for more rounding = 10 blur { enabled = true size = 5 passes = 3 noise = 1.0 vibrancy = 1.0 } drop_shadow = yes shadow_range = 4 shadow_render_power = 3 col.shadow = rgba(1a1a1aee) } animations { enabled = true # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more bezier = myBezier, 0.05, 0.9, 0.1, 1.05 bezier = easeIn, 0.55, 0, 1, 0.45 bezier = easeOut, 0.16, 1, 0.3, 1 animation = windowsIn, 1, 3, easeOut, popin 80% animation = windowsOut, 1, 7, default, popin 80% animation = windowsMove, 1, 5, easeOut animation = border, 1, 10, default animation = borderangle, 1, 8, default animation = fade, 1, 7, default animation = workspaces, 1, 6, easeOut, slidefade 10% } dwindle { # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below preserve_split = yes # you probably want this # force_split = 1 # smart_split = yes permanent_direction_override = yes } master { # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more new_status = master allow_small_split = true orientation = right } gestures { # See https://wiki.hyprland.org/Configuring/Variables/ for more workspace_swipe = off } misc { # See https://wiki.hyprland.org/Configuring/Variables/ for more force_default_wallpaper = 0 # Set to 0 to disable the anime mascot wallpapers } source=$HOME/.config/hypr/keybinds.conf source=$HOME/.config/hypr/workspaces_and_binds.conf source=$HOME/.config/hypr/window_rules.conf source=$HOME/.config/hypr/envvars.conf Config File: /home/user/.config/hypr/monitors.conf: Read Succeeded # Enable for desktop $SCREEN-LEFT=DP-1 $SCREEN-RIGHT=DP-2 $SCREEN-TV=HDMI-A-1 monitor=$SCREEN-LEFT,highrr,0x0,1,vrr,1,bitdepth,8 monitor=$SCREEN-RIGHT,3840x2160@144,3840x0,1,vrr,2,bitdepth,8 # monitor=HEADLESS-2,2560x1600@90,10000x10000,1 monitor=$SCREEN-TV,3840x2160@120,50000x0,1,bitdepth,10 # monitor=eDP-1,2560x1600@120,0x0,1 # $SCREEN-LEFT=eDP-1 # $SCREEN-RIGHT=eDP-1 # $SCREEN-TV=eDP-1 # monitor=$SCREEN-LEFT,disable # monitor=$SCREEN-RIGHT,2560x1600@120,auto,1,vrr,2,bitdepth,8 # monitor=$SCREEN-TV,disable # No need to touch monitor=,highrr,auto,1 Config File: /home/user/.config/hypr/startup_programs.conf: Read Succeeded exec-once = hyprlock --config $HOME/.config/hypr/hyprlock-startup.conf exec-once = hyprpaper exec-once = hypridle exec-once = play $HOME/.config/hypr/sounds/winxp.mp3 || mpg123 $HOME/.config/hypr/sounds/winxp.mp3 exec-once = /usr/bin/firefox exec-once = /usr/lib/polkit-kde-authentication-agent-1 exec-once = /usr/bin/mako exec-once = /usr/bin/gnome-system-monitor exec-once = flatpak run com.valvesoftware.Steam exec-once = flatpak run ch.protonmail.protonmail-bridge exec-once = flatpak run org.mozilla.Thunderbird exec-once = waybar # exec-once = which sunshine && hyprctl output create headless && sleep 3 && sunshine exec-once = waydroid session start exec-once = sleep 10 && waydroid app launch it.fast4x.rimusic Config File: /home/user/.config/hypr/inputs.conf: Read Succeeded # For all categories, see https://wiki.hyprland.org/Configuring/Variables/ input { kb_layout = fi kb_variant = kb_model = kb_options = kb_rules = follow_mouse = 1 # mouse_refocus = false touchpad { drag_lock = true } sensitivity = 0 # -1.0 - 1.0, 0 means no modification. tablet { relative_input = true left_handed = true active_area_size = 135, 135 active_area_position = 81, 0 } } Config File: /home/user/.config/hypr/keybinds.conf: Read Succeeded $mainMod = SUPER # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more bind = Ctrl Alt, T, exec, kitty bind = Ctrl Shift, Q, killactive, bind = Ctrl Alt, L, exec, hyprlock --immediate >> /home/user/hyprlock.debug bind = $mainMod, Escape, exec, pgrep wlogout || wlogout bind = $mainMod, F1, exec, eww close example || eww open example bind = $mainMod, D, exec, fuzzel bind = $mainMod, X, exec, nautilus bind = , print, exec, hyprshot -m region --clipboard-only bind = Ctrl, print, exec, hyprshot -m region -o $HOME/Pictures/Screenshots bind = Shift, print, exec, hyprshot -m output --clipboard-only bind = Ctrl Shift, print, exec, hyprshot -m output -o $HOME/Pictures/Screenshots bind = $mainMod, print, exec, hyprshot -m window --clipboard-only bind = Ctrl $mainMod, print, exec, hyprshot -m window -o $HOME/Pictures/Screenshots bind = $mainMod, V, togglefloating, bind = $mainMod, B, pin, bind = $mainMod, F, fullscreen, bindr = $mainMod, Super_L, exec, pkill waybar || waybar bind = Ctrl, B, exec, kitty -e bash -c "grep -e ^bind -sh $HOME/.config/hypr/*; read -r" # 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 # Example special workspace (scratchpad) bind = $mainMod, S, togglespecialworkspace, magic bind = $mainMod SHIFT, S, movetoworkspace, special:magic # Scroll through existing workspaces with mainMod + scroll bind = $mainMod, mouse_down, workspace, e+1 bind = $mainMod, mouse_up, workspace, e-1 # Move workspace to another output bind = Ctrl Alt, M, submap, moveworkspaceto_output submap = moveworkspaceto_output bind = ,1,movecurrentworkspacetomonitor, $SCREEN-LEFT bind = ,2,movecurrentworkspacetomonitor, $SCREEN-RIGHT bind = ,3,movecurrentworkspacetomonitor, $SCREEN-TV bind = ,4,movecurrentworkspacetomonitor, $HEADLESS bind = , Escape, submap, reset submap = reset # Move/resize windows with mainMod + LMB/RMB and dragging bindm = $mainMod, mouse:272, movewindow bindm = $mainMod, mouse:273, resizewindow bind = ,XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +5% bind = ,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 bind = ,XF86MonBrightnessDown, exec, brightnessctl set 5%- bind = ,XF86MonBrightnessUp, exec, brightnessctl set 5%+ bind = ,XF86AudioPlay, exec, playerctl play-pause bind = ,XF86AudioNext, exec, playerctl next bind = ,XF86AudioPrev, exec, playerctl previous # Firefox tab scroll bind = SHIFT,code:23,sendshortcut,CTRL,left,^(firefox)$ bind = SHIFT,code:66,sendshortcut,CTRL,right,^(firefox)$ Config File: /home/user/.config/hypr/workspaces_and_binds.conf: Read Succeeded workspace = name:Browser, monitor:$SCREEN-LEFT, default:true workspace = name:Steam, monitor:$SCREEN-RIGHT, default:true workspace = name:Email, monitor:$SCREEN-LEFT workspace = name:Chats, monitor:$SCREEN-LEFT workspace = name:Music, monitor:$SCREEN-LEFT workspace = name:Wine, monitor:$SCREEN-RIGHT workspace = name:Monitoring, monitor:$SCREEN-LEFT workspace = name:Terminal, monitor:$SCREEN-RIGHT workspace = name:TV, monitor:$SCREEN-TV, default:true workspace = name:Virtual, monitor:$SCREEN-RIGHT workspace = name:Sunshine, monitor:HEADLESS-2, default:true # Switch workspaces with mainMod + [0-9] bind = $mainMod, 1, workspace, name:Browser bind = $mainMod, 2, workspace, name:Email bind = $mainMod, 3, workspace, name:Steam bind = $mainMod, 4, workspace, name:Chats bind = $mainMod, 5, workspace, name:Music bind = $mainMod, Q, workspace, name:Wine bind = $mainMod, W, workspace, name:Monitoring bind = $mainMod, E, workspace, name:Virtual bind = $mainMod, R, workspace, name:TV bind = $mainMod, T, workspace, name:Terminal bind = $mainMod, Y, workspace, name:Sunshine # Move active window to a workspace with mainMod + SHIFT + [0-9] bind = $mainMod SHIFT, 1, movetoworkspacesilent, name:Browser bind = $mainMod SHIFT, 2, movetoworkspacesilent, name:Email bind = $mainMod SHIFT, 3, movetoworkspacesilent, name:Steam bind = $mainMod SHIFT, 4, movetoworkspacesilent, name:Chats bind = $mainMod SHIFT, 5, movetoworkspacesilent, name:Music bind = $mainMod SHIFT, Q, movetoworkspacesilent, name:Wine bind = $mainMod SHIFT, W, movetoworkspacesilent, name:Monitoring bind = $mainMod SHIFT, E, movetoworkspacesilent, name:Virtual bind = $mainMod SHIFT, R, movetoworkspacesilent, name:TV bind = $mainMod SHIFT, T, movetoworkspacesilent, name:Terminal bind = $mainMod SHIFT, Y, movetoworkspacesilent, name:Sunshine Config File: /home/user/.config/hypr/window_rules.conf: Read Succeeded windowrulev2 = float,class:(qalculate-gtk) windowrulev2 = size 900 600,class:(qalculate-gtk) windowrulev2 = move 100%-1000 100,class:(qalculate-gtk) windowrulev2 = float, class:(pavucontrol) windowrulev2 = float,class:(org.gnome.Nautilus) windowrulev2 = workspace name:Email silent,class:(org.mozilla.Thunderbird) windowrulev2 = workspace name:Email silent,class:(ch.proton.bridge-gui) windowrulev2 = workspace name:Steam silent,initialTitle:(Steam) windowrulev2 = workspace name:Steam silent,initialTitle:("Sign in to Steam") windowrulev2 = workspace name:Music silent,class:(waydroid.it.fast4x.rimusic) windowrulev2 = workspace name:Monitoring silent,class:(org.gnome.SystemMonitor) windowrulev2 = opacity 0.97, class:(kitty) windowrulev2 = immediate, class:^(cs2)$ windowrulev2 = idleinhibit always,class:(vrcompositor) # windowrulev2 = idleinhibit fullscreen,class:(*) windowrulev2 = float, class:Waydroid windowrulev2 = fullscreen, class:(waydroid.it.fast4x.rimusic) # Firefox fullscreen windowed # windowrulev2 = fakefullscreen, class:(firefox) workspace = w[t1], gapsout:0, gapsin:0, border: 0, rounding:0 workspace = w[tg1], gapsout:0, gapsin:0, border: 0, rounding:0 workspace = f[1], gapsout:0, gapsin:0, border: 0, rounding:0 Config File: /home/user/.config/hypr/envvars.conf: Read Succeeded env = GDK_BACKEND,wayland,x11,* env = QT_QPA_PLATFORM,wayland;xcb env = SDL_VIDEODRIVER,wayland env = CLUTTER_BACKEND,wayland env = XDG_CURRENT_DESKTOP,Hyprland env = XDG_SESSION_TYPE,wayland env = XDG_SESSION_DESKTOP,Hyprland ======Config-End======== ```Description
https://github.com/hyprwm/Hyprland/pull/8088
Snapping doesn't work when trying to snap one Firefox window to another for example, same for Steam, they work fine when trying to snap to another program however.
How to reproduce
Open two browser windows in floating mode and try to snapping them together
Crash reports, logs, images, videos
No response