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.75k stars 900 forks source link

`maxsize` windowrule broken #8469

Open Ghosthree3 opened 6 days ago

Ghosthree3 commented 6 days ago

Already reported ? *

Regression?

Yes

System Info and Version

System/Version info ```sh Hyprland 0.45.0 built from branch main at commit bb160cfe377da2d2b2e4431a3399fa60114f3911 dirty (makefile: add stub to discourage direct make). Date: Wed Nov 13 02:26:25 2024 Tag: v0.45.0-17-gbb160cfe, commits: 5450 built against aquamarine 0.4.5 flags set: debug System Information: System name: Linux Node name: milkbar Release: 6.11.7-arch1-1 Version: #1 SMP PREEMPT_DYNAMIC Fri, 08 Nov 2024 17:57:56 +0000 GPU information: 0b: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]) 0c:00.0 VGA compatible controller [0300]: NVIDIA Corporation TU104 [GeForce RTX 2070 SUPER] [10de:1e84] (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 plugins: ======Config-Start====== Config File: /home/ghost/.config/hypr/hyprland.conf: Read Succeeded # Hyprland config file # Environmental variables #env = XDG_SESSION_TYPE,wayland #env = XDG_SESSION_DESKTOP,Hyprland #env = XDG_CURRENT_DESKTOP,Hyprland env = GDK_BACKEND,wayland,x11 env = QT_QPA_PLATFORM,wayland;xcb env = QT_AUTO_SCREEN_SCALE_FACTOR,1 env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1 env = QT_QPA_PLATFORMTHEME,qt6ct #env = SDL_VIDEODRIVER,x11 env = CLUTTER_BACKEND,wayland env = MOZ_ENABLE_WAYLAND,1 env = ECORE_EVAS_ENGINE,wayland_egl env = ELM_ENGINE,wayland_egl env = _JAVA_AWT_WM_NONREPARENTING,1 env = NO_AT_BRIDGE,1 env = XCURSOR_SIZE,24 #exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP #monitor = DP-1, 1920x1080@144, 1440x0 , 1 #monitor = DP-2, 1440x900@60 , 0x340 , 1 monitor = DP-1, 1920x1080@144, 1920x0 , 1 monitor = DP-2, 1920x1080@60 , 0x100 , 1 monitor = DP-3, 1440x900@60 , 3840x320, 1 # Source a file (multi-file configs) # source = ~/.config/hypr/myColors.conf # For all categories, see https://wiki.hyprland.org/Configuring/Variables/ input { kb_layout = us kb_variant = kb_model = kb_options = kb_rules = numlock_by_default = true follow_mouse = 1 touchpad { natural_scroll = false } sensitivity = -0.75 # -1.0 - 1.0, 0 means no modification. } general { # See https://wiki.hyprland.org/Configuring/Variables/ for more gaps_in = 0 gaps_out = 0 border_size = 0 # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg 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 } decoration { # See https://wiki.hyprland.org/Configuring/Variables/ for more rounding = 0 # Change transparency of focused and unfocused windows active_opacity = 1.0 inactive_opacity = 1.0 shadow { enabled = false #range = 4 #render_power = 3 #color = (1a1a1aee) } blur { enabled = false #size = 3 #passes = 1 } } animations { enabled = false # Some 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 } dwindle { # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more pseudotile = true # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below preserve_split = true # you probably want this } master { # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more new_status = master } gestures { # See https://wiki.hyprland.org/Configuring/Variables/ for more workspace_swipe = false } misc { force_default_wallpaper = 0 } binds { movefocus_cycles_fullscreen = false } # Example per-device config # See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more #device:epic-mouse-v1 { # sensitivity = -0.5 #} # Example windowrule v1 # windowrule = float, ^(kitty)$ # Example windowrule v2 # windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more windowrulev2 = opacity 0.0 override,class:^(xwaylandvideobridge)$ windowrulev2 = noanim,class:^(xwaylandvideobridge)$ windowrulev2 = noinitialfocus,class:^(xwaylandvideobridge)$ windowrulev2 = maxsize 1 1,class:^(xwaylandvideobridge)$ windowrulev2 = noblur,class:^(xwaylandvideobridge)$ windowrulev2 = renderunfocused,class:^(looking-glass-client)$ # See https://wiki.hyprland.org/Configuring/Keywords/ for more $mainMod = SUPER # Workspace Bindings 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 bind = $mainMod, KP_End, workspace, 11 bind = $mainMod, KP_Down, workspace, 12 bind = $mainMod, KP_Next, workspace, 13 bind = $mainMod, KP_Left, workspace, 14 bind = $mainMod, KP_Begin, workspace, 15 bind = $mainMod, KP_Right, workspace, 16 bind = $mainMod, KP_Home, workspace, 17 bind = $mainMod, KP_Up, workspace, 18 bind = $mainMod, KP_Prior, workspace, 19 bind = $mainMod, KP_Insert, workspace, 20 bind = $mainMod SHIFT ALT, left, movecurrentworkspacetomonitor, l bind = $mainMod SHIFT ALT, right, movecurrentworkspacetomonitor, r bind = $mainMod SHIFT ALT, up, movecurrentworkspacetomonitor, u bind = $mainMod SHIFT ALT, down, movecurrentworkspacetomonitor, d bind = $mainMod, mouse_down, workspace, e-1 bind = $mainMod, mouse_up, workspace, e+1 # Window Bindings 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 bind = $mainMod SHIFT, KP_End, movetoworkspace, 11 bind = $mainMod SHIFT, KP_Down, movetoworkspace, 12 bind = $mainMod SHIFT, KP_Next, movetoworkspace, 13 bind = $mainMod SHIFT, KP_Left, movetoworkspace, 14 bind = $mainMod SHIFT, KP_Begin, movetoworkspace, 15 bind = $mainMod SHIFT, KP_Right, movetoworkspace, 16 bind = $mainMod SHIFT, KP_Home, movetoworkspace, 17 bind = $mainMod SHIFT, KP_Up, movetoworkspace, 18 bind = $mainMod SHIFT, KP_Prior, movetoworkspace, 19 bind = $mainMod SHIFT, KP_Insert, movetoworkspace, 20 bind = $mainMod, left, movefocus, l bind = $mainMod, right, movefocus, r bind = $mainMod, up, movefocus, u bind = $mainMod, down, movefocus, d bind = $mainMod SHIFT, left, movewindow, l bind = $mainMod SHIFT, right, movewindow, r bind = $mainMod SHIFT, up, movewindow, u bind = $mainMod SHIFT, down, movewindow, d bind = $mainMod, R, submap, resize submap = resize binde = SHIFT, left, resizeactive, -10 0 binde = SHIFT, right, resizeactive, 10 0 binde = SHIFT, up, resizeactive, 0 -10 binde = SHIFT, down, resizeactive, 0 10 binde = , left, resizeactive, -5 0 binde = , right, resizeactive, 5 0 binde = , up, resizeactive, 0 -5 binde = , down, resizeactive, 0 5 binde = ALT, left, resizeactive, -1 0 binde = ALT, right, resizeactive, 1 0 binde = ALT, up, resizeactive, 0 -1 binde = ALT, down, resizeactive, 0 1 bind = , escape, submap, reset submap = reset bind = $mainMod SHIFT, Q, killactive bind = $mainMod, F, fullscreen bind = $mainMod, E, togglesplit # dwindle bind = $mainMod, P, pseudo # dwindle bind = $mainMod SHIFT, SPACE, togglefloating bindm = $mainMod, mouse:272, movewindow bindm = $mainMod, mouse:273, resizewindow # Media Bindings binde = , XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +5% #increase sound volume binde = , XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -5% #decrease sound volume bind = , XF86AudioMute, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle # mute sound bind = , XF86AudioPlay, exec, playerctl play bind = , XF86AudioPause, exec, playerctl pause bind = , XF86AudioNext, exec, playerctl next bind = , XF86AudioPrev, exec, playerctl previous # Program Bindings bind = $mainMod, Return, exec, uwsm app -- kitty bind = $mainMod, D, exec, uwsm app -- kickoff #bind = $mainMod, D, exec, uwsm app -- tofi-run | xargs hyprctl dispatch exec bind = $mainMod SHIFT, M, exec, loginctl terminate-session "$XDG_SESSION_ID" bind = , PRINT, exec, uwsm app -- hyprshot -m region -o /tmp -f $(date +%s%3N).png bind = ALT, PRINT, exec, uwsm app -- hyprshot -m window -o /tmp -f $(date +%s%3N).png bind = $mainMod, PRINT, exec, uwsm app -- hyprshot -m output -o /tmp -f $(date +%s%3N).png # Global Hotkeys #bindn = , Control_L, pass, ^(discord)$ bindn = , F10, pass, ^(com\.obsproject\.Studio)$ # Startup Programs exec-once = uwsm app -- mako exec-once = uwsm app -- waybar exec-once = uwsm app -- easyeffects --gapplication-service exec-once = sleep 3 && uwsm app -- keepassxc exec-once = [workspace 1 silent] uwsm app -- librewolf exec-once = [workspace 9 silent] uwsm app -- brave exec-once = [workspace 7 silent] uwsm app -- discord exec-once = [workspace 3 silent] uwsm app -- kitty exec-once = [workspace 8 silent] uwsm app -- kitty exec-once = sleep 3 && pactl set-sink-volume @DEFAULT_SINK@ 85% exec-once = sleep 3 && pactl set-sink-volume easyeffects_sink 100% exec-once = sleep 3 && pactl set-source-volume @DEFAULT_SOURCE@ 85% exec-once = sleep 3 && pactl set-source-volume easyeffects_source 100% exec-once = uwsm app -- send-ctrl-to-xwayland /dev/input/by-id/usb-04d9_USB_Keyboard-event-kbd # Hacks #windowrulev2 = nomaximizerequest,class:(mpv) ======Config-End======== ```

