Hyprland icon indicating copy to clipboard operation
Hyprland copied to clipboard

Buggy floating windows with slidevert workspace switching and big shadow range

Open Ligthiago opened this issue 11 months ago • 11 comments

Hyprland Version

System/Version info
Hyprland, built from branch  at commit 555afea73c87f8e2bb374d1112431bb3a6f451dd  ().
Date: 2024-03-01
Tag: 

flags: (if any)


System Information:
System name: Linux
Node name: theseus
Release: 6.7.6
Version: #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:51:59 UTC 2024


GPU information: 
09:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] [1002:67df] (rev e7) (prog-if 00 [VGA controller])


os-release: ANSI_COLOR="1;34"
BUG_REPORT_URL="https://github.com/NixOS/nixpkgs/issues"
BUILD_ID="24.05.20240229.1536926"
DOCUMENTATION_URL="https://nixos.org/learn.html"
HOME_URL="https://nixos.org/"
ID=nixos
IMAGE_ID=""
IMAGE_VERSION=""
LOGO="nix-snowflake"
NAME=NixOS
PRETTY_NAME="NixOS 24.05 (Uakari)"
SUPPORT_URL="https://nixos.org/community.html"
VERSION="24.05 (Uakari)"
VERSION_CODENAME=uakari
VERSION_ID="24.05"


plugins:
  hycov by DreamMaoMao ver 0.3

Config
exec-once = /nix/store/h3zv7932ymvq41z7dh92v02h9pmnb583-dbus-1.14.10/bin/dbus-update-activation-environment --systemd DISPLAY HYPRLAND_INSTANCE_SIGNATURE WAYLAND_DISPLAY XDG_CURRENT_DESKTOP && systemctl --user stop hyprland-session.target && systemctl --user start hyprland-session.target
plugin=/nix/store/scj90r4ikyzly6g9shrczzm2mxpgaca3-hycov-0.1/lib/libhycov.so
animations {
  bezier=simple,0.13,0.99,0.29,1
  animation=windows,1,5,simple,popin 50%
  animation=border,1,5,default
  animation=fade,1,5,default
  animation=workspaces,1,5,simple,slidevert
  animation=layers,1,5,simple,popin 80%
  enabled=true
  first_launch_animation=false
}

decoration {
  blur {
    enabled=false
  }
  col.shadow=rgba(00000050)
  drop_shadow=true
  rounding=10
  shadow_range=40
  shadow_render_power=3
}

dwindle {
  preserve_split=true
}

general {
  border_size=1
  col.active_border=rgb(323232) rgb(525252) 270deg
  col.inactive_border=rgb(323232) rgb(525252) 270deg
  gaps_in=3
  gaps_out=6
  layout=dwindle
}

gestures {
  workspace_swipe=true
  workspace_swipe_create_new=true
  workspace_swipe_distance=300
  workspace_swipe_fingers=3
  workspace_swipe_forever=true
}

input {
  touchpad {
    natural_scroll=false
  }
  follow_mouse=true
  kb_layout=us,ru
  kb_model=
  kb_options=grp:alt_shift_toggle
  kb_rules=
  kb_variant=
}

misc {
  background_color=rgba(161616ff)
  disable_hyprland_logo=true
}

