gi-gio
CopyrightWill Thompson and Iñaki García Etxebarria
LicenseLGPL-2.1
MaintainerIñaki García Etxebarria
Safe HaskellNone
LanguageHaskell2010

GI.Gio.Interfaces.PowerProfileMonitor

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:

  • disable automatic downloads;
  • reduce the rate of refresh from online sources such as calendar or email synchronisation;
  • reduce the use of expensive visual effects.

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 Object::notify signal for PowerProfileMonitor:powerSaverEnabled, and unref the GPowerProfileMonitor itself when exiting.

Since: 2.70

Synopsis

Exported types

newtype PowerProfileMonitor Source #

Memory-managed wrapper type.

Instances

Instances details
Eq PowerProfileMonitor Source # 
Instance details

Defined in GI.Gio.Interfaces.PowerProfileMonitor

GObject PowerProfileMonitor Source # 
Instance details

Defined in GI.Gio.Interfaces.PowerProfileMonitor

ManagedPtrNewtype PowerProfileMonitor Source # 
Instance details

Defined in GI.Gio.Interfaces.PowerProfileMonitor

TypedObject PowerProfileMonitor Source # 
Instance details

Defined in GI.Gio.Interfaces.PowerProfileMonitor

Methods

glibType :: IO GType #

HasParentTypes PowerProfileMonitor Source # 
Instance details

Defined in GI.Gio.Interfaces.PowerProfileMonitor

HasAttributeList PowerProfileMonitor Source # 
Instance details

Defined in GI.Gio.Interfaces.PowerProfileMonitor

(info ~ ResolvePowerProfileMonitorMethod t PowerProfileMonitor, OverloadedMethod info PowerProfileMonitor p, HasField t PowerProfileMonitor p) => HasField (t :: Symbol) PowerProfileMonitor (p :: Type) Source # 
Instance details

Defined in GI.Gio.Interfaces.PowerProfileMonitor

(info ~ ResolvePowerProfileMonitorMethod t PowerProfileMonitor, OverloadedMethodInfo info PowerProfileMonitor) => IsLabel t (MethodProxy info PowerProfileMonitor) Source # 
Instance details

Defined in GI.Gio.Interfaces.PowerProfileMonitor

(info ~ ResolvePowerProfileMonitorMethod t PowerProfileMonitor, OverloadedMethod info PowerProfileMonitor p) => IsLabel t (PowerProfileMonitor -> p) Source # 
Instance details

Defined in GI.Gio.Interfaces.PowerProfileMonitor

IsGValue (Maybe PowerProfileMonitor) Source #

Convert PowerProfileMonitor to and from GValue. See toGValue and fromGValue.

Instance details

Defined in GI.Gio.Interfaces.PowerProfileMonitor

type AttributeList PowerProfileMonitor Source # 
Instance details

Defined in GI.Gio.Interfaces.PowerProfileMonitor

type ParentTypes PowerProfileMonitor Source # 
Instance details

Defined in GI.Gio.Interfaces.PowerProfileMonitor

type SignalList PowerProfileMonitor Source # 
Instance details

Defined in GI.Gio.Interfaces.PowerProfileMonitor

class (GObject o, IsDescendantOf PowerProfileMonitor o) => IsPowerProfileMonitor o Source #

Type class for types which can be safely cast to PowerProfileMonitor, for instance with toPowerProfileMonitor.

Instances

Instances details
(GObject o, IsDescendantOf PowerProfileMonitor o) => IsPowerProfileMonitor o Source # 
Instance details

Defined in GI.Gio.Interfaces.PowerProfileMonitor

toPowerProfileMonitor :: (MonadIO m, IsPowerProfileMonitor o) => o -> m PowerProfileMonitor Source #

Cast to PowerProfileMonitor, for types for which this is known to be safe. For general casts, use castTo.

Methods

type family ResolvePowerProfileMonitorMethod (t :: Symbol) o where ... Source #

Equations

ResolvePowerProfileMonitorMethod "bindProperty" o = ObjectBindPropertyMethodInfo 
ResolvePowerProfileMonitorMethod "bindPropertyFull" o = ObjectBindPropertyFullMethodInfo 
ResolvePowerProfileMonitorMethod "forceFloating" o = ObjectForceFloatingMethodInfo 
ResolvePowerProfileMonitorMethod "freezeNotify" o = ObjectFreezeNotifyMethodInfo 
ResolvePowerProfileMonitorMethod "getv" o = ObjectGetvMethodInfo 
ResolvePowerProfileMonitorMethod "init" o = InitableInitMethodInfo 
ResolvePowerProfileMonitorMethod "isFloating" o = ObjectIsFloatingMethodInfo 
ResolvePowerProfileMonitorMethod "notify" o = ObjectNotifyMethodInfo 
ResolvePowerProfileMonitorMethod "notifyByPspec" o = ObjectNotifyByPspecMethodInfo 
ResolvePowerProfileMonitorMethod "ref" o = ObjectRefMethodInfo 
ResolvePowerProfileMonitorMethod "refSink" o = ObjectRefSinkMethodInfo 
ResolvePowerProfileMonitorMethod "runDispose" o = ObjectRunDisposeMethodInfo 
ResolvePowerProfileMonitorMethod "stealData" o = ObjectStealDataMethodInfo 
ResolvePowerProfileMonitorMethod "stealQdata" o = ObjectStealQdataMethodInfo 
ResolvePowerProfileMonitorMethod "thawNotify" o = ObjectThawNotifyMethodInfo 
ResolvePowerProfileMonitorMethod "unref" o = ObjectUnrefMethodInfo 
ResolvePowerProfileMonitorMethod "watchClosure" o = ObjectWatchClosureMethodInfo 
ResolvePowerProfileMonitorMethod "getData" o = ObjectGetDataMethodInfo 
ResolvePowerProfileMonitorMethod "getPowerSaverEnabled" o = PowerProfileMonitorGetPowerSaverEnabledMethodInfo 
ResolvePowerProfileMonitorMethod "getProperty" o = ObjectGetPropertyMethodInfo 
ResolvePowerProfileMonitorMethod "getQdata" o = ObjectGetQdataMethodInfo 
ResolvePowerProfileMonitorMethod "setData" o = ObjectSetDataMethodInfo 
ResolvePowerProfileMonitorMethod "setDataFull" o = ObjectSetDataFullMethodInfo 
ResolvePowerProfileMonitorMethod "setProperty" o = ObjectSetPropertyMethodInfo 
ResolvePowerProfileMonitorMethod l o = MethodResolutionFailed l o :: Type 