Description

I have xwaylandvideobridge installed and running, and am using the ruleset from the wiki to fix the window as instructed,

windowrulev2 = opacity 0.0 override,class:^(xwaylandvideobridge)$
windowrulev2 = noanim,class:^(xwaylandvideobridge)$
windowrulev2 = noinitialfocus,class:^(xwaylandvideobridge)$
windowrulev2 = maxsize 1 1,class:^(xwaylandvideobridge)$
windowrulev2 = noblur,class:^(xwaylandvideobridge)$

However, recently, maybe in the last month or so, I've noticed something in the middle of my screen (invisible) blocking my interaction with the window below that didn't used to be there. Turns out it's the xwaylandvideobridge window. hyprctl clients confirms its size to be 100,100 which should not be the case,

Window 601095aec410 -> Wayland to X Recording bridge — Xwayland Video Bridge:
        mapped: 1
        hidden: 0
        at: 2830,490
        size: 100,100
        workspace: 1 (1)
        floating: 1
        pseudo: 0
        monitor: 0
        class: xwaylandvideobridge
        title: Wayland to X Recording bridge — Xwayland Video Bridge
        initialClass: xwaylandvideobridge
        initialTitle: Wayland to X Recording bridge — Xwayland Video Bridge
        pid: 1882
        xwayland: 1
        pinned: 0
        fullscreen: 0
        fullscreenClient: 0
        grouped: 0
        tags: 
        swallowing: 0
        focusHistoryID: 3

Currently my solution is to send it to workspace 20 and ignore it.

How to reproduce

Start xwaylandvideobridge with the suggested windowrules and check hyprctl clients or interact with the center of the workspace it's in.

Crash reports, logs, images, videos

No response

vaxerski commented 5 days ago

uhhh, iirc xwayland windows are allowed to do funky stuff otherwise they freak out, idk if we can fix this