xwayland {
  force_zero_scaling=true
  use_nearest_neighbor=true
}
bind=SUPER, Q, killactive
bind=SUPER, M, exec, hyprctl reload
bind=SUPER SHIFT, M, exit
bind=SUPER, V, togglefloating
bind=SUPER SHIFT, Z, alterzorder, bottom
bind=SUPER, F, fullscreen, 1
bind=SUPER ALT, F, fullscreen
bind=SUPER SHIFT, F, fakefullscreen
bind=SUPER, W, movefocus, u
bind=SUPER, A, movefocus, l
bind=SUPER, S, movefocus, d
bind=SUPER, D, movefocus, r
bind=SUPER, up, movefocus, u
bind=SUPER, left, movefocus, l
bind=SUPER, down, movefocus, d
bind=SUPER, right, movefocus, r
bind=SUPER SHIFT, W, swapwindow, u
bind=SUPER SHIFT, A, swapwindow, l
bind=SUPER SHIFT, S, swapwindow, d
bind=SUPER SHIFT, D, swapwindow, r
bind=SUPER SHIFT, up, swapwindow, u
bind=SUPER SHIFT, left, swapwindow, l
bind=SUPER SHIFT, down, swapwindow, d
bind=SUPER SHIFT, right, swapwindow, r
bind=SUPER, X, togglesplit
bind=SUPER, P, pin
bind=SUPER, E, exec, rofi -show drun
bind=SUPER, T, exec, kitty
bind=SUPER, Y, exec, nautilus
bind=SUPER, U, exec, firefox
bind=SUPER, Tab, hycov:toggleoverview
bind=SUPER, Print, exec, hyprscreen -m screen
bind=SUPER SHIFT, Print, exec, hyprscreen -f
bind=SUPER,F10,pass,^(com.obsproject.Studio)$
bind=SUPER,F11,pass,^(com.obsproject.Studio)$
bind=SUPER SHIFT, e, exec, nautilus
bind=SUPER,mouse_down,workspace,-1
bind=SUPER,mouse_up,workspace,+1
bind=SUPER SHIFT,mouse_down,movetoworkspace,-1
bind=SUPER SHIFT,mouse_up,movetoworkspace,+1
bind=SUPER,1,workspace, 1
bind=SUPER SHIFT, 1, movetoworkspace, 1
bind=SUPER,2,workspace, 2
bind=SUPER SHIFT, 2, movetoworkspace, 2
bind=SUPER,3,workspace, 3
bind=SUPER SHIFT, 3, movetoworkspace, 3
bind=SUPER,4,workspace, 4
bind=SUPER SHIFT, 4, movetoworkspace, 4
bind=SUPER,5,workspace, 5
bind=SUPER SHIFT, 5, movetoworkspace, 5
bind=SUPER,6,workspace, 6
bind=SUPER SHIFT, 6, movetoworkspace, 6
bind=SUPER,7,workspace, 7
bind=SUPER SHIFT, 7, movetoworkspace, 7
bind=SUPER,8,workspace, 8
bind=SUPER SHIFT, 8, movetoworkspace, 8
bind=SUPER,9,workspace, 9
bind=SUPER SHIFT, 9, movetoworkspace, 9
bind=SUPER,0,workspace, 10
bind=SUPER SHIFT, 0, movetoworkspace, 10
binde=,XF86MonBrightnessUp, exec, light -A 5
binde=,XF86MonBrightnessDown, exec, light -U 5
bindm=SUPER, mouse:272, movewindow
bindm=SUPER, mouse:273, resizewindow
bindm=SUPER SHIFT, mouse:273, resizewindow 1
env=GDK_BACKEND,wayland
env=SDL_VIDEODRIVER,wayland,x11
env=CLUTTER_BACKEND,wayland
env=NIXOS_OZONE_WL,1
exec=swww init
exec=swww img /home/ligthiago/Pictures/Wallpapers/DarkNoise06.png
windowrule=float,^(io.github.celluloid_player.Celluloid)$
windowrule=center,^(io.github.celluloid_player.Celluloid)$
windowrule=size 80% 80%,^(io.github.celluloid_player.Celluloid)$
windowrule=float,^(org.gnome.Loupe)$
windowrule=center,^(org.gnome.Loupe)$
windowrule=float,^(org.gnome.baobab)$
windowrule=center,^(org.gnome.baobab)$
windowrule=size 80% 80%,^(org.gnome.baobab)$
windowrule=float,^(org.gnome.Calculator)$
windowrule=center,^(org.gnome.Calculator)$
windowrule=size 400 640,^(org.gnome.Calculator)$
windowrule=float,^(net.nokyan.Resources)$
windowrule=center,^(net.nokyan.Resources)$
windowrule=size 80% 80%,^(net.nokyan.Resources)$
windowrule=float,^(io.bassi.Amberol)$
windowrule=center,^(io.bassi.Amberol)$
windowrule=size 400 700,^(io.bassi.Amberol)$
windowrulev2=noshadow, floating:0
windowrulev2=float,class:(firefox),title:(Library)
windowrulev2=center,class:(firefox),title:(Library)
windowrulev2=size 80% 80%,class:(firefox),title:(Library)
bind = SUPER, R, submap, resize
submap = resize
binde = SUPER, W, resizeactive, 0 -20
binde = SUPER, A, resizeactive, -20 0
binde = SUPER, S, resizeactive, 0 20
binde = SUPER, D, resizeactive, 20 0
binde = SUPER, up, resizeactive, 0 -20
binde = SUPER, left, resizeactive, -20 0
binde = SUPER, down, resizeactive, 0 20
binde = SUPER, right, resizeactive, 20 0

bind = SUPER SHIFT, W, movefocus, u
bind = SUPER SHIFT, A, movefocus, l
bind = SUPER SHIFT, S, movefocus, d
bind = SUPER SHIFT, D, movefocus, r
bind = SUPER SHIFT, up, movefocus, u
bind = SUPER SHIFT, left, movefocus, l
bind = SUPER SHIFT, down, movefocus, d
bind = SUPER SHIFT, right, movefocus, r

bind = SUPER, X, togglesplit
bind = SUPER, E, splitratio, exact 1
bind = SUPER, R, submap, reset
bind = , escape, submap, reset
submap = reset

