# `idle`

Whether the user is away, from the compositor's idle notifications
(ext-idle-notify-v1). What inhibits idling (a video playing, a
surface's `inhibit_idle: true`) holds them back.

| Field | Type | |
| --- | --- | --- |
| `available` | `bool` | The compositor tells how long the user has been away (ext-idle-notify-v1); while false, `idle.after` is false. |
| `timeouts` | `[IdleTimeout]` | The timeouts `idle.after` was asked about, each with whether the seat has been idle that long, by timeout. |

| Method | |
| --- | --- |
| `fn after(timeout: duration) -> bool` | True once the seat has had no input for `timeout`, false again at the next input: `panel Saver { open: idle.after(300s) }`. The compositor keeps a timer for each timeout only while something reads it; one no longer read goes a second later. |
