## MetaScreen MetaScreen — Mutter X screen handler |

## Functions

int | meta_screen_get_screen_number ()
MetaDisplay * | meta_screen_get_display ()
Window | meta_screen_get_xroot ()
void | meta_screen_get_size ()
void | meta_screen_set_cm_selection ()
GSList * | meta_screen_get_startup_sequences ()
GList * | meta_screen_get_workspaces ()
int | meta_screen_get_n_workspaces ()
MetaWorkspace * | meta_screen_get_workspace_by_index ()
void | meta_screen_remove_workspace ()
MetaWorkspace * | meta_screen_append_new_workspace ()
int | meta_screen_get_active_workspace_index ()
MetaWorkspace * | meta_screen_get_active_workspace ()
int | meta_screen_get_n_monitors ()
int | meta_screen_get_primary_monitor ()
int | meta_screen_get_current_monitor ()
void | meta_screen_get_monitor_geometry ()
int | meta_screen_get_monitor_index_for_rect ()
void | meta_screen_focus_default_window ()
void | meta_screen_override_workspace_layout ()

## Properties

gint | n-workspaces | Read

## Signals

void | in-fullscreen-changed | Run Last
void | monitors-changed | Run Last
void | restacked | Run Last
void | startup-sequence-changed | Run Last
void | window-entered-monitor | Run Last
void | window-left-monitor | Run Last
void | workareas-changed | Run Last
void | workspace-added | Run Last
void | workspace-removed | Run Last
void | workspace-switched | Run Last

## Types and Values

| MetaScreen
| MetaScreenClass
enum | MetaScreenCorner

## Object Hierarchy

        GObject
        ╰── MetaScreen

## Description

## Functions

### meta_screen_get_screen_number ()

    int
    meta_screen_get_screen_number (MetaScreen *screen);

### meta_screen_get_display ()

    MetaDisplay *
    meta_screen_get_display (MetaScreen *screen);

Retrieve the display associated with screen.

#### Parameters

screen | A MetaScreen |

#### Returns

Display.

[transfer none]

### meta_screen_get_xroot ()

    Window
    meta_screen_get_xroot (MetaScreen *screen);

#### Parameters

screen | A MetaScreen |

### meta_screen_get_size ()

    void
    meta_screen_get_size (MetaScreen *screen,
                          int *width,
                          int *height);

Retrieve the size of the screen.

#### Parameters

screen | A MetaScreen |
width | The width of the screen. | [out]
height | The height of the screen. | [out]

### meta_screen_set_cm_selection ()

    void
    meta_screen_set_cm_selection (MetaScreen *screen);

### meta_screen_get_startup_sequences ()

    GSList *
    meta_screen_get_startup_sequences (MetaScreen *screen);

#### Returns

Currently active SnStartupSequence items.

[transfer none]

### meta_screen_get_workspaces ()

    GList *
    meta_screen_get_workspaces (MetaScreen *screen);

#### Parameters

screen | a MetaScreen |

#### Returns

The workspaces for `screen` .

[transfer none][element-type Meta.Workspace]

### meta_screen_get_n_workspaces ()

    int
    meta_screen_get_n_workspaces (MetaScreen *screen);

### meta_screen_get_workspace_by_index ()

    MetaWorkspace *
    meta_screen_get_workspace_by_index (MetaScreen *screen,
                                        int index);

Gets the workspace object for one of a screen's workspaces given the workspace index. It's valid to call this function with an out-of-range index and it will robustly return `NULL`.

#### Parameters

screen | a MetaScreen |
index | index of one of the screen's workspaces |

#### Returns

the workspace object with specified index, or `NULL` if the index is out of range.

[transfer none]

### meta_screen_remove_workspace ()

    void
    meta_screen_remove_workspace (MetaScreen *screen,
                                  MetaWorkspace *workspace,
                                  guint32 timestamp);

### meta_screen_append_new_workspace ()

    MetaWorkspace *
    meta_screen_append_new_workspace (MetaScreen *screen,
                                      gboolean activate,
                                      guint32 timestamp);

Append a new workspace to the screen and (optionally) switch to that screen.

#### Parameters

