A read-only mirror of https://github.com/hyprwm/hypridle
Go to file
Eduard Tykhoniuk cc23f97836
core: Do not crash if the last CLI parameter was -c (#92)
* fix: Do not crash if the last CLI parameter was -c

* feat: return an error if the next argument after -c is a flag

* feat: return an error if multiple config files are provided
2024-09-25 10:41:09 +01:00
.github/workflows CI: init 2024-02-17 23:14:09 +02:00
assets assets: add example.conf 2024-08-02 22:19:47 +03:00
nix nix: add wayland-scanner native build input 2024-09-01 18:20:25 +03:00
src core: Do not crash if the last CLI parameter was -c (#92) 2024-09-25 10:41:09 +01:00
systemd fix systemd service exec path 2024-04-17 09:35:26 +03:00
.clang-format core: initial commit 2024-02-17 19:30:11 +00:00
.gitignore core: initial commit 2024-02-17 19:30:11 +00:00
CMakeLists.txt CMake: typo fix hyprlock->hypridle (#82) 2024-08-02 23:49:02 +03:00
LICENSE Initial commit 2024-02-17 17:49:23 +00:00
README.md README: Fixed getconf command in build instructions (#60) 2024-05-14 16:12:55 +01:00
VERSION CMake, Nix: add VERSION file 2024-07-18 20:42:35 +03:00
flake.lock flake.lock: update 2024-07-18 20:43:36 +03:00
flake.nix Config: use hyprutils helper (#77) 2024-07-16 22:36:07 +02:00

README.md

hypridle

Hyprland's idle daemon

Features

  • based on the ext-idle-notify-v1 wayland protocol
  • support for dbus' loginctl commands (lock / unlock / before-sleep)
  • support for dbus' inhibit (used by e.g. firefox / steam)

Configuration

Configuration is done via ~/.config/hypr/hypridle.conf in the standard hyprland syntax.

general {
    lock_cmd = notify-send "lock!"          # dbus/sysd lock command (loginctl lock-session)
    unlock_cmd = notify-send "unlock!"      # same as above, but unlock
    before_sleep_cmd = notify-send "Zzz"    # command ran before sleep
    after_sleep_cmd = notify-send "Awake!"  # command ran after sleep
    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
}

listener {
    timeout = 500                            # in seconds
    on-timeout = notify-send "You are idle!" # command to run when timeout has passed
    on-resume = notify-send "Welcome back!"  # command to run when activity is detected after timeout has fired.
}

You can add as many listeners as you please. Omitting on-timeout or on-resume (or leaving them empty) will make those events ignored.

Dependencies

  • wayland
  • wayland-protocols
  • hyprlang >= 0.4.0
  • sdbus-c++

Building & Installation

Building:

cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -S . -B ./build
cmake --build ./build --config Release --target hypridle -j`nproc 2>/dev/null || getconf _NPROCESSORS_CONF`

Installation:

sudo cmake --install build

Usage:

Hypridle should ideally be launched after logging in. This can be done by your compositor or by systemd. For example, for Hyprland, use the following in your hyprland.conf.

exec-once = hypridle

If, instead, you want to have systemd do this for you, you'll just need to enable the service using

systemctl --user enable --now hypridle.service

Flags

-c <config_path>, --config <config_path>: specify a config path, by default
                                          set to ${XDG_CONFIG_HOME}/hypr/hypridle.conf
-q, --quiet
-v, --verbose