libportal Reference Manual
Portals
libportal is a library that provides GIO-style async API wrappers for the D-Bus portal APIs in xdg-desktop-portal.
Where possible, applications should prefer to use existing library
APIs that have portal support. For example, a GTK application should
use Gtk.FileChooserNative instead of xdp_portal_open_file()
.
Some portal interfaces are not covered in libportal, since they already have perfectly adequate APIs in GLib (which libportal depends on anyway).
- NetworkMonitor: Use
GNetworkMonitor
- ProxyResolver: Use
GProxyResolver
- Settings: Use a plain
GDBusProxy
- GameMode: Not currently covered
- Secrets: Not currently covered
Accounts
The Accounts portal lets applications query basic information about the user, such as user ID, name and avatar picture.
See xdp_portal_get_user_information()
.
The underlying D-Bus interface is org.freedesktop.portal.Account.
Background
The Background portal lets applications request background permissions such as enabling autostart.
See xdp_portal_request_background()
.
The underlying D-Bus interface is org.freedesktop.portal.Background.
Camera
The Camera portal lets applications access camera devices and open PipeWire remotes for them.
To test if the Camera portal is available, you can use xdp_portal_is_camera_present()
.
See xdp_portal_access_camera()
.
The underlying D-Bus interface is org.freedesktop.portal.Camera.
The Email portal lets applications send email, by prompting the user to compose a message. The email may already have an address, subject, body or attachments.
See xdp_portal_compose_email()
.
The underlying D-Bus interface is org.freedesktop.portal.Email.
File
The File portal lets applications ask the user for access to files outside the sandbox, by presenting a file chooser dialog.
The selected files will be made accessible to the application
via the document portal, and the returned URI will point
into the document portal fuse filesystem in /run/user/$UID/doc/
.
See xdp_portal_open_file()
, xdp_portal_save_file()
, and xdp_portal_save_files()
.
The underlying D-Bus interface is org.freedesktop.portal.FileChooser.
Session
The Session portal lets applications inhibit certain login session state changes, and be informed about the impending end of the session.
A typical use for this functionality is to prevent the session from locking while a video is playing.
See xdp_portal_session_inhibit()
, and xdp_portal_session_monitor_start()
.
The underlying D-Bus interface is org.freedesktop.portal.Inhibit.
Location
The Access portal lets app access to location information.
Location monitoring makes location information available
via the XdpPortal::location-updated
signal.
See xdp_portal_location_monitor_start()
.
The underlying D-Bus interface is org.freedesktop.portal.Location.
Notification
The Notification portal lets applications send desktop notifications.
See xdp_portal_add_notification()
.
The underlying D-Bus interface is org.freedesktop.portal.Notification.
Open URI
The Open URI portal lets applications open URIs in external handlers. A typical example is to open a pdf file in a document viewer.
See xdp_portal_open_uri()
, and xdp_portal_open_directory()
.
The underlying D-Bus interface is org.freedesktop.portal.OpenURI.
The Print portal lets applications send documents to a printer.
See xdp_portal_prepare_print()
, and xdp_portal_print_file()
.
The underlying D-Bus interface is org.freedesktop.portal.Print.
Screencast
The Screencast portal lets applications create screencast sessions.
A screencast session makes the content of a monitor or window available as a PipeWire stream.
See xdp_portal_create_screencast_session()
.
The underlying D-Bus interface is org.freedesktop.portal.ScreenCast.
Remote Desktop
The Remote Desktop portal allows remote control of a session.
A remote desktop session allows to inject events into the input stream.
See xdp_portal_create_remote_desktop_session()
.
The underlying D-Bus interface is org.freedesktop.portal.RemoteDesktop.
Screenshot
The Screenshot portal allows applications to take screenshots or pick colors.
See xdp_portal_take_screenshot()
, and xdp_portal_pick_color()
.
The underlying D-Bus interface is org.freedesktop.portal.Screenshot.
Spawn
The Spawn portal lets applications spawn a process in another copy of their sandbox.
To monitor spawned processes, use the XdpPortal::spawn-exited
signal.
See xdp_portal_spawn()
.
The underlying D-Bus interface is org.freedesktop.portal.Flatpak.
Trash
The Trash portal lets applications send a file to the trash can.
The underlying D-Bus interface is org.freedesktop.portal.Trash.
Updates
The Updates portal lets applications be informed about available software updates (for themselves) and install those updates.
See xdp_portal_update_install()
.
The underlying D-Bus interface is org.freedesktop.portal.Flatpak.
Wallpaper
The Wallpaper portal lets applications set desktop backgrounds.
See xdp_portal_set_wallpaper()
.
The underlying D-Bus interface is org.freedesktop.portal.Wallpaper.