# ~/.config/hypr/hypridle.conf

### based on the example config from hyprland.org

general {
    lock_cmd = pidof hyprlock || hyprlock       # avoid starting multiple hyprlock instances.
    before_sleep_cmd = loginctl lock-session    # lock before suspend.
    after_sleep_cmd = hyprctl dispatch dpms on  # to avoid having to press a key twice to turn on the display.
    ignore_dbus_inhibit = false                 # whether to ignore dbus-sent idle-inhibit requests (used by e.g. firefox or steam)
    ignore_systemd_inhibit = false              # whether to ignore systemd-inhibit --what=idle inhibitors
    on_lock_cmd = dbus-send --session --dest=org.freedesktop.secrets \
        --type=method_call  \
        /org/freedesktop/secrets \
        org.freedesktop.Secret.Service.Lock \
        array:objpath:/org/freedesktop/secrets/collection/login
}


#listener {
#    timeout = 150                                # 2.5min.
#    on-timeout = brightnessctl -s set 10         # set monitor backlight to minimum, avoid 0 on OLED monitor.
#    on-resume = brightnessctl -r                 # monitor backlight restore.
#}

# turn off keyboard backlight, comment out this section if you dont have a keyboard backlight.
#listener {
#    timeout = 150                                          # 2.5min.
#    on-timeout = brightnessctl -sd rgb:kbd_backlight set 0 # turn off keyboard backlight.
#    on-resume = brightnessctl -rd rgb:kbd_backlight        # turn on keyboard backlight.
#}

listener {
    timeout = 300                                 # 5min
    on-timeout = hyprctl dispatch dpms off        # screen off when timeout has passed
    on-resume = hyprctl dispatch dpms on          # screen on when activity is detected after timeout has fired.
}

listener {
    timeout = 1800                                # 30min
    on-timeout = loginctl lock-session            # lock screen when timeout has passed
}

listener {
    timeout = 3600                                # 60min
    on-timeout = systemctl hibernate              # hibernate and suspend pc
}
