### Namespace

# Meta – 12

The Mutter display server, window manager and compositor library

Version | 12
Authors | Mutter Development Team
License | GPL-2.0-or-later
Website | https://blogs.gnome.org/shell-dev/
Source | https://gitlab.gnome.org/GNOME/mutter/

#### Build

C headers | ``
pkg-config files | ``

#### Dependencies

GObject—2.0 | The base type system library
| Browse documentation

#### Related libraries

Gdk | The GTK windowing system abstraction
| Browse documentation
Gtk | The GTK toolkit
| Browse documentation

#### Additional documentation

- Classes Hierarchy

#### Classes

Backend |
Background | This class handles tracking and painting the root window background. By integrating with `MetaWindowGroup` we can avoid painting parts of the background that are obscured by other windows.
BackgroundActor | This class handles tracking and painting the root window background. By integrating with `MetaWindowGroup` we can avoid painting parts of the background that are obscured by other windows.
BackgroundContent | This class handles tracking and painting the root window background. By integrating with `MetaWindowGroup` we can avoid painting parts of the background that are obscured by other windows.
BackgroundGroup |
BackgroundImage | `MetaBackgroundImage` is an object that represents a loaded or loading background image.
BackgroundImageCache | `MetaBackgroundImageCache` caches loading of textures for backgrounds; there’s actually nothing background specific about it, other than it is tuned to work well for large images as typically are used for backgrounds.
Barrier |
Compositor |
Context |
CursorTracker |
Display |
Dnd |
IdleMonitor |
Laters |
LaunchContext |
MonitorManager |
Plugin |
RemoteAccessController |
RemoteAccessHandle |
Selection |
SelectionSource |
SelectionSourceMemory |
ShadowFactory | `MetaShadowFactory` is used to create window shadows. It caches shadows internally so that multiple shadows created for the same shape with the same radius will share the same MetaShadow.
ShapedTexture |
SoundPlayer |
Stage |
StartupNotification |
StartupSequence |
WaylandClient |
Window |
WindowActor |
WindowGroup |
Workspace |
WorkspaceManager |
X11Display |

#### Interfaces

CloseDialog |
InhibitShortcutsDialog |

#### Structs

BarrierEvent |
ButtonLayout |
Edge |
Frame |
FrameBorder |
FrameBorders |
Group |
KeyBinding |
PluginInfo |
Rectangle |
Settings |
Shadow | `MetaShadow` holds a shadow texture along with information about how to apply that texture to draw a window texture. (E.g., it knows how big the unscaled borders are on each side of the shadow texture.)
ShadowParams | The `MetaShadowParams` structure holds information about how to draw a particular style of shadow.
Strut |
WindowShape | `MetaWindowShape` represents a 9-sliced region with borders on all sides that are unscaled, and a constant central region that is scaled. For example, the regions representing two windows that are rounded rectangles, with the same corner radius but different sizes, have the same MetaWindowShape. `MetaWindowShape` is designed to be used as part of a hash table key, so has efficient hash and equal functions.

#### Enumerations

ButtonFunction | Function a window button can have. Note, you can’t add stuff here without extending the theme format to draw a new function and breaking all existing themes.
CloseDialogResponse |
CompEffect | Indicates the appropriate effect to show the user for `meta_compositor_show_window()` and `meta_compositor_hide_window()`
CompositorType |
Cursor |
DisplayCorner |
DisplayDirection |
EdgeType |
ExitCode |
FrameType |
GrabOp |
Gravity |
InhibitShortcutsDialogResponse |
KeyBindingAction |
LaterType |
LocaleDirection |
MonitorSwitchConfigType |
MotionDirection |
PadActionType |
Preference |
SelectionType |
ShadowMode |
Side |
SizeChange |
StackLayer | Layers a window can be in. These MUST be in the order of stacking.
TabList |
TabShowType |
WindowClientType |
WindowMenuType | Menu the compositor should display for a given window.
WindowType |

#### Bitfields

BackendCapabilities |
BarrierDirection |
DebugPaintFlag |
DebugTopic |
Direction |
FrameFlags |
KeyBindingFlags |
KeyboardA11yFlags | Keyboard accessibility features.
MaximizeFlags |
VirtualModifier |

#### Callbacks

IdleMonitorWatchFunc |
KeyHandlerFunc |
PrefsChangedFunc |
WindowForeachFunc |
X11DisplayEventFunc |

#### Functions

accelerator_name | Convert an accelerator keyval and modifier mask into a string parsable by `meta_parse_accelerator`.
add_clutter_debug_flags |
add_debug_paint_flag |
add_verbose_topic | Ensure log messages for the given topic `topic` will be printed.
bug |
clutter_init |
create_context | Create a context.
disable_unredirect_for_display | Disables unredirection, can be useful in situations where having unredirected windows is undesirable like when recording a video.
enable_unredirect_for_display | Enables unredirection which reduces the overhead for apps like games.
exit |
external_binding_name_for_action |
fatal |
focus_stage_window |
g_utf8_strndup |
get_clutter_debug_flags |
get_debug_paint_flags |
get_feedback_group_for_display |
get_locale_direction |
get_stage_for_display |
get_top_window_group_for_display |
get_window_actors |
get_window_group_for_display |
is_restart | Returns `TRUE` if this instance of Mutter comes from Mutter restarting itself (for example to enable/disable stereo.) See meta_restart(). If this is the case, any startup visuals or animations should be suppressed.
is_topic_enabled |
is_verbose |
is_wayland_compositor |
keybindings_set_custom_handler | Allows users to register a custom handler for a builtin key binding.
log |
pop_no_msg_prefix |
prefs_add_listener |
prefs_bell_is_audible |
prefs_change_workspace_name |
prefs_get_action_double_click_titlebar |
prefs_get_action_middle_click_titlebar |
prefs_get_action_right_click_titlebar |
prefs_get_attach_modal_dialogs |
prefs_get_auto_maximize |
prefs_get_auto_raise |
prefs_get_auto_raise_delay |
prefs_get_button_layout |
prefs_get_center_new_windows |
prefs_get_check_alive_timeout |
prefs_get_compositing_manager |
prefs_get_cursor_size |
prefs_get_cursor_theme |
prefs_get_disable_workarounds |
prefs_get_drag_threshold |
prefs_get_draggable_border_width |
prefs_get_dynamic_workspaces |
prefs_get_edge_tiling |
prefs_get_focus_change_on_pointer_rest |
prefs_get_focus_mode |
prefs_get_focus_new_windows |
prefs_get_force_fullscreen |
prefs_get_gnome_accessibility |
prefs_get_gnome_animations |
prefs_get_keybinding_action |
prefs_get_keybinding_label |
prefs_get_mouse_button_menu |
prefs_get_mouse_button_mods |
prefs_get_mouse_button_resize |
prefs_get_num_workspaces |
prefs_get_raise_on_click |
prefs_get_show_fallback_app_menu |
prefs_get_titlebar_font |
prefs_get_visual_bell |
prefs_get_visual_bell_type |
prefs_get_workspace_name |
prefs_get_workspaces_only_on_primary |
prefs_remove_listener |
prefs_set_force_fullscreen |
prefs_set_num_workspaces |
prefs_set_show_fallback_app_menu |
push_no_msg_prefix |
rect |
remove_clutter_debug_flags |
remove_debug_paint_flag |
remove_verbose_topic | Stop printing log messages for the given topic `topic`. Note that this method does not stack with meta_add_verbose_topic(); i.e. if two calls to `meta_add_verbose_topic()` for the same topic are made, one call to `meta_remove_verbose_topic()` will remove it.
restart | Starts the process of restarting the compositor. Note that Mutter’s involvement here is to make the restart visually smooth for the user - it cannot itself safely reexec a program that embeds libmuttter. So in order for this to work, the compositor must handle two signals - MetaDisplay::show-restart-message, to display the message passed here on the Clutter stage, and ::restart to actually reexec the compositor.
topic_to_string |
unsigned_long_equal |
unsigned_long_hash |
warning |
x11_error_trap_pop |
x11_error_trap_pop_with_return |
x11_error_trap_push |

#### Function Macros

PLUGIN_DECLARE |
PLUGIN_DECLARE_WITH_CODE |
RECTANGLE_INIT |
topic |
verbose |
XFree |

#### Constants

CURRENT_TIME |
DEFAULT_ICON_NAME |
ICON_HEIGHT |
ICON_WIDTH |
MINI_ICON_HEIGHT |
MINI_ICON_WIDTH |
PRIORITY_BEFORE_REDRAW |
PRIORITY_PREFS_NOTIFY |
PRIORITY_REDRAW |
PRIORITY_RESIZE |
VIRTUAL_CORE_KEYBOARD_ID |
VIRTUAL_CORE_POINTER_ID |