## Xfce Spawn

Xfce Spawn — Functions to spawn a command with startup notification support.

## Synopsis

    #include <libxfce4ui/libxfce4ui.h>

    gboolean            xfce_spawn_on_screen_with_child_watch
                                                            (GdkScreen *screen,
                                                             const gchar *working_directory,
                                                             gchar **argv,
                                                             gchar **envp,
                                                             GSpawnFlags flags,
                                                             gboolean startup_notify,
                                                             guint32 startup_timestamp,
                                                             const gchar *startup_icon_name,
                                                             GClosure *child_watch_closure,
                                                             GError **error);
    gboolean            xfce_spawn_on_screen                (GdkScreen *screen,
                                                             const gchar *working_directory,
                                                             gchar **argv,
                                                             gchar **envp,
                                                             GSpawnFlags flags,
                                                             gboolean startup_notify,
                                                             guint32 startup_timestamp,
                                                             const gchar *startup_icon_name,
                                                             GError **error);
    gboolean            xfce_spawn_command_line_on_screen   (GdkScreen *screen,
                                                             const gchar *command_line,
                                                             gboolean in_terminal,
                                                             gboolean startup_notify,
                                                             GError **error);

## Description

On a desktop it is important that applications are execute with startup notification and they show up on the correct screen and workspace.

## Details

### xfce_spawn_on_screen_with_child_watch ()

    gboolean            xfce_spawn_on_screen_with_child_watch
                                                            (GdkScreen *screen,
                                                             const gchar *working_directory,
                                                             gchar **argv,
                                                             gchar **envp,
                                                             GSpawnFlags flags,
                                                             gboolean startup_notify,
                                                             guint32 startup_timestamp,
                                                             const gchar *startup_icon_name,
                                                             GClosure *child_watch_closure,
                                                             GError **error);

### xfce_spawn_on_screen ()

    gboolean            xfce_spawn_on_screen                (GdkScreen *screen,
                                                             const gchar *working_directory,
                                                             gchar **argv,
                                                             gchar **envp,
                                                             GSpawnFlags flags,
                                                             gboolean startup_notify,
                                                             guint32 startup_timestamp,
                                                             const gchar *startup_icon_name,
                                                             GError **error);

Like `gdk_spawn_on_screen()`, but also supports startup notification (if Libxfce4ui was built with startup notification support).

`screen` : | a GdkScreen or `NULL` to use the active screen, see `xfce_gdk_screen_get_active()`.
`working_directory` : | child's current working directory or `NULL` to inherit parent's.
`argv` : | child's argument vector.
`envp` : | child's environment vector or `NULL` to inherit parent's.
`flags` : | flags from GSpawnFlags. G_SPAWN_DO_NOT_REAP_CHILD is not allowed, use `xfce_spawn_on_screen_with_child_watch()` if you want a child watch.
`startup_notify` : | whether to use startup notification.
`startup_timestamp` : | the timestamp to pass to startup notification, use the event time here if possible to make focus stealing prevention work property. If you don't have direct access to the event time you could use `gtk_get_current_event_time()` or if nothing is available 0 is valid too.
`startup_icon_name` : | application icon or `NULL`.
`error` : | return location for errors or `NULL`.
Returns : | `TRUE` on success, `FALSE` if `error` is set.

### xfce_spawn_command_line_on_screen ()

    gboolean            xfce_spawn_command_line_on_screen   (GdkScreen *screen,
                                                             const gchar *command_line,
                                                             gboolean in_terminal,
                                                             gboolean startup_notify,
                                                             GError **error);

Executes the given `command_line` and returns `TRUE` if the command terminated successfully. Else, the `error` is set to the standard error output.

`screen` : | a GdkScreen or `NULL` to use the active screen, see `xfce_gdk_screen_get_active()`.
`command_line` : | command line to run.
`in_terminal` : | whether to run `command_line` in a terminal.
`startup_notify` : | whether to use startup notification.
`error` : | location for a GError or `NULL`.
Returns : | `TRUE` if the `command_line` was executed successfully, `FALSE` if `error` is set.