Class (GI Class)

Xdp-1.0XdpPortal

Context for portal calls.

The XdpPortal object provides the main context object for the portal operations of libportal.

Typically, an application will create a single XdpPortal object with Portal.new and use it throughout its lifetime.

Hierarchy (View Summary)

Implements

Index

Constructors

Properties

Methods

_init access_camera access_camera_finish add_notification add_notification_finish bind_property bind_property_full block_signal_handler compose_email compose_email_finish connect connect_after create_remote_desktop_session create_remote_desktop_session_finish create_screencast_session create_screencast_session_finish disconnect dynamic_launcher_get_desktop_entry dynamic_launcher_get_icon dynamic_launcher_install dynamic_launcher_launch dynamic_launcher_prepare_install dynamic_launcher_prepare_install_finish dynamic_launcher_request_install_token dynamic_launcher_uninstall emit force_floating freeze_notify get_data get_property get_qdata get_user_information get_user_information_finish getv init is_camera_present is_floating location_monitor_start location_monitor_start_finish location_monitor_stop notify notify_by_pspec open_directory open_directory_finish open_file open_file_finish open_pipewire_remote_for_camera open_uri open_uri_finish pick_color pick_color_finish prepare_print prepare_print_finish print_file print_file_finish ref ref_sink remove_notification request_background request_background_finish run_dispose save_file save_file_finish save_files save_files_finish session_inhibit session_inhibit_finish session_monitor_query_end_response session_monitor_start session_monitor_start_finish session_monitor_stop session_uninhibit set set_background_status set_background_status_finish set_data set_property set_wallpaper set_wallpaper_finish spawn spawn_finish spawn_signal steal_data steal_qdata stop_emission_by_name take_screenshot take_screenshot_finish thaw_notify trash_file trash_file_finish unblock_signal_handler unref update_install update_install_finish update_monitor_start update_monitor_start_finish update_monitor_stop vfunc_constructed vfunc_dispatch_properties_changed vfunc_dispose vfunc_finalize vfunc_get_property vfunc_init vfunc_notify vfunc_set_property watch_closure initable_new new running_under_flatpak running_under_sandbox running_under_snap

Methods - Inherited from GObject

Constructors

Properties

Compile-time signal type information.

This instance property is generated only for TypeScript type checking. It is not defined at runtime and should not be accessed in JS code.

$gtype: GType<Xdp.Portal>

