Hyprland icon indicating copy to clipboard operation
Hyprland copied to clipboard

Foot Terminal has an incorrect/missing closing animation

Open cuddleplush opened this issue 1 year ago • 8 comments

Bug or Regression?

Regression

System Info and Version

System/Version info
Hyprland, built from branch  at commit ea2501d4556f84d3de86a4ae2f4b22a474555b9f  (props: bump version to 0.41.0).
Date: Mon Jun 10 16:23:06 2024
Tag: v0.41.0, commits: 4794

flags: (if any)


System Information:
System name: Linux
Node name: violet
Release: 6.10.0-rc3-violet
Version: #1 SMP PREEMPT_DYNAMIC TKG Mon Jun 10 15:25:15 CEST 2024


GPU information: 
09:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 23 [Radeon RX 6650 XT / 6700S / 6800S] [1002:73ef] (rev c1) (prog-if 00 [VGA controller])


os-release: NAME=Gentoo
ID=gentoo
PRETTY_NAME="Gentoo Linux"
ANSI_COLOR="1;32"
HOME_URL="https://www.gentoo.org/"
SUPPORT_URL="https://www.gentoo.org/support/"
BUG_REPORT_URL="https://bugs.gentoo.org/"
VERSION_ID="2.15"


plugins:
  hyprsplit by shezdy ver 1.0
  csgo-vulkan-fix by Vaxry ver 1.2

======Config-Start======


Config File: /home/max/.config/hypr/hyprland.conf: Read Succeeded
#       __                     __                __
#      / /_  __  ______  _____/ /___ _____  ____/ /
#     / __ \/ / / / __ \/ ___/ / __ `/ __ \/ __  / 
#    / / / / /_/ / /_/ / /  / / /_/ / / / / /_/ /  
#   /_/ /_/\__, / .___/_/  /_/\__,_/_/ /_/\__,_/   
#       /____/_/                                 

# Monitors
monitor = DP-3,     highrr, 1920x0, 1
monitor = HDMI-A-1, highrr, 0x0,    1

# Source files
source = ~/.config/hypr/hyprland/vars.hl
source = ~/.config/hypr/hyprland/env.hl
source = ~/.config/hypr/hyprland/auto.hl
source = ~/.config/hypr/hyprland/binds.hl
source = ~/.config/hypr/hyprland/opts.hl
source = ~/.config/hypr/hyprland/rules.hl


Config File: /home/max/.config/hypr/hyprland/vars.hl: Read Succeeded
$term = foot
$menu = tofi-drun --drun-launch=true
$fman = nemo
$shot = grimblast --notify copysave area 
$edit = neovide
$wall = mpvpaper '*' ~/Videos/mpvpaper/  -o "--hwdec yes  no-audio --loop inf --loop-playlist inf input-ipc-server=/tmp/mpv-socket" --fork

$cw = cat /home/max/.cache/swww/DP-3

$waybar-mono    = waybar -c ~/.config/waybar/mono/config.jsonc -s ~/.config/waybar/mono/style.css 
$waybar-cloud   = waybar -c ~/.config/waybar/cloud/config.jsonc -s ~/.config/waybar/cloud/style.css 
$waybar-bun     = waybar -c ~/.config/waybar/bun/config.jsonc -s ~/.config/waybar/bun/style.css && hyprctl keyword decoration:rounding 15


Config File: /home/max/.config/hypr/hyprland/env.hl: Read Succeeded
# Env vars
env = XDG_CURRENT_DESKTOP,         Hyprland
env = XDG_SESSION_DESKTOP,         Hyprland
env = MOZ_ENABLE_WAYLAND,          1
env = QT_QPA_PLATFORM,             wayland;xcb
env = QT_QPA_PLATFORMTHEME,        qt6ct
env = CMAKE_COLOR_DIAGNOSTICS,     ON
env = BROWSER,                     /usr/bin/librewolf
env = WLR_DRM_NO_ATOMIC,           1
env = ZDOTDIR,                     $HOME/.config/zsh
env = PATH,                        /home/max/.local/bin:$PATH
env = EDITOR,                      /usr/bin/nvim
env = DXVK_ASYNC,                  1
env = HYPRCURSOR_THEME,            Bibata-Modern-Classic
env = HYPRCURSOR_SIZE,             24
env = GTK_THEME,                   Graphite-Dark
env = ICON_THEME,                  Reversal-dark
env = DOTNET_CLI_TELEMETRY_OPTOUT, 1