plugin {
  hycov {
    overview_gappo = 20
    overview_gappi = 20
    hotarea_size = 10
    enable_hotarea = 0
    swipe_fingers = 4
    move_focus_distance = 100
    enable_gesture = 1
    disable_workspace_change = 1
    disable_spawn = 1
    auto_exit = 1
    auto_fullscreen = 0
    only_active_workspace = 0
    only_active_monitor = 1
    enable_alt_release_exit = 0
    alt_toggle_auto_next = 0
  }
}

Bug or Regression?

Bug

Description

Floating windows at bottom of workspace kinda buggy when I switch to it from next workspace with slidevert animation for workspace switching.

This bugs mostly appears with drop_shadow = true, and the higher the value of shadow_range, the further away from the screen border the window can be placed to make the bug appear (but part of the shadow must be offscreen or near to screen border)

I may be duplicating existing issues, but problems in them occur in the horizontal slide animation, which in my case works just fine.

Examples

  1. This is fast even with the slowest animation, but it is visible frame by frame, see bottom of the floating window or top of the browser when switching workspaces and also top of floating window.

https://github.com/hyprwm/Hyprland/assets/142721811/eba5186d-06cf-4672-ac54-f4a20c9a1f04

  1. This one is more visible, reproducible only if window width must smaller than window height.

https://github.com/hyprwm/Hyprland/assets/142721811/2aa1f601-35ae-4810-bcac-1bcc3b17a222

How to reproduce

  1. Set the workspace animation to slidevert and optionally make it slow.
  2. Set drop_shadow = true and shadow_range more then 10, 40 in my case.
  3. Place a floating window at the bottom of the workspace, shadow must be near screen border or offscreen and switch to the next workspace.
  4. Switch back to previous workspace and see a bug
  5. For second bug: Make window width smaller than height

Crash reports, logs, images, videos

No response

Ligthiago avatar Mar 01 '24 20:03 Ligthiago

I've tried your config and can't repro this. Can you try without hycov?

vaxerski avatar Mar 01 '24 20:03 vaxerski

Yes, same without plugins

Ligthiago avatar Mar 01 '24 20:03 Ligthiago

well, can't repro. I'll need something else that triggers this, as I don't seem to be able to repro

vaxerski avatar Mar 01 '24 21:03 vaxerski

I will try on another machine tomorrow, maybe it's specific hardware issue or something.

Another weird thing, 2 bug not reproducible when floating window shadow touches bottom and top of screen at the same time (or just big enough, idk how to interpret this)

https://github.com/hyprwm/Hyprland/assets/142721811/a418fae9-b585-4b5b-a3b3-032e5141fe4c

Ligthiago avatar Mar 01 '24 21:03 Ligthiago

I found a way to maybe repro this but with 2 monitors

Assuming main monitor is on the left and second monitor is on the right Using workspace 1 and 2 on first monitor and 4 on right monitor

Open 2 or more terminals (im using alacritty) on workspace 2 Put the windows leaking content to the second monitor (see image), it also works without leaking content to second monitor but is less consistent Switch between workpaces 1 and 2 on first monitor multiple times and watch monitor 3 corrupt

The weird cut is the edge between the 2 monitors image

rurigk avatar Mar 02 '24 00:03 rurigk

Nah, I tested it on a different machine, basically same system config but different hardware - same bugs. Only similarity is 1920x1080@60hz monitor (but not the same) and amd. I guess it's a serious skill issue with my system config, as you can't reproduce it just from hyprland config. I will investigate further.

Ligthiago avatar Mar 02 '24 02:03 Ligthiago

Well, all bugs with workspace switching and floating windows mentioned here and also some other nasty stuff is fixed after updating to last commit. Issue closed.

Ligthiago avatar Mar 08 '24 05:03 Ligthiago

Oh no, i just rtrd, second one is still here, it's just don't appear when switching to workspace with fullscreen window

Ligthiago avatar Mar 08 '24 05:03 Ligthiago

I think this has the same root cause as https://github.com/hyprwm/Hyprland/issues/3514 Basically if you have a floating window thats sits across two workspaces, during the animation it flies in at an incorrect speed that's different from all the other windows. And that difference in its speed will cause the damage box position to be inaccurate.

thejch avatar Mar 10 '24 09:03 thejch

it flies in at an incorrect speed that's different from all the other windows

Yes, the speed is clearly different, especially with slidevert. It also appeared with slide, but window has to be placed much more out of screen and it is even less visible. Btw, can you check if it's reproducible for you?

https://github.com/hyprwm/Hyprland/assets/142721811/1ff28ba7-4136-42ce-9b8e-82252a050fa0

Ligthiago avatar Mar 10 '24 12:03 Ligthiago

Reproducible for me yes Interestingly the drop shadow seems to be flying at the correct speed

thejch avatar Mar 10 '24 14:03 thejch