Methods

  • Sends a desktop notification.

    The following keys may be present in notification:

    • title s: a user-visible string to display as title
    • body s: a user-visible string to display as body
    • icon v: a serialized icon (in the format produced by Gio.Icon.serialize)
    • priority s: "low", "normal", "high" or "urgent"
    • default-action s: name of an action that will be activated when the user clicks on the notification
    • default-action-target v: target parameter to send along when activating the default action.
    • buttons aa{sv}: array of serialized buttons

    Each serialized button is a dictionary with the following supported keys:

    • label s: user-visible lable for the button. Mandatory
    • action s: name of an action that will be activated when the user clicks on the button. Mandatory
    • target v: target parameter to send along when activating the button

    Actions with a prefix of "app." are assumed to be exported by the application and will be activated via the org.freedesktop.Application interface, others are activated by emitting the Xdp.Portal::notification-action-invoked signal.

    It is the callers responsibility to ensure that the ID is unique among all notifications.

    To withdraw a notification, use Portal.remove_notification.

    Parameters

    Returns Promise<boolean>

  • Sends a desktop notification.

    The following keys may be present in notification:

    • title s: a user-visible string to display as title
    • body s: a user-visible string to display as body
    • icon v: a serialized icon (in the format produced by Gio.Icon.serialize)
    • priority s: "low", "normal", "high" or "urgent"
    • default-action s: name of an action that will be activated when the user clicks on the notification
    • default-action-target v: target parameter to send along when activating the default action.
    • buttons aa{sv}: array of serialized buttons

    Each serialized button is a dictionary with the following supported keys:

    • label s: user-visible lable for the button. Mandatory
    • action s: name of an action that will be activated when the user clicks on the button. Mandatory
    • target v: target parameter to send along when activating the button

    Actions with a prefix of "app." are assumed to be exported by the application and will be activated via the org.freedesktop.Application interface, others are activated by emitting the Xdp.Portal::notification-action-invoked signal.

    It is the callers responsibility to ensure that the ID is unique among all notifications.

    To withdraw a notification, use Portal.remove_notification.

    Parameters

    Returns void

  • Sends a desktop notification.

    The following keys may be present in notification:

    • title s: a user-visible string to display as title
    • body s: a user-visible string to display as body
    • icon v: a serialized icon (in the format produced by Gio.Icon.serialize)
    • priority s: "low", "normal", "high" or "urgent"
    • default-action s: name of an action that will be activated when the user clicks on the notification
    • default-action-target v: target parameter to send along when activating the default action.
    • buttons aa{sv}: array of serialized buttons

    Each serialized button is a dictionary with the following supported keys:

    • label s: user-visible lable for the button. Mandatory
    • action s: name of an action that will be activated when the user clicks on the button. Mandatory
    • target v: target parameter to send along when activating the button

    Actions with a prefix of "app." are assumed to be exported by the application and will be activated via the org.freedesktop.Application interface, others are activated by emitting the Xdp.Portal::notification-action-invoked signal.

    It is the callers responsibility to ensure that the ID is unique among all notifications.

    To withdraw a notification, use Portal.remove_notification.

    Parameters

    Returns void | Promise<boolean>

  • Creates a binding between source_property on source and target_property on target.

    Whenever the source_property is changed the target_property is updated using the same value. For instance:

      g_object_bind_property (action, "active", widget, "sensitive", 0);
    

    Will result in the "sensitive" property of the widget GObject.Object instance to be updated with the same value of the "active" property of the action GObject.Object instance.

    If flags contains GObject.BindingFlags.BIDIRECTIONAL then the binding will be mutual: if target_property on target changes then the source_property on source will be updated as well.

    The binding will automatically be removed when either the source or the target instances are finalized. To remove the binding without affecting the source and the target you can just call g_object_unref() on the returned GObject.Binding instance.

    Removing the binding by calling g_object_unref() on it must only be done if the binding, source and target are only used from a single thread and it is clear that both source and target outlive the binding. Especially it is not safe to rely on this if the binding, source or target can be finalized from different threads. Keep another reference to the binding and use g_binding_unbind() instead to be on the safe side.

    A GObject.Object can have multiple bindings.

    Parameters

    Returns GObject.Binding

    the GObject.Binding instance representing the binding between the two GObject.Object instances. The binding is released whenever the GObject.Binding reference count reaches zero.

  • Complete version of g_object_bind_property().

    Creates a binding between source_property on source and target_property on target, allowing you to set the transformation functions to be used by the binding.

    If flags contains GObject.BindingFlags.BIDIRECTIONAL then the binding will be mutual: if target_property on target changes then the source_property on source will be updated as well. The transform_from function is only used in case of bidirectional bindings, otherwise it will be ignored

    The binding will automatically be removed when either the source or the target instances are finalized. This will release the reference that is being held on the GObject.Binding instance; if you want to hold on to the GObject.Binding instance, you will need to hold a reference to it.

    To remove the binding, call g_binding_unbind().

    A GObject.Object can have multiple bindings.

    The same user_data parameter will be used for both transform_to and transform_from transformation functions; the notify function will be called once, when the binding is removed. If you need different data for each transformation function, please use g_object_bind_property_with_closures() instead.

    Parameters

    • source_property: string

      the property on source to bind

    • target: GObject.Object

      the target GObject.Object

    • target_property: string

      the property on target to bind

    • flags: GObject.BindingFlags

      flags to pass to GObject.Binding

    • Optionaltransform_to: BindingTransformFunc

      the transformation function from the source to the target, or null to use the default

    • Optionaltransform_from: BindingTransformFunc

      the transformation function from the target to the source, or null to use the default

    • Optionalnotify: DestroyNotify

      a function to call when disposing the binding, to free resources used by the transformation functions, or null if not required

    Returns GObject.Binding

    the GObject.Binding instance representing the binding between the two GObject.Object instances. The binding is released whenever the GObject.Binding reference count reaches zero.

  • Creates a binding between source_property on source and target_property on target, allowing you to set the transformation functions to be used by the binding.

    This function is the language bindings friendly version of g_object_bind_property_full(), using GClosures instead of function pointers.

    Parameters

    • ...args: never[]

      the property on source to bind

    Returns any

    the GObject.Binding instance representing the binding between the two GObject.Object instances. The binding is released whenever the GObject.Binding reference count reaches zero.

  • Presents a window that lets the user compose an email, with some pre-filled information.

    When the request is done, callback will be called. You can then call Portal.compose_email_finish to get the results.

    Parameters

    • parent: Parent

      parent window information

    • addresses: string[]

      the email addresses to send to

    • cc: string[]

      the email addresses to cc

    • bcc: string[]

      the email addresses to bcc

    • subject: string

      the subject for the email

    • body: string

      the body for the email

    • attachments: string[]

      an array of paths for files to attach

    • flags: NONE

      options for this call

    • Optionalcancellable: Gio.Cancellable

      optional Gio.Cancellable

    Returns Promise<boolean>

  • Presents a window that lets the user compose an email, with some pre-filled information.

    When the request is done, callback will be called. You can then call Portal.compose_email_finish to get the results.

    Parameters

    • parent: Parent

      parent window information

    • addresses: string[]

      the email addresses to send to

    • cc: string[]

      the email addresses to cc

    • bcc: string[]

      the email addresses to bcc

    • subject: string

      the subject for the email

    • body: string

      the body for the email

    • attachments: string[]

      an array of paths for files to attach

    • flags: NONE

      options for this call

    • cancellable: Gio.Cancellable

      optional Gio.Cancellable

    • callback: AsyncReadyCallback<Xdp.Portal>

      a callback to call when the request is done

    Returns void

  • Presents a window that lets the user compose an email, with some pre-filled information.

    When the request is done, callback will be called. You can then call Portal.compose_email_finish to get the results.

    Parameters

    • parent: Parent

      parent window information

    • addresses: string[]

      the email addresses to send to

    • cc: string[]

      the email addresses to cc

    • bcc: string[]

      the email addresses to bcc

    • subject: string

      the subject for the email

    • body: string

      the body for the email

    • attachments: string[]

      an array of paths for files to attach

    • flags: NONE

      options for this call

    • Optionalcancellable: Gio.Cancellable

      optional Gio.Cancellable

    • Optionalcallback: AsyncReadyCallback<Xdp.Portal>

      a callback to call when the request is done

    Returns void | Promise<boolean>

  • Disconnects a handler from an instance so it will not be called during any future or currently ongoing emissions of the signal it has been connected to.

    Parameters

    • id: number

      Handler ID of the handler to be disconnected

    Returns void