screen | a MetaScreen |
activate | `TRUE` if the workspace should be switched to after creation |
timestamp | if switching to a new workspace, timestamp to be used when focusing a window on the new workspace. (Doesn't hurt to pass a valid timestamp when available even if not switching workspaces.) |

#### Returns

the newly appended workspace.

[transfer none]

### meta_screen_get_active_workspace_index ()

    int
    meta_screen_get_active_workspace_index
                                   (MetaScreen *screen);

### meta_screen_get_active_workspace ()

    MetaWorkspace *
    meta_screen_get_active_workspace (MetaScreen *screen);

#### Parameters

screen | A MetaScreen |

#### Returns

The current workspace.

[transfer none]

### meta_screen_get_n_monitors ()

    int
    meta_screen_get_n_monitors (MetaScreen *screen);

Gets the number of monitors that are joined together to form `screen` .

#### Parameters

screen | a MetaScreen |

#### Returns

the number of monitors

### meta_screen_get_primary_monitor ()

    int
    meta_screen_get_primary_monitor (MetaScreen *screen);

Gets the index of the primary monitor on this `screen` .

#### Parameters

screen | a MetaScreen |

#### Returns

a monitor index

### meta_screen_get_current_monitor ()

    int
    meta_screen_get_current_monitor (MetaScreen *screen);

Gets the index of the monitor that currently has the mouse pointer.

#### Parameters

screen | a MetaScreen |

#### Returns

a monitor index

### meta_screen_get_monitor_geometry ()

    void
    meta_screen_get_monitor_geometry (MetaScreen *screen,
                                      int monitor,
                                      MetaRectangle *geometry);

Stores the location and size of the indicated monitor in `geometry` .

#### Parameters

screen | a MetaScreen |
monitor | the monitor number |
geometry | location to store the monitor geometry. | [out]

### meta_screen_get_monitor_index_for_rect ()

    int
    meta_screen_get_monitor_index_for_rect
                                   (MetaScreen *screen,
                                    MetaRectangle *rect);

### meta_screen_focus_default_window ()

    void
    meta_screen_focus_default_window (MetaScreen *screen,
                                      guint32 timestamp);

### meta_screen_override_workspace_layout ()

    void
    meta_screen_override_workspace_layout (MetaScreen *screen,
                                           MetaScreenCorner starting_corner,
                                           gboolean vertical_layout,
                                           int n_rows,
                                           int n_columns);

Explicitly set the layout of workspaces. Once this has been called, the contents of the _NET_DESKTOP_LAYOUT property on the root window are completely ignored.

#### Parameters

screen | a MetaScreen |
starting_corner | the corner at which the first workspace is found |
vertical_layout | if `TRUE` the workspaces are laid out in columns rather than rows |
n_rows | number of rows of workspaces, or -1 to determine the number of rows from `n_columns` and the total number of workspaces |
n_columns | number of columns of workspaces, or -1 to determine the number of columns from `n_rows` and the total number of workspaces |

## Types and Values

### MetaScreen

    typedef struct _MetaScreen MetaScreen;

### MetaScreenClass

    typedef struct _MetaScreenClass MetaScreenClass;

### enum MetaScreenCorner

#### Members

META_SCREEN_TOPLEFT | top-left corner |
META_SCREEN_TOPRIGHT | top-right corner |
META_SCREEN_BOTTOMLEFT | bottom-left corner |
META_SCREEN_BOTTOMRIGHT | bottom-right corner |

## Property Details

### The `“n-workspaces”` property

      “n-workspaces”             gint

Number of workspaces.

Flags: Read

Allowed values: >= 1

Default value: 1

## Signal Details

### The `“in-fullscreen-changed”` signal

    void
    user_function (MetaScreen *metascreen,
                   gpointer    user_data)

Flags: Run Last

### The `“monitors-changed”` signal

    void
    user_function (MetaScreen *metascreen,
                   gpointer    user_data)

Flags: Run Last

### The `“restacked”` signal

    void
    user_function (MetaScreen *metascreen,
                   gpointer    user_data)

Flags: Run Last

### The `“startup-sequence-changed”` signal

    void
    user_function (MetaScreen *metascreen,
                   gpointer    arg1,
                   gpointer    user_data)

Flags: Run Last

### The `“window-entered-monitor”` signal

    void
    user_function (MetaScreen *metascreen,
                   gint        arg1,
                   MetaWindow *arg2,
                   gpointer    user_data)

Flags: Run Last

### The `“window-left-monitor”` signal

    void
    user_function (MetaScreen *metascreen,
                   gint        arg1,
                   MetaWindow *arg2,
                   gpointer    user_data)

Flags: Run Last

### The `“workareas-changed”` signal

    void
    user_function (MetaScreen *metascreen,
                   gpointer    user_data)

Flags: Run Last

### The `“workspace-added”` signal

    void
    user_function (MetaScreen *metascreen,
                   gint        arg1,
                   gpointer    user_data)

Flags: Run Last

### The `“workspace-removed”` signal

    void
    user_function (MetaScreen *metascreen,
                   gint        arg1,
                   gpointer    user_data)

Flags: Run Last

### The `“workspace-switched”` signal

    void
    user_function (MetaScreen         *metascreen,
                   gint                arg1,
                   gint                arg2,
                   MetaMotionDirection arg3,
                   gpointer            user_data)

Flags: Run Last