Config File: /home/max/.config/hypr/hyprland/auto.hl: Read Succeeded
# Load Plugins
exec-once = hyprpm reload -n
exec-once = hyprctl plugin load /home/max/.repos/hyprland-plugins/hyprbars/hyprbars.so

# General Autostart
exec-once = dbus-update-activation-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=Hyprland
exec-once = gentoo-pipewire-launcher restart &
exec-once = wl-paste -t text --watch clipman store --no-persist &
exec-once = /usr/libexec/polkit-gnome-authentication-agent-1 &
exec-once = mako &
exec-once = swayosd-server &
exec-once = hypridle &
exec-once = sleep 0.5 && ags -c ~/.config/ags/mono/config.js > /dev/null &
#exec-once = $waybar-mono
exec-once = wpmgr init &
exec-once = corectrl --minimize-systray &

# GTK Themes
exec-once = gsettings set org.gnome.desktop.interface gtk-theme Graphite-Dark
exec-once = gsettings set org.gnome.desktop.interface icon-theme Tela-black-dark
exec-once = gsettings set org.gnome.desktop.interface cursor-theme Bibata-Modern-Classic


Config File: /home/max/.config/hypr/hyprland/binds.hl: Read Succeeded
# Keybinds
$mainMod = SUPER

bind = $mainMod,       Return, exec, $term
bind = $mainMod SHIFT, Return, exec, $fman
bind = $mainMod SHIFT, S,      exec, $shot
bind = $mainMod,       D,      exec, $menu
bind = $mainMod SHIFT, P,      exec, hyprpicker -f hex -a
bind = $mainMod SHIFT, R,      exec, ags -q && ags -c ~/.config/ags/mono/config.js > /dev/null &
#bind = $mainMod,       X,      exec, wlogout -b 4 -T 360 -B 360 -r 10 -c 10 -p layer-shell
bind = $mainMod,       X,      exec, ags -t power
bind = $mainMod,       V,      exec, clipman pick -t wofi
bind = $mainMod SHIFT, space,  exec, echo 'cycle pause' | socat - /tmp/mpv-socket

bind = $mainMod,       P,      pseudo,
bind = $mainMod,       space,  togglefloating,
bind = $mainMod,       space,  resizeactive, exact 1000 700
bind = $mainMod,       space,  centerwindow, 0
bind = $mainMod,       C,      centerwindow, 0
bind = $mainMod SHIFT, F,      fullscreen, 0
bind = $mainMod SHIFT, M,      fullscreen, 1
bind = $mainMod,       J,      togglesplit,
bind = $mainMod,       G,      togglegroup,
bind = $mainMod,       B,      changegroupactive, f
bind = $mainMod SHIFT, B,      changegroupactive, b
bind = $mainMod,       Q,      killactive,
bind = $mainMod SHIFT, E,      exit,
bind = $mainMod,       Tab,    exec, playerctl play-pause
# bind = $mainMod,       escape, hycov:toggleoverview

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,       1,      split:workspace, 1
bind = $mainMod,       2,      split:workspace, 2
bind = $mainMod,       3,      split:workspace, 3
bind = $mainMod,       4,      split:workspace, 4
bind = $mainMod,       5,      split:workspace, 5
bind = $mainMod,       6,      split:workspace, 6
bind = $mainMod,       7,      split:workspace, 7
bind = $mainMod,       8,      split:workspace, 8
bind = $mainMod,       9,      split:workspace, 9
bind = $mainMod,       0,      split:workspace, 10

