Skip to content

hypridle doesn't wait for animation to finish before suspend #146

@danielepintore

Description

@danielepintore

Problem Description

Hello, first of all thanks for your software. I've been using hyprlock and hypridle for a while now. But there is a problem that seems I can't fix it:
After I suspend my system with systemctl suspend or I close the lid of my laptop, when I wake up the system I see for a split second a flash with the screen content. I think the problem is the fact that the animations are active on hyprlock, because when I disable them the problem seems to be fixed.
Seems that the lock given from hyprlock-lock-notify-v1 it's a little early if animations are enabled.

What I've tried to fix

I've tried to change the inhibit_sleep value to 3 without any luck. I've also tried to change my hyprlock and hypridle config to the default one without any luck.

Hyprland 0.48.1 built from branch at commit 29e2e59fdbab8ed2cc23a20e3c6043d5decb5cdc (version: bump to v0.48.1).
Date: Fri Mar 28 16:16:07 2025
Tag: v0.48.1, commits: 5937
built against:
aquamarine 0.8.0
hyprlang 0.6.1
hyprutils 0.7.0
hyprcursor 0.1.12
hyprgraphics 0.1.3

P.S. I'm using uwsm and i have activated the hypridle service

Hyprlock config Hyprlock version v0.8.2
background {
    monitor =
    path = ~/.config/hypr/wallpapers/background.jpg
    color = rgba(25, 20, 20, 1.0)

    # all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations
    blur_passes = 3
    blur_size = 8
    contrast = 0.8916
    brightness = 0.7172
    vibrancy = 0.1696
    vibrancy_darkness = 0
}

#animations {
#	enabled = false
#}

input-field {
    monitor =
    size = 300, 30
    outline_thickness = 0
    dots_size = 0.25 # Scale of input-field height, 0.2 - 0.8
    dots_spacing = 0.55 # Scale of dots' absolute size, 0.0 - 1.0
    dots_center = true
    dots_rounding = -1
    outer_color = rgba(242, 243, 244, 0)
    inner_color = rgba(242, 243, 244, 0)
    font_color = rgba(242, 243, 244, 0.75)
    fade_on_empty = false
    placeholder_text = # Text rendered in the input box when it's empty.
    hide_input = false
    check_color = rgba(204, 136, 34, 0)
    fail_color = rgba(204, 34, 34, 0) # if authentication failed, changes outer_color and fail message color
    fail_text = $FAIL <b>($ATTEMPTS)</b> # can be set to empty
    capslock_color = -1
    numlock_color = -1
    bothlock_color = -1 # when both locks are active. -1 means don't change outer color (same for above)
    invert_numlock = false # change color if numlock is off
    swap_font_color = false # see below
    position = 0, -470
    halign = center
    valign = center
}

label {
  monitor =
  text = cmd[update:1000] echo "$(date +"%A, %B %d")"
  color = rgba(242, 243, 244, 0.75)
  font_size = 20
  font_family = SF Pro Display Bold
  position = 0, 400
  halign = center
  valign = center
}

label {
  monitor = 
  text = $TIME
  color = rgba(242, 243, 244, 0.75)
  font_size = 93
  font_family = SF Pro Display Bold
  position = 0, 253
  halign = center
  valign = center
}

label {
    monitor =
    text = $USER
    color = rgba(242, 243, 244, 0.75)
    font_size = 12
    font_family = SF Pro Display Bold
    position = 0, -407
    halign = center
    valign = center
}

label {
    monitor =
    text = Enter Password
    color = rgba(242, 243, 244, 0.75)
    font_size = 10
    font_family = SF Pro Display
    position = 0, -440
    halign = center
    valign = center
}
Hypridle config hypridle v0.1.6
general {
    lock_cmd = pidof hyprlock || hyprlock											# dbus/sysd lock command (loginctl lock-session)
    before_sleep_cmd = playerctl stop; loginctl lock-session							# command ran before sleep
    after_sleep_cmd = hyprctl dispatch dpms on  # to avoid having to press a key twice to turn on the display.
}

listener {
    timeout = 360                            # in seconds
    on-timeout = loginctl lock-session										 # command to run when timeout has passed
}

listener {
    timeout = 600                            # in seconds
    on-timeout = systemctl suspend										 # command to run when timeout has passed
}

Thanks for any help!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions