Gio.AppLaunchContext¶
class — extends GObject.Object
Integrating the launch with the launching application. This is used to handle for instance startup notification and launching the new application on the same screen as the launching window.
Constructors¶
new¶
Creates a new application launch context. This is not normally used,
instead you instantiate a subclass of this, such as
GdkAppLaunchContext.
Methods¶
get_display¶
Gets the display string for the context. This is used to ensure new
applications are started on the same display as the launching
application, by setting the DISPLAY environment variable.
Parameters:
info— the app infofiles— a list ofFileobjects
get_environment¶
Gets the complete environment variable list to be passed to
the child process when context is used to launch an application.
This is a NULL-terminated array of strings, where each string has
the form KEY=VALUE.
get_startup_notify_id¶
def get_startup_notify_id(self, info: AppInfo | None = ..., files: list[File] | None = ...) -> str | None
Initiates startup notification for the application and returns the
XDG_ACTIVATION_TOKEN or DESKTOP_STARTUP_ID for the launched operation,
if supported.
The returned token may be referred to equivalently as an ‘activation token’ (using Wayland terminology) or a ‘startup sequence ID’ (using X11 terminology). The two are interoperable.
Activation tokens are defined in the XDG Activation Protocol, and startup notification IDs are defined in the freedesktop.org Startup Notification Protocol.
Support for the XDG Activation Protocol was added in GLib 2.76.
Since GLib 2.82 info and files can be NULL. If that’s not supported by the backend,
the returned token will be NULL.
Parameters:
info— the app infofiles— a list ofFileobjects
launch_failed¶
Called when an application has failed to launch, so that it can cancel
the application startup notification started in
AppLaunchContext.get_startup_notify_id.
Parameters:
startup_notify_id— the startup notification id that was returned byAppLaunchContext.get_startup_notify_id.
setenv¶
def setenv(self, variable: str | bytes | os.PathLike[str] | os.PathLike[bytes], value: str | bytes | os.PathLike[str] | os.PathLike[bytes]) -> None
Arranges for variable to be set to value in the child’s environment when
context is used to launch an application.
Parameters:
variable— the environment variable to setvalue— the value for to set the variable to.
unsetenv¶
Arranges for variable to be unset in the child’s environment when context
is used to launch an application.
Parameters:
variable— the environment variable to remove
Virtual methods¶
do_get_display¶
Gets the display string for the context. This is used to ensure new
applications are started on the same display as the launching
application, by setting the DISPLAY environment variable.
Parameters:
info— the app infofiles— a list ofFileobjects
do_get_startup_notify_id¶
def do_get_startup_notify_id(self, info: AppInfo | None = ..., files: list[File] | None = ...) -> str | None
Initiates startup notification for the application and returns the
XDG_ACTIVATION_TOKEN or DESKTOP_STARTUP_ID for the launched operation,
if supported.
The returned token may be referred to equivalently as an ‘activation token’ (using Wayland terminology) or a ‘startup sequence ID’ (using X11 terminology). The two are interoperable.
Activation tokens are defined in the XDG Activation Protocol, and startup notification IDs are defined in the freedesktop.org Startup Notification Protocol.
Support for the XDG Activation Protocol was added in GLib 2.76.
Since GLib 2.82 info and files can be NULL. If that’s not supported by the backend,
the returned token will be NULL.
Parameters:
info— the app infofiles— a list ofFileobjects
do_launch_failed¶
Called when an application has failed to launch, so that it can cancel
the application startup notification started in
AppLaunchContext.get_startup_notify_id.
Parameters:
startup_notify_id— the startup notification id that was returned byAppLaunchContext.get_startup_notify_id.
do_launch_started¶
do_launched¶
Signals¶
launch-failed¶
The AppLaunchContext.launch-failed signal is emitted when a
AppInfo launch fails. The startup notification id is provided,
so that the launcher can cancel the startup notification.
Because a launch operation may involve spawning multiple instances of the target application, you should expect this signal to be emitted multiple times, one for each spawned instance.
launch-started¶
The AppLaunchContext.launch-started signal is emitted when a
AppInfo is about to be launched. If non-null the
platform_data is an GVariant dictionary mapping strings to variants
(ie a{sv}), which contains additional, platform-specific data about this
launch. On UNIX, at least the startup-notification-id keys will be
present.
The value of the startup-notification-id key (type s) is a startup
notification ID corresponding to the format from the startup-notification
specification.
It allows tracking the progress of the launchee through startup.
It is guaranteed that this signal is followed by either a
AppLaunchContext.launched or
AppLaunchContext.launch-failed signal.
Because a launch operation may involve spawning multiple instances of the target application, you should expect this signal to be emitted multiple times, one for each spawned instance.
launched¶
The AppLaunchContext.launched signal is emitted when a
AppInfo is successfully launched.
Because a launch operation may involve spawning multiple instances of the target application, you should expect this signal to be emitted multiple times, one time for each spawned instance.
The platform_data is an GVariant dictionary mapping
strings to variants (ie a{sv}), which contains additional,
platform-specific data about this launch. On UNIX, at least the
pid and startup-notification-id keys will be present.
Since 2.72 the pid may be 0 if the process id wasn’t known (for
example if the process was launched via D-Bus). The pid may not be
set at all in subsequent releases.
On Windows, pid is guaranteed to be valid only for the duration of the
AppLaunchContext.launched signal emission; after the signal
is emitted, GLib will call GLib.spawn_close_pid. If you need to
keep the GLib.Pid after the signal has been emitted, then you can
duplicate pid using DuplicateHandle().