bind = $mainMod SHIFT, 1,      split:movetoworkspace, 1
bind = $mainMod SHIFT, 2,      split:movetoworkspace, 2
bind = $mainMod SHIFT, 3,      split:movetoworkspace, 3
bind = $mainMod SHIFT, 4,      split:movetoworkspace, 4
bind = $mainMod SHIFT, 5,      split:movetoworkspace, 5
bind = $mainMod SHIFT, 6,      split:movetoworkspace, 6
bind = $mainMod SHIFT, 7,      split:movetoworkspace, 7
bind = $mainMod SHIFT, 8,      split:movetoworkspace, 8
bind = $mainMod SHIFT, 9,      split:movetoworkspace, 9
bind = $mainMod SHIFT, 0,      split:movetoworkspace, 10

bind=,XF86AudioLowerVolume,     exec,    swayosd-client --output-volume lower
bind=,XF86AudioRaiseVolume,     exec,    swayosd-client --output-volume raise
bind=CTRL,XF86AudioLowerVolume, exec,    swayosd-client --input-volume lower
bind=CTRL,XF86AudioRaiseVolume, exec,    swayosd-client --input-volume raise
bind=,XF86AudioMute,            exec,    swayosd-client --input-volume mute-toggle
bind=,XF86AudioMute,            exec,    ags -r "muteCheck.value = !muteCheck.value" &
bind=,Caps_Lock,                exec,    swayosd-client --caps-lock-led input7::capslock

bind=CTRL_SHIFT,m,      pass,       ^(VencordDesktop)$
bind=,F9,              pass,       ^(com\.obsproject\.Studio)$
bind = $mainMod, bracketright,              pass,       ^(com\.obsproject\.Studio)$

bindm = $mainMod,       mouse:272,  movewindow
bindm = $mainMod,       mouse:273,  resizewindow


Config File: /home/max/.config/hypr/hyprland/opts.hl: Read Succeeded
# Main Settings
general {
    gaps_in     = 5
    gaps_out    = 10

    border_size = 0
    col.active_border = rgb(cdcdcd)
    col.inactive_border = rgb(2f2f2f)
    resize_on_border = false
    no_focus_fallback = true

    allow_tearing = true

    layout = dwindle
}

decoration {
    # multisample_edges   = true
    rounding            = 0
    drop_shadow         = true
    shadow_range        = 10
    shadow_render_power = 2
    col.shadow          = 0x66000000

    blur {
        enabled = false
    }
}

animations {
    enabled = true

    bezier = hyprnostretch, 0.05, 0.9, 0.1, 1   # Hyprland's default but no stretch

    animation = windows,    1, 3,  hyprnostretch, slide
    animation = windowsOut, 1, 7,  default, popin 80%
    animation = border,     1, 10, default
    animation = fade,       1, 3,  default
    animation = workspaces, 1, 3,  hyprnostretch, slide
    animation = layers,     1, 3,  hyprnostretch, fade


    #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
}

input {
    kb_layout      = eu,ru
    #kb_variant     = euro,legacy
    kb_options     = grp:alt_shift_toggle
    scroll_method  = no_scroll
    follow_mouse   = 1
    mouse_refocus  = false
    accel_profile  = flat
    repeat_rate    = 60
    repeat_delay   = 500
    natural_scroll = false
    sensitivity    = 0
}

group {
    groupbar {
        col.inactive = rgb(cdcdcd) rgb(cdcdcd)
        col.active   = rgb(ff7eb6)
        gradients = false
        font_size = 12
        render_titles = false
    }
}

dwindle {
    pseudotile     = true
    preserve_split = true
    force_split    = 2
}

master {
    new_is_master = false
}

misc {
    vfr = true
    vrr = 2

    enable_swallow = true;
    swallow_regex  = "^(foot)$";
    
    force_default_wallpaper = false
    disable_hyprland_logo = true
    #mouse_move_enables_dpms = true
    #middle_click_paste = false
    no_direct_scanout = false
}

binds {
    workspace_center_on = 1
}

