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.09k stars 882 forks source link

Hyprland is not able to animate popin 100% animation for Wofi #8155

Closed BionicBlade0 closed 1 day ago

BionicBlade0 commented 3 days ago

Already reported ? *

Regression?

No

System Info and Version

System/Version info ```sh Hyprland, built from branch at commit 4520b30d498daca8079365bdb909a8dea38e8d55 (version: bump to 0.44.1). Date: Wed Oct 9 12:54:39 2024 Tag: v0.44.1, commits: 5309 built against aquamarine 0.4.2 flags: (if any) System Information: System name: Linux Node name: aloy Release: 6.11.3-200.fc40.x86_64 Version: #1 SMP PREEMPT_DYNAMIC Thu Oct 10 22:31:19 UTC 2024 GPU information: 00:02.0 VGA compatible controller [0300]: Intel Corporation UHD Graphics 620 [8086:5917] (rev 07) (prog-if 00 [VGA controller]) os-release: NAME="Fedora Linux" VERSION="40 (Workstation Edition)" ID=fedora VERSION_ID=40 VERSION_CODENAME="" PLATFORM_ID="platform:f40" PRETTY_NAME="Fedora Linux 40 (Workstation Edition)" ANSI_COLOR="0;38;2;60;110;180" LOGO=fedora-logo-icon CPE_NAME="cpe:/o:fedoraproject:fedora:40" DEFAULT_HOSTNAME="fedora" HOME_URL="https://fedoraproject.org/" DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f40/system-administrators-guide/" SUPPORT_URL="https://ask.fedoraproject.org/" BUG_REPORT_URL="https://bugzilla.redhat.com/" REDHAT_BUGZILLA_PRODUCT="Fedora" REDHAT_BUGZILLA_PRODUCT_VERSION=40 REDHAT_SUPPORT_PRODUCT="Fedora" REDHAT_SUPPORT_PRODUCT_VERSION=40 SUPPORT_END=2025-05-13 VARIANT="Workstation Edition" VARIANT_ID=workstation plugins: ======Config-Start====== Config File: /home/hiroshi/.config/hypr/hyprland.conf: Read Succeeded # ##################################################################################################################################################################### # # Please note not all available settings / options are set here. # For a full list, see the wiki # autogenerated = 0 # remove this line to remove the warning # See https://wiki.hyprland.org/Configuring/Monitors/ # Workstation # monitor=eDP-1,preferred,0x0,1 # monitor=DP-4,preferred,1920x0,1 # monitor=DP-3,preferred,3840x0,1 # TV # monitor=eDP-1,disable # monitor=DP-1,3840x2160@60,auto,2 #Laptop monitor=eDP-1,preferred,auto,1 # See https://wiki.hyprland.org/Configuring/Keywords/ for more # Execute your favorite apps at launch exec-once = python '/mnt/hiroshi/hyprland_config/random_wallpaper.py' exec-once = waybar & hyprpaper exec-once = [workspace 1 silent] flatpak run io.github.zen_browser.zen exec-once = python '/mnt/hiroshi/hyprland_config/hyprlock_background.py' # Source a file (multi-file configs) # source = ~/.config/hypr/myColors.conf # Set programs that you use $terminal = kitty $fileManager = nautilus $menu = wofi --show drun --conf /home/hiroshi/.config/wofi/wofi.conf # Some default env vars. env = XCURSOR_SIZE,24 env = QT_QPA_PLATFORMTHEME,qt5ct # change to qt6ct if you have that env = PATH,/home/hiroshi/.config/hypr/modules:$PATH # For all categories, see https://wiki.hyprland.org/Configuring/Variables/ input { kb_layout = us kb_variant = kb_model = kb_options = kb_rules = follow_mouse = 1 touchpad { natural_scroll = yes } sensitivity = 0 # -1.0 to 1.0, 0 means no modification. } general { # See https://wiki.hyprland.org/Configuring/Variables/ for more gaps_in = 3 gaps_out = 7 border_size = 0 col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg col.inactive_border = rgba(595959aa) layout = dwindle # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on allow_tearing = false resize_on_border = true } decoration { # See https://wiki.hyprland.org/Configuring/Variables/ for more rounding = 10 blur { enabled = true size = 4 passes = 2 popups = true # xray = true } drop_shadow = false shadow_range = 4 shadow_render_power = 3 col.shadow = rgba(1a1a1aee) layerrule = blur,waybar layerrule = blurpopups,waybar # layerrule = blur,wofi # inactive_opacity = .7 dim_inactive = true } 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 = easeInOutBack, 0.68, -0.55, 0.265, 1.55 animation = windows, 1, 7, myBezier, popin 100% 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 # animation = layers, 1, 6, myBezier, popin 100% # animation = fadeLayers, 1, 6, myBezier } 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 } 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 = true } misc { # See https://wiki.hyprland.org/Configuring/Variables/ for more force_default_wallpaper = 0 # Set to 0 or 1 to disable the anime mascot wallpapers } # 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 } # 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 = suppressevent maximize, class:.* # You'll probably like this. windowrulev2 = noblur, class:[^(kitty)|(wofi)] windowrulev2 = float, title:(Picture-in-Picture) windowrulev2 = nodim, title:(Picture-in-Picture) windowrulev2 = move 1300 700, title:(Picture-in-Picture) # See https://wiki.hyprland.org/Configuring/Keywords/ for more $mainMod = SUPER # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more bind = $mainMod, Q, exec, $terminal bind = $mainMod, C, killactive, bind = $mainMod, M, exit, bind = $mainMod, E, exec, $fileManager bind = $mainMod, V, togglefloating, bind = $mainMod, R, exec, $menu bind = $mainMod, P, pseudo, # dwindle bind = $mainMod, J, togglesplit, # dwindle # 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 # 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 # CUSTOM BINDS # Volume Media Keys bindel = , XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+ bindel = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- bindl = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle # Brightness Media Keys bindel = , XF86MonBrightnessUp, exec, brightnessctl set +10% bindel = , XF86MonBrightnessDown, exec, brightnessctl set 10%- # Screenshot # bind = $mainMod, B, exec, hyprshot -m output bind = $mainMod, L, exec, hyprlock bind = $mainMod, T, exec, gnome-system-monitor # Misc bind = $mainMod, W, exec, killall waybar && waybar ======Config-End======== ```

