## shell-app-usage shell-app-usage — Track application usage/state data |

## Functions

ShellAppUsage * | shell_app_usage_get_default ()
GSList * | shell_app_usage_get_most_used ()
int | shell_app_usage_compare ()

## Types and Values

#define | SHELL_TYPE_APP_USAGE
| ShellAppUsage

## Object Hierarchy

        GObject
        ╰── ShellAppUsage

## Description

This class maintains some usage and state statistics for applications by keeping track of the approximate time an application's windows are focused, as well as the last workspace it was seen on. This time tracking is implemented by watching for focus notifications, and computing a time delta between them. Also we watch the GNOME Session "StatusChanged" signal which by default is emitted after 5 minutes to signify idle.

## Functions

### shell_app_usage_get_default ()

    ShellAppUsage *
    shell_app_usage_get_default (void);

#### Returns

The global ShellAppUsage instance.

[transfer none]

### shell_app_usage_get_most_used ()

    GSList *
    shell_app_usage_get_most_used (ShellAppUsage *usage,
                                   const char *context);

Get a list of most popular applications for a given context.

#### Parameters

usage | the usage instance to request |
context | Activity identifier |

#### Returns

List of applications.

[element-type ShellApp][transfer full]

### shell_app_usage_compare ()

    int
    shell_app_usage_compare (ShellAppUsage *self,
                             const char *context,
                             const char *id_a,
                             const char *id_b);

Compare `id_a` and `id_b` based on frequency of use.

#### Parameters

self | the usage instance to request |
context | Activity identifier |
id_a | ID of first app |
id_b | ID of second app |

#### Returns

-1 if `id_a` ranks higher than `id_b` , 1 if `id_b` ranks higher than `id_a` , and 0 if both rank equally.

## Types and Values

### SHELL_TYPE_APP_USAGE

    #define SHELL_TYPE_APP_USAGE              (shell_app_usage_get_type ())

### ShellAppUsage

    typedef struct _ShellAppUsage ShellAppUsage;