since: 3.0

Description [src]

final class Purple.IdleManager : GObject.Object {
  /* No available fields */

The idle manager keeps track of multiple idle sources and aggregates them to the oldest one to report a global idle state.

Idle sources include application usage, device usage, or a manually set value, among other possibilities. User interfaces should allow users to determine what if any idle sources are tracked in the idle manager.

The idle source with the oldest timestamp is used as the value for PurpleIdleManager:timestamp as it is most likely what the user is looking for based on the settings they would choose in the user interface.

Most users will only ever have a single idle source, but could add an additional manual source to set a specific time that they went idle.

If the user has chosen no idle reporting, which means no sources are ever added to PurpleIdleManager, then PurpleIdleManager:timestamp will always be NULL.

Most users will choose between application and device usage. The difference being that application usage is updated whenever you send a message whereas device usage is only updated when you haven’t interacted with your device.

However, there is also the ability to manually set an idle time via plugins. Typically users will manually set their idle time to something exaggerated like months or years.

A manual idle source could also be created to replicate an existing idle source like the application usage, so that the user can start using the application without resetting the idle time. This would in effect allow the user to use the application in “stealth mode” by remaining idle.

In both of these examples, the user wishes to remain idle while still using the application. This is precisely why the oldest idle time is used as the aggregate.

Available since: 3.0




Gets the default idle manager that libpurple is using.

since: 3.0

Instance methods


Gets the oldest timestamp of all the sources that manager knows about.

since: 3.0


Sets the timestamp of when source went idle to timestamp. If timestamp is NULL, source will be removed from manager.

since: 3.0

Methods inherited from GObject (43)

Please see GObject for a full list of methods.



The aggregate of the oldest idle timestamp of all of the sources that are known.

since: 3.0


Signals inherited from GObject (1)

The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.

Class structure

struct PurpleIdleManagerClass {
  GObjectClass parent_class;
No description available.
Class members
parent_class: GObjectClass
No description available.