dynamic_launcher_get_desktop_entry

  • dynamic_launcher_get_desktop_entry(desktop_file_id: string): string

    This function gets the contents of a .desktop file that was previously installed by the dynamic launcher portal.

    The desktop_file_id must be prefixed with the caller's app ID followed by a "." and suffixed with ".desktop".

    Parameters

    • desktop_file_id: string

      the .desktop file name

    Returns string

    the contents of the desktop file, or null with error set

  • This function gets the icon associated with a .desktop file that was previously installed by the dynamic launcher portal.

    The desktop_file_id must be prefixed with the caller's app ID followed by a "." and suffixed with ".desktop".

    Parameters

    • desktop_file_id: string

      the .desktop file name

    • Optionalout_icon_format: string

      return location for icon format string, one of "png", "jpeg", "svg"

    • Optionalout_icon_size: number

      return location for icon size

    Returns GLib.Variant

    the icon in a format recognized by g_icon_deserialize(), or null with error set

  • This function completes installation of a launcher so that the icon and name given in previous method calls will show up in the desktop environment's menu.

    The desktop_file_id must be prefixed with the caller's app ID followed by a "." and suffixed with ".desktop".

    The desktop_entry data need not include Icon= or Name= entries since these will be added by the portal, and the Exec= entry will be rewritten to call the application with e.g. "flatpak run" depending on the sandbox status of the app.

    Parameters

    Returns boolean

    true if the installation was successful, false with error set otherwise

  • Parameters

    • desktop_file_id: string
    • activation_token: string

    Returns boolean

  • Presents a dialog to the user so they can confirm they want to install a launcher to their desktop.

    When the request is done, callback will be called. You can then call Portal.dynamic_launcher_prepare_install_finish to get the results.

    Parameters

    • parent: Parent

      parent window information

    • name: string

      the name for the launcher

    • icon_v: GLib.Variant

      a Gio.BytesIcon as returned by g_icon_serialize(). Must be a png or jpeg no larger than 512x512, or an svg

    • launcher_type: Xdp.LauncherType

      the type of the launcher

    • target: string

      the URL if the launcher is for a web app, or null

    • editable_name: boolean

      if true, the user will be able to edit the name of the launcher

    • editable_icon: boolean

      if true, the user will be able to edit the icon of the launcher, if the implementation supports this

    • Optionalcancellable: Gio.Cancellable

      optional Gio.Cancellable

    Returns Promise<GLib.Variant<any>>

  • Presents a dialog to the user so they can confirm they want to install a launcher to their desktop.

    When the request is done, callback will be called. You can then call Portal.dynamic_launcher_prepare_install_finish to get the results.

    Parameters

    • parent: Parent

      parent window information

    • name: string

      the name for the launcher

    • icon_v: GLib.Variant

      a Gio.BytesIcon as returned by g_icon_serialize(). Must be a png or jpeg no larger than 512x512, or an svg

    • launcher_type: Xdp.LauncherType

      the type of the launcher

    • target: string

      the URL if the launcher is for a web app, or null

    • editable_name: boolean

      if true, the user will be able to edit the name of the launcher

    • editable_icon: boolean

      if true, the user will be able to edit the icon of the launcher, if the implementation supports this

    • cancellable: Gio.Cancellable

      optional Gio.Cancellable

    • callback: AsyncReadyCallback<Xdp.Portal>

      a callback to call when the request is done

    Returns void

  • Presents a dialog to the user so they can confirm they want to install a launcher to their desktop.

    When the request is done, callback will be called. You can then call Portal.dynamic_launcher_prepare_install_finish to get the results.

    Parameters

    • parent: Parent

      parent window information

    • name: string

      the name for the launcher

    • icon_v: GLib.Variant

      a Gio.BytesIcon as returned by g_icon_serialize(). Must be a png or jpeg no larger than 512x512, or an svg

    • launcher_type: Xdp.LauncherType

      the type of the launcher

    • target: string

      the URL if the launcher is for a web app, or null

    • editable_name: boolean

      if true, the user will be able to edit the name of the launcher

    • editable_icon: boolean

      if true, the user will be able to edit the icon of the launcher, if the implementation supports this

    • Optionalcancellable: Gio.Cancellable

      optional Gio.Cancellable

    • Optionalcallback: AsyncReadyCallback<Xdp.Portal>

      a callback to call when the request is done

    Returns void | Promise<GLib.Variant<any>>

  • Requests a token which can be passed to Portal.dynamic_launcher_install to complete installation of the launcher without user interaction.

    This function only works when the caller's app ID is in the allowlist for the portal backend being used. It's intended for software centers such as GNOME Software or KDE Discover.

    Parameters

    • name: string

      the name for the launcher

    • icon_v: GLib.Variant

      a Gio.BytesIcon as returned by g_icon_serialize(). Must be a png or jpeg no larger than 512x512, or an svg

    Returns string

    a token that can be passed to Portal.dynamic_launcher_install, or null with error set

  • This function uninstalls a launcher that was previously installed using the dynamic launcher portal, resulting in the .desktop file and icon being deleted.

    The desktop_file_id must be prefixed with the caller's app ID followed by a "." and suffixed with ".desktop".

    Parameters

    • desktop_file_id: string

      the .desktop file name

    Returns boolean

    true if the uninstallation was successful, false with error set otherwise

  • This function is intended for GObject.Object implementations to re-enforce a [floating][floating-ref] object reference. Doing this is seldom required: all GInitiallyUnowneds are created with a floating reference which usually just needs to be sunken by calling g_object_ref_sink().

    Returns void

  • Increases the freeze count on object. If the freeze count is non-zero, the emission of "notify" signals on object is stopped. The signals are queued until the freeze count is decreased to zero. Duplicate notifications are squashed so that at most one GObject.Object::notify signal is emitted for each property modified while the object is frozen.

    This is necessary for accessors that modify multiple properties to prevent premature notification while the object is still being modified.

    Returns void

  • Gets a named field from the objects table of associations (see g_object_set_data()).

    Parameters

    • key: string

      name of the key for that association

    Returns any

    the data if found, or null if no such data exists.

  • Gets a property of an object.

    The value can be:

    • an empty GObject.Value initialized by G_VALUE_INIT, which will be automatically initialized with the expected type of the property (since GLib 2.60)
    • a GObject.Value initialized with the expected type of the property
    • a GObject.Value initialized with a type to which the expected type of the property can be transformed

    In general, a copy is made of the property contents and the caller is responsible for freeing the memory by calling GObject.Value.unset.

    Note that GObject.Object.get_property is really intended for language bindings, GObject.Object.get is much more convenient for C programming.

    Parameters

    • property_name: string

      The name of the property to get

    • value: any

      Return location for the property value. Can be an empty GObject.Value initialized by G_VALUE_INIT (auto-initialized with expected type since GLib 2.60), a GObject.Value initialized with the expected property type, or a GObject.Value initialized with a transformable type

    Returns any

  • Gets n_properties properties for an object. Obtained properties will be set to values. All properties must be valid. Warnings will be emitted and undefined behaviour may result if invalid properties are passed in.

    Parameters

    • names: string[]

      the names of each property to get

    • values: any[]

      the values of each property to get

    Returns void

  • Initializes the object implementing the interface.

    This method is intended for language bindings. If writing in C, g_initable_new() should typically be used instead.

    The object must be initialized before any real use after initial construction, either with this function or g_async_initable_init_async().

    Implementations may also support cancellation. If cancellable is not null, then initialization can be cancelled by triggering the cancellable object from another thread. If the operation was cancelled, the error Gio.IOErrorEnum.CANCELLED will be returned. If cancellable is not null and the object doesn't support cancellable initialization the error Gio.IOErrorEnum.NOT_SUPPORTED will be returned.

    If the object is not initialized, or initialization returns with an error, then all operations on the object except g_object_ref() and g_object_unref() are considered to be invalid, and have undefined behaviour. See the [description][iface@Gio.Initable#description] for more details.

    Callers should not assume that a class which implements Gio.Initable can be initialized multiple times, unless the class explicitly documents itself as supporting this. Generally, a class’ implementation of init() can assume (and assert) that it will only be called once. Previously, this documentation recommended all Gio.Initable implementations should be idempotent; that recommendation was relaxed in GLib 2.54.

    If a class explicitly supports being initialized multiple times, it is recommended that the method is idempotent: multiple calls with the same arguments should return the same results. Only the first call initializes the object; further calls return the result of the first call.

    One reason why a class might need to support idempotent initialization is if it is designed to be used via the singleton pattern, with a GObject.ObjectClass.constructor that sometimes returns an existing instance. In this pattern, a caller would expect to be able to call g_initable_init() on the result of g_object_new(), regardless of whether it is in fact a new instance.

    Parameters

    Returns boolean

    true if successful. If an error has occurred, this function will return false and set error appropriately if present.

  • Returns whether any camera are present.

    Returns boolean

    TRUE if the system has cameras

  • Emits a "notify" signal for the property property_name on object.

    When possible, eg. when signaling a property change from within the class that registered the property, you should use g_object_notify_by_pspec() instead.

    Note that emission of the notify signal may be blocked with g_object_freeze_notify(). In this case, the signal emissions are queued and will be emitted (in reverse order) when g_object_thaw_notify() is called.

    Parameters

    • property_name: string

      the name of a property installed on the class of object.

    Returns void

  • Emits a "notify" signal for the property specified by pspec on object.

    This function omits the property name lookup, hence it is faster than g_object_notify().

    One way to avoid using g_object_notify() from within the class that registered the properties, and using g_object_notify_by_pspec() instead, is to store the GParamSpec used with g_object_class_install_property() inside a static array, e.g.:

      typedef enum
    {
    PROP_FOO = 1,
    PROP_LAST
    } MyObjectProperty;

    static GParamSpec *properties[PROP_LAST];

    static void
    my_object_class_init (MyObjectClass *klass)
    {
    properties[PROP_FOO] = g_param_spec_int ("foo", NULL, NULL,
    0, 100,
    50,
    G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
    g_object_class_install_property (gobject_class,
    PROP_FOO,
    properties[PROP_FOO]);
    }

    and then notify a change on the "foo" property with:

      g_object_notify_by_pspec (self, properties[PROP_FOO]);
    

    Parameters

    Returns void

  • Asks the user to open one or more files.

    The format for the filters argument is a(sa(us)). Each item in the array specifies a single filter to offer to the user. The first string is a user-visible name for the filter. The a(us) specifies a list of filter strings, which can be either a glob pattern (indicated by 0) or a mimetype (indicated by 1).

    Example: [('Images', [(0, '*.ico'), (1, 'image/png')]), ('Text', [(0, '*.txt')])]

    The format for the choices argument is a(ssa(ss)s). For each element, the first string is an ID that will be returned with the response, te second string is a user-visible label. The a(ss) is the list of choices, each being a is an ID and a user-visible label. The final string is the initial selection, or "", to let the portal decide which choice will be initially selected. None of the strings, except for the initial selection, should be empty.

    As a special case, passing an empty array for the list of choices indicates a boolean choice that is typically displayed as a check button, using "true" and "false" as the choices.

    Example: [('encoding', 'Encoding', [('utf8', 'Unicode (UTF-8)'), ('latin15', 'Western')], 'latin15'), ('reencode', 'Reencode', [], 'false')]

    When the request is done, callback will be called. You can then call Portal.open_file_finish to get the results.

    Parameters

    Returns Promise<GLib.Variant<any>>

  • Asks the user to open one or more files.

    The format for the filters argument is a(sa(us)). Each item in the array specifies a single filter to offer to the user. The first string is a user-visible name for the filter. The a(us) specifies a list of filter strings, which can be either a glob pattern (indicated by 0) or a mimetype (indicated by 1).

    Example: [('Images', [(0, '*.ico'), (1, 'image/png')]), ('Text', [(0, '*.txt')])]

    The format for the choices argument is a(ssa(ss)s). For each element, the first string is an ID that will be returned with the response, te second string is a user-visible label. The a(ss) is the list of choices, each being a is an ID and a user-visible label. The final string is the initial selection, or "", to let the portal decide which choice will be initially selected. None of the strings, except for the initial selection, should be empty.

    As a special case, passing an empty array for the list of choices indicates a boolean choice that is typically displayed as a check button, using "true" and "false" as the choices.

    Example: [('encoding', 'Encoding', [('utf8', 'Unicode (UTF-8)'), ('latin15', 'Western')], 'latin15'), ('reencode', 'Reencode', [], 'false')]

    When the request is done, callback will be called. You can then call Portal.open_file_finish to get the results.

    Parameters

    Returns void

  • Asks the user to open one or more files.

    The format for the filters argument is a(sa(us)). Each item in the array specifies a single filter to offer to the user. The first string is a user-visible name for the filter. The a(us) specifies a list of filter strings, which can be either a glob pattern (indicated by 0) or a mimetype (indicated by 1).

    Example: [('Images', [(0, '*.ico'), (1, 'image/png')]), ('Text', [(0, '*.txt')])]

    The format for the choices argument is a(ssa(ss)s). For each element, the first string is an ID that will be returned with the response, te second string is a user-visible label. The a(ss) is the list of choices, each being a is an ID and a user-visible label. The final string is the initial selection, or "", to let the portal decide which choice will be initially selected. None of the strings, except for the initial selection, should be empty.

    As a special case, passing an empty array for the list of choices indicates a boolean choice that is typically displayed as a check button, using "true" and "false" as the choices.

    Example: [('encoding', 'Encoding', [('utf8', 'Unicode (UTF-8)'), ('latin15', 'Western')], 'latin15'), ('reencode', 'Reencode', [], 'false')]

    When the request is done, callback will be called. You can then call Portal.open_file_finish to get the results.

    Parameters

    Returns void | Promise<GLib.Variant<any>>

  • Opens a file descriptor to the pipewire remote where the camera nodes are available.

    The file descriptor should be used to create a pw_core object, by using pw_context_connect_fd(). Only the camera nodes will be available from this pipewire node.

    Returns number

    the file descriptor

  • Prints a file.

    If a valid token is present in the options, then this call will print with the settings from the Print call that the token refers to. If no token is present, then a print dialog will be presented to the user.

    When the request is done, callback will be called. You can then call Portal.print_file_finish to get the results.

    Parameters

    • parent: Parent

      parent window information

    • title: string

      tile for the print dialog

    • token: number

      token that was returned by a previous Portal.prepare_print call, or 0

    • file: string

      path of the document to print

    • flags: NONE

      options for this call

    • Optionalcancellable: Gio.Cancellable

      optional Gio.Cancellable

    Returns Promise<boolean>

  • Prints a file.

    If a valid token is present in the options, then this call will print with the settings from the Print call that the token refers to. If no token is present, then a print dialog will be presented to the user.

    When the request is done, callback will be called. You can then call Portal.print_file_finish to get the results.

    Parameters

    Returns void

  • Prints a file.

    If a valid token is present in the options, then this call will print with the settings from the Print call that the token refers to. If no token is present, then a print dialog will be presented to the user.

    When the request is done, callback will be called. You can then call Portal.print_file_finish to get the results.

    Parameters

    Returns void | Promise<boolean>

  • Increases the reference count of object.

    Since GLib 2.56, if GLIB_VERSION_MAX_ALLOWED is 2.56 or greater, the type of object will be propagated to the return type (using the GCC typeof() extension), so any casting the caller needs to do on the return type must be explicit.

    Returns GObject.Object

    the same object

  • Increase the reference count of object, and possibly remove the [floating][floating-ref] reference, if object has a floating reference.

    In other words, if the object is floating, then this call "assumes ownership" of the floating reference, converting it to a normal reference by clearing the floating flag while leaving the reference count unchanged. If the object is not floating, then this call adds a new normal reference increasing the reference count by one.

    Since GLib 2.56, the type of object will be propagated to the return type under the same conditions as for g_object_ref().

    Returns GObject.Object

    object

  • Withdraws a desktop notification.

    Parameters

    • id: string

      the ID of an notification

    Returns void

  • Asks for a folder as a location to save one or more files.

    The names of the files will be used as-is and appended to the selected folder's path in the list of returned files. If the selected folder already contains a file with one of the given names, the portal may prompt or take some other action to construct a unique file name and return that instead.

    The format for the choices argument is the same as for Portal.open_file.

    When the request is done, callback will be called. You can then call Portal.save_file_finish to get the results.

    Parameters

    • parent: Parent

      parent window information

    • title: string

      title for the file chooser dialog

    • current_name: string

      suggested filename

    • current_folder: string

      suggested folder to save the file in

    • files: GLib.Variant

      An array of file names to be saved

    • choices: GLib.Variant<any>

      a GLib.Variant describing extra widgets

    • flags: NONE

      options for this call

    • Optionalcancellable: Gio.Cancellable

      optional Gio.Cancellable

    Returns Promise<GLib.Variant<any>>

  • Asks for a folder as a location to save one or more files.

    The names of the files will be used as-is and appended to the selected folder's path in the list of returned files. If the selected folder already contains a file with one of the given names, the portal may prompt or take some other action to construct a unique file name and return that instead.

    The format for the choices argument is the same as for Portal.open_file.

    When the request is done, callback will be called. You can then call Portal.save_file_finish to get the results.

    Parameters

    Returns void

  • Asks for a folder as a location to save one or more files.

    The names of the files will be used as-is and appended to the selected folder's path in the list of returned files. If the selected folder already contains a file with one of the given names, the portal may prompt or take some other action to construct a unique file name and return that instead.

    The format for the choices argument is the same as for Portal.open_file.

    When the request is done, callback will be called. You can then call Portal.save_file_finish to get the results.

    Parameters

    Returns void | Promise<GLib.Variant<any>>

  • Finishes the save-files request.

    Returns the result in the form of a GLib.Variant dictionary containing the following fields:

    • uris (as): an array of strings containing the uri corresponding to each file passed to the save-files request, in the same order. Note that the file names may have changed, for example if a file with the same name in the selected folder already exists.
    • choices a(ss): an array of pairs of strings, the first string being the ID of a combobox that was passed into this call, the second string being the selected option.

    Parameters

    Returns GLib.Variant

    a GLib.Variant dictionary with the results

  • This method should be called within one second of receiving a Xdp.Portal::session-state-changed signal with the 'Query End' state, to acknowledge that they have handled the state change.

    Possible ways to handle the state change are either to call Portal.session_inhibit to prevent the session from ending, or to save your state and get ready for the session to end.

    Returns void

  • Sets multiple properties of an object at once. The properties argument should be a dictionary mapping property names to values.

    Parameters

    • properties: { [key: string]: any }

      Object containing the properties to set

    Returns void

  • Each object carries around a table of associations from strings to pointers. This function lets you set an association.

    If the object already had an association with that name, the old association will be destroyed.

    Internally, the key is converted to a GLib.Quark using g_quark_from_string(). This means a copy of key is kept permanently (even after object has been finalized) — so it is recommended to only use a small, bounded set of values for key in your program, to avoid the GLib.Quark storage growing unbounded.

    Parameters

    • key: string

      name of the key

    • Optionaldata: any

      data to associate with that key

    Returns void

  • Creates a new copy of the applications sandbox, and runs a process in, with the given arguments.

    The learn when the spawned process exits, connect to the Xdp.Portal::spawn-exited signal.

    Parameters

    • cwd: string

      the cwd for the new process

    • argv: string[]

      the argv for the new process

    • fds: number[]

      an array of open fds to pass to the new process, or NULL

    • map_to: number[]

      an array of integers to map the fds to, or NULL. Must be the same length as fds

    • env: string[]

      an array of KEY=VALUE environment settings, or NULL

    • flags: Xdp.SpawnFlags

      flags influencing the spawn operation

    • Optionalsandbox_expose: string[]

      paths to expose rw in the new sandbox, or NULL

    • Optionalsandbox_expose_ro: string[]

      paths to expose ro in the new sandbox, or NULL

    • Optionalcancellable: Gio.Cancellable

      optional Gio.Cancellable

    Returns Promise<number>

  • Creates a new copy of the applications sandbox, and runs a process in, with the given arguments.

    The learn when the spawned process exits, connect to the Xdp.Portal::spawn-exited signal.

    Parameters

    • cwd: string

      the cwd for the new process

    • argv: string[]

      the argv for the new process

    • fds: number[]

      an array of open fds to pass to the new process, or NULL

    • map_to: number[]

      an array of integers to map the fds to, or NULL. Must be the same length as fds

    • env: string[]

      an array of KEY=VALUE environment settings, or NULL

    • flags: Xdp.SpawnFlags

      flags influencing the spawn operation

    • sandbox_expose: string[]

      paths to expose rw in the new sandbox, or NULL

    • sandbox_expose_ro: string[]

      paths to expose ro in the new sandbox, or NULL

    • cancellable: Gio.Cancellable

      optional Gio.Cancellable

    • callback: AsyncReadyCallback<Xdp.Portal>

      a callback to call when the request is done

    Returns void

  • Creates a new copy of the applications sandbox, and runs a process in, with the given arguments.

    The learn when the spawned process exits, connect to the Xdp.Portal::spawn-exited signal.

    Parameters

    • cwd: string

      the cwd for the new process

    • argv: string[]

      the argv for the new process

    • fds: number[]

      an array of open fds to pass to the new process, or NULL

    • map_to: number[]

      an array of integers to map the fds to, or NULL. Must be the same length as fds

    • env: string[]

      an array of KEY=VALUE environment settings, or NULL

    • flags: Xdp.SpawnFlags

      flags influencing the spawn operation

    • Optionalsandbox_expose: string[]

      paths to expose rw in the new sandbox, or NULL

    • Optionalsandbox_expose_ro: string[]

      paths to expose ro in the new sandbox, or NULL

    • Optionalcancellable: Gio.Cancellable

      optional Gio.Cancellable

    • Optionalcallback: AsyncReadyCallback<Xdp.Portal>

      a callback to call when the request is done

    Returns void | Promise<number>

  • Sends a Unix signal to a process that has been spawned by Portal.spawn.

    Parameters

    • pid: number

      the pid of the process to send a signal to

    • signal: number

      the Unix signal to send (see signal(7))

    • to_process_group: boolean

      whether to send the signal to the process group of the process

    Returns void

  • Remove a specified datum from the object's data associations, without invoking the association's destroy handler.

    Parameters

    • key: string

      name of the key

    Returns any

    the data if found, or null if no such data exists.

  • This function gets back user data pointers stored via g_object_set_qdata() and removes the data from object without invoking its destroy() function (if any was set). Usually, calling this function is only required to update user data pointers with a destroy notifier, for example:

    void
    object_add_to_user_list (GObject *object,
    const gchar *new_string)
    {
    // the quark, naming the object data
    GQuark quark_string_list = g_quark_from_static_string ("my-string-list");
    // retrieve the old string list
    GList *list = g_object_steal_qdata (object, quark_string_list);

    // prepend new string
    list = g_list_prepend (list, g_strdup (new_string));
    // this changed 'list', so we need to set it again
    g_object_set_qdata_full (object, quark_string_list, list, free_string_list);
    }
    static void
    free_string_list (gpointer data)
    {
    GList *node, *list = data;

    for (node = list; node; node = node->next)
    g_free (node->data);
    g_list_free (list);
    }

    Using g_object_get_qdata() in the above example, instead of g_object_steal_qdata() would have left the destroy function set, and thus the partial string list would have been freed upon g_object_set_qdata_full().

    Parameters

    • quark: number

      A GLib.Quark, naming the user data pointer

    Returns any

    The user data pointer set, or null

  • Reverts the effect of a previous call to g_object_freeze_notify(). The freeze count is decreased on object and when it reaches zero, queued "notify" signals are emitted.

    Duplicate notifications for each property are squashed so that at most one GObject.Object::notify signal is emitted for each property, in the reverse order in which they have been queued.

    It is an error to call this function when the freeze count is zero.

    Returns void

  • Decreases the reference count of object. When its reference count drops to 0, the object is finalized (i.e. its memory is freed).

    If the pointer to the GObject.Object may be reused in future (for example, if it is an instance variable of another object), it is recommended to clear the pointer to null rather than retain a dangling pointer to a potentially invalid GObject.Object instance. Use g_clear_object() for this.

    Returns void

  • Finishes an update-installation request.

    Returns the result in the form of boolean.

    Note that the update may not be completely installed by the time this function is called. You need to listen to the Xdp.Portal::update-progress signal to learn when the installation is complete.

    Parameters

    Returns boolean

    TRUE if the update is being installed

  • the constructed function is called by g_object_new() as the final step of the object creation process. At the point of the call, all construction properties have been set on the object. The purpose of this call is to allow for object initialisation steps that can only be performed after construction properties have been set. constructed implementors should chain up to the constructed call of their parent class to allow it to complete its initialisation.

    Returns void

  • the dispose function is supposed to drop all references to other objects, but keep the instance otherwise intact, so that client method invocations still work. It may be run multiple times (due to reference loops). Before returning, dispose should chain up to the dispose method of the parent class.

    Returns void

  • Initializes the object implementing the interface.

    This method is intended for language bindings. If writing in C, g_initable_new() should typically be used instead.

    The object must be initialized before any real use after initial construction, either with this function or g_async_initable_init_async().

    Implementations may also support cancellation. If cancellable is not null, then initialization can be cancelled by triggering the cancellable object from another thread. If the operation was cancelled, the error Gio.IOErrorEnum.CANCELLED will be returned. If cancellable is not null and the object doesn't support cancellable initialization the error Gio.IOErrorEnum.NOT_SUPPORTED will be returned.

    If the object is not initialized, or initialization returns with an error, then all operations on the object except g_object_ref() and g_object_unref() are considered to be invalid, and have undefined behaviour. See the [description][iface@Gio.Initable#description] for more details.

    Callers should not assume that a class which implements Gio.Initable can be initialized multiple times, unless the class explicitly documents itself as supporting this. Generally, a class’ implementation of init() can assume (and assert) that it will only be called once. Previously, this documentation recommended all Gio.Initable implementations should be idempotent; that recommendation was relaxed in GLib 2.54.

    If a class explicitly supports being initialized multiple times, it is recommended that the method is idempotent: multiple calls with the same arguments should return the same results. Only the first call initializes the object; further calls return the result of the first call.

    One reason why a class might need to support idempotent initialization is if it is designed to be used via the singleton pattern, with a GObject.ObjectClass.constructor that sometimes returns an existing instance. In this pattern, a caller would expect to be able to call g_initable_init() on the result of g_object_new(), regardless of whether it is in fact a new instance.

    Parameters

    Returns boolean

  • Emits a "notify" signal for the property property_name on object.

    When possible, eg. when signaling a property change from within the class that registered the property, you should use g_object_notify_by_pspec() instead.

    Note that emission of the notify signal may be blocked with g_object_freeze_notify(). In this case, the signal emissions are queued and will be emitted (in reverse order) when g_object_thaw_notify() is called.

    Parameters

    Returns void

  • the generic setter for all properties of this type. Should be overridden for every type with properties. If implementations of set_property don't emit property change notification explicitly, this will be done implicitly by the type system. However, if the notify signal is emitted explicitly, the type system will not emit it a second time.

    Parameters

    Returns void

  • This function essentially limits the life time of the closure to the life time of the object. That is, when the object is finalized, the closure is invalidated by calling g_closure_invalidate() on it, in order to prevent invocations of the closure with a finalized (nonexisting) object. Also, g_object_ref() and g_object_unref() are added as marshal guards to the closure, to ensure that an extra reference count is held on object during invocation of the closure. Usually, this function will be called on closures that use this object as closure data.

    Parameters

    Returns void

  • This function tries to determine if the current process is running under a sandbox that requires the use of portals.

    If you need to check error conditions see Portal.running_under_snap.

    Note that these functions are all cached and will always return the same result.

    Returns boolean

Methods - Inherited from GObject

  • Add a property to an interface; this is only useful for interfaces that are added to GObject-derived types. Adding a property to an interface forces all objects classes with that interface to have a compatible property. The compatible property could be a newly created GObject.ParamSpec, but normally g_object_class_override_property() will be used so that the object class only needs to provide an implementation and inherits the property description, default value, bounds, and so forth from the interface property.

    This function is meant to be called from the interface's default vtable initialization function (the class_init member of GObject.TypeInfo.) It must not be called after after class_init has been called for any object types implementing this interface.

    If pspec is a floating reference, it will be consumed.

    Parameters

    Returns void

  • Parameters

    • property_id: number

      the new property ID

    • name: string

      the name of a property registered in a parent class or in an interface of this class.

    Returns void

Interfaces

ConstructorProps
SignalSignatures