## ShellWindowTracker ShellWindowTracker — Associate windows with applications |

## Synopsis

    struct              ShellWindowTrackerClass;
    ShellWindowTracker * shell_window_tracker_get_default   (void);
    ShellApp *          shell_window_tracker_get_window_app (ShellWindowTracker *tracker,
                                                             MetaWindow *metawin);
    ShellApp *          shell_window_tracker_get_app_from_pid
                                                            (ShellWindowTracker *tracker,
                                                             int pid);
    GSList *            shell_window_tracker_get_startup_sequences
                                                            (ShellWindowTracker *tracker);
    const char *        shell_startup_sequence_get_id       (ShellStartupSequence *sequence);
    ShellApp *          shell_startup_sequence_get_app      (ShellStartupSequence *sequence);
    const char *        shell_startup_sequence_get_name     (ShellStartupSequence *sequence);
    gboolean            shell_startup_sequence_get_completed
                                                            (ShellStartupSequence *sequence);
    int                 shell_startup_sequence_get_workspace
                                                            (ShellStartupSequence *sequence);
    ClutterActor *      shell_startup_sequence_create_icon  (ShellStartupSequence *sequence,
                                                             guint size);
                        ShellWindowTracker;
                        ShellStartupSequence;

## Object Hierarchy

      GObject
       +----ShellWindowTracker

      GBoxed
       +----ShellStartupSequence

## Properties

      "focus-app"                ShellApp*             : Read

## Signals

      "startup-sequence-changed"                       : Run Last
      "tracked-windows-changed"                        : Run Last

## Description

Maintains a mapping from windows to applications (.desktop file ids). It currently implements this with some heuristics on the WM_CLASS X11 property (and some static override regexps); in the future, we want to have it also track through startup-notification.

## Details

### struct ShellWindowTrackerClass

    struct ShellWindowTrackerClass {
      GObjectClass parent_class;
    };

### shell_window_tracker_get_default ()

    ShellWindowTracker * shell_window_tracker_get_default   (void);

Returns : | The global ShellWindowTracker instance. [transfer none]

### shell_window_tracker_get_window_app ()

    ShellApp *          shell_window_tracker_get_window_app (ShellWindowTracker *tracker,
                                                             MetaWindow *metawin);

`tracker` : | An app monitor instance
`metawin` : | A MetaWindow
Returns : | Application associated with window. [transfer full]

### shell_window_tracker_get_app_from_pid ()

    ShellApp *          shell_window_tracker_get_app_from_pid
                                                            (ShellWindowTracker *tracker,
                                                             int pid);

Look up the application corresponding to a process.

`tracker` : | A ShellAppSystem
`pid` : | A Unix process identifier
Returns : | A ShellApp, or `NULL` if none. [transfer none]

### shell_window_tracker_get_startup_sequences ()

    GSList *            shell_window_tracker_get_startup_sequences
                                                            (ShellWindowTracker *tracker);

Returns : | Currently active startup sequences. [transfer none][element-type ShellStartupSequence]

### shell_startup_sequence_get_id ()

    const char *        shell_startup_sequence_get_id       (ShellStartupSequence *sequence);

### shell_startup_sequence_get_app ()

    ShellApp *          shell_startup_sequence_get_app      (ShellStartupSequence *sequence);

`sequence` : | A ShellStartupSequence
Returns : | The application being launched, or `NULL` if unknown. [transfer none]

### shell_startup_sequence_get_name ()

    const char *        shell_startup_sequence_get_name     (ShellStartupSequence *sequence);

### shell_startup_sequence_get_completed ()

    gboolean            shell_startup_sequence_get_completed
                                                            (ShellStartupSequence *sequence);

### shell_startup_sequence_get_workspace ()

    int                 shell_startup_sequence_get_workspace
                                                            (ShellStartupSequence *sequence);

### shell_startup_sequence_create_icon ()

    ClutterActor *      shell_startup_sequence_create_icon  (ShellStartupSequence *sequence,
                                                             guint size);

`size` : | Size in pixels of icon
Returns : | A new ClutterTexture containing an icon for the sequence. [transfer none]

### ShellWindowTracker

    typedef struct _ShellWindowTracker ShellWindowTracker;

### ShellStartupSequence

    typedef struct _ShellStartupSequence ShellStartupSequence;

## Property Details

### The `"focus-app"` property

      "focus-app"                ShellApp*             : Read

Focused application.

## Signal Details

### The `"startup-sequence-changed"` signal

    void                user_function                      (ShellWindowTracker   *shellwindowtracker,
                                                            ShellStartupSequence *arg1,
                                                            gpointer              user_data)               : Run Last

### The `"tracked-windows-changed"` signal

    void                user_function                      (ShellWindowTracker *shellwindowtracker,
                                                            gpointer            user_data)               : Run Last