plugin {
    hyprbars {
        # example config
        bar_height = 35
        bar_color = rgb(060606)
        col.text = rgb(CDCDCD)
        bar_text_size = 11
        bar_text_font = BlexMono Nerd Font Propo
        bar_text_align = left
        bar_buttons_alignment = right
        bar_padding = 7
        bar_button_padding = 8
        bar_part_of_window = true
        bar_precedence_over_border = true

        # example buttons (R -> L)
        # hyprbars-button = color, size, on-click
        hyprbars-button = rgb(EE5396), 17, , hyprctl dispatch killactive
        #hyprbars-button = rgb(42be65), 17, , hyprctl dispatch fullscreen
        hyprbars-button = rgb(33b1ff), 17, , hyprctl dispatch togglefloating && hyprctl dispatch resizeactive exact 1000 700 && hyprctl dispatch centerwindow 0
        #hyprbars-button = rgb(060606), 20, , hyprctl dispatch togglefloating
    }

    csgo-vulkan-fix {
        res_w = 1280
        res_h = 960
        # NOT a regex! This is a string and has to exactly match initial_class
        class = cs2
    }
    
    hycov {
        overview_gappi = 60
        enable_hotarea = 0
    }

    hyprexpo {
        columns = 1
        gap_size = 10
        bg_col = rgb(cdcdcd)
        workspace_method = first 1 # [center/first] [workspace] e.g. first 1 or center m+1

        enable_gesture = true # laptop touchpad, 4 fingers
        gesture_distance = 300 # how far is the "max"
        gesture_positive = true # positive = swipe down. Negative = swipe up.
    }
}

#debug {
#    error_position = 1
#}


Config File: /home/max/.config/hypr/hyprland/rules.hl: Read Succeeded
# Windowrules
windowrule=float,Rofi
windowrule=float, title:File Operation Progress
windowrule=float, title:Confirm to replace files
windowrule=size 1000 500,title:Wine configuration
windowrule=tile,title:Spotify
windowrule=float,pavucontrol
windowrule=float, com-group_finity-mascot-Main
windowrule=noblur, com-group_finity-mascot-Main
windowrule=nofocus, com-group_finity-mascot-Main
windowrule=noshadow, com-group_finity-mascot-Main
windowrule=noborder, com-group_finity-mascot-Main
windowrule=plugin:hyprbars:nobar,librewolf
windowrule=plugin:hyprbars:nobar,steam
windowrule=plugin:hyprbars:nobar,firefox
windowrule=plugin:hyprbars:nobar,moe.launcher.an-anime-game-launcher

windowrulev2 = immediate,   class:^(cs2)$
windowrulev2 = immediate,   class:^(steam_proton)$
windowrulev2 = immediate,   class:^(tetrio-desktop)$
windowrulev2 = immediate,   class:^(gamescope)$
windowrulev2 = immediate,   class:(gamescope)$
windowrulev2 = immediate,   title:^(Counter-Strike 2)$
windowrulev2 = immediate,   class:(Minecraft)(.*)$
windowrulev2 = immediate,   class:(Lunar Client)(.*)$
windowrulev2 = immediate,   class:^(osu!)$

windowrulev2 = noblur,class:(steam)$
windowrulev2 = forcergbx,class:(steam)$
windowrulev2 = suppressevent maximize, class:.*

# Vesktop on Mon 2 WS 1
windowrulev2 = monitor 1,   class:^(vesktop)$ 
windowrulev2 = workspace 11, class:^(vesktop)$ 

layerrule = animation fade, swayosd
layerrule = animation slide, notifications
layerrule = animation none, selection
layerrule = animation none, gtk-layer-shell
# blurls = waybar

workspace = 1, monitor:DP-3, persistent:true
workspace = 2, monitor:DP-3, persistent:true
workspace = 3, monitor:DP-3, persistent:true
workspace = 4, monitor:DP-3, persistent:true
workspace = 5, monitor:DP-3, persistent:true

workspace = 11, monitor:HDMI-A-1, persistent:true
workspace = 12, monitor:HDMI-A-1, persistent:true
workspace = 13, monitor:HDMI-A-1, persistent:true
workspace = 14, monitor:HDMI-A-1, persistent:true
workspace = 15, monitor:HDMI-A-1, persistent:true

======Config-End========

Description

