Suporte a portal no GTK

O GTK usará de forma transparente portais para algumas funcionalidades quando detectar que está sendo usado dentro de uma sandbox Flatpak. Aqui estão algumas dicas sobre o que os aplicativos GTK devem fazer para se beneficiar disso.

  • Use g_get_user_config_dir(), g_get_user_cache_dir() e g_get_user_data_dir() para encontrar o local certo para armazenar configurações e dados

  • Use GtkFileChooserNative (ou GtkFileChooserButton) para abrir arquivos. A partir do xdg-desktop-portal-gtk 1.7.1 ele também pode abrir diretórios.

  • Use GtkPrintOperation para imprimir

  • Use gtk_show_uri_on_window() ou g_app_info_launch_default_for_uri() para abrir URIs

  • Use gtk_application_inhibit() se você quiser inibir ociosidade ou encerramento de sessão (logout)

  • Use g_application_send_notification() para mostrar notificações

  • Use a propriedade GtkApplication::screensaver-active para monitorar o status da proteção de tela

Além disso, xdg-desktop-portal-gtk é necessário para temas e fontes GTK. Ele também é usado como substituto para o selecionador de arquivos se a implementação principal do xdg-desktop-portal não suportar seleção de arquivos.

Suporte a portal no Qt e KDE

As bibliotecas do Qt e do KDE usarão portais de forma transparente para algumas funcionalidades quando detectarem que estão sendo usadas dentro de uma caixa de areia Flatpak. Aqui estão algumas dicas sobre o que os aplicativos Qt ou KDE devem fazer para se beneficiar disso.

  • Use QDesktopServices::openUrl(const QUrl &url) ou KIO::Krun para abrir URIs ou enviar um e-mail por meio de URL mailto

  • Use a classe QFileDialog para abrir arquivos e, a partir do Qt 5.18.90, diretórios. Evite usar QFileDialog::DontUseNativeDialog. Observe que portais não podem atualmente dar acesso a diretórios no sistema de arquivos host

  • Use KNotification::notify() para mostrar notificação