dupDefault

powerProfileMonitorDupDefault Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> m PowerProfileMonitor

Returns: a new reference to the default PowerProfileMonitor

Gets a reference to the default PowerProfileMonitor for the system.

Since: 2.70

getPowerSaverEnabled

powerProfileMonitorGetPowerSaverEnabled Source #

Arguments

:: (HasCallStack, MonadIO m, IsPowerProfileMonitor a) 
=> a

monitor: a PowerProfileMonitor

-> m Bool

Returns: Whether the system is in “Power Saver” mode.

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

You are expected to listen to the PowerProfileMonitor::notifypowerSaverEnabled signal to know when the profile has changed.

Since: 2.70

Properties

powerSaverEnabled

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

Since: 2.70

data PowerProfileMonitorPowerSaverEnabledPropertyInfo Source #

Instances

Instances details
AttrInfo PowerProfileMonitorPowerSaverEnabledPropertyInfo Source # 
Instance details

Defined in GI.Gio.Interfaces.PowerProfileMonitor

Associated Types

type AttrAllowedOps PowerProfileMonitorPowerSaverEnabledPropertyInfo 
Instance details

Defined in GI.Gio.Interfaces.PowerProfileMonitor

type AttrBaseTypeConstraint PowerProfileMonitorPowerSaverEnabledPropertyInfo 
Instance details

Defined in GI.Gio.Interfaces.PowerProfileMonitor

type AttrGetType PowerProfileMonitorPowerSaverEnabledPropertyInfo 
Instance details

Defined in GI.Gio.Interfaces.PowerProfileMonitor

type AttrSetTypeConstraint PowerProfileMonitorPowerSaverEnabledPropertyInfo 
Instance details

Defined in GI.Gio.Interfaces.PowerProfileMonitor

type AttrTransferTypeConstraint PowerProfileMonitorPowerSaverEnabledPropertyInfo 
Instance details

Defined in GI.Gio.Interfaces.PowerProfileMonitor

type AttrTransferType PowerProfileMonitorPowerSaverEnabledPropertyInfo 
Instance details

Defined in GI.Gio.Interfaces.PowerProfileMonitor

type AttrLabel PowerProfileMonitorPowerSaverEnabledPropertyInfo 
Instance details

Defined in GI.Gio.Interfaces.PowerProfileMonitor

type AttrOrigin PowerProfileMonitorPowerSaverEnabledPropertyInfo 
Instance details

Defined in GI.Gio.Interfaces.PowerProfileMonitor

type AttrAllowedOps PowerProfileMonitorPowerSaverEnabledPropertyInfo Source # 
Instance details

Defined in GI.Gio.Interfaces.PowerProfileMonitor

type AttrBaseTypeConstraint PowerProfileMonitorPowerSaverEnabledPropertyInfo Source # 
Instance details

Defined in GI.Gio.Interfaces.PowerProfileMonitor

type AttrGetType PowerProfileMonitorPowerSaverEnabledPropertyInfo Source # 
Instance details

Defined in GI.Gio.Interfaces.PowerProfileMonitor

type AttrLabel PowerProfileMonitorPowerSaverEnabledPropertyInfo Source # 
Instance details

Defined in GI.Gio.Interfaces.PowerProfileMonitor

type AttrOrigin PowerProfileMonitorPowerSaverEnabledPropertyInfo Source # 
Instance details

Defined in GI.Gio.Interfaces.PowerProfileMonitor

type AttrSetTypeConstraint PowerProfileMonitorPowerSaverEnabledPropertyInfo Source # 
Instance details

Defined in GI.Gio.Interfaces.PowerProfileMonitor

type AttrTransferType PowerProfileMonitorPowerSaverEnabledPropertyInfo Source # 
Instance details

Defined in GI.Gio.Interfaces.PowerProfileMonitor

type AttrTransferTypeConstraint PowerProfileMonitorPowerSaverEnabledPropertyInfo Source # 
Instance details

Defined in GI.Gio.Interfaces.PowerProfileMonitor

getPowerProfileMonitorPowerSaverEnabled :: (MonadIO m, IsPowerProfileMonitor o) => o -> m Bool Source #

Get the value of the “power-saver-enabled” property. When overloading is enabled, this is equivalent to

get powerProfileMonitor #powerSaverEnabled