Portal support in GTK🔗
GTK will transparently use portals for some functionality when it detects that it is being used inside a Flatpak sandbox. Here are some hints for what GTK applications should do to benefit from this.
Use
g_get_user_config_dir(),g_get_user_cache_dir()andg_get_user_data_dir()to find the right place to store configuration and dataUse
GtkFileChooserNative(orGtkFileChooserButton) to open files. As of xdg-desktop-portal-gtk 1.7.1 it can also open directories.Use
GtkPrintOperationfor printingUse
gtk_show_uri_on_window()org_app_info_launch_default_for_uri()to open URIsUse
gtk_application_inhibit()if you want to inhibit idle or logoutUse
g_application_send_notification()to show notificationsUse the
GtkApplication::screensaver-activeproperty to monitor scrensaver status
Additionally, xdg-desktop-portal-gtk is required for GTK themes and fonts. It is also used as a fallback for the filepicker if the main xdg-desktop-portal implementation doesn't support filepicking.
Portal support in Qt and KDE🔗
Qt and KDE libraries will transparently use portals for some functionality when they detect that they are being used inside a Flatpak sandbox. Here are some hints for what Qt or KDE applications should do to benefit from this.
Use
QDesktopServices::openUrl(const QUrl &url)orKIO::OpenUrlJobto open URIs or send an email when usingmailtoURLUse
QFileDialogclass to open files and, as of Qt5.18.90, directories. Avoid usingQFileDialog::DontUseNativeDialog.Use
KNotification::notify()to show notification