Description

I have Wofi set up to be opened as a window (however, using it as a layer has the same issue). Hyprland can't seem to open it with popin 100% animation. After a little bit of digging, I figured out that hyprland can't really render the 'optional percentage' for popin animation when it comes to wofi. So this renders the optional attribute for popin inert.

An investigation into this will be appreciated.

How to reproduce

Open wofi with the following animation setting- animation = windows, 1, 7, myBezier, popin 100%

But it won't do popin from 100%.

Crash reports, logs, images, videos

No response

vaxerski commented 2 days ago

popin 100% doesnt make sense though...?

BionicBlade0 commented 2 days ago

I want to have a classic fade-in effect (like hyprlock) for windows. Shouldn't I set the window animation style to popin 100% for that? I could turn windows animation off, but it kinda makes wofi look janky.

vaxerski commented 2 days ago

you should turn the animation off and just keep fade in?

BionicBlade0 commented 2 days ago

The fade animation is alright, however, Wofi still does a weird popin with windows animation turned off, where it looks it is trying to do popin from 0 to 100% in 0.00001 seconds.

It might just be a wofi issue instead of a hyprland issue.

BionicBlade0 commented 1 day ago

Turns out it WAS a wofi issue. I needed to make animation-duration 0s in the style css.

However, it would be beneficial if more control over animations can be given through windowrule. So, if I make a powermenu through wofi, I can turn off window animation for it, but keep fade animation without affecting the global animation parameters, and also adjust the animation duration on a per window basis.

BionicBlade0 commented 1 day ago

Not a hyprland issue.