Controls in which GNOME Shell states an action (like keybindings and gestures) should be handled. block action allow action when in window mode, e.g. when the focus is in an application window allow action while the overview is active allow action when the screen is locked, e.g. when the screen shield is shown allow action in the unlock dialog allow action in the login screen allow action when a system modal dialog (e.g. authentication or session dialogs) is open allow action in looking glass allow action while a shell menu is open always allow action Object representing an application This object wraps a #GDesktopAppInfo, providing methods and signals primarily useful for running applications. Like shell_app_activate_full(), but using the default workspace and event timestamp. a #ShellApp This activates an action using 'org.freedesktop.Application' DBus interface. This function will fail if this #ShellApp doesn't have a valid #GDesktopAppInfo with a valid id. the #ShellApp the name of an action to activate the parameter to the activation Event timestamp, or 0 for current event timestamp Start on this workspace, or -1 for default a #GCancellable or %NULL A #GAsyncReadyCallback to call when the request is satisfied. User data to pass to @callback Finish the asynchronous operation started by shell_app_activate_action() and obtain its result. whether the operation was successful the #ShellApp Perform an appropriate default action for operating on this application, dependent on its current state. For example, if the application is not currently running, launch it. If it is running, activate the most recently used NORMAL window (or if that window has a transient, the most recently used transient for that window). a #ShellApp launch on this workspace, or -1 for default. Ignored if activating an existing window Event timestamp Bring all windows for the given app to the foreground, but ensure that @window is on top. If @window is %NULL, the window with the most recent user time for the app will be used. This function has no effect if @app is not currently running. a #ShellApp Window to be focused Event timestamp Returns %TRUE if the app supports opening a new window through shell_app_open_new_window() (ie, if calling that function will result in actually opening a new window and not something else, like presenting the most recently active one) a #ShellApp Compare one #ShellApp instance to another, in the following way: - Running applications sort before not-running applications. - If one of them has non-minimized windows and the other does not, the one with visible windows is first. - Finally, the application which the user interacted with most recently compares earlier. A #ShellApp Order two applications by name. -1, 0, or 1; suitable for use as a comparison function for e.g. g_slist_sort() One app The other app Look up the icon for this application, and create a #ClutterActor for it at the given size. A floating #ClutterActor The #GDesktopAppInfo for this app, or %NULL if backed by a window a #ShellApp Look up the icon for this application A #GIcon An unordered list of process identifiers associated with this application. a #ShellApp State of the application a #ShellApp Get the windows which are associated with this application. The returned list will be sorted first by whether they're on the active workspace, then by whether they're visible, and finally by the time the user last interacted with them. List of windows A window backed application is one which represents just an open window, i.e. there's no .desktop file association, so we don't know how to launch it again. Event timestamp, or 0 for current event timestamp Start on this workspace, or -1 for default the GPU to prefer launching on the #ShellApp the name of the action to launch (as obtained by g_desktop_app_info_list_actions()) Event timestamp, or 0 for current event timestamp Start on this workspace, or -1 for default Request that the application create a new window. a #ShellApp open on this workspace, or -1 for default Initiate an asynchronous request to quit this application. The application may interact with the user, and the user might cancel the quit request from the application UI. This operation may not be supported for all applications. %TRUE if a quit request is supported for this application A #ShellApp The #GDBusActionGroup associated with this ShellApp, if any. See the documentation of #GApplication and #GActionGroup for details. The #GDesktopAppInfo associated with this ShellApp, if any. Whether the application has marked itself as busy. The #GIcon representing this ShellApp The id of this application (a desktop filename, or a special string like window:0xabcd1234) The high-level state of the application, effectively whether it's running or not, or transitioning between those states. The global #ShellAppSystem singleton Wrapper around g_desktop_app_info_search() that replaces results that don't validate as UTF-8 with the empty string. a list of strvs. Free each item with g_strfreev() and free the outer list with g_free(). the search string to use Returns all installed apps, as a list of #GAppInfo a list of #GAppInfo describing all known applications. This memory is owned by the #ShellAppSystem and should not be freed. the #ShellAppSystem Returns the set of applications which currently have at least one open window. The returned list will be sorted by shell_app_compare(). Active applications A #ShellAppSystem Find a #ShellApp corresponding to an id. The #ShellApp for id, or %NULL if none Find a valid application whose .desktop file, without the extension and properly canonicalized, matches @wmclass. A #ShellApp for @wmclass a #ShellAppSystem A WM_CLASS value Find a valid application corresponding to a given heuristically determined application identifier string, or %NULL if none. A #ShellApp for @name a #ShellAppSystem Probable application identifier Find a valid application whose .desktop file contains a StartupWMClass entry matching @wmclass. A #ShellApp for @wmclass a #ShellAppSystem A WM_CLASS value Track application usage/state data 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. The global #ShellAppUsage instance Compare @id_a and @id_b based on frequency of use. -1 if @id_a ranks higher than @id_b, 1 if @id_b ranks higher than @id_a, and 0 if both rank equally. the usage instance to request ID of first app ID of second app List of applications the usage instance to request Blur effect for actors #ShellBlurEffect is a blur implementation based on Clutter. It also has an optional brightness property. # Modes #ShellBlurEffect can work in @SHELL_BLUR_MODE_BACKGROUND and @SHELL_BLUR_MODE_ACTOR modes. The actor mode blurs the actor itself, and all of its children. The background mode blurs the pixels beneath the actor, but not the actor itself. @SHELL_BLUR_MODE_BACKGROUND can be computationally expensive, since the contents beneath the actor cannot be cached, so beware of the performance implications of using this blur mode. The mode of blurring of the effect. blur the actor contents, and its children blur what's beneath the actor An offscreen effect using GLSL A #ShellGLSLEffect is a #ClutterOffscreenEffect that allows running custom GLSL to the vertex and fragment stages of the graphic pipeline. Adds a GLSL snippet to the pipeline used for drawing the effect texture. See #CoglSnippet for details. This is only valid inside the a call to the build_pipeline() virtual function. a #ShellGLSLEffect where to insert the code GLSL declarations GLSL code whether Cogl code should be replaced by the custom shader the location of the uniform named @name, that can be passed to shell_glsl_effect_set_uniform_float(). a #ShellGLSLEffect the uniform name a #ShellGLSLEffect the uniform location (as returned by shell_glsl_effect_get_uniform_location()) the number of components in the uniform (eg. 3 for a vec3) the total number of floats in @value the array of floats to set @uniform a #ShellGLSLEffect the uniform location (as returned by shell_glsl_effect_get_uniform_location()) Whether to transpose the matrix the number of components in the uniform (eg. 3 for a vec3) the total number of floats in @value the array of floats to set @uniform Gets the singleton global object that represents the desktop. the singleton global object Marks that we are currently doing work. This is used to to track whether we are busy for the purposes of shell_global_run_at_leisure(). A count is kept and shell_global_end_work() must be called exactly as many times as shell_global_begin_work(). the #ShellGlobal Create a #GAppLaunchContext set up with the correct timestamp, and targeted to activate on @workspace. A new #GAppLaunchContext A #ShellGlobal the timestamp for the launch (or 0 for current time) a workspace index, or -1 to indicate no specific one Marks the end of work that we started with shell_global_begin_work(). If no other work is ongoing and functions have been added with shell_global_run_at_leisure(), they will be run at the next opportunity. the #ShellGlobal Gets app system. the app system Gets app usage. the app usage The #MetaBackend The #MetaCompositor The #MetaContext the current X server time from the current Clutter, Gdk, or X event. If called from outside an event handler, this may return %Clutter.CURRENT_TIME (aka 0), or it may return a slightly out-of-date timestamp. A #ShellGlobal The default #MetaDisplay The default #StFocusManager The shell maintains "persistent" state which will persist after logout or reboot. The value of a serialized property, or %NULL if none stored a #ShellGlobal Expected data type Name of the property Gets the pointer coordinates and current modifier key state. the #ShellGlobal the X coordinate of the pointer, in global coordinates the Y coordinate of the pointer, in global coordinates the current set of modifier keys that are pressed down The shell maintains "runtime" state which does not persist across logout or reboot. The value of a serialized property, or %NULL if none stored a #ShellGlobal Expected data type Name of the property Get the global GSettings instance. The GSettings object A #ShellGlobal The default #ClutterStage Get the global #GDBusProxy instance for the switcheroo-control daemon. the #GDBusProxy for the daemon, or %NULL on error. A #ShellGlobal Gets the list of #MetaWindowActor for the plugin's screen the list of windows The default #ShellWM Gets window tracker. the window tracker The default #MetaWorkspaceManager Show a system error notification. Use this function when a user-initiated action results in a non-fatal problem from causes that may not be under system control. For example, an application crash. a #ShellGlobal Error message Error details Restart the current process. Only intended for development purposes. A #ShellGlobal Schedules a function to be called the next time the shell is idle. Idle means here no animations, no redrawing, and no ongoing background work. Since there is currently no way to hook into the Clutter master clock and know when is running, the implementation here is somewhat approximation. Animations may be detected as terminating early if they can be drawn fast enough so that the event loop goes idle between frames. The intent of this function is for performance measurement runs where a number of actions should be run serially and each action is timed individually. Using this function for other purposes will interfere with the ability to use it for performance measurement so should be avoided. the #ShellGlobal function to call at leisure data to pass to @func function to call to free @user_data Change the value of serialized persistent state. a #ShellGlobal Name of the property A #GVariant, or %NULL to unset Change the value of serialized runtime state. a #ShellGlobal Name of the property A #GVariant, or %NULL to unset Sets the area of the stage that is responsive to mouse clicks when we don't have a modal or grab. the #ShellGlobal a list of #MtkRectangle describing the input region. A colorization effect where lightness is inverted but color is not. #ShellInvertLightnessEffect is a sub-class of #ClutterEffect that enhances the appearance of a clutter actor. Specifically it inverts the lightness of a #ClutterActor (e.g., darker colors become lighter, white becomes black, and white, black). Creates a new #ShellInvertLightnessEffect to be used with clutter_actor_add_effect() the newly created #ShellInvertLightnessEffect or %NULL. Use g_object_unref() when done. Create new internal prompt base new internal prompt Called by implementation when the prompt is cancelled. the internal prompt Called by the implementation when the prompt completes. There are various checks done. %TRUE is returned if the prompt actually should complete. whether the prompt completed the internal prompt Get the prompt password text actor the password actor the internal prompt Get the prompt password text actor the password actor the internal prompt Set the prompt password confirmation text actor the internal prompt the confirm password actor Set the prompt password text actor the internal prompt the password actor Whether the choice check box is visible or not. Text field for confirmation password Whether the password confirm entry is visible or not. Text field for password Whether the password entry is visible or not. Whether the warning label is visible or not. a #ShellMountOperation a #ShellMountOperation a #GArray a #ShellMountOperation The found plugin or %NULL Event recorder for performance measurement ShellPerfLog provides a way for different parts of the code to record information for subsequent analysis and interactive exploration. Events exist of a timestamp, an event ID, and arguments to the event. Emphasis is placed on storing recorded events in a compact fashion so log recording disturbs the execution of the program as little as possible, however events should not be recorded at too fine a granularity - an event that is recorded once per frame or once per user action is appropriate, an event that occurs many times per frame is not. Arguments are identified by a D-Bus style signature; at the moment only a limited number of event signatures are supported to simplify the code. Gets the global singleton performance log. This is initially disabled and must be explicitly enabled with shell_perf_log_set_enabled(). the global singleton performance log Adds a function that will be called before statistics are recorded. The function would typically compute one or more statistics values and call a function such as shell_perf_log_update_statistic_i() to update the value that will be recorded. a #ShellPerfLog function to call before recording statistics data to pass to @callback function to call when @user_data is no longer needed Calls all the update functions added with shell_perf_log_add_statistics_callback() and then records events for all statistics, followed by a perf.statisticsCollected event. a #ShellPerfLog Defines a performance event for later recording. a #ShellPerfLog name of the event. This should of the form '<namespace>.<specific eventf'>, for example 'clutter.stagePaintDone'. human readable description of the event. signature defining the arguments that event takes. This is a string of type characters, using the same characters as D-Bus or GVariant. Only a very limited number of signatures are supported: , '', 's', 'i', and 'x'. This mean respectively: no arguments, one string, one 32-bit integer, and one 64-bit integer. Defines a statistic. A statistic is a numeric value that is stored by the performance log and recorded periodically or when shell_perf_log_collect_statistics() is called explicitly. Code that defines a statistic should update it by calling the update function for the particular data type of the statistic, such as shell_perf_log_update_statistic_i(). This can be done at any time, but would normally done inside a function registered with shell_perf_log_add_statistics_callback(). These functions are called immediately before statistics are recorded. name of the statistic and of the corresponding event. This should follow the same guidelines as for shell_perf_log_define_event() human readable description of the statistic. The type of the data stored for statistic. Must currently be 'i' or 'x'. Dump the definition of currently defined events and statistics, formatted as JSON, to the specified output stream. The JSON output is an array, with each element being a dictionary of the form: { name: <name of event>, description: <description of string, statistic: true } (only for statistics) %TRUE if the dump succeeded. %FALSE if an IO error occurred a #ShellPerfLog output stream into which to write the event definitions Writes the performance event log, formatted as JSON, to the specified output stream. For performance reasons, the output stream passed in should generally be a buffered (or memory) output stream, since it will be written to in small pieces. The JSON output is an array with the elements of the array also being arrays, of the form '[' <time>, <event name> [, <event_arg>... ] ']'. %TRUE if the dump succeeded. %FALSE if an IO error occurred a #ShellPerfLog output stream into which to write the event log Records a performance event with no arguments. a #ShellPerfLog name of the event Records a performance event with one 32-bit integer argument. a #ShellPerfLog name of the event the argument Records a performance event with one string argument. a #ShellPerfLog name of the event the argument Records a performance event with one 64-bit integer argument. a #ShellPerfLog name of the event the argument Replays the log by calling the given function for each event in the log. a #ShellPerfLog function to call for each event in the log data to pass to @replay_function Sets whether events are currently being recorded. a #ShellPerfLog whether to record events Updates the current value of an 32-bit integer statistic. a #ShellPerfLog name of the statistic new value for the statistic Updates the current value of an 64-bit integer statistic. a #ShellPerfLog name of the statistic new value for the statistic Grabs screenshots of areas and/or windows The #ShellScreenshot object is used to take screenshots of screen areas or windows and write them out as png files. Composite a rectangle defined by x, y, width, height from the texture to a pixbuf and write it as a PNG image into the stream. the source texture x coordinate of the rectangle y coordinate of the rectangle width of the rectangle, or -1 to use the full texture height of the rectangle, or -1 to use the full texture scale of the source texture the cursor texture x coordinate to put the cursor texture at, relative to the full source texture y coordinate to put the cursor texture at, relative to the full source texture scale of the cursor texture the stream to write the PNG image into function to call returning success or failure the data to pass to callback function Finish the asynchronous operation started by shell_screenshot_composite_to_stream () and obtain its result. a GdkPixbuf with the final image if the operation was successful, or NULL on error. the #GAsyncResult that was provided to the callback Picks the pixel at @x, @y and returns its color as #CoglColor. the #ShellScreenshot The X coordinate to pick The Y coordinate to pick function to call returning success or failure of the async grabbing Finish the asynchronous operation started by shell_screenshot_pick_color() and obtain its result. whether the operation was successful the #ShellScreenshot the #GAsyncResult that was provided to the callback the picked color Takes a screenshot of the whole screen in @stream as png image. the #ShellScreenshot Whether to include the cursor or not The stream for the screenshot function to call returning success or failure of the async grabbing the data to pass to callback function Takes a screenshot of the passed in area and saves it in @stream as png image. the #ShellScreenshot The X coordinate of the area The Y coordinate of the area The width of the area The height of the area The stream for the screenshot function to call returning success or failure of the async grabbing the data to pass to callback function Finish the asynchronous operation started by shell_screenshot_screenshot_area() and obtain its result. whether the operation was successful the #ShellScreenshot the #GAsyncResult that was provided to the callback the area that was grabbed in screen coordinates Finish the asynchronous operation started by shell_screenshot_screenshot() and obtain its result. whether the operation was successful the #ShellScreenshot the #GAsyncResult that was provided to the callback the area that was grabbed in screen coordinates Takes a screenshot of the whole screen as #ClutterContent. the #ShellScreenshot function to call returning success or failure of the async grabbing the data to pass to callback function Finish the asynchronous operation started by shell_screenshot_screenshot_stage_to_content() and obtain its result. the #ClutterContent, or NULL the #ShellScreenshot the #GAsyncResult that was provided to the callback location to store the content scale location to store the cursor content location to store the point at which to draw the cursor content location to store the cursor scale Takes a screenshot of the focused window (optionally omitting the frame) in @stream as png image. the #ShellScreenshot Whether to include the frame or not Whether to include the cursor or not The stream for the screenshot function to call returning success or failure of the async grabbing the data to pass to callback function Finish the asynchronous operation started by shell_screenshot_screenshot_window() and obtain its result. whether the operation was successful the #ShellScreenshot the #GAsyncResult that was provided to the callback the area that was grabbed in screen coordinates Pure "Z-axis" container class A #ShellStack draws its children on top of each other, aligned to the top left. It will be sized in width/height according to the largest such dimension of its children, and all children will be allocated that size. This differs from #ClutterGroup which allocates its children their natural size, even if that would overflow the size allocated to the stack. Fakes a press and release on @icon. @event must be a %CLUTTER_BUTTON_RELEASE, %CLUTTER_KEY_PRESS or %CLUTTER_KEY_RELEASE event. Its relevant details will be passed on to the icon, but its coordinates will be ignored; the click is always made on the center of @icon. a #ShellTrayIcon the #ClutterEvent triggering the fake click Creates a new window management interface by hooking into @plugin. the new window-management interface the #MetaPlugin The plugin must call this after the user responded to the confirmation dialog. the ShellWM if the new configuration was OK The plugin must call this when it has completed a window destroy effect. the ShellWM the MetaWindowActor actor The plugin must call this when it has completed a window map effect. the ShellWM the MetaWindowActor actor The plugin must call this when it has completed a window minimize effect. the ShellWM the MetaWindowActor actor The plugin must call this when it has finished switching the workspace. the ShellWM The plugin must call this when it has completed a window unminimize effect. the ShellWM the MetaWindowActor actor Creates a close dialog for the given window. The close dialog instance. The window to create the dialog for Creates an inhibit shortcuts dialog for the given window. The inhibit shortcuts dialog instance. The window to create the dialog for Creates a ClutterActor drawing the texture of @window and adds it to the container. If @window is already part of the preview, this function will do nothing. The newly created actor drawing @window a #ShellWindowPreviewLayout the #MetaWindow Gets an array of all MetaWindows that were added to the layout using shell_window_preview_layout_add_window(), ordered by the insertion order. The list of windows a #ShellWindowPreviewLayout Removes a MetaWindow @window from the preview which has been added previously using shell_window_preview_layout_add_window(). If @window is not part of preview, this function will do nothing. a #ShellWindowPreviewLayout the #MetaWindow Associate windows with applications 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. The global #ShellWindowTracker instance Look up the application corresponding to a process. A #ShellApp, or %NULL if none A #ShellAppSystem A Unix process identifier Currently active startup sequences Application associated with window An app monitor instance A #MetaWindow Synchronously load the contents of a file as a NUL terminated string, validating it as UTF-8. Embedded NUL characters count as invalid content. File contents UTF-8 encoded filename path Creates a #GSource which is dispatched every time the system realtime clock changes relative to the monotonic clock. This typically happens after NTP synchronisation. On error, a #GFileError will be returned. This happens if a timerfd cannot be created. Any callback attached to the returned #GSource must have type #GSourceFunc. the newly created #GSource, or %NULL on error Walk over all open file descriptors. Check them for the FD_CLOEXEC flag. If this flag is not set, log the offending file descriptor number. It is important that gnome-shell's file descriptors are all marked CLOEXEC, so that the shell's open file descriptors are not passed to child processes that we launch. Workaround for non-introspectability of gdk_pixbuf_from_data(). Attempts to translate the folder @name using translations provided by .directory files. a translated string or %NULL the untranslated folder name A wrapper around getuid() so that it can be used from JavaScript. This function will always succeed. the real user ID of the calling process Gets the first week day for the current locale, expressed as a number in the range 0..6, representing week days from Sunday to Saturday. A number representing the first week day for the current locale If the corresponding X11 display provides the passed extension, return %TRUE, otherwise %FALSE. If there is no X11 display, %FALSE is passed. A #MetaDisplay An X11 extension A wrapper around g_regex_escape_string() that takes its argument as \0-terminated string rather than a byte-array that confuses gjs. @str with all regex-special characters escaped a UTF-8 string to escape If @hidden is %TRUE, hide @actor from pick even with a mode of %CLUTTER_PICK_ALL; if @hidden is %FALSE, unhide @actor. A #ClutterActor Whether @actor should be hidden from pick A wrapper around g_spawn_async() with async-signal-safe implementation of #GSpawnChildSetupFunc to launch a child program asynchronously resetting the rlimit nofile on child setup. the PID of the child on success, 0 if error is set child's current working directory, or %NULL to inherit parent's child's argument vector child's environment, or %NULL to inherit parent's flags from #GSpawnFlags A wrapper around g_spawn_async_with_fds() with async-signal-safe implementation of #GSpawnChildSetupFunc to launch a child program asynchronously resetting the rlimit nofile on child setup. the PID of the child on success, 0 if error is set child's current working directory, or %NULL to inherit parent's child's argument vector child's environment, or %NULL to inherit parent's flags from #GSpawnFlags file descriptor to use for child's stdin, or `-1` file descriptor to use for child's stdout, or `-1` file descriptor to use for child's stderr, or `-1` A wrapper around g_spawn_async_with_pipes() with async-signal-safe implementation of #GSpawnChildSetupFunc to launch a child program asynchronously resetting the rlimit nofile on child setup. the PID of the child on success, 0 if error is set child's current working directory, or %NULL to inherit parent's child's argument vector child's environment, or %NULL to inherit parent's flags from #GSpawnFlags return location for file descriptor to write to child's stdin, or %NULL return location for file descriptor to read child's stdout, or %NULL return location for file descriptor to read child's stderr, or %NULL A wrapper around g_spawn_async_with_pipes_and_fds() with async-signal-safe implementation of #GSpawnChildSetupFunc to launch a child program asynchronously resetting the rlimit nofile on child setup. the PID of the child on success, 0 if error is set child's current working directory, or %NULL to inherit parent's, in the GLib file name encoding child's argument vector, in the GLib file name encoding; it must be non-empty and %NULL-terminated child's environment, or %NULL to inherit parent's, in the GLib file name encoding flags from #GSpawnFlags file descriptor to use for child's stdin, or `-1` file descriptor to use for child's stdout, or `-1` file descriptor to use for child's stderr, or `-1` array of FDs from the parent process to make available in the child process array of FDs to remap @source_fds to in the child process number of FDs in @source_fds and @target_fds return location for file descriptor to write to child's stdin, or %NULL return location for file descriptor to read child's stdout, or %NULL return location for file descriptor to read child's stderr, or %NULL Translate @str according to the locale defined by LC_TIME; unlike dcgettext(), the translations is still taken from the LC_MESSAGES catalogue and not the LC_TIME one. the translated string String to translate Implements libc standard WIFEXITED, that cannot be used JS code. TRUE if the process exited normally, FALSE otherwise the status returned by wait() or waitpid() the actual exit status of the process Write a string to a GOutputStream as UTF-8. This is a workaround for not having binary buffers in GJS. %TRUE if write succeeded a #GOutputStream a UTF-8 string to write to @stream