GPowerProfileMonitor: GIO Reference Manual

## GPowerProfileMonitor GPowerProfileMonitor — Power profile monitor |

## Functions

GPowerProfileMonitor * | g_power_profile_monitor_dup_default ()
gboolean | g_power_profile_monitor_get_power_saver_enabled ()

## Properties

gboolean | power-saver-enabled | Read

## Types and Values

| GPowerProfileMonitor
struct | GPowerProfileMonitorInterface
#define | G_POWER_PROFILE_MONITOR_EXTENSION_POINT_NAME

## Object Hierarchy

        GInterface
        ╰── GPowerProfileMonitor

## Prerequisites

GPowerProfileMonitor requires GInitable and GObject.

## Includes

    #include <gio/gio.h>

## Description

GPowerProfileMonitor makes it possible for applications as well as OS components to monitor system power profiles and act upon them. It currently only exports whether the system is in “Power Saver” mode (known as “Low Power” mode on some systems).

When in “Low Power” mode, it is recommended that applications:

- disabling automatic downloads

- reduce the rate of refresh from online sources such as calendar or email synchronisation

- if the application has expensive visual effects, reduce them

It is also likely that OS components providing services to applications will lower their own background activity, for the sake of the system.

There are a variety of tools that exist for power consumption analysis, but those usually depend on the OS and hardware used. On Linux, one could use `upower` to monitor the battery discharge rate, `powertop` to check on the background activity or activity at all), `sysprof` to inspect CPU usage, and `intel_gpu_time` to profile GPU usage.

Don't forget to disconnect the “:power-saver-enabled” signal, and unref the GPowerProfileMonitor itself when exiting.

## Functions

### g_power_profile_monitor_dup_default ()

    GPowerProfileMonitor *
    g_power_profile_monitor_dup_default (void);

Gets a reference to the default GPowerProfileMonitor for the system.

#### Returns

a new reference to the default GPowerProfileMonitor.

[not nullable][transfer full]

Since: 2.70

### g_power_profile_monitor_get_power_saver_enabled ()

    gboolean
    g_power_profile_monitor_get_power_saver_enabled
                                   (GPowerProfileMonitor *monitor);

Gets whether the system is in “Power Saver” mode.

You are expected to listen to the “:power-saver-enabled” signal to know when the profile has changed.

#### Parameters

monitor | a GPowerProfileMonitor |

#### Returns

Whether the system is in “Power Saver” mode.

Since: 2.70

## Types and Values

### GPowerProfileMonitor

    typedef struct _GPowerProfileMonitor GPowerProfileMonitor;

GPowerProfileMonitor monitors system power profile and notifies on changes.

Since: 2.70

### struct GPowerProfileMonitorInterface

    struct GPowerProfileMonitorInterface {
    };

The virtual function table for GPowerProfileMonitor.

#### Members

Since: 2.70

### G_POWER_PROFILE_MONITOR_EXTENSION_POINT_NAME

    #define G_POWER_PROFILE_MONITOR_EXTENSION_POINT_NAME "gio-power-profile-monitor"

Extension point for power profile usage monitoring functionality. See Extending GIO.

Since: 2.70

## Property Details

### The `“power-saver-enabled”` property

      “power-saver-enabled”      gboolean

Whether “Power Saver” mode is enabled on the system.

Owner: GPowerProfileMonitor

Flags: Read

Default value: FALSE

Since: 2.70