the foot terminal seems to have an incorrect closing animation, compared to other windows. With my config windows should fade out, but foot's "texture" simply disappears instantly, you can only see it's shadow fade out, see the vid(using default animations to show it better).

Issue appeared after updating to 0.41.0, not present on 0.40.0

foot version: 1.17.2 -pgo +ime +graphemes -assertions

How to reproduce

  1. have animations enabled
  2. open foot
  3. close foot
  4. observe problem

Crash reports, logs, images, videos

https://github.com/hyprwm/Hyprland/assets/68853493/c8544254-e0bd-49d1-b624-ce82735fd2f9

cuddleplush avatar Jun 10 '24 18:06 cuddleplush

this is likely caused by https://github.com/hyprwm/Hyprland/pull/6268 but please bisect

MightyPlaza avatar Jun 10 '24 18:06 MightyPlaza

Bisected, here's what I've found:

7eeee2c94e882a5df1914234df0571b221f9aa35 - Broken animation fc72df8e58bc127442a245f2f29a3246acf77cce - doesnt launch, err: wayland.c:1528: no clipboard available (wl_data_device_manager not implemented by server) 0cfdde3d1acbfbf698af17f6986fbc4d644214da - doesnt launch, err: wayland.c:1528: no clipboard available (wl_data_device_manager not implemented by server) 121d3a72137d4780602cf245704615f63357ea22 - doesnt launch, err: wayland.c:1528: no clipboard available (wl_data_device_manager not implemented by server) 4cdddcfe466cb21db81af0ac39e51cc15f574da9 - last commit where everything is fine

I'm not particularly knowledgeable at this, but I can assume it's one of the commits moving something to the new impl, either wl_seat, xdg-shell or wl-data-device

cuddleplush avatar Jun 10 '24 20:06 cuddleplush

works fine for me on https://github.com/hyprwm/Hyprland/commit/155fe6f165f70ea69a44cbd6989fc01a473e6946 doe maybe it's caused by a different animation config

MightyPlaza avatar Jun 10 '24 22:06 MightyPlaza

works fine for me on 155fe6f doe maybe it's caused by a different animation config

That's really strange. For me, it is broken on 155fe6f. And I'm also using the default animation config, as I'm doing all the testing on a nested debug build, with the generated config. What's your foot ver? And is it also broken for you on 7eeee2c94e882a5df1914234df0571b221f9aa35?

https://github.com/hyprwm/Hyprland/assets/68853493/c021cb27-83e8-4ea7-9718-93a6b57ec049

cuddleplush avatar Jun 10 '24 22:06 cuddleplush

my bad, border made it look like it was getting drawn it definitely is broken

MightyPlaza avatar Jun 11 '24 16:06 MightyPlaza

Hi @cuddleplush,

How do you configure the window module in waybar to display more than one window?

Thanks!

BluewyDiamond avatar Jun 11 '24 17:06 BluewyDiamond

Hi @cuddleplush,

How do you configure the window module in waybar to display more than one window?

Thanks!

It's not actually Waybar, it's AGS. If you're interested you can look at my dots here, but be warned they're pretty cursed

cuddleplush avatar Jun 11 '24 18:06 cuddleplush

Still present as of cc98594c3aed0b542e03818371a4636f549f80e1.

Hyprland log during closing of a foot window: hyprland.log

Foot log of opening it and closing with WAYLAND_DEBUG=1: foot.log

cuddleplush avatar Jul 05 '24 23:07 cuddleplush

still present in e4abf26069b4d43c8f6ad6b3dfb56c952abb38c2

https://github.com/user-attachments/assets/510c9126-d427-42b5-8411-17a5c1de4528

nishiiko avatar Mar 24 '25 19:03 nishiiko

Hello there!

This issue has been closed, as we are moving from issues to discussions. More about this can be found here and in #9854.

Firstly, please make sure this issue is still relevant in latest Hyprland. If so, we ask you to open a discussion (please read the discussion guidelines first, in the pinned post)

Thank you for your understanding!

vaxerski avatar Apr 05 '25 19:04 vaxerski