Configuration ============= SystemMonitor ------------- .. code:: xml timeout +++++++ :duration: This represents the duration for which all configured monitors must be idle to trigger the ``onIdle`` event. Since not all monitors may be able to determine a precise idle time, this is actually implemented as a periodic timer. Then the timer elapses and no monitor detects a usage, the action configured for the ``onIdle`` gets executed. If you do not configure this option, no idle cheks will be performed whatsoever. As a consequence no nested monitor or resource will execute their ``onIdle`` actions ever. Some ``onDemand`` events may still be triggered, if the respective monitor has other means of detecting this. onIdle ++++++ :⚡️ event: The ``onIdle`` event of the ```` gets triggered, when none of the nested monitor reports a usage. This would be a good moment to suspend the computer. Alternatively you can configure any of the other :doc:`available actions `. onDemand ++++++++ :⚡️ event: Each time when the ``timeout`` elapses and at least one nested monitor reports a usage, the ``onDemand`` action gets executed. To prevent the built-in power management from interfering with Desomnia's workings, it is recommended to set the system to ``sleepless``. onSuspend +++++++++ :⚡️ event: This event handler will be executed each time the system suspends. It could be triggered by Desomnia or another source. onSuspendTimeout ++++++++++++++++ :⚡️ event: If you configure the ``sleep`` action and the system does not suspend until the next ``timeout`` this event handler will be executed. If a low-level component is preventing the computer from sleeping, you could, for example, restart the system to restore normal sleep behaviour. onResume ++++++++ :⚡️ event: This event handler will be executed when the system wakes up from sleep.