summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon McVittie <smcv@debian.org>2023-10-26 17:16:27 +0100
committerSimon McVittie <smcv@debian.org>2023-10-26 17:16:27 +0100
commit44aabb66ffdaef8991af1e42367e43e68b1c72da (patch)
treedae1b3d4f09c83e8163a92e1c555b9034fb3470e
parent5a9a28a6401ea244527a07276852b3bbcc1051af (diff)
parent37a6f7c8b8e08b9861f05e172cd4e0d07a832c4d (diff)
New upstream version 1.18.1
-rw-r--r--.github/FUNDING.yml1
-rw-r--r--.github/ISSUE_TEMPLATE/bug-report.yml103
-rw-r--r--.github/ISSUE_TEMPLATE/config.yml5
-rw-r--r--.github/workflows/pages.yml (renamed from .github/workflows/docs.yml)49
-rw-r--r--CONTRIBUTING.md6
-rw-r--r--NEWS28
-rw-r--r--README.md6
-rw-r--r--RELEASE_HOWTO.md2
-rw-r--r--SECURITY.md8
-rw-r--r--data/org.freedesktop.impl.portal.GlobalShortcuts.xml4
-rw-r--r--data/org.freedesktop.impl.portal.ScreenCast.xml12
-rw-r--r--data/org.freedesktop.portal.GlobalShortcuts.xml4
-rw-r--r--data/org.freedesktop.portal.InputCapture.xml19
-rw-r--r--data/org.freedesktop.portal.RemoteDesktop.xml2
-rw-r--r--doc/meson.build12
-rw-r--r--doc/portals.conf.rst.in (renamed from doc/portals-conf.rst)24
-rw-r--r--doc/website/404.md13
-rw-r--r--doc/website/Gemfile33
-rw-r--r--doc/website/Gemfile.lock69
-rw-r--r--doc/website/LICENSE121
-rw-r--r--doc/website/README.md24
-rw-r--r--doc/website/_config.yml14
-rw-r--r--doc/website/_includes/footer.html5
-rw-r--r--doc/website/_includes/head.html28
-rw-r--r--doc/website/_includes/header.html3
-rw-r--r--doc/website/_layouts/default.html18
-rw-r--r--doc/website/apple-touch-icon.pngbin0 -> 9315 bytes
-rw-r--r--doc/website/apple-touch-icon.svg101
-rw-r--r--doc/website/assets/404.pngbin0 -> 578 bytes
-rw-r--r--doc/website/assets/card.pngbin0 -> 38230 bytes
-rw-r--r--doc/website/assets/card.svg175
-rw-r--r--doc/website/assets/docs-button-dark.pngbin0 -> 3271 bytes
-rw-r--r--doc/website/assets/docs-button.pngbin0 -> 3242 bytes
-rw-r--r--doc/website/assets/page-logo-i.svg87
-rw-r--r--doc/website/assets/page-logo.svg87
-rw-r--r--doc/website/assets/readme.pngbin0 -> 14579 bytes
-rw-r--r--doc/website/assets/splash-dark.pngbin0 -> 18735 bytes
-rw-r--r--doc/website/assets/splash.pngbin0 -> 10348 bytes
-rw-r--r--doc/website/favicon.pngbin0 -> 823 bytes
-rw-r--r--doc/website/favicon.svg82
-rw-r--r--doc/website/fonts/Inter.var.woff2bin0 -> 324864 bytes
-rw-r--r--doc/website/index.md111
-rw-r--r--doc/website/style.css498
-rw-r--r--document-portal/document-portal-fuse.c59
-rw-r--r--document-portal/document-portal.c2
-rw-r--r--document-portal/file-transfer.c1
-rw-r--r--meson.build24
-rw-r--r--meson_options.txt8
-rw-r--r--po/be.po14
-rw-r--r--po/ca.po14
-rw-r--r--po/cs.po14
-rw-r--r--po/da.po14
-rw-r--r--po/de.po14
-rw-r--r--po/en_GB.po14
-rw-r--r--po/es.po14
-rw-r--r--po/fr.po14
-rw-r--r--po/gl.po14
-rw-r--r--po/he.po14
-rw-r--r--po/hi.po14
-rw-r--r--po/hr.po14
-rw-r--r--po/hu.po14
-rw-r--r--po/id.po14
-rw-r--r--po/it.po14
-rw-r--r--po/ka.po14
-rw-r--r--po/lt.po14
-rw-r--r--po/nl.po14
-rw-r--r--po/oc.po14
-rw-r--r--po/pl.po14
-rw-r--r--po/pt.po14
-rw-r--r--po/pt_BR.po14
-rw-r--r--po/ro.po14
-rw-r--r--po/ru.po14
-rw-r--r--po/sk.po14
-rw-r--r--po/sr.po14
-rw-r--r--po/sv.po14
-rw-r--r--po/tr.po14
-rw-r--r--po/uk.po14
-rw-r--r--po/zh_CN.po14
-rw-r--r--po/zh_TW.po14
-rw-r--r--src/background.c6
-rw-r--r--src/realtime.c14
-rw-r--r--src/request.c2
-rw-r--r--src/restore-token.c52
-rw-r--r--src/restore-token.h2
-rw-r--r--src/session.c27
-rw-r--r--src/session.h4
-rw-r--r--src/xdg-desktop-portal.c2
-rw-r--r--src/xdp-utils.c7
88 files changed, 2044 insertions, 354 deletions
diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
new file mode 100644
index 0000000..8913bb0
--- /dev/null
+++ b/.github/FUNDING.yml
@@ -0,0 +1 @@
+open_collective: flatpak
diff --git a/.github/ISSUE_TEMPLATE/bug-report.yml b/.github/ISSUE_TEMPLATE/bug-report.yml
new file mode 100644
index 0000000..b519ca3
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug-report.yml
@@ -0,0 +1,103 @@
+---
+name: Bug Report
+description: Report a bug or crash
+labels: bug,
+body:
+- type: input
+ id: distribution
+ attributes:
+ label: "Operating System"
+ description: "Which operating system or Linux distribution are you using?"
+ placeholder: "e.g., Ubuntu 22.04, Arch Linux, FreeBSD"
+ validations:
+ required: true
+
+- type: dropdown
+ id: version
+ attributes:
+ label: "XDG Desktop Portal version"
+ description: "What version of XDG Desktop Portal are you using?"
+ options:
+ - "1.18"
+ - "1.17"
+ - "1.16"
+ - Git
+ - Other
+ validations:
+ required: true
+
+- type: input
+ id: version_other
+ attributes:
+ label: XDG Desktop Portal version (Other)
+ description: "If \"Other\" was selected above, what version of XDG Desktop Portal are you using?"
+ validations:
+ required: false
+
+- type: dropdown
+ id: desktop_environment
+ attributes:
+ label: "Desktop Environment"
+ description: "which desktop environment are you using?"
+ options:
+ - Deepin
+ - Cinnamon / MATE / Xfce
+ - GNOME
+ - KDE
+ - LXQt
+ - Pantheon (elementary OS)
+ - wlroots
+ - Other
+ validations:
+ required: true
+
+- type: input
+ id: desktop_environment_other
+ attributes:
+ label: Desktop Environment (Other)
+ description: "If \"Other\" was selected above, which desktop environment are you using?"
+ validations:
+ required: false
+
+- type: textarea
+ id: expected_behavior
+ attributes:
+ label: Expected Behavior
+ description: "What did you expect to happen?"
+ validations:
+ required: true
+
+- type: textarea
+ id: current_behavior
+ attributes:
+ label: Current Behavior
+ description: "What actually happened?"
+ validations:
+ required: true
+- type: textarea
+ id: steps_to_reproduce
+ attributes:
+ label: Steps to Reproduce
+ description: "How do you trigger this bug? Please walk us through it step by step."
+ placeholder: |
+ 1.
+ 2.
+ 3.
+ ...
+ value: |
+ 1.
+ 2.
+ 3.
+ ...
+ validations:
+ required: true
+
+- type: textarea
+ id: additional_notes
+ attributes:
+ label: Anything else we should know?
+ validations:
+ required: false
+
+---
+
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
new file mode 100644
index 0000000..598d9ff
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -0,0 +1,5 @@
+blank_issues_enabled: false
+contact_links:
+ - name: Help/Support
+ url: https://matrix.to/#/#xdg-desktop-portals:matrix.org
+ about: Questions or issues about how to use and configure xdg-desktop-portal
diff --git a/.github/workflows/docs.yml b/.github/workflows/pages.yml
index d6f5704..ac155b9 100644
--- a/.github/workflows/docs.yml
+++ b/.github/workflows/pages.yml
@@ -1,9 +1,18 @@
-name: Documentation
+name: Documentation & Website
on: [push, pull_request]
+permissions:
+ contents: read
+ pages: write
+ id-token: write
+
+concurrency:
+ group: "pages"
+ cancel-in-progress: false
+
jobs:
- docs:
+ build:
runs-on: ubuntu-20.04
container:
image: ubuntu:22.04
@@ -54,18 +63,32 @@ jobs:
meson setup builddir -Ddocbook-docs=enabled
meson compile -C builddir
+ - name: Build website
+ uses: actions/jekyll-build-pages@v1
+ with:
+ source: ./doc/website
+ destination: ./_site
+
- name: Prepare docs
working-directory: builddir/doc
run: |
- mkdir published-docs
- mv portal-docs.html ./published-docs/index.html
- mv redirect.html ./published-docs/portal-docs.html
- mv docbook.css ./published-docs
+ mkdir ../../_site/docs/
+ mv portal-docs.html ../../_site/docs/index.html
+ mv redirect.html ../../_site/docs/portal-docs.html
+ mv docbook.css ../../_site/docs/
- - name: Deploy docs
- uses: peaceiris/actions-gh-pages@v3
- if: ${{ (github.event_name == 'push' && github.ref == 'refs/heads/main') }}
- with:
- github_token: ${{ secrets.GITHUB_TOKEN }}
- publish_dir: ./builddir/doc/published-docs/
- destination_dir: ./
+ - name: Upload artifact
+ uses: actions/upload-pages-artifact@v2
+
+ # Deployment job
+ deploy:
+ environment:
+ name: github-pages
+ url: ${{ steps.deployment.outputs.page_url }}
+ runs-on: ubuntu-latest
+ needs: build
+ if: ${{ (github.event_name == 'push' && github.ref == 'refs/heads/main') }}
+ steps:
+ - name: Deploy to GitHub Pages
+ id: deployment
+ uses: actions/deploy-pages@v2
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 0540ba3..9f1ba24 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -31,6 +31,12 @@ $ meson setup . _build
$ meson compile -C _build
```
+Some distributions install portal configuration files in `/usr`, while Meson
+defaults to the prefix `/usr/local`. If the portal configuration files in your
+distribution are in `/usr/share/xdg-desktop-portal/portals`, re-configure
+Meson using `meson setup --reconfigure . _build --prefix /usr` and compile
+again.
+
### Running
xdg-desktop-portal needs to own the D-Bus name and replace the user session
diff --git a/NEWS b/NEWS
index 90c9300..e57ae5c 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,31 @@
+Changes in 1.18.1
+=================
+Released: 2023-10-26
+
+- Communicate better when the Background portal kills an app
+- Properly quote Flatpak command in the Background portal
+- Improve documentation of the "cursor_mode" propery of the ScreenCast
+ backend D-Bus interface
+- Fix ScreenCast portal removing transient restore permissions too early.
+ This fixes screen sharing dialogs on Chromium asking for the screen multiple
+ times.
+- Only send the Closed session signal to the sender
+- Add Meson options to disable building with Bubblewrap, and without the
+ Flatpak portal documentation. Disabling Bubblewrap is **highly** discouraged,
+ and only meant to be used on platforms that do not currently support it. By
+ disabling Bubblewrap, bitmap validation happens without a sandbox, which is
+ highly insecure since image parsing is a common source of exploits. Really,
+ just do not disable Bubblewrap please.
+- Improve the manpage of portals.conf
+- Various spelling fixes to the Document portal
+- Add a new website! We don't have a fancy domain yet, but the website can be
+ accessed at https://flatpak.github.io/xdg-desktop-portal/
+- Improve pid mapping for host system apps. This should get rid of some rare,
+ unnecessary warnings.
+- Adjust documentation of Global Shortcuts portal's timestamps to millisecond
+ granularity
+- Bump minimum Meson version to 0.58
+
Changes in 1.18.0
=================
Released: 2023-09-18
diff --git a/README.md b/README.md
index 62c7225..b77c553 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,5 @@
+![Portals](doc/website/assets/readme.png)
+
# xdg-desktop-portal
A portal frontend service for [Flatpak](http://www.flatpak.org) and possibly
@@ -11,7 +13,7 @@ The portal interfaces include APIs for file access, opening URIs, printing
and others.
Documentation for the available D-Bus interfaces can be found
-[here](https://flatpak.github.io/xdg-desktop-portal/portal-docs.html).
+[here](https://flatpak.github.io/xdg-desktop-portal/docs/).
## Version numbering
@@ -44,7 +46,7 @@ Here are some examples of available backends:
- GNOME [xdg-desktop-portal-gnome](https://gitlab.gnome.org/GNOME/xdg-desktop-portal-gnome/)
- KDE [xdg-desktop-portal-kde](https://invent.kde.org/plasma/xdg-desktop-portal-kde)
- LXQt [xdg-desktop-portal-lxqt](https://github.com/lxqt/xdg-desktop-portal-lxqt)
-- Pantheon (Elementary) [xdg-desktop-portal-pantheon](https://github.com/elementary/portals)
+- Pantheon (elementary OS) [xdg-desktop-portal-pantheon](https://github.com/elementary/portals)
- wlroots [xdg-desktop-portal-wlr](https://github.com/emersion/xdg-desktop-portal-wlr)
- Deepin [xdg-desktop-portal-dde](https://github.com/linuxdeepin/xdg-desktop-portal-dde)
- Xapp (Cinnamon, MATE, Xfce) [xdg-desktop-portal-xapp](https://github.com/linuxmint/xdg-desktop-portal-xapp)
diff --git a/RELEASE_HOWTO.md b/RELEASE_HOWTO.md
index 7b27d70..167baca 100644
--- a/RELEASE_HOWTO.md
+++ b/RELEASE_HOWTO.md
@@ -17,3 +17,5 @@
- bump version in meson.build
- git commit -m "Post-release version bump"
- git push origin main
+ - Update SECURITY.md if this is a new stable release
+ - Update .github/ISSUE_TEMPLATE/bug-report.yml if this is a new stable release
diff --git a/SECURITY.md b/SECURITY.md
index 5ead55b..58395ef 100644
--- a/SECURITY.md
+++ b/SECURITY.md
@@ -10,7 +10,7 @@ please check
| Version | Supported | Status
| -------- | ------------------ | ------------------------------------------------------------- |
-| 1.17.x | :white_check_mark: | Development branch, releases may include non-security changes |
-| 1.16.x | :white_check_mark: | Stable branch, recommended for use in distributions |
-| 1.14.x | :white_check_mark: | Old stable branch, still maintained |
-| <= 1.12.x | :x: | Older branches, no longer supported |
+| 1.19.x | :white_check_mark: | Development branch, releases may include non-security changes |
+| 1.18.x | :white_check_mark: | Stable branch, recommended for use in distributions |
+| 1.16.x | :white_check_mark: | Old stable branch, still maintained |
+| <= 1.14.x | :x: | Older branches, no longer supported |
diff --git a/data/org.freedesktop.impl.portal.GlobalShortcuts.xml b/data/org.freedesktop.impl.portal.GlobalShortcuts.xml
index 01018e9..fb33ee1 100644
--- a/data/org.freedesktop.impl.portal.GlobalShortcuts.xml
+++ b/data/org.freedesktop.impl.portal.GlobalShortcuts.xml
@@ -124,7 +124,7 @@
Activated:
@session_handle: Session that requested the shortcut
@shortcut_id: the application-provided ID for the notification
- @timestamp: The timestamp, as seconds and microseconds since the Unix epoch.
+ @timestamp: the time of activation with millisecond granularity, with an undefined base.
@options: Vardict with optional further information
Emitted when a shortcut is activated.
@@ -141,7 +141,7 @@
Deactivated:
@session_handle: Session that requested the shortcut
@shortcut_id: the application-provided ID for the notification
- @timestamp: The timestamp, as seconds and microseconds since the Unix epoch.
+ @timestamp: the time of deactivation with millisecond granularity, with an undefined base.
@options: Vardict with optional further information
Emitted when a shortcut is deactivated.
diff --git a/data/org.freedesktop.impl.portal.ScreenCast.xml b/data/org.freedesktop.impl.portal.ScreenCast.xml
index 7856173..2bf7803 100644
--- a/data/org.freedesktop.impl.portal.ScreenCast.xml
+++ b/data/org.freedesktop.impl.portal.ScreenCast.xml
@@ -83,6 +83,18 @@
</para></listitem>
</varlistentry>
<varlistentry>
+ <term>cursor_mode u</term>
+ <listitem><para>
+ Determines how the cursor will be drawn in the screen cast stream. It must be
+ one of the cursor modes advertised in
+ #org.freedesktop.portal.impl.ScreenCast.AvailableCursorModes. Setting a cursor
+ mode not advertised will cause the screen cast session to be closed. The default
+ cursor mode is 'Hidden'.
+
+ This option was added in version 2 of this interface.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
<term>restore_data (suv)</term>
<listitem><para>
The data to restore from a previous session.
diff --git a/data/org.freedesktop.portal.GlobalShortcuts.xml b/data/org.freedesktop.portal.GlobalShortcuts.xml
index 1fc2b0a..2d77e36 100644
--- a/data/org.freedesktop.portal.GlobalShortcuts.xml
+++ b/data/org.freedesktop.portal.GlobalShortcuts.xml
@@ -216,7 +216,7 @@
Activated:
@session_handle: Session that requested the shortcut
@shortcut_id: the application-provided ID for the notification
- @timestamp: The timestamp, as seconds and microseconds since the Unix epoch.
+ @timestamp: the time of activation with millisecond granularity, with an undefined base.
@options: Vardict with optional further information
Notifies about a shortcut becoming active.
@@ -233,7 +233,7 @@
Deactivated:
@session_handle: Session that requested the shortcut
@shortcut_id: the application-provided ID for the notification
- @timestamp: The timestamp, as seconds and microseconds since the Unix epoch.
+ @timestamp: the time of deactivation with millisecond granularity, with an undefined base.
@options: Vardict with optional further information
Notifies that a shortcut is not active anymore.
diff --git a/data/org.freedesktop.portal.InputCapture.xml b/data/org.freedesktop.portal.InputCapture.xml
index 2b068a9..b12ce9b 100644
--- a/data/org.freedesktop.portal.InputCapture.xml
+++ b/data/org.freedesktop.portal.InputCapture.xml
@@ -205,8 +205,11 @@
(from compositor-determined input devices) are sent to the application
via the transport layer.
- Pointer barriers are situated on the top or left of their respective pixels and a
- pointer barrier must be situated at the outside boundary of the union of all zones.
+ Pointer barriers are situated on the top (for horizontal barriers) or left
+ (for vertical barriers) edge of their respective pixels and their width or height
+ is inclusive each pixel's width or height. In other words, a barrier spanning
+ x1=0, x2=1 is exactly two pixels wide. A pointer barrier must be situated at the
+ outside boundary of the union of all zones.
A pointer barrier must be fully contained within one zone.
For example, consider two zones of size 1920x1080 with offsets
@@ -214,12 +217,12 @@
The following pointer barriers are permitted:
<itemizedlist>
- <listitem><para>top edge of left screen: <literal>x1=0,y1=0,x2=1920,y1=0</literal></para></listitem>
- <listitem><para>bottom edge of left screen: <literal>x1=0,y1=1080,x2=1920,y1=1080</literal></para></listitem>
- <listitem><para>top edge of right screen: <literal>x1=1920,y1=0,x2=3840,y1=0</literal></para></listitem>
- <listitem><para>bottom edge of right screen: <literal>x1=1920,y1=1080,x2=3840,y1=1080</literal></para></listitem>
- <listitem><para>left edge of left screen: <literal>x1=0,y1=0,x2=0,y1=1920</literal></para></listitem>
- <listitem><para>right edge of right screen: <literal>x1=3840,y1=0,x2=3840,y1=1920</literal></para></listitem>
+ <listitem><para>top edge of left screen: <literal>x1=0,y1=0,x2=1919,y1=0</literal></para></listitem>
+ <listitem><para>bottom edge of left screen: <literal>x1=0,y1=1080,x2=1919,y1=1080</literal></para></listitem>
+ <listitem><para>top edge of right screen: <literal>x1=1920,y1=0,x2=3839,y1=0</literal></para></listitem>
+ <listitem><para>bottom edge of right screen: <literal>x1=1920,y1=1080,x2=3839,y1=1080</literal></para></listitem>
+ <listitem><para>left edge of left screen: <literal>x1=0,y1=0,x2=0,y1=1079</literal></para></listitem>
+ <listitem><para>right edge of right screen: <literal>x1=3840,y1=0,x2=3840,y1=1079</literal></para></listitem>
</itemizedlist>
A pointer barrier is considered triggered when the pointer would
diff --git a/data/org.freedesktop.portal.RemoteDesktop.xml b/data/org.freedesktop.portal.RemoteDesktop.xml
index ec0e094..9ef6671 100644
--- a/data/org.freedesktop.portal.RemoteDesktop.xml
+++ b/data/org.freedesktop.portal.RemoteDesktop.xml
@@ -41,7 +41,7 @@
method together with certain methods on the #org.freedesktop.portal.ScreenCast and
#org.freedesktop.portal.Clipboard interfaces. Specifically, you can call
org.freedesktop.portal.ScreenCast.SelectSources() to also get screen content,
- and org.freedesktop.portal.ScreenCast.OpenPipewireRemote() to acquire a file
+ and org.freedesktop.portal.ScreenCast.OpenPipeWireRemote() to acquire a file
descriptor for a PipeWire remote. See #org.freedesktop.portal.ScreenCast for
more information on how to use those methods. To capture clipboard content,
you can call org.freedesktop.portal.Clipboard.RequestClipboard(). See
diff --git a/doc/meson.build b/doc/meson.build
index 099f537..97c5af6 100644
--- a/doc/meson.build
+++ b/doc/meson.build
@@ -39,16 +39,24 @@ if build_docbook
endif
if rst2man.found()
+ manpage_conf = configuration_data()
+ manpage_conf.set('DATADIR', datadir)
+ manpage_conf.set('SYSCONFDIR', sysconfdir)
+
rst2man_flags = [
'--syntax-highlight=none',
]
man_pages = [
- { 'input': 'portals-conf.rst', 'output': 'portals.conf', 'section': '5' },
+ { 'input': 'portals.conf.rst.in', 'output': 'portals.conf', 'section': '5' },
]
foreach man_page: man_pages
- man_input = man_page.get('input')
+ man_input = configure_file(
+ input: man_page.get('input'),
+ output: man_page.get('input').split('.in').get(0),
+ configuration: manpage_conf,
+ )
man_output = man_page.get('output', man_input)
man_section = man_page.get('section', '1')
man_full = '@0@.@1@'.format(man_output, man_section)
diff --git a/doc/portals-conf.rst b/doc/portals.conf.rst.in
index ddb0875..5b2a045 100644
--- a/doc/portals-conf.rst
+++ b/doc/portals.conf.rst.in
@@ -1,5 +1,3 @@
-.. _portals.conf(5):
-
============
portals.conf
============
@@ -8,8 +6,28 @@ portals.conf
XDG desktop portal configuration
--------------------------------
+:Manual section: 5
+:Manual group: File Formats Manual
+
+.. _synopsis:
+
+SYNOPSIS
+========
+
+*$XDG_CONFIG_HOME/xdg-desktop-portal/{\*-}portals.conf*
+
+*$XDG_CONFIG_DIRS/xdg-desktop-portal/{\*-}portals.conf*
+
+*@SYSCONFDIR@/xdg-desktop-portal/{\*-}portals.conf*
+
+*$XDG_DATA_HOME/xdg-desktop-portal/{\*-}portals.conf*
+
+*$XDG_DATA_DIRS/xdg-desktop-portal/{\*-}portals.conf*
+
+*@DATADIR@/xdg-desktop-portal/{\*-}portals.conf*
+
DESCRIPTION
------------
+===========
xdg-desktop-portal uses a configuration file to determine which portal backend
should be used to provide the implementation for the requested interface.
diff --git a/doc/website/404.md b/doc/website/404.md
new file mode 100644
index 0000000..ebadb3b
--- /dev/null
+++ b/doc/website/404.md
@@ -0,0 +1,13 @@
+---
+layout: default
+permalink: /404.html
+---
+
+![404]({{site.baseurl}}/assets/404.png){:.full.pixels}
+
+# Document Not Found
+
+The requested page could not be found. If you feel this is not normal, then you create an issue on the Gitlab.
+
+[Go Back](<javascript:window.history.go(-1);>){: .inline-button} [File an issue]({{site.issuesurl}})
+{: .dialog-buttons}
diff --git a/doc/website/Gemfile b/doc/website/Gemfile
new file mode 100644
index 0000000..9a32468
--- /dev/null
+++ b/doc/website/Gemfile
@@ -0,0 +1,33 @@
+source "https://rubygems.org"
+
+# Hello! This is where you manage which Jekyll version is used to run.
+# When you want to use a different version, change it below, save the
+# file and run `bundle install`. Run Jekyll with `bundle exec`, like so:
+#
+# bundle exec jekyll serve
+#
+# This will help ensure the proper Jekyll version is running.
+# Happy Jekylling!
+gem "jekyll", "~> 4.1.0"
+
+# This is the default theme for new Jekyll sites. You may change this to anything you like.
+
+# If you want to use GitHub Pages, remove the "gem "jekyll"" above and
+# uncomment the line below. To upgrade, run `bundle update github-pages`.
+# gem "github-pages", group: :jekyll_plugins
+
+# If you have any plugins, put them here!
+group :jekyll_plugins do
+# gem 'jekyll-feed', '~> 0.13'
+# gem 'jekyll-sitemap', '~> 1.4'
+# gem 'jekyll-compose', '~> 0.12.0'
+# gem 'jekyll-postfiles', '~> 3.1'
+end
+
+# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
+# gem "tzinfo-data", platforms: [:mingw, :mswin, :x64_mingw, :jruby]
+
+# Performance-booster for watching directories on Windows
+# gem "wdm", "~> 0.1.0" if Gem.win_platform?
+
+gem "webrick", "~> 1.8"
diff --git a/doc/website/Gemfile.lock b/doc/website/Gemfile.lock
new file mode 100644
index 0000000..0ce7bec
--- /dev/null
+++ b/doc/website/Gemfile.lock
@@ -0,0 +1,69 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ addressable (2.8.0)
+ public_suffix (>= 2.0.2, < 5.0)
+ colorator (1.1.0)
+ concurrent-ruby (1.1.9)
+ em-websocket (0.5.2)
+ eventmachine (>= 0.12.9)
+ http_parser.rb (~> 0.6.0)
+ eventmachine (1.2.7)
+ ffi (1.15.4)
+ forwardable-extended (2.6.0)
+ http_parser.rb (0.6.0)
+ i18n (1.8.10)
+ concurrent-ruby (~> 1.0)
+ jekyll (4.1.1)
+ addressable (~> 2.4)
+ colorator (~> 1.0)
+ em-websocket (~> 0.5)
+ i18n (~> 1.0)
+ jekyll-sass-converter (~> 2.0)
+ jekyll-watch (~> 2.0)
+ kramdown (~> 2.1)
+ kramdown-parser-gfm (~> 1.0)
+ liquid (~> 4.0)
+ mercenary (~> 0.4.0)
+ pathutil (~> 0.9)
+ rouge (~> 3.0)
+ safe_yaml (~> 1.0)
+ terminal-table (~> 1.8)
+ jekyll-sass-converter (2.1.0)
+ sassc (> 2.0.1, < 3.0)
+ jekyll-watch (2.2.1)
+ listen (~> 3.0)
+ kramdown (2.3.1)
+ rexml
+ kramdown-parser-gfm (1.1.0)
+ kramdown (~> 2.0)
+ liquid (4.0.3)
+ listen (3.7.0)
+ rb-fsevent (~> 0.10, >= 0.10.3)
+ rb-inotify (~> 0.9, >= 0.9.10)
+ mercenary (0.4.0)
+ pathutil (0.16.2)
+ forwardable-extended (~> 2.6)
+ public_suffix (4.0.6)
+ rb-fsevent (0.11.0)
+ rb-inotify (0.10.1)
+ ffi (~> 1.0)
+ rexml (3.2.5)
+ rouge (3.26.1)
+ safe_yaml (1.0.5)
+ sassc (2.4.0)
+ ffi (~> 1.9)
+ terminal-table (1.8.0)
+ unicode-display_width (~> 1.1, >= 1.1.1)
+ unicode-display_width (1.8.0)
+ webrick (1.8.1)
+
+PLATFORMS
+ x86_64-linux
+
+DEPENDENCIES
+ jekyll (~> 4.1.0)
+ webrick (~> 1.8)
+
+BUNDLED WITH
+ 2.2.7
diff --git a/doc/website/LICENSE b/doc/website/LICENSE
new file mode 100644
index 0000000..0e259d4
--- /dev/null
+++ b/doc/website/LICENSE
@@ -0,0 +1,121 @@
+Creative Commons Legal Code
+
+CC0 1.0 Universal
+
+ CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
+ LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
+ ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
+ INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
+ REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
+ PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
+ THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED
+ HEREUNDER.
+
+Statement of Purpose
+
+The laws of most jurisdictions throughout the world automatically confer
+exclusive Copyright and Related Rights (defined below) upon the creator
+and subsequent owner(s) (each and all, an "owner") of an original work of
+authorship and/or a database (each, a "Work").
+
+Certain owners wish to permanently relinquish those rights to a Work for
+the purpose of contributing to a commons of creative, cultural and
+scientific works ("Commons") that the public can reliably and without fear
+of later claims of infringement build upon, modify, incorporate in other
+works, reuse and redistribute as freely as possible in any form whatsoever
+and for any purposes, including without limitation commercial purposes.
+These owners may contribute to the Commons to promote the ideal of a free
+culture and the further production of creative, cultural and scientific
+works, or to gain reputation or greater distribution for their Work in
+part through the use and efforts of others.
+
+For these and/or other purposes and motivations, and without any
+expectation of additional consideration or compensation, the person
+associating CC0 with a Work (the "Affirmer"), to the extent that he or she
+is an owner of Copyright and Related Rights in the Work, voluntarily
+elects to apply CC0 to the Work and publicly distribute the Work under its
+terms, with knowledge of his or her Copyright and Related Rights in the
+Work and the meaning and intended legal effect of CC0 on those rights.
+
+1. Copyright and Related Rights. A Work made available under CC0 may be
+protected by copyright and related or neighboring rights ("Copyright and
+Related Rights"). Copyright and Related Rights include, but are not
+limited to, the following:
+
+ i. the right to reproduce, adapt, distribute, perform, display,
+ communicate, and translate a Work;
+ ii. moral rights retained by the original author(s) and/or performer(s);
+iii. publicity and privacy rights pertaining to a person's image or
+ likeness depicted in a Work;
+ iv. rights protecting against unfair competition in regards to a Work,
+ subject to the limitations in paragraph 4(a), below;
+ v. rights protecting the extraction, dissemination, use and reuse of data
+ in a Work;
+ vi. database rights (such as those arising under Directive 96/9/EC of the
+ European Parliament and of the Council of 11 March 1996 on the legal
+ protection of databases, and under any national implementation
+ thereof, including any amended or successor version of such
+ directive); and
+vii. other similar, equivalent or corresponding rights throughout the
+ world based on applicable law or treaty, and any national
+ implementations thereof.
+
+2. Waiver. To the greatest extent permitted by, but not in contravention
+of, applicable law, Affirmer hereby overtly, fully, permanently,
+irrevocably and unconditionally waives, abandons, and surrenders all of
+Affirmer's Copyright and Related Rights and associated claims and causes
+of action, whether now known or unknown (including existing as well as
+future claims and causes of action), in the Work (i) in all territories
+worldwide, (ii) for the maximum duration provided by applicable law or
+treaty (including future time extensions), (iii) in any current or future
+medium and for any number of copies, and (iv) for any purpose whatsoever,
+including without limitation commercial, advertising or promotional
+purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each
+member of the public at large and to the detriment of Affirmer's heirs and
+successors, fully intending that such Waiver shall not be subject to
+revocation, rescission, cancellation, termination, or any other legal or
+equitable action to disrupt the quiet enjoyment of the Work by the public
+as contemplated by Affirmer's express Statement of Purpose.
+
+3. Public License Fallback. Should any part of the Waiver for any reason
+be judged legally invalid or ineffective under applicable law, then the
+Waiver shall be preserved to the maximum extent permitted taking into
+account Affirmer's express Statement of Purpose. In addition, to the
+extent the Waiver is so judged Affirmer hereby grants to each affected
+person a royalty-free, non transferable, non sublicensable, non exclusive,
+irrevocable and unconditional license to exercise Affirmer's Copyright and
+Related Rights in the Work (i) in all territories worldwide, (ii) for the
+maximum duration provided by applicable law or treaty (including future
+time extensions), (iii) in any current or future medium and for any number
+of copies, and (iv) for any purpose whatsoever, including without
+limitation commercial, advertising or promotional purposes (the
+"License"). The License shall be deemed effective as of the date CC0 was
+applied by Affirmer to the Work. Should any part of the License for any
+reason be judged legally invalid or ineffective under applicable law, such
+partial invalidity or ineffectiveness shall not invalidate the remainder
+of the License, and in such case Affirmer hereby affirms that he or she
+will not (i) exercise any of his or her remaining Copyright and Related
+Rights in the Work or (ii) assert any associated claims and causes of
+action with respect to the Work, in either case contrary to Affirmer's
+express Statement of Purpose.
+
+4. Limitations and Disclaimers.
+
+ a. No trademark or patent rights held by Affirmer are waived, abandoned,
+ surrendered, licensed or otherwise affected by this document.
+ b. Affirmer offers the Work as-is and makes no representations or
+ warranties of any kind concerning the Work, express, implied,
+ statutory or otherwise, including without limitation warranties of
+ title, merchantability, fitness for a particular purpose, non
+ infringement, or the absence of latent or other defects, accuracy, or
+ the present or absence of errors, whether or not discoverable, all to
+ the greatest extent permissible under applicable law.
+ c. Affirmer disclaims responsibility for clearing rights of other persons
+ that may apply to the Work or any use thereof, including without
+ limitation any person's Copyright and Related Rights in the Work.
+ Further, Affirmer disclaims responsibility for obtaining any necessary
+ consents, permissions or other rights required for any use of the
+ Work.
+ d. Affirmer understands and acknowledges that Creative Commons is not a
+ party to this document and has no duty or obligation with respect to
+ this CC0 or use of the Work.
diff --git a/doc/website/README.md b/doc/website/README.md
new file mode 100644
index 0000000..fadfd96
--- /dev/null
+++ b/doc/website/README.md
@@ -0,0 +1,24 @@
+# XDG Desktop Portal Website
+
+This is the website for the [XDG Desktop Portal project](https://github.com/flatpak/xdg-desktop-portal).
+
+## Setup
+
+The process of setting up the site locally consists of:
+
+- Install ruby [gem bundler](https://bundler.io/). On [Fedora](https://getfedora.org/)/in the [Toolbx](https://containertoolbx.org) you do:
+
+```
+toolbox enter
+sudo dnf install rubygem-bundler
+cd xdg-desktop-portal/doc/website
+bundle install
+```
+
+
+- Test the site locally:
+```
+bundle exec jekyll s
+```
+
+- `git commit` your changes and create a merge request. After review, the merged changes get automaticaly deployed to the site.
diff --git a/doc/website/_config.yml b/doc/website/_config.yml
new file mode 100644
index 0000000..c5c537f
--- /dev/null
+++ b/doc/website/_config.yml
@@ -0,0 +1,14 @@
+# Site settings
+title: XDG Desktop Portal
+baseurl: "/xdg-desktop-portal" # the subpath of your site, e.g. /blog/
+ # usually empty. necessary for building absolute URIs
+ # for metadata header
+url: "https://flatpak.github.io" # the base hostname & protocol for your site
+sourceurl: "https://github.com/flatpak/xdg-desktop-portal/tree/main/doc/website" # "edit this website" link in the footer
+description: ""
+issuesurl: "https://github.com/flatpak/xdg-desktop-portal/issues" # issue tracker for website
+permalink: /:title/
+primary-color: "#26a269" #used in ios theme. further color customization in style.css
+
+# Build settings
+markdown: kramdown
diff --git a/doc/website/_includes/footer.html b/doc/website/_includes/footer.html
new file mode 100644
index 0000000..eacba4e
--- /dev/null
+++ b/doc/website/_includes/footer.html
@@ -0,0 +1,5 @@
+<footer class="site-footer">
+ <p>&copy; {{ site.title }}, 2023</p>
+
+ <p><a href="{{ site.sourceurl }}">Website source</a></p>
+</footer>
diff --git a/doc/website/_includes/head.html b/doc/website/_includes/head.html
new file mode 100644
index 0000000..90fc0b2
--- /dev/null
+++ b/doc/website/_includes/head.html
@@ -0,0 +1,28 @@
+<head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <meta name="theme-color" content="{{ site.primary-color }}"><!-- primary color -->
+
+ <title>{% if page.title %}{{ page.title }}{% else %}{{ site.title }}{% endif %}</title>
+
+ <link rel="canonical" href="{{ page.url | replace:'index.html','' | prepend: site.baseurl | prepend: site.url }}" />
+ <link rel="alternate" type="application/rss+xml" title="{{ site.title }}" href="{{ "/feed.xml" | prepend: site.baseurl | prepend: site.url }}" />
+
+ <link rel="stylesheet" href="{{ "/style.css" | prepend: site.baseurl }}" />
+
+ <link rel="icon" type="image/png" href="{{ "/favicon.png" | prepend: site.baseurl }}" />
+ <link rel="apple-touch-icon" sizes="180x180" href="{{ "/apple-touch-icon.png" | prepend: site.baseurl }}" />
+
+ <!-- Twitter -->
+ <meta property="twitter:title" content="{{site.title}}" />
+ <meta property="twitter:image" content="{{ "/assets/card.png" | prepend: site.baseurl | prepend: site.url }}" />
+ <meta property="twitter:card" content="summary_large_image" />
+ <meta property="twitter:description" content="{{site.description}}" />
+
+ <!-- Open Graph -->
+ <meta property="og:title" content="{{ site.title }}" />
+ <meta property="og:url" content="{{ site.url }}" />
+ <meta property="og:description" content="{{ site.description }}" />
+ <meta property="og:image" content="{{ "/assets/card.png" | prepend: site.baseurl | prepend: site.url }}" />
+</head>
diff --git a/doc/website/_includes/header.html b/doc/website/_includes/header.html
new file mode 100644
index 0000000..4ff8aaa
--- /dev/null
+++ b/doc/website/_includes/header.html
@@ -0,0 +1,3 @@
+<header class="site-header">
+ <h1 id="logo"><a href="{{ "/" | prepend: site.baseurl }}">{{ site.title }}</a></h1>
+</header>
diff --git a/doc/website/_layouts/default.html b/doc/website/_layouts/default.html
new file mode 100644
index 0000000..672aa0c
--- /dev/null
+++ b/doc/website/_layouts/default.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+
+ {% include head.html %}
+
+ <body>
+
+ {% include header.html %}
+
+ <div class="container">
+ {{ content }}
+ </div>
+
+ {% include footer.html %}
+
+ </body>
+
+</html>
diff --git a/doc/website/apple-touch-icon.png b/doc/website/apple-touch-icon.png
new file mode 100644
index 0000000..72fc757
--- /dev/null
+++ b/doc/website/apple-touch-icon.png
Binary files differ
diff --git a/doc/website/apple-touch-icon.svg b/doc/website/apple-touch-icon.svg
new file mode 100644
index 0000000..9256868
--- /dev/null
+++ b/doc/website/apple-touch-icon.svg
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="180"
+ height="180"
+ version="1.1"
+ id="svg14"
+ sodipodi:docname="apple-touch-icon.svg"
+ inkscape:version="1.3 (0e150ed6c4, 2023-07-21)"
+ inkscape:export-filename="apple-touch-icon.png"
+ inkscape:export-xdpi="96"
+ inkscape:export-ydpi="96"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:dc="http://purl.org/dc/elements/1.1/">
+ <metadata
+ id="metadata20">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs18" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ id="namedview16"
+ showgrid="true"
+ inkscape:zoom="1.0603119"
+ inkscape:cx="142.64289"
+ inkscape:cy="33.052005"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg14"
+ inkscape:document-rotation="0"
+ inkscape:snap-object-midpoints="true"
+ inkscape:pagecheckerboard="1"
+ inkscape:showpageshadow="0"
+ inkscape:deskcolor="#d1d1d1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid52"
+ originx="-0.0087961219"
+ originy="-0.0049772212"
+ spacingy="1"
+ spacingx="1"
+ units="px"
+ visible="true" />
+ </sodipodi:namedview>
+ <rect
+ style="fill:#f6d32d;stroke:none;stroke-width:2;stroke-linecap:round;paint-order:markers stroke fill;fill-opacity:1"
+ id="rect1"
+ width="180"
+ height="180"
+ x="-0.0087961219"
+ y="-0.0049772211"
+ rx="3.0000076"
+ ry="3.0000076" />
+ <g
+ id="g4-3"
+ inkscape:label="portal xdg freedesktop aperture science"
+ transform="matrix(10.084969,0,0,10.084969,-6767.7783,-3701.9483)"
+ style="fill:#000000">
+ <title
+ id="title2">xdg-portal</title>
+ <rect
+ y="368"
+ x="671.99994"
+ height="16"
+ width="16"
+ id="rect2-6"
+ style="fill:none" />
+ <path
+ style="color:#000000;fill:#000000;stroke-linecap:round;-inkscape-stroke:none;paint-order:markers stroke fill"
+ d="m 743.46875,-221.62109 c -1.92109,0 -3.42383,1.66654 -3.42383,3.61132 v 6.0918 c 0,1.94479 1.50274,3.61133 3.42383,3.61133 h 6.46484 c 1.92109,0 3.42383,-1.66654 3.42383,-3.61133 v -6.0918 c 0,-1.94478 -1.50274,-3.61132 -3.42383,-3.61132 z m 0,2 h 6.46484 c 0.76512,0 1.42383,0.66327 1.42383,1.61132 v 6.0918 c 0,0.94805 -0.65871,1.61133 -1.42383,1.61133 h -6.46484 c -0.76511,0 -1.42383,-0.66328 -1.42383,-1.61133 v -6.0918 c 0,-0.94805 0.65872,-1.61132 1.42383,-1.61132 z"
+ id="rect8"
+ transform="rotate(45)" />
+ <path
+ style="color:#000000;opacity:1;fill:#000000;fill-rule:evenodd;stroke-width:0.832109;stroke-linecap:round;-inkscape-stroke:none"
+ d="m 680.29396,371.18645 c -1.30513,-0.0914 -2.63994,0.30838 -3.67623,1.25142 -1.85606,1.68902 -2.10977,4.67185 -0.37217,6.55448 1.53794,1.66631 4.23802,1.8872 5.9304,0.29741 1.47637,-1.38687 1.66557,-3.80461 0.22265,-5.30632 -1.23582,-1.28617 -3.37348,-1.44374 -4.68386,-0.14627 -1.0956,1.08482 -1.22093,2.94343 -0.0666,4.06141 0.93392,0.90452 2.51699,0.99723 3.44058,-0.0179 0.7127,-0.78334 0.76996,-2.09652 -0.11377,-2.82137 -0.31699,-0.26001 -0.7177,-0.38946 -1.1214,-0.36893 -0.4037,0.0205 -0.8255,0.21265 -1.08239,0.59808 -0.16449,0.24681 -0.22985,0.53729 -0.1869,0.83699 0.0429,0.29969 0.25013,0.63735 0.60621,0.75897 0.26803,0.0915 0.42549,0.0409 0.62733,-0.0715 0.10091,-0.0562 0.22585,-0.14782 0.28603,-0.32992 0.0602,-0.1821 -0.007,-0.40468 -0.10726,-0.52982 a 0.41605426,0.41605426 0 0 0 -0.56395,-0.0634 c 0.0106,-0.0527 0.0114,-0.1106 0.0309,-0.13977 0.10126,-0.15192 0.24405,-0.21795 0.43231,-0.22753 0.18826,-0.01 0.40579,0.06 0.55257,0.1804 0.47749,0.39164 0.44098,1.1592 0.0244,1.61709 -0.5816,0.63924 -1.62979,0.57736 -2.24605,-0.0195 -0.79642,-0.77136 -0.70658,-2.0997 0.0731,-2.87175 0.96089,-0.95143 2.57264,-0.83254 3.49908,0.13164 1.10523,1.15027 0.95629,3.04317 -0.1934,4.12317 -1.33952,1.25831 -3.51587,1.07913 -4.74887,-0.25679 -1.41093,-1.52868 -1.20085,-3.98733 0.3218,-5.37295 1.71779,-1.56321 4.45907,-1.32295 5.99703,0.3868 1.49098,1.65753 1.51331,4.23325 0.14789,5.98241 a 0.41605426,0.41605426 0 0 0 0.0731,0.58345 0.41605426,0.41605426 0 0 0 0.58345,-0.0715 c 1.61077,-2.06346 1.58742,-5.08109 -0.18527,-7.0518 -0.92006,-1.02283 -2.19558,-1.60528 -3.5007,-1.69672 z"
+ id="path8" />
+ </g>
+</svg>
diff --git a/doc/website/assets/404.png b/doc/website/assets/404.png
new file mode 100644
index 0000000..3f59a49
--- /dev/null
+++ b/doc/website/assets/404.png
Binary files differ
diff --git a/doc/website/assets/card.png b/doc/website/assets/card.png
new file mode 100644
index 0000000..1374749
--- /dev/null
+++ b/doc/website/assets/card.png
Binary files differ
diff --git a/doc/website/assets/card.svg b/doc/website/assets/card.svg
new file mode 100644
index 0000000..0730042
--- /dev/null
+++ b/doc/website/assets/card.svg
@@ -0,0 +1,175 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ sodipodi:docname="card.svg"
+ inkscape:version="1.3 (0e150ed6c4, 2023-07-21)"
+ id="svg10448"
+ version="1.1"
+ viewBox="0 0 158.75 105.83334"
+ height="400.00003"
+ width="600"
+ inkscape:export-filename="card.png"
+ inkscape:export-xdpi="192"
+ inkscape:export-ydpi="192"
+ xml:space="preserve"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"><defs
+ id="defs10442"><filter
+ id="filter62647-5-1-29"
+ inkscape:label="Better Shadow"
+ style="color-interpolation-filters:sRGB"
+ x="-0.14328897"
+ y="-0.089033969"
+ width="1.286578"
+ height="1.3395338"><feFlood
+ id="feFlood62637-04-2-75"
+ result="flood"
+ flood-color="rgb(0,0,0)"
+ flood-opacity="0.180392" /><feComposite
+ id="feComposite62639-87-2-64"
+ result="composite1"
+ operator="in"
+ in2="SourceGraphic"
+ in="flood" /><feGaussianBlur
+ id="feGaussianBlur62641-1-7-63"
+ result="blur"
+ stdDeviation="7"
+ in="composite1" /><feOffset
+ id="feOffset62643-7-7-7"
+ result="offset"
+ dy="6"
+ dx="0" /><feComposite
+ id="feComposite62645-2-9-9"
+ result="fbSourceGraphic"
+ operator="over"
+ in2="offset"
+ in="SourceGraphic" /><feColorMatrix
+ id="feColorMatrix62793-7-1-7"
+ values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+ in="fbSourceGraphic"
+ result="fbSourceGraphicAlpha" /><feFlood
+ in="fbSourceGraphic"
+ result="flood"
+ flood-color="rgb(0,0,0)"
+ flood-opacity="0.34902"
+ id="feFlood62795-2-4-49" /><feComposite
+ result="composite1"
+ operator="in"
+ in="flood"
+ id="feComposite62797-26-04-17"
+ in2="fbSourceGraphic" /><feGaussianBlur
+ result="blur"
+ stdDeviation="3.5"
+ in="composite1"
+ id="feGaussianBlur62799-1-7-0" /><feOffset
+ result="offset"
+ dy="3"
+ dx="0"
+ id="feOffset62801-06-8-6" /><feComposite
+ result="composite2"
+ operator="over"
+ in="fbSourceGraphic"
+ id="feComposite62803-1-7-0"
+ in2="offset" /></filter><linearGradient
+ id="Gradient"
+ x1="0"
+ x2="0"
+ y1="0"
+ y2="256"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.62011718,0,0,0.41341148,459.7283,-604.72058)"><stop
+ offset="0%"
+ style="stop-color:#F6D32D;stop-opacity:1"
+ id="stop1" /><stop
+ offset="100%"
+ style="stop-color:#F6D32D;stop-opacity:1"
+ id="stop2" /></linearGradient><filter
+ id="alpha-to-white"
+ x="0"
+ y="0"
+ width="1"
+ height="1"><feColorMatrix
+ in="SourceGraphic"
+ type="matrix"
+ values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.8 0"
+ id="feColorMatrix2" /></filter><g
+ id="child-svg"><svg
+ height="16px"
+ viewBox="0 0 16 16"
+ width="16px"
+ version="1.1"
+ id="svg3"><g
+ fill="#222222"
+ id="g3"><path
+ d="m 10.421875 1.007812 c -1.359375 -1.359374 -3.601563 -1.242187 -4.976563 0.132813 l -4.304687 4.304687 c -1.375 1.375 -1.492187 3.617188 -0.132813 4.976563 l 4.570313 4.570313 c 1.359375 1.359374 3.597656 1.242187 4.976563 -0.132813 l 4.304687 -4.308594 c 1.375 -1.375 1.492187 -3.613281 0.132813 -4.972656 z m -1.414063 1.414063 l 4.570313 4.570313 c 0.542969 0.539062 0.539063 1.476562 -0.132813 2.144531 l -4.308593 4.308593 c -0.667969 0.671876 -1.601563 0.675782 -2.144531 0.132813 l -4.570313 -4.570313 c -0.542969 -0.542968 -0.539063 -1.476562 0.132813 -2.148437 l 4.304687 -4.304687 c 0.671875 -0.671876 1.605469 -0.675782 2.148437 -0.132813 z m 0 0"
+ id="path2" /><path
+ d="m 8.292969 3.191406 c -1.304688 -0.089844 -2.640625 0.308594 -3.675781 1.25 c -1.855469 1.691406 -2.109376 4.671875 -0.371094 6.554688 c 1.539062 1.667968 4.238281 1.886718 5.929687 0.296875 c 1.476563 -1.386719 1.664063 -3.804688 0.222657 -5.304688 c -1.234376 -1.285156 -3.375 -1.445312 -4.683594 -0.148437 c -1.09375 1.085937 -1.222656 2.945312 -0.066406 4.0625 c 0.933593 0.90625 2.515624 0.996094 3.441406 -0.015625 c 0.710937 -0.785157 0.769531 -2.097657 -0.113282 -2.824219 c -0.320312 -0.257812 -0.71875 -0.386719 -1.121093 -0.367188 c -0.40625 0.019532 -0.828125 0.210938 -1.085938 0.597657 c -0.164062 0.246093 -0.226562 0.539062 -0.183593 0.835937 c 0.042968 0.300782 0.25 0.636719 0.605468 0.761719 c 0.265625 0.089844 0.425782 0.039063 0.625 -0.074219 c 0.101563 -0.054687 0.226563 -0.148437 0.289063 -0.328125 c 0.058593 -0.183593 -0.007813 -0.40625 -0.109375 -0.53125 c -0.140625 -0.164062 -0.386719 -0.191406 -0.5625 -0.0625 c 0.007812 -0.054687 0.011718 -0.109375 0.03125 -0.140625 c 0.101562 -0.152344 0.242187 -0.21875 0.429687 -0.226562 c 0.191407 -0.011719 0.40625 0.058594 0.554688 0.179687 c 0.476562 0.390625 0.441406 1.160157 0.023437 1.617188 c -0.582031 0.640625 -1.628906 0.578125 -2.246094 -0.019531 c -0.796874 -0.769532 -0.707031 -2.097657 0.074219 -2.871094 c 0.960938 -0.953125 2.570313 -0.832032 3.5 0.132812 c 1.101563 1.148438 0.953125 3.042969 -0.195312 4.121094 c -1.339844 1.257812 -3.515625 1.078125 -4.75 -0.257812 c -1.410157 -1.527344 -1.199219 -3.984376 0.324219 -5.371094 c 1.714843 -1.5625 4.457031 -1.324219 5.996093 0.386718 c 1.492188 1.65625 1.511719 4.234376 0.148438 5.980469 c -0.140625 0.183594 -0.109375 0.445313 0.074219 0.585938 c 0.179687 0.140625 0.441406 0.109375 0.582031 -0.070313 c 1.609375 -2.066406 1.585937 -5.082031 -0.1875 -7.054687 c -0.917969 -1.023438 -2.195313 -1.605469 -3.5 -1.695313 z m 0 0"
+ fill-rule="evenodd"
+ id="path3" /></g></svg></g></defs><sodipodi:namedview
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:bbox-nodes="true"
+ inkscape:bbox-paths="true"
+ inkscape:snap-bbox="true"
+ inkscape:window-maximized="1"
+ inkscape:window-y="0"
+ inkscape:window-x="0"
+ inkscape:window-height="1016"
+ inkscape:window-width="1920"
+ units="px"
+ showgrid="false"
+ inkscape:document-rotation="0"
+ inkscape:current-layer="layer1"
+ inkscape:document-units="px"
+ inkscape:cy="153.7187"
+ inkscape:cx="407.73045"
+ inkscape:zoom="1"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ inkscape:snap-page="true"
+ inkscape:snap-text-baseline="true"
+ inkscape:snap-center="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:pagecheckerboard="1"
+ inkscape:showpageshadow="0"
+ inkscape:deskcolor="#d1d1d1"><inkscape:grid
+ originy="1.2031857e-13"
+ originx="0"
+ id="grid11077"
+ type="xygrid"
+ spacingy="1"
+ spacingx="1"
+ units="px"
+ visible="false" /></sodipodi:namedview><metadata
+ id="metadata10445"><rdf:RDF><cc:Work
+ rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><g
+ transform="translate(-459.7283,604.72058)"
+ id="layer1"
+ inkscape:groupmode="layer"
+ inkscape:label="Layer 1"><rect
+ width="158.75"
+ height="105.83334"
+ fill="url(#Gradient)"
+ ry="0"
+ x="459.7283"
+ y="-604.72058"
+ id="rect3"
+ style="fill:url(#Gradient);stroke-width:0.506323" /><use
+ xlink:href="#child-svg"
+ filter="url(#alpha-to-white)"
+ transform="matrix(2.1166666,0,0,2.1166666,522.16997,-577.74032)"
+ id="use3" /><path
+ d="m 487.98366,-537.652 h -2.42211 l 2.36,3.97474 -2.43765,3.97473 h 2.45318 l 1.35079,-2.36001 h 0.0623 l 1.35076,2.36001 h 2.4687 l -2.4687,-3.97473 2.37553,-3.97474 h -2.40657 l -1.31972,2.31342 h -0.0623 z m 9.0829,7.94947 c 2.42209,0 3.95917,-1.49053 3.95917,-3.97473 0,-2.4842 -1.53708,-3.97474 -3.99025,-3.97474 h -3.02762 v 7.94947 z m -0.90053,-1.83211 v -4.28526 h 0.76079 c 1.24208,0 1.92526,0.48132 1.92526,2.14264 0,1.6613 -0.68318,2.14262 -1.86317,2.14262 z m 11.0159,-3.49342 h 2.18142 c -0.16686,-1.59532 -1.61473,-2.7326 -3.4934,-2.7326 -2.14264,0 -3.88157,1.47498 -3.88157,4.09891 0,2.51526 1.57592,4.0679 3.89708,4.0679 2.08054,0 3.57107,-1.27315 3.57107,-3.44684 v -1.10238 h -3.52448 v 1.53714 h 1.44395 c -0.0199,0.69089 -0.5085,1.13342 -1.475,1.13342 -1.11787,0 -1.69237,-0.8229 -1.69237,-2.22028 0,-1.37795 0.62104,-2.18921 1.70792,-2.18921 0.67537,0 1.1334,0.31053 1.26538,0.85394 z m 8.51617,5.32553 c 2.42212,0 3.9592,-1.49053 3.9592,-3.97473 0,-2.4842 -1.53708,-3.97474 -3.99025,-3.97474 h -3.02763 v 7.94947 z m -0.90052,-1.83211 v -4.28526 h 0.76078 c 1.24211,0 1.92526,0.48132 1.92526,2.14264 0,1.6613 -0.68315,2.14262 -1.86314,2.14262 z m 8.74132,1.94079 c 1.65355,0 2.71709,-0.79184 2.91892,-2.03395 h -1.95631 c -0.12413,0.3377 -0.47744,0.52791 -0.91607,0.52791 -0.63655,0 -1.00917,-0.41922 -1.00917,-0.99369 v -0.0932 h 3.88155 v -0.49683 c 0,-1.89809 -1.16446,-3.05868 -2.96552,-3.05868 -1.84762,0 -3.02764,1.22656 -3.02764,3.0742 0,1.92915 1.16448,3.07421 3.07424,3.07421 z m -0.96263,-3.77288 c 0.0115,-0.51627 0.4386,-0.86949 0.96263,-0.86949 0.53177,0 0.93543,0.35712 0.94709,0.86949 z m 10.20076,-0.35712 c -0.0544,-1.26151 -1.10236,-2.01841 -2.82579,-2.01841 -1.70401,0 -2.75593,0.6987 -2.74816,1.94078 -0.008,0.93934 0.60165,1.54099 1.81657,1.75448 l 1.0558,0.18634 c 0.4658,0.0855 0.6754,0.20958 0.68315,0.43472 -0.007,0.24843 -0.29113,0.38816 -0.68315,0.38816 -0.48519,0 -0.82677,-0.20957 -0.88501,-0.58999 h -2.1271 c 0.1164,1.2227 1.17223,2.03395 2.99658,2.03395 1.64967,0 2.8646,-0.80349 2.87236,-2.08054 -0.008,-0.8811 -0.59775,-1.39347 -1.81656,-1.61474 l -1.21106,-0.21733 c -0.45414,-0.0814 -0.58225,-0.24455 -0.57447,-0.41922 -0.008,-0.24842 0.29888,-0.38816 0.66764,-0.38816 0.42308,0 0.77631,0.22515 0.80735,0.59001 z m 0.97815,4.02132 h 2.14264 v -1.69236 l 0.32217,-0.40756 1.21491,2.09992 h 2.45316 l -2.08828,-3.3498 2.02618,-2.6123 h -2.40659 l -1.44393,2.00288 h -0.0778 V -537.652 H 533.755 Z m 10.18526,-5.9621 h -1.02473 v -1.42842 h -2.14264 v 1.42842 h -0.76078 v 1.55262 h 0.76078 v 2.69382 c -0.0148,1.24989 0.75693,1.88258 2.2358,1.80106 0.48517,-0.0271 0.84616,-0.12808 1.04026,-0.18634 l -0.31054,-1.50605 c -0.0814,0.0199 -0.29111,0.0622 -0.4192,0.0622 -0.27948,0 -0.40368,-0.12413 -0.40368,-0.37262 v -2.49199 h 1.02473 z m 3.67971,6.07078 c 1.94081,0 3.08977,-1.24211 3.08977,-3.07421 0,-1.83209 -1.14896,-3.0742 -3.08977,-3.0742 -1.94078,0 -3.08972,1.24211 -3.08972,3.0742 0,1.8321 1.14894,3.07421 3.08972,3.07421 z m 0.0148,-1.58368 c -0.57448,0 -0.91606,-0.5706 -0.91606,-1.50604 0,-0.93545 0.34158,-1.50606 0.91606,-1.50606 0.54343,0 0.88501,0.57061 0.88501,1.50606 0,0.93544 -0.34158,1.50604 -0.88501,1.50604 z m 3.94368,3.71077 h 2.14262 v -3.21391 h 0.0309 c 0.24841,0.60551 0.8229,1.05576 1.6613,1.05576 1.27317,0 2.34447,-0.99367 2.34447,-3.05866 0,-2.15816 -1.14895,-3.05869 -2.32893,-3.05869 -0.88501,0 -1.44395,0.51237 -1.67684,1.11788 h -0.0465 v -1.04025 h -2.1271 z m 2.09606,-5.21681 c 0,-0.88501 0.35709,-1.4129 0.94709,-1.4129 0.59,0 0.93158,0.52789 0.93158,1.4129 0,0.88498 -0.34158,1.41289 -0.93158,1.41289 -0.59,0 -0.94709,-0.54341 -0.94709,-1.41289 z m 7.12658,2.98104 h 2.15815 v -2.36001 h 1.19552 c 1.8127,0 3.02764,-1.06744 3.02764,-2.77919 0,-1.69237 -1.18388,-2.81027 -2.95001,-2.81027 h -3.4313 z m 2.15815,-4.03684 v -2.18922 h 0.7608 c 0.75688,0 1.21105,0.4037 1.21105,1.08686 0,0.67926 -0.45417,1.10236 -1.21105,1.10236 z m 7.79419,4.14552 c 1.94081,0 3.08974,-1.24211 3.08974,-3.07421 0,-1.83209 -1.14893,-3.0742 -3.08974,-3.0742 -1.94078,0 -3.08972,1.24211 -3.08972,3.0742 0,1.8321 1.14894,3.07421 3.08972,3.07421 z m 0.0148,-1.58368 c -0.57446,0 -0.91604,-0.5706 -0.91604,-1.50604 0,-0.93545 0.34158,-1.50606 0.91604,-1.50606 0.54343,0 0.88502,0.57061 0.88502,1.50606 0,0.93544 -0.34159,1.50604 -0.88502,1.50604 z m 3.9437,1.475 h 2.14263 v -3.10528 c 0,-0.68315 0.46966,-1.13342 1.10238,-1.13342 0.22131,0 0.57833,0.035 0.79182,0.10867 v -1.82822 c -0.17086,-0.0505 -0.35709,-0.0814 -0.54341,-0.0814 -0.63657,0 -1.13344,0.37263 -1.35079,1.21107 h -0.0621 v -1.13342 h -2.08054 z m 8.53947,-5.9621 h -1.02473 v -1.42842 h -2.14263 v 1.42842 h -0.76079 v 1.55262 h 0.76079 v 2.69382 c -0.0148,1.24989 0.75691,1.88258 2.23579,1.80106 0.48521,-0.0271 0.84619,-0.12808 1.04028,-0.18634 l -0.31054,-1.50605 c -0.0814,0.0199 -0.29113,0.0622 -0.41922,0.0622 -0.27947,0 -0.40368,-0.12413 -0.40368,-0.37262 v -2.49199 h 1.02473 z m 2.53078,6.05524 c 0.77632,0 1.36245,-0.26393 1.72343,-0.93157 h 0.0465 v 0.83843 h 2.00291 v -4.08342 c 0,-1.10238 -1.04414,-1.95631 -2.74815,-1.95631 -1.78165,0 -2.65888,0.93159 -2.73262,2.01841 h 1.97182 c 0.0505,-0.36876 0.3222,-0.54341 0.72974,-0.54341 0.37264,0 0.63658,0.17085 0.63658,0.48131 v 0.0148 c 0,0.34548 -0.38038,0.45415 -1.38183,0.52791 -1.23047,0.0893 -2.1892,0.58613 -2.1892,1.8942 0,1.18776 0.79958,1.73895 1.94078,1.73895 z m 0.6987,-1.35077 c -0.36487,0 -0.62106,-0.1786 -0.62106,-0.51235 0,-0.30666 0.21734,-0.54345 0.7142,-0.62107 0.34158,-0.0544 0.62883,-0.12413 0.85396,-0.21732 v 0.49684 c 0,0.54343 -0.46192,0.85395 -0.9471,0.85395 z m 6.24157,-6.69184 h -2.14256 v 7.94947 h 2.14263 z"
+ id="path1"
+ style="font-weight:900;font-size:18.6667px;line-height:1.25;font-family:Inter;-inkscape-font-specification:'Inter, Heavy';letter-spacing:0px;word-spacing:0px;white-space:pre;fill:#222222;fill-opacity:1;stroke-width:0.585561"
+ aria-label="XDG Desktop Portal" /></g></svg>
diff --git a/doc/website/assets/docs-button-dark.png b/doc/website/assets/docs-button-dark.png
new file mode 100644
index 0000000..3eaa0fb
--- /dev/null
+++ b/doc/website/assets/docs-button-dark.png
Binary files differ
diff --git a/doc/website/assets/docs-button.png b/doc/website/assets/docs-button.png
new file mode 100644
index 0000000..5c5136d
--- /dev/null
+++ b/doc/website/assets/docs-button.png
Binary files differ
diff --git a/doc/website/assets/page-logo-i.svg b/doc/website/assets/page-logo-i.svg
new file mode 100644
index 0000000..8ca4a2a
--- /dev/null
+++ b/doc/website/assets/page-logo-i.svg
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="240"
+ height="32"
+ version="1.1"
+ id="svg10"
+ sodipodi:docname="page-logo-i.svg"
+ inkscape:version="1.3 (0e150ed6c4, 2023-07-21)"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs14">
+ <filter
+ id="alpha-to-white"
+ x="0"
+ y="0"
+ width="1"
+ height="1">
+ <feColorMatrix
+ in="SourceGraphic"
+ type="matrix"
+ values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.8 0"
+ id="feColorMatrix2" />
+ </filter>
+ </defs>
+ <sodipodi:namedview
+ id="namedview12"
+ pagecolor="#505050"
+ bordercolor="#ffffff"
+ borderopacity="1"
+ inkscape:pageshadow="0"
+ inkscape:pageopacity="0"
+ inkscape:pagecheckerboard="1"
+ showgrid="true"
+ width="137px"
+ inkscape:current-layer="svg10"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:showpageshadow="0"
+ inkscape:deskcolor="#d1d1d1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid5602"
+ originx="0"
+ originy="0"
+ spacingy="1"
+ spacingx="1"
+ units="px"
+ visible="true" />
+ <sodipodi:guide
+ position="15.765131,17.848555"
+ orientation="0,-1"
+ id="guide140"
+ inkscape:locked="false" />
+ </sodipodi:namedview>
+ <path
+ d="m 42.666663,9.553011 h -4.136372 l 4.030311,6.787891 -4.162887,6.787891 h 4.189402 l 2.306822,-4.03031 H 45 l 2.306823,4.03031 h 4.215916 L 47.306823,16.340902 51.363648,9.553011 H 47.253792 L 45,13.503776 H 44.893939 Z M 58.17807,23.128793 c 4.136371,0 6.761376,-2.545459 6.761376,-6.787891 0,-4.242432 -2.625005,-6.787891 -6.814407,-6.787891 H 52.954576 V 23.128793 Z M 56.640188,20 v -7.318196 h 1.299245 c 2.121216,0 3.287885,0.821972 3.287885,3.659098 C 61.227318,19.178028 60.060649,20 58.045494,20 Z m 18.812525,-5.96592 h 3.725385 c -0.285038,-2.724437 -2.757581,-4.666675 -5.96592,-4.666675 -3.659097,0 -6.6288,2.518943 -6.6288,7.000012 0,4.295462 2.691293,6.946982 6.655315,6.946982 3.553037,0 6.098496,-2.174246 6.098496,-5.886374 v -1.882579 h -6.01895 v 2.625005 h 2.465914 c -0.03314,1.179926 -0.868373,1.935609 -2.518944,1.935609 -1.909095,0 -2.890157,-1.405305 -2.890157,-3.791673 0,-2.353224 1.060608,-3.738643 2.916672,-3.738643 1.153411,0 1.935609,0.530304 2.160989,1.458336 z m 14.543606,9.094713 c 4.136371,0 6.761375,-2.545459 6.761375,-6.787891 0,-4.242432 -2.625004,-6.787891 -6.814406,-6.787891 H 84.772824 V 23.128793 Z M 88.458437,20 v -7.318196 h 1.299245 c 2.121216,0 3.287885,0.821972 3.287885,3.659098 C 93.045567,19.178028 91.878898,20 89.863743,20 Z m 14.928053,3.314399 c 2.82387,0 4.64016,-1.352275 4.98486,-3.473491 h -3.34092 c -0.21212,0.576706 -0.81534,0.901517 -1.56439,0.901517 -1.08713,0 -1.7235,-0.71591 -1.7235,-1.696973 v -0.159091 h 6.62881 v -0.848486 c 0,-3.241483 -1.98864,-5.223495 -5.06441,-5.223495 -3.15531,0 -5.170463,2.094701 -5.170463,5.25001 0,3.294513 1.988643,5.250009 5.250013,5.250009 z m -1.64395,-6.443193 c 0.0199,-0.88163 0.74906,-1.484851 1.64395,-1.484851 0.90815,0 1.59754,0.609849 1.61743,1.484851 z m 17.42048,-0.60985 c -0.0928,-2.15436 -1.88258,-3.446976 -4.82576,-3.446976 -2.91005,0 -4.70645,1.193184 -4.69319,3.3144 -0.0133,1.60417 1.02746,2.631634 3.10228,2.996218 l 1.80303,0.318182 c 0.79546,0.145834 1.15341,0.357956 1.16667,0.742426 -0.0133,0.424243 -0.49716,0.66288 -1.16667,0.66288 -0.8286,0 -1.41194,-0.357955 -1.51137,-1.007578 h -3.63258 c 0.19886,2.088072 2.0019,3.473491 5.11743,3.473491 2.81724,0 4.89206,-1.372161 4.90532,-3.553036 -0.0133,-1.504738 -1.02084,-2.379739 -3.10228,-2.757581 l -2.06819,-0.371213 c -0.77557,-0.139205 -0.99432,-0.417614 -0.98106,-0.71591 -0.0133,-0.424243 0.51042,-0.66288 1.14015,-0.66288 0.72254,0 1.32576,0.38447 1.37879,1.007577 z m 1.67046,6.867437 h 3.65909 v -2.890157 l 0.55019,-0.696024 2.07482,3.586181 h 4.1894 l -3.56629,-5.720654 3.46023,-4.461183 h -4.10986 l -2.46591,3.420461 h -0.13258 V 9.553011 h -3.65909 z m 17.39398,-10.181837 h -1.75 v -2.439398 h -3.6591 v 2.439398 h -1.29924 v 2.65152 h 1.29924 v 4.600388 c -0.0265,2.134473 1.29262,3.214967 3.81819,3.075763 0.8286,-0.0464 1.44508,-0.218751 1.77652,-0.318183 l -0.5303,-2.571974 c -0.13921,0.03314 -0.49717,0.106061 -0.71592,0.106061 -0.47727,0 -0.68939,-0.212122 -0.68939,-0.636365 v -4.25569 h 1.75 z m 6.28409,10.367443 c 3.3144,0 5.27653,-2.121216 5.27653,-5.250009 0,-3.128794 -1.96213,-5.25001 -5.27653,-5.25001 -3.3144,0 -5.27652,2.121216 -5.27652,5.25001 0,3.128793 1.96212,5.250009 5.27652,5.250009 z m 0.0265,-2.70455 c -0.98106,0 -1.5644,-0.974433 -1.5644,-2.571974 0,-1.597541 0.58334,-2.571975 1.5644,-2.571975 0.92803,0 1.51137,0.974434 1.51137,2.571975 0,1.597541 -0.58334,2.571974 -1.51137,2.571974 z m 6.73486,6.337133 h 3.6591 v -5.488647 h 0.053 c 0.42424,1.034093 1.4053,1.803034 2.83712,1.803034 2.17425,0 4.0038,-1.696973 4.0038,-5.223494 0,-3.685613 -1.96213,-5.223495 -3.97728,-5.223495 -1.51137,0 -2.46591,0.875002 -2.86364,1.909095 h -0.0795 v -1.776519 h -3.63258 z m 3.57955,-8.909107 c 0,-1.511367 0.60985,-2.412883 1.61743,-2.412883 1.00758,0 1.59091,0.901516 1.59091,2.412883 0,1.511366 -0.58333,2.412883 -1.59091,2.412883 -1.00758,0 -1.61743,-0.928032 -1.61743,-2.412883 z m 12.17051,5.090918 h 3.68561 v -4.03031 h 2.04167 c 3.09565,0 5.17047,-1.82292 5.17047,-4.746221 0,-2.890157 -2.02179,-4.799251 -5.03789,-4.799251 h -5.85986 z m 3.68561,-6.893952 v -3.738643 h 1.29925 c 1.29261,0 2.06818,0.689395 2.06818,1.856064 0,1.16004 -0.77557,1.882579 -2.06818,1.882579 z m 13.31063,7.079558 c 3.3144,0 5.27653,-2.121216 5.27653,-5.250009 0,-3.128794 -1.96213,-5.25001 -5.27653,-5.25001 -3.3144,0 -5.27652,2.121216 -5.27652,5.25001 0,3.128793 1.96212,5.250009 5.27652,5.250009 z m 0.0265,-2.70455 c -0.98106,0 -1.5644,-0.974434 -1.5644,-2.571974 0,-1.597541 0.58334,-2.571975 1.5644,-2.571975 0.92803,0 1.51137,0.974434 1.51137,2.571975 0,1.59754 -0.58334,2.571974 -1.51137,2.571974 z m 6.73488,2.518944 h 3.6591 v -5.30304 c 0,-1.166669 0.80208,-1.935609 1.88258,-1.935609 0.37784,0 0.98769,0.05966 1.35227,0.185606 v -3.122165 c -0.29167,-0.08617 -0.60985,-0.139205 -0.92803,-0.139205 -1.08712,0 -1.93561,0.636365 -2.30682,2.068186 h -0.10606 v -1.93561 h -3.55304 z m 14.58338,-10.181837 h -1.75 v -2.439398 h -3.6591 v 2.439398 h -1.29925 v 2.65152 h 1.29925 v 4.600388 c -0.0265,2.134473 1.29261,3.214967 3.81819,3.075763 0.8286,-0.0464 1.44508,-0.218751 1.77652,-0.318183 l -0.53031,-2.571974 c -0.1392,0.03314 -0.49716,0.106061 -0.71591,0.106061 -0.47727,0 -0.68939,-0.212122 -0.68939,-0.636365 v -4.25569 h 1.75 z m 4.32197,10.340928 c 1.32576,0 2.32671,-0.450758 2.94319,-1.590912 h 0.0795 v 1.431821 h 3.42046 v -6.973497 c 0,-1.88258 -1.78315,-3.340916 -4.69319,-3.340916 -3.04262,0 -4.54073,1.590912 -4.66667,3.446976 h 3.36743 c 0.0862,-0.629736 0.55019,-0.928032 1.24621,-0.928032 0.63637,0 1.08712,0.291668 1.08712,0.821972 v 0.02651 c 0,0.589963 -0.64962,0.775569 -2.35985,0.901516 -2.10133,0.152463 -3.73864,1.000949 -3.73864,3.234855 0,2.028412 1.36553,2.969702 3.3144,2.969702 z m 1.19318,-2.306822 c -0.62311,0 -1.06061,-0.304925 -1.06061,-0.875002 0,-0.523675 0.37122,-0.928032 1.2197,-1.060608 0.58334,-0.0928 1.07387,-0.212121 1.45834,-0.371212 v 0.848486 c 0,0.928032 -0.78883,1.458336 -1.61743,1.458336 z M 221.53824,9.553011 h -3.65909 v 13.575782 h 3.65909 z"
+ id="text1"
+ style="font-weight:900;font-size:18.6667px;line-height:1.25;font-family:Inter;-inkscape-font-specification:'Inter, Heavy';letter-spacing:0px;word-spacing:0px;white-space:pre;fill:#ffffff"
+ aria-label="XDG Desktop Portal" />
+ <g
+ id="g4-3"
+ inkscape:label="portal xdg freedesktop aperture science"
+ transform="matrix(1.4375,0,0,1.4375,-955.32879,-524)"
+ style="fill:#ffffff">
+ <title
+ id="title2">xdg-portal</title>
+ <rect
+ y="368"
+ x="671.99994"
+ height="16"
+ width="16"
+ id="rect2"
+ style="fill:none" />
+ <path
+ style="color:#000000;fill:#ffffff;stroke-linecap:round;-inkscape-stroke:none;paint-order:markers stroke fill"
+ d="m 743.46875,-221.62109 c -1.92109,0 -3.42383,1.66654 -3.42383,3.61132 v 6.0918 c 0,1.94479 1.50274,3.61133 3.42383,3.61133 h 6.46484 c 1.92109,0 3.42383,-1.66654 3.42383,-3.61133 v -6.0918 c 0,-1.94478 -1.50274,-3.61132 -3.42383,-3.61132 z m 0,2 h 6.46484 c 0.76512,0 1.42383,0.66327 1.42383,1.61132 v 6.0918 c 0,0.94805 -0.65871,1.61133 -1.42383,1.61133 h -6.46484 c -0.76511,0 -1.42383,-0.66328 -1.42383,-1.61133 v -6.0918 c 0,-0.94805 0.65872,-1.61132 1.42383,-1.61132 z"
+ id="rect8"
+ transform="rotate(45)" />
+ <path
+ style="color:#000000;opacity:1;fill:#ffffff;fill-rule:evenodd;stroke-width:0.832109;stroke-linecap:round;-inkscape-stroke:none"
+ d="m 680.29396,371.18645 c -1.30513,-0.0914 -2.63994,0.30838 -3.67623,1.25142 -1.85606,1.68902 -2.10977,4.67185 -0.37217,6.55448 1.53794,1.66631 4.23802,1.8872 5.9304,0.29741 1.47637,-1.38687 1.66557,-3.80461 0.22265,-5.30632 -1.23582,-1.28617 -3.37348,-1.44374 -4.68386,-0.14627 -1.0956,1.08482 -1.22093,2.94343 -0.0666,4.06141 0.93392,0.90452 2.51699,0.99723 3.44058,-0.0179 0.7127,-0.78334 0.76996,-2.09652 -0.11377,-2.82137 -0.31699,-0.26001 -0.7177,-0.38946 -1.1214,-0.36893 -0.4037,0.0205 -0.8255,0.21265 -1.08239,0.59808 -0.16449,0.24681 -0.22985,0.53729 -0.1869,0.83699 0.0429,0.29969 0.25013,0.63735 0.60621,0.75897 0.26803,0.0915 0.42549,0.0409 0.62733,-0.0715 0.10091,-0.0562 0.22585,-0.14782 0.28603,-0.32992 0.0602,-0.1821 -0.007,-0.40468 -0.10726,-0.52982 a 0.41605426,0.41605426 0 0 0 -0.56395,-0.0634 c 0.0106,-0.0527 0.0114,-0.1106 0.0309,-0.13977 0.10126,-0.15192 0.24405,-0.21795 0.43231,-0.22753 0.18826,-0.01 0.40579,0.06 0.55257,0.1804 0.47749,0.39164 0.44098,1.1592 0.0244,1.61709 -0.5816,0.63924 -1.62979,0.57736 -2.24605,-0.0195 -0.79642,-0.77136 -0.70658,-2.0997 0.0731,-2.87175 0.96089,-0.95143 2.57264,-0.83254 3.49908,0.13164 1.10523,1.15027 0.95629,3.04317 -0.1934,4.12317 -1.33952,1.25831 -3.51587,1.07913 -4.74887,-0.25679 -1.41093,-1.52868 -1.20085,-3.98733 0.3218,-5.37295 1.71779,-1.56321 4.45907,-1.32295 5.99703,0.3868 1.49098,1.65753 1.51331,4.23325 0.14789,5.98241 a 0.41605426,0.41605426 0 0 0 0.0731,0.58345 0.41605426,0.41605426 0 0 0 0.58345,-0.0715 c 1.61077,-2.06346 1.58742,-5.08109 -0.18527,-7.0518 -0.92006,-1.02283 -2.19558,-1.60528 -3.5007,-1.69672 z"
+ id="path8" />
+ </g>
+</svg>
diff --git a/doc/website/assets/page-logo.svg b/doc/website/assets/page-logo.svg
new file mode 100644
index 0000000..45285e9
--- /dev/null
+++ b/doc/website/assets/page-logo.svg
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="240"
+ height="32"
+ version="1.1"
+ id="svg10"
+ sodipodi:docname="page-logo.svg"
+ inkscape:version="1.3 (0e150ed6c4, 2023-07-21)"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs14">
+ <filter
+ id="alpha-to-white"
+ x="0"
+ y="0"
+ width="1"
+ height="1">
+ <feColorMatrix
+ in="SourceGraphic"
+ type="matrix"
+ values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.8 0"
+ id="feColorMatrix2" />
+ </filter>
+ </defs>
+ <sodipodi:namedview
+ id="namedview12"
+ pagecolor="#505050"
+ bordercolor="#ffffff"
+ borderopacity="1"
+ inkscape:pageshadow="0"
+ inkscape:pageopacity="0"
+ inkscape:pagecheckerboard="1"
+ showgrid="true"
+ width="137px"
+ inkscape:current-layer="svg10"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:showpageshadow="0"
+ inkscape:deskcolor="#d1d1d1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid5602"
+ originx="0"
+ originy="0"
+ spacingy="1"
+ spacingx="1"
+ units="px"
+ visible="true" />
+ <sodipodi:guide
+ position="15.765131,17.848555"
+ orientation="0,-1"
+ id="guide140"
+ inkscape:locked="false" />
+ </sodipodi:namedview>
+ <path
+ d="m 42.666663,9.553011 h -4.136372 l 4.030311,6.787891 -4.162887,6.787891 h 4.189402 l 2.306822,-4.03031 H 45 l 2.306823,4.03031 h 4.215916 L 47.306823,16.340902 51.363648,9.553011 H 47.253792 L 45,13.503776 H 44.893939 Z M 58.17807,23.128793 c 4.136371,0 6.761376,-2.545459 6.761376,-6.787891 0,-4.242432 -2.625005,-6.787891 -6.814407,-6.787891 H 52.954576 V 23.128793 Z M 56.640188,20 v -7.318196 h 1.299245 c 2.121216,0 3.287885,0.821972 3.287885,3.659098 C 61.227318,19.178028 60.060649,20 58.045494,20 Z m 18.812525,-5.96592 h 3.725385 c -0.285038,-2.724437 -2.757581,-4.666675 -5.96592,-4.666675 -3.659097,0 -6.6288,2.518943 -6.6288,7.000012 0,4.295462 2.691293,6.946982 6.655315,6.946982 3.553037,0 6.098496,-2.174246 6.098496,-5.886374 v -1.882579 h -6.01895 v 2.625005 h 2.465914 c -0.03314,1.179926 -0.868373,1.935609 -2.518944,1.935609 -1.909095,0 -2.890157,-1.405305 -2.890157,-3.791673 0,-2.353224 1.060608,-3.738643 2.916672,-3.738643 1.153411,0 1.935609,0.530304 2.160989,1.458336 z m 14.543606,9.094713 c 4.136371,0 6.761375,-2.545459 6.761375,-6.787891 0,-4.242432 -2.625004,-6.787891 -6.814406,-6.787891 H 84.772824 V 23.128793 Z M 88.458437,20 v -7.318196 h 1.299245 c 2.121216,0 3.287885,0.821972 3.287885,3.659098 C 93.045567,19.178028 91.878898,20 89.863743,20 Z m 14.928053,3.314399 c 2.82387,0 4.64016,-1.352275 4.98486,-3.473491 h -3.34092 c -0.21212,0.576706 -0.81534,0.901517 -1.56439,0.901517 -1.08713,0 -1.7235,-0.71591 -1.7235,-1.696973 v -0.159091 h 6.62881 v -0.848486 c 0,-3.241483 -1.98864,-5.223495 -5.06441,-5.223495 -3.15531,0 -5.170463,2.094701 -5.170463,5.25001 0,3.294513 1.988643,5.250009 5.250013,5.250009 z m -1.64395,-6.443193 c 0.0199,-0.88163 0.74906,-1.484851 1.64395,-1.484851 0.90815,0 1.59754,0.609849 1.61743,1.484851 z m 17.42048,-0.60985 c -0.0928,-2.15436 -1.88258,-3.446976 -4.82576,-3.446976 -2.91005,0 -4.70645,1.193184 -4.69319,3.3144 -0.0133,1.60417 1.02746,2.631634 3.10228,2.996218 l 1.80303,0.318182 c 0.79546,0.145834 1.15341,0.357956 1.16667,0.742426 -0.0133,0.424243 -0.49716,0.66288 -1.16667,0.66288 -0.8286,0 -1.41194,-0.357955 -1.51137,-1.007578 h -3.63258 c 0.19886,2.088072 2.0019,3.473491 5.11743,3.473491 2.81724,0 4.89206,-1.372161 4.90532,-3.553036 -0.0133,-1.504738 -1.02084,-2.379739 -3.10228,-2.757581 l -2.06819,-0.371213 c -0.77557,-0.139205 -0.99432,-0.417614 -0.98106,-0.71591 -0.0133,-0.424243 0.51042,-0.66288 1.14015,-0.66288 0.72254,0 1.32576,0.38447 1.37879,1.007577 z m 1.67046,6.867437 h 3.65909 v -2.890157 l 0.55019,-0.696024 2.07482,3.586181 h 4.1894 l -3.56629,-5.720654 3.46023,-4.461183 h -4.10986 l -2.46591,3.420461 h -0.13258 V 9.553011 h -3.65909 z m 17.39398,-10.181837 h -1.75 v -2.439398 h -3.6591 v 2.439398 h -1.29924 v 2.65152 h 1.29924 v 4.600388 c -0.0265,2.134473 1.29262,3.214967 3.81819,3.075763 0.8286,-0.0464 1.44508,-0.218751 1.77652,-0.318183 l -0.5303,-2.571974 c -0.13921,0.03314 -0.49717,0.106061 -0.71592,0.106061 -0.47727,0 -0.68939,-0.212122 -0.68939,-0.636365 v -4.25569 h 1.75 z m 6.28409,10.367443 c 3.3144,0 5.27653,-2.121216 5.27653,-5.250009 0,-3.128794 -1.96213,-5.25001 -5.27653,-5.25001 -3.3144,0 -5.27652,2.121216 -5.27652,5.25001 0,3.128793 1.96212,5.250009 5.27652,5.250009 z m 0.0265,-2.70455 c -0.98106,0 -1.5644,-0.974433 -1.5644,-2.571974 0,-1.597541 0.58334,-2.571975 1.5644,-2.571975 0.92803,0 1.51137,0.974434 1.51137,2.571975 0,1.597541 -0.58334,2.571974 -1.51137,2.571974 z m 6.73486,6.337133 h 3.6591 v -5.488647 h 0.053 c 0.42424,1.034093 1.4053,1.803034 2.83712,1.803034 2.17425,0 4.0038,-1.696973 4.0038,-5.223494 0,-3.685613 -1.96213,-5.223495 -3.97728,-5.223495 -1.51137,0 -2.46591,0.875002 -2.86364,1.909095 h -0.0795 v -1.776519 h -3.63258 z m 3.57955,-8.909107 c 0,-1.511367 0.60985,-2.412883 1.61743,-2.412883 1.00758,0 1.59091,0.901516 1.59091,2.412883 0,1.511366 -0.58333,2.412883 -1.59091,2.412883 -1.00758,0 -1.61743,-0.928032 -1.61743,-2.412883 z m 12.17051,5.090918 h 3.68561 v -4.03031 h 2.04167 c 3.09565,0 5.17047,-1.82292 5.17047,-4.746221 0,-2.890157 -2.02179,-4.799251 -5.03789,-4.799251 h -5.85986 z m 3.68561,-6.893952 v -3.738643 h 1.29925 c 1.29261,0 2.06818,0.689395 2.06818,1.856064 0,1.16004 -0.77557,1.882579 -2.06818,1.882579 z m 13.31063,7.079558 c 3.3144,0 5.27653,-2.121216 5.27653,-5.250009 0,-3.128794 -1.96213,-5.25001 -5.27653,-5.25001 -3.3144,0 -5.27652,2.121216 -5.27652,5.25001 0,3.128793 1.96212,5.250009 5.27652,5.250009 z m 0.0265,-2.70455 c -0.98106,0 -1.5644,-0.974434 -1.5644,-2.571974 0,-1.597541 0.58334,-2.571975 1.5644,-2.571975 0.92803,0 1.51137,0.974434 1.51137,2.571975 0,1.59754 -0.58334,2.571974 -1.51137,2.571974 z m 6.73488,2.518944 h 3.6591 v -5.30304 c 0,-1.166669 0.80208,-1.935609 1.88258,-1.935609 0.37784,0 0.98769,0.05966 1.35227,0.185606 v -3.122165 c -0.29167,-0.08617 -0.60985,-0.139205 -0.92803,-0.139205 -1.08712,0 -1.93561,0.636365 -2.30682,2.068186 h -0.10606 v -1.93561 h -3.55304 z m 14.58338,-10.181837 h -1.75 v -2.439398 h -3.6591 v 2.439398 h -1.29925 v 2.65152 h 1.29925 v 4.600388 c -0.0265,2.134473 1.29261,3.214967 3.81819,3.075763 0.8286,-0.0464 1.44508,-0.218751 1.77652,-0.318183 l -0.53031,-2.571974 c -0.1392,0.03314 -0.49716,0.106061 -0.71591,0.106061 -0.47727,0 -0.68939,-0.212122 -0.68939,-0.636365 v -4.25569 h 1.75 z m 4.32197,10.340928 c 1.32576,0 2.32671,-0.450758 2.94319,-1.590912 h 0.0795 v 1.431821 h 3.42046 v -6.973497 c 0,-1.88258 -1.78315,-3.340916 -4.69319,-3.340916 -3.04262,0 -4.54073,1.590912 -4.66667,3.446976 h 3.36743 c 0.0862,-0.629736 0.55019,-0.928032 1.24621,-0.928032 0.63637,0 1.08712,0.291668 1.08712,0.821972 v 0.02651 c 0,0.589963 -0.64962,0.775569 -2.35985,0.901516 -2.10133,0.152463 -3.73864,1.000949 -3.73864,3.234855 0,2.028412 1.36553,2.969702 3.3144,2.969702 z m 1.19318,-2.306822 c -0.62311,0 -1.06061,-0.304925 -1.06061,-0.875002 0,-0.523675 0.37122,-0.928032 1.2197,-1.060608 0.58334,-0.0928 1.07387,-0.212121 1.45834,-0.371212 v 0.848486 c 0,0.928032 -0.78883,1.458336 -1.61743,1.458336 z M 221.53824,9.553011 h -3.65909 v 13.575782 h 3.65909 z"
+ id="text1"
+ style="font-weight:900;font-size:18.6667px;line-height:1.25;font-family:Inter;-inkscape-font-specification:'Inter, Heavy';letter-spacing:0px;word-spacing:0px;white-space:pre;fill:#000000"
+ aria-label="XDG Desktop Portal" />
+ <g
+ id="g4-3"
+ inkscape:label="portal xdg freedesktop aperture science"
+ transform="matrix(1.4375,0,0,1.4375,-955.32879,-524)"
+ style="fill:#000000">
+ <title
+ id="title2">xdg-portal</title>
+ <rect
+ y="368"
+ x="671.99994"
+ height="16"
+ width="16"
+ id="rect2"
+ style="fill:none" />
+ <path
+ style="color:#000000;fill:#000000;stroke-linecap:round;-inkscape-stroke:none;paint-order:markers stroke fill"
+ d="m 743.46875,-221.62109 c -1.92109,0 -3.42383,1.66654 -3.42383,3.61132 v 6.0918 c 0,1.94479 1.50274,3.61133 3.42383,3.61133 h 6.46484 c 1.92109,0 3.42383,-1.66654 3.42383,-3.61133 v -6.0918 c 0,-1.94478 -1.50274,-3.61132 -3.42383,-3.61132 z m 0,2 h 6.46484 c 0.76512,0 1.42383,0.66327 1.42383,1.61132 v 6.0918 c 0,0.94805 -0.65871,1.61133 -1.42383,1.61133 h -6.46484 c -0.76511,0 -1.42383,-0.66328 -1.42383,-1.61133 v -6.0918 c 0,-0.94805 0.65872,-1.61132 1.42383,-1.61132 z"
+ id="rect8"
+ transform="rotate(45)" />
+ <path
+ style="color:#000000;opacity:1;fill:#000000;fill-rule:evenodd;stroke-width:0.832109;stroke-linecap:round;-inkscape-stroke:none"
+ d="m 680.29396,371.18645 c -1.30513,-0.0914 -2.63994,0.30838 -3.67623,1.25142 -1.85606,1.68902 -2.10977,4.67185 -0.37217,6.55448 1.53794,1.66631 4.23802,1.8872 5.9304,0.29741 1.47637,-1.38687 1.66557,-3.80461 0.22265,-5.30632 -1.23582,-1.28617 -3.37348,-1.44374 -4.68386,-0.14627 -1.0956,1.08482 -1.22093,2.94343 -0.0666,4.06141 0.93392,0.90452 2.51699,0.99723 3.44058,-0.0179 0.7127,-0.78334 0.76996,-2.09652 -0.11377,-2.82137 -0.31699,-0.26001 -0.7177,-0.38946 -1.1214,-0.36893 -0.4037,0.0205 -0.8255,0.21265 -1.08239,0.59808 -0.16449,0.24681 -0.22985,0.53729 -0.1869,0.83699 0.0429,0.29969 0.25013,0.63735 0.60621,0.75897 0.26803,0.0915 0.42549,0.0409 0.62733,-0.0715 0.10091,-0.0562 0.22585,-0.14782 0.28603,-0.32992 0.0602,-0.1821 -0.007,-0.40468 -0.10726,-0.52982 a 0.41605426,0.41605426 0 0 0 -0.56395,-0.0634 c 0.0106,-0.0527 0.0114,-0.1106 0.0309,-0.13977 0.10126,-0.15192 0.24405,-0.21795 0.43231,-0.22753 0.18826,-0.01 0.40579,0.06 0.55257,0.1804 0.47749,0.39164 0.44098,1.1592 0.0244,1.61709 -0.5816,0.63924 -1.62979,0.57736 -2.24605,-0.0195 -0.79642,-0.77136 -0.70658,-2.0997 0.0731,-2.87175 0.96089,-0.95143 2.57264,-0.83254 3.49908,0.13164 1.10523,1.15027 0.95629,3.04317 -0.1934,4.12317 -1.33952,1.25831 -3.51587,1.07913 -4.74887,-0.25679 -1.41093,-1.52868 -1.20085,-3.98733 0.3218,-5.37295 1.71779,-1.56321 4.45907,-1.32295 5.99703,0.3868 1.49098,1.65753 1.51331,4.23325 0.14789,5.98241 a 0.41605426,0.41605426 0 0 0 0.0731,0.58345 0.41605426,0.41605426 0 0 0 0.58345,-0.0715 c 1.61077,-2.06346 1.58742,-5.08109 -0.18527,-7.0518 -0.92006,-1.02283 -2.19558,-1.60528 -3.5007,-1.69672 z"
+ id="path8" />
+ </g>
+</svg>
diff --git a/doc/website/assets/readme.png b/doc/website/assets/readme.png
new file mode 100644
index 0000000..02405bb
--- /dev/null
+++ b/doc/website/assets/readme.png
Binary files differ
diff --git a/doc/website/assets/splash-dark.png b/doc/website/assets/splash-dark.png
new file mode 100644
index 0000000..29d781b
--- /dev/null
+++ b/doc/website/assets/splash-dark.png
Binary files differ
diff --git a/doc/website/assets/splash.png b/doc/website/assets/splash.png
new file mode 100644
index 0000000..2fc8094
--- /dev/null
+++ b/doc/website/assets/splash.png
Binary files differ
diff --git a/doc/website/favicon.png b/doc/website/favicon.png
new file mode 100644
index 0000000..c531fcd
--- /dev/null
+++ b/doc/website/favicon.png
Binary files differ
diff --git a/doc/website/favicon.svg b/doc/website/favicon.svg
new file mode 100644
index 0000000..3f65ec5
--- /dev/null
+++ b/doc/website/favicon.svg
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="16"
+ height="16"
+ version="1.1"
+ id="svg14"
+ sodipodi:docname="favicon.svg"
+ inkscape:version="1.3 (0e150ed6c4, 2023-07-21)"
+ inkscape:export-filename="favicon.png"
+ inkscape:export-xdpi="96"
+ inkscape:export-ydpi="96"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs18" />
+ <sodipodi:namedview
+ id="namedview16"
+ pagecolor="#505050"
+ bordercolor="#ffffff"
+ borderopacity="1"
+ inkscape:pageshadow="0"
+ inkscape:pageopacity="0"
+ inkscape:pagecheckerboard="1"
+ showgrid="false"
+ inkscape:current-layer="g12"
+ inkscape:snap-nodes="false"
+ inkscape:snap-others="false"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:showpageshadow="0"
+ inkscape:deskcolor="#d1d1d1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid20"
+ originx="0"
+ originy="0"
+ spacingy="1"
+ spacingx="1"
+ units="px"
+ visible="false" />
+ </sodipodi:namedview>
+ <g
+ transform="translate(380 -506.52)"
+ id="g12">
+ <rect
+ style="fill:#f6d32d;fill-opacity:1;stroke:none;stroke-width:0.177777;stroke-linecap:round;paint-order:markers stroke fill"
+ id="rect1"
+ width="15.999992"
+ height="15.999992"
+ x="-380"
+ y="506.51999"
+ rx="0.26666722"
+ ry="0.26666722" />
+ <g
+ id="g4-3"
+ inkscape:label="portal xdg freedesktop aperture science"
+ transform="matrix(0.99018293,0,0,0.99018293,-1045.3236,142.21168)"
+ style="fill:#000000">
+ <title
+ id="title2">xdg-portal</title>
+ <rect
+ y="368"
+ x="671.99994"
+ height="16"
+ width="16"
+ id="rect2-6"
+ style="fill:none" />
+ <path
+ style="color:#000000;fill:#000000;stroke-linecap:round;-inkscape-stroke:none;paint-order:markers stroke fill"
+ d="m 743.46875,-221.62109 c -1.92109,0 -3.42383,1.66654 -3.42383,3.61132 v 6.0918 c 0,1.94479 1.50274,3.61133 3.42383,3.61133 h 6.46484 c 1.92109,0 3.42383,-1.66654 3.42383,-3.61133 v -6.0918 c 0,-1.94478 -1.50274,-3.61132 -3.42383,-3.61132 z m 0,2 h 6.46484 c 0.76512,0 1.42383,0.66327 1.42383,1.61132 v 6.0918 c 0,0.94805 -0.65871,1.61133 -1.42383,1.61133 h -6.46484 c -0.76511,0 -1.42383,-0.66328 -1.42383,-1.61133 v -6.0918 c 0,-0.94805 0.65872,-1.61132 1.42383,-1.61132 z"
+ id="rect8"
+ transform="rotate(45)" />
+ <path
+ style="color:#000000;opacity:1;fill:#000000;fill-rule:evenodd;stroke-width:0.832109;stroke-linecap:round;-inkscape-stroke:none"
+ d="m 680.29396,371.18645 c -1.30513,-0.0914 -2.63994,0.30838 -3.67623,1.25142 -1.85606,1.68902 -2.10977,4.67185 -0.37217,6.55448 1.53794,1.66631 4.23802,1.8872 5.9304,0.29741 1.47637,-1.38687 1.66557,-3.80461 0.22265,-5.30632 -1.23582,-1.28617 -3.37348,-1.44374 -4.68386,-0.14627 -1.0956,1.08482 -1.22093,2.94343 -0.0666,4.06141 0.93392,0.90452 2.51699,0.99723 3.44058,-0.0179 0.7127,-0.78334 0.76996,-2.09652 -0.11377,-2.82137 -0.31699,-0.26001 -0.7177,-0.38946 -1.1214,-0.36893 -0.4037,0.0205 -0.8255,0.21265 -1.08239,0.59808 -0.16449,0.24681 -0.22985,0.53729 -0.1869,0.83699 0.0429,0.29969 0.25013,0.63735 0.60621,0.75897 0.26803,0.0915 0.42549,0.0409 0.62733,-0.0715 0.10091,-0.0562 0.22585,-0.14782 0.28603,-0.32992 0.0602,-0.1821 -0.007,-0.40468 -0.10726,-0.52982 a 0.41605426,0.41605426 0 0 0 -0.56395,-0.0634 c 0.0106,-0.0527 0.0114,-0.1106 0.0309,-0.13977 0.10126,-0.15192 0.24405,-0.21795 0.43231,-0.22753 0.18826,-0.01 0.40579,0.06 0.55257,0.1804 0.47749,0.39164 0.44098,1.1592 0.0244,1.61709 -0.5816,0.63924 -1.62979,0.57736 -2.24605,-0.0195 -0.79642,-0.77136 -0.70658,-2.0997 0.0731,-2.87175 0.96089,-0.95143 2.57264,-0.83254 3.49908,0.13164 1.10523,1.15027 0.95629,3.04317 -0.1934,4.12317 -1.33952,1.25831 -3.51587,1.07913 -4.74887,-0.25679 -1.41093,-1.52868 -1.20085,-3.98733 0.3218,-5.37295 1.71779,-1.56321 4.45907,-1.32295 5.99703,0.3868 1.49098,1.65753 1.51331,4.23325 0.14789,5.98241 a 0.41605426,0.41605426 0 0 0 0.0731,0.58345 0.41605426,0.41605426 0 0 0 0.58345,-0.0715 c 1.61077,-2.06346 1.58742,-5.08109 -0.18527,-7.0518 -0.92006,-1.02283 -2.19558,-1.60528 -3.5007,-1.69672 z"
+ id="path8" />
+ </g>
+ </g>
+</svg>
diff --git a/doc/website/fonts/Inter.var.woff2 b/doc/website/fonts/Inter.var.woff2
new file mode 100644
index 0000000..365eedc
--- /dev/null
+++ b/doc/website/fonts/Inter.var.woff2
Binary files differ
diff --git a/doc/website/index.md b/doc/website/index.md
new file mode 100644
index 0000000..0ef7330
--- /dev/null
+++ b/doc/website/index.md
@@ -0,0 +1,111 @@
+---
+layout: default
+---
+<picture class="full pixels">
+ <source srcset="assets/splash-dark.png" media="(prefers-color-scheme: dark)">
+ <img src="assets/splash.png">
+</picture>
+
+
+# XDG Desktop Portal
+
+A portal frontend service for [Flatpak](http://www.flatpak.org) and other
+desktop containment frameworks.
+
+xdg-desktop-portal works by exposing a series of D-Bus interfaces known as
+_portals_ under a well-known name (`org.freedesktop.portal.Desktop`) and object
+path (`/org/freedesktop/portal/desktop`).
+
+The portal interfaces include APIs for file access, opening URIs, printing
+and others.
+
+
+<a href="https://flatpak.github.io/xdg-desktop-portal/docs" class="pixelbutton"><picture alt="Documentation for the available D-Bus interfaces">
+ <source srcset="assets/docs-button-dark.png" media="(prefers-color-scheme: dark)">
+ <img src="assets/docs-button.png">
+</picture></a>
+
+## Version Numbering
+
+xdg-desktop-portal uses even minor vesion numbers for stable versions, and odd
+minor version numbers for unstable versions. During an unstable version cycle,
+portal APIs can make backward incompatible changes, meaning that applications
+should only depend on APIs defined in stable xdg-desktop-portal versions in
+production.
+
+## Building xdg-desktop-portal
+
+xdg-desktop-portal depends on GLib and Flatpak. To build the documentation, you
+will need xmlto and the docbook stylesheets. For more instructions, please read
+[CONTRIBUTING.md](https://github.com/flatpak/xdg-desktop-portal/blob/main/CONTRIBUTING.md).
+
+## Using Portals
+
+Flatpak grants sandboxed applications _talk_ access to names in the
+org.freedesktop.portal.\* prefix. One possible way to use the portal APIs
+is thus just to make D-Bus calls. For many of the portals, toolkits (e.g.
+GTK) are expected to support portals transparently if you use suitable
+high-level APIs.
+
+To implement most portals, xdg-desktop-portal relies on a backend
+that provides implementations of the org.freedesktop.impl.portal.\* interfaces.
+
+Here are some examples of available backends:
+
+- GTK [xdg-desktop-portal-gtk](http://github.com/flatpak/xdg-desktop-portal-gtk)
+- GNOME [xdg-desktop-portal-gnome](https://gitlab.gnome.org/GNOME/xdg-desktop-portal-gnome/)
+- KDE [xdg-desktop-portal-kde](https://invent.kde.org/plasma/xdg-desktop-portal-kde)
+- LXQt [xdg-desktop-portal-lxqt](https://github.com/lxqt/xdg-desktop-portal-lxqt)
+- Pantheon (elementary OS) [xdg-desktop-portal-pantheon](https://github.com/elementary/portals)
+- wlroots [xdg-desktop-portal-wlr](https://github.com/emersion/xdg-desktop-portal-wlr)
+- Deepin [xdg-desktop-portal-dde](https://github.com/linuxdeepin/xdg-desktop-portal-dde)
+- Xapp (Cinnamon, MATE, Xfce) [xdg-desktop-portal-xapp](https://github.com/linuxmint/xdg-desktop-portal-xapp)
+
+## Design Considerations
+
+There are several reasons for the frontend/backend separation of the portal
+code:
+- We want to have _native_ portal dialogs that match the session desktop (i.e.
+ GTK dialogs for GNOME, Qt dialogs for KDE)
+- One of the limitations of the D-Bus proxying in flatpak is that allowing a
+ sandboxed app to talk to a name implicitly also allows it to talk to any other
+ name owned by the same unique name. Therefore, sandbox-facing D-Bus apis
+ should generally be hosted on a dedicated bus connection. For portals, the
+ frontend takes care of this for us.
+- The frontend can handle all the interaction with _portal infrastructure_, such
+ as the permission store and the document store, freeing the backends to focus
+ on just providing a user interface.
+- The frontend can also handle argument validation, and be strict about only
+ letting valid requests through to the backend.
+
+The portal apis are all following the pattern of an initial method call, whose
+response returns an object handle for an _org.freedesktop.portal.Request_ object
+that represents the portal interaction. The end of the interaction is done via a
+_Response_ signal that gets emitted on that object. This pattern was chosen over
+a simple method call with return, since portal apis are expected to show dialogs
+and interact with the user, which may well take longer than the maximum method
+call timeout of D-Bus. Another advantage is that the caller can cancel an
+ongoing interaction by calling the _Cancel_ method on the request object.
+
+One consideration for deciding the shape of portal APIs is that we want them to
+'hide' behind existing library APIs where possible, to make it as easy as
+possible to have apps use them _transparently_. For example, the OpenFile portal
+is working well as a backend for the GtkFileChooserNative API.
+
+When it comes to files, we need to be careful to not let portal apis subvert the
+limited filesystem view that apps have in their sandbox. Therefore, files should
+only be passed into portal APIs in one of two forms:
+- As a document ID referring to a file that has been exported in the document
+ portal
+- As an open fd. The portal can work its way back to a file path from the fd,
+ and passing an fd proves that the app inside the sandbox has access to the
+ file to open it.
+
+When it comes to processes, passing pids around is not useful in a sandboxed
+world where apps are likely in their own pid namespace. And passing pids from
+inside the sandbox is problematic, since the app can just lie.
+
+## Contributing
+
+XDG Desktop Portals is [Free Software](https://www.gnu.org/philosophy/free-sw.html). Contributions [welcome](https://github.com/flatpak/xdg-desktop-portal/blob/main/CONTRIBUTING.md).
+
diff --git a/doc/website/style.css b/doc/website/style.css
new file mode 100644
index 0000000..77d3679
--- /dev/null
+++ b/doc/website/style.css
@@ -0,0 +1,498 @@
+/*
+
+ OS Component Website
+ ====================
+
+ shamelessly stolen CSS from systemd
+ https://github.com/systemd/systemd/tree/main/docs
+
+*/
+
+/* GNOME Color Palette */
+:root {
+ --rounded-corner: 12px;
+ --blue1: rgb(153,193,241);
+ --blue2: rgb(98,160,234);
+ --blue3: rgb(53,132,228);
+ --blue4: rgb(28,113,216);
+ --blue5: rgb(26,95,180);
+ --green1: rgb(143,240,164);
+ --green2: rgb(87,227,137);
+ --green3: rgb(51,209,122);
+ --green4: rgb(46,194,126);
+ --green5: rgb(38,162,105);
+ --yellow1: rgb(249,240,107);
+ --yellow2: rgb(248,228,92);
+ --yellow3: rgb(246,211,45);
+ --yellow4: rgb(245,194,17);
+ --yellow5: rgb(229,165,10);
+ --orange1: rgb(255,190,111);
+ --orange2: rgb(255,163,72);
+ --orange3: rgb(255,120,0);
+ --orange4: rgb(230,97,0);
+ --orange5: rgb(198,70,0);
+ --red1: rgb(246,97,81);
+ --red2: rgb(237,51,59);
+ --red3: rgb(224,27,36);
+ --red4: rgb(192,28,40);
+ --red5: rgb(165,29,45);
+ --purple1: rgb(220,138,221);
+ --purple2: rgb(192,97,203);
+ --purple3: rgb(145,65,172);
+ --purple4: rgb(129,61,156);
+ --purple5: rgb(97,53,131);
+ --brown1: rgb(205,171,143);
+ --brown2: rgb(181,131,90);
+ --brown3: rgb(152,106,68);
+ --brown4: rgb(134,94,60);
+ --brown5: rgb(99,69,44);
+ --light1: rgb(255,255,255);
+ --light2: rgb(246,245,244);
+ --light3: rgb(222,221,218);
+ --light4: rgb(192,191,188);
+ --light5: rgb(154,153,150);
+ --dark1: rgb(119,118,123);
+ --dark2: rgb(94,92,100);
+ --dark3: rgb(61,56,70);
+ --dark4: rgb(36,31,49);
+ --dark5: rgb(0,0,0);
+ --primary-color: var(--green5); /* Set your project color */
+ --borders: var(--light3);
+ --fg-color: #241f31;
+ --bg-color: var(--light2);
+ --term-fg: var(--dark3);
+ --term-bg: var(--light1);
+ --term-br: 9px;
+}
+
+@media (prefers-color-scheme: dark) {
+ :root {
+ color-scheme: dark;
+ --fg-color: #eee;
+ --bg-color: #0d2542;
+ --term-fg: var(--light1);
+ --term-bg: var(--dark4);
+ --primary-color: var(--orange1);
+ }
+}
+
+/* Typography */
+
+@font-face {
+ font-family: 'Inter Var';
+ font-weight: 100 900;
+ font-display: swap;
+ font-style: oblique italic 0deg 10deg;
+ src: url("fonts/Inter.var.woff2?v=3.19") format("woff2");
+}
+
+* {
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+html, body {
+ margin: 0;
+ padding: 0;
+ font-size: 16px;
+ font-family: "Inter Var", sans-serif;
+ font-weight: 400;
+ line-height: 1.6;
+ scroll-behavior: smooth;
+}
+body {
+ color: var(--fg-color);
+ background-color: var(--bg-color);
+ /* ⇩⇩ put footer at the bottom for short pages, such as the 404 ⇩⇩ */
+ display: grid;
+ min-height: 100vh;
+ grid-template-rows: auto minmax(auto,1fr) auto; /* header, stuff, footer */
+}
+h1, h2, h3, h4, h5, h6 {
+ margin: 3rem 0 1rem;
+ font-weight: 600;
+ line-height: 1.25;
+ font-variation-settings: "wght" 600; /* needed for webkit */
+}
+
+h1 {
+ font-size: 1.5rem;
+ font-weight: 100;
+ font-style: normal;
+ margin: 3rem 0 1rem;
+}
+
+@media screen and (min-width: 650px) {
+ h1 {
+ font-size: 1.6rem;
+ }
+}
+h2 {
+ font-size: 1.2rem;
+}
+
+
+
+a {
+ font-weight: 600;
+ text-decoration: none;
+ color: var(--primary-color);
+ cursor: pointer;
+ font-variation-settings: "wght" 600; /* needed for webkit */
+}
+a:hover {
+ text-decoration: underline;
+}
+b {
+ font-weight: 600;
+}
+small {
+ color: #777;
+}
+hr {
+ margin: 3rem auto 4rem;
+ width: 40%;
+ opacity: 40%;
+}
+
+img {
+ display: block;
+ margin: 2rem auto;
+ max-width: 100%;
+ }
+ img.full, picture.full img { width: 100%; }
+ img.pixels, picture.pixels img {
+ image-rendering: crisp-edges; /* older firefox browsers */
+ image-rendering: pixelated;
+ }
+
+
+/* Layout */
+.container {
+ width: 80%;
+ margin-left: auto;
+ margin-right: auto;
+ max-width: 720px;
+}
+
+/* Singletons */
+#logo {
+ display: block;
+ width: 251px; height: 26px;
+ background: url('assets/page-logo.svg') no-repeat center;
+ padding: 5rem 0 3rem;
+ margin: 0 auto;
+ position: relative;
+}
+ #logo a {
+ display: block;
+ position: absolute;
+ top: 0; left: 0; right: 0; bottom: 0;
+ color: rgba(0,0,0,0); /* make text transparent */
+ cursor: pointer;
+ }
+.page-logo > img {
+ margin: 0 auto;
+}
+
+ @media (prefers-color-scheme: dark) {
+ #logo {
+ background-image: url('assets/page-logo-i.svg');
+ }
+ }
+
+.brand-white {
+ background-color: #fff;
+}
+
+.brand-green {
+ background-color: #30D475;
+}
+
+.brand-black {
+ background-color: #201A26;
+ color: white;
+}
+
+.page-link::after {
+ content: " ➜";
+}
+
+
+/* Footer */
+footer {
+ text-align: center;
+ padding: 3em 0 3em;
+ font-size: 1em;
+ margin-top: 4rem;
+}
+
+/* Make tables vertically aligned to the top */
+tbody td {
+ vertical-align: top;
+}
+
+/* Github Code Highlighting */
+.highlight table td { padding: 5px; }
+.highlight table pre { margin: 0; }
+.highlight .cm {
+ color: #999988;
+ font-style: italic;
+}
+.highlight .cp {
+ color: #999999;
+ font-weight: bold;
+}
+.highlight .c1 {
+ color: #999988;
+ font-style: italic;
+}
+.highlight .cs {
+ color: #999999;
+ font-weight: bold;
+ font-style: italic;
+}
+.highlight .c, .highlight .ch, .highlight .cd, .highlight .cpf {
+ color: #999988;
+ font-style: italic;
+}
+.highlight .err {
+ color: #a61717;
+ background-color: #e3d2d2;
+}
+.highlight .gd {
+ color: #000000;
+ background-color: #ffdddd;
+}
+.highlight .ge {
+ color: #000000;
+ font-style: italic;
+}
+.highlight .gr {
+ color: #aa0000;
+}
+.highlight .gh {
+ color: #999999;
+}
+.highlight .gi {
+ color: #000000;
+ background-color: #ddffdd;
+}
+.highlight .go {
+ color: #888888;
+}
+.highlight .gp {
+ color: #555555;
+}
+.highlight .gs {
+ font-weight: bold;
+}
+.highlight .gu {
+ color: #aaaaaa;
+}
+.highlight .gt {
+ color: #aa0000;
+}
+.highlight .kc {
+ color: #000000;
+ font-weight: bold;
+}
+.highlight .kd {
+ color: #000000;
+ font-weight: bold;
+}
+.highlight .kn {
+ color: #000000;
+ font-weight: bold;
+}
+.highlight .kp {
+ color: #000000;
+ font-weight: bold;
+}
+.highlight .kr {
+ color: #000000;
+ font-weight: bold;
+}
+.highlight .kt {
+ color: #445588;
+ font-weight: bold;
+}
+.highlight .k, .highlight .kv {
+ color: #000000;
+ font-weight: bold;
+}
+.highlight .mf {
+ color: #009999;
+}
+.highlight .mh {
+ color: #009999;
+}
+.highlight .il {
+ color: #009999;
+}
+.highlight .mi {
+ color: #009999;
+}
+.highlight .mo {
+ color: #009999;
+}
+.highlight .m, .highlight .mb, .highlight .mx {
+ color: #009999;
+}
+.highlight .sb {
+ color: #d14;
+}
+.highlight .sc {
+ color: #d14;
+}
+.highlight .sd {
+ color: #d14;
+}
+.highlight .s2 {
+ color: #d14;
+}
+.highlight .se {
+ color: #d14;
+}
+.highlight .sh {
+ color: #d14;
+}
+.highlight .si {
+ color: #d14;
+}
+.highlight .sx {
+ color: #d14;
+}
+.highlight .sr {
+ color: #009926;
+}
+.highlight .s1 {
+ color: #d14;
+}
+.highlight .ss {
+ color: #990073;
+}
+.highlight .s, .highlight .sa, .highlight .dl {
+ color: #d14;
+}
+.highlight .na {
+ color: #008080;
+}
+.highlight .bp {
+ color: #999999;
+}
+.highlight .nb {
+ color: #0086B3;
+}
+.highlight .nc {
+ color: #445588;
+ font-weight: bold;
+}
+.highlight .no {
+ color: #008080;
+}
+.highlight .nd {
+ color: #3c5d5d;
+ font-weight: bold;
+}
+.highlight .ni {
+ color: #800080;
+}
+.highlight .ne {
+ color: #990000;
+ font-weight: bold;
+}
+.highlight .nf, .highlight .fm {
+ color: #990000;
+ font-weight: bold;
+}
+.highlight .nl {
+ color: #990000;
+ font-weight: bold;
+}
+.highlight .nn {
+ color: #555555;
+}
+.highlight .nt {
+ color: #000080;
+}
+.highlight .vc {
+ color: #008080;
+}
+.highlight .vg {
+ color: #008080;
+}
+.highlight .vi {
+ color: #008080;
+}
+.highlight .nv, .highlight .vm {
+ color: #008080;
+}
+.highlight .ow {
+ color: #000000;
+ font-weight: bold;
+}
+.highlight .o {
+ color: #000000;
+ font-weight: bold;
+}
+.highlight .w {
+ color: #bbbbbb;
+}
+.highlight {
+}
+
+
+/* Code Blocks */
+.highlighter-rouge {
+ font-size: 80%;
+ line-height: normal;
+ padding: 2px 1rem;
+ border-radius: var(--term-br);
+ background-color: var(--term-bg);
+ max-width: 100vw;
+ overflow-x: auto;
+ margin: 1rem 0;
+}
+ @media only screen and (max-device-width : 480px) {
+ /*mobile*/
+ .highlighter-rouge { max-width: 80vw; }
+ }
+
+.highlighter-rouge * {
+}
+
+/* Inline Code */
+code.highlighter-rouge {
+ padding: 2px 6px;
+ background-color: var(--term-bg);
+}
+
+/* Buttons */
+
+.dialog-buttons {
+ display: flex;
+ flex-direction: row;
+ align-items: baseline;
+ justify-content: space-between;
+ margin-top: 6rem;
+}
+
+.inline-button {
+ display: inline-block;
+ font-weight: 900;
+ font-size: 90%;
+ padding: .4rem 1rem;
+ border-radius: var(--rounded-corner);
+ background-color: var(--term-bg);
+ color: var(--fg-color);
+}
+
+a.pixelbutton img { transition: all ease-out 300ms; }
+a.pixelbutton:hover img {
+ filter: brightness(1.3) hue-rotate(-2deg) contrast(130%) drop-shadow(0px 2px 2px rgba(0,0,0,0.5));
+}
+a.pixelbutton:active img {
+ filter: brightness(0.9) hue-rotate(-2deg) contrast(130%);
+ translate: 0 2px;
+}
diff --git a/document-portal/document-portal-fuse.c b/document-portal/document-portal-fuse.c
index 0984b7e..cd106a9 100644
--- a/document-portal/document-portal-fuse.c
+++ b/document-portal/document-portal-fuse.c
@@ -50,22 +50,22 @@
* we won't be told about this. This means that in general we always
* return 0 for the cacheable lifetimes of entries and file attributes.
* (Except for the virtual directories we have full control of, the
- * below only discusses real files).
+ * section below only discusses real files).
*
* However, even though we don't have full control of the underlying
- * filesystem the *kernel* has. This means we can used that to get
+ * filesystem the *kernel* has. This means we can use that to get
* the correct semantics.
*
- * For example, assume that a directory is held opened by a process
- * (for example, it could be the CWD of the process). When we opened
- * the directory via a LOOKUP operation we returned an inode to it,
- * and for as long as the kernel has this inode around (i.e. until it
- * sent a FORGET message) it can send operations on this inode without
- * looking it up again. For example if the above process used a
+ * For example, assume that a directory is held open by a process
+ * (for example, it could be the CWD of the process). When we open
+ * the directory via a LOOKUP operation we return an inode to it,
+ * and, for as long as the kernel has this inode around (i.e. until it
+ * sent a FORGET message), it can send operations on this inode without
+ * looking it up again. For example, if the above process used a
* relative path.
*
* Now, consider the case where the app chdir():ed into the fuse
- * directory, but after that the backing directory was renamed ouside
+ * directory, but after the backing directory was renamed outside
* the fuse filesystem. The fuse inode representation for the inode
* cannot be the directory name, because the expected semantics is
* that further relative pathnames from the app will still resolve
@@ -84,11 +84,11 @@
*
* One problem with this approach is that the kernel tends to keep
* inodes alive for a very long time even if they are *only*
- * references by the dcache (event though we will not really use the
- * dcache info due to the 0 valid time). This is unfortunate, because
- * it means we will keep a lot of file descriptor open. But, we
- * can't know if the kernel needs the inode for some non-dcache use
- * so we can't close the file descriptors.
+ * referenced by the dcache (Directory Entry Cache) (even though we
+ * will not really use the dcache info due to the 0 valid time). This
+ * is unfortunate, because it means we will keep a lot of file
+ * descriptor open. But, we can not know if the kernel needs the inode
+ * for some non-dcache use so we can't close the file descriptors.
*
* To work around this we regularly emit entry invalidation calls
* to the kernel, which will make it forget the inodes that are
@@ -709,11 +709,12 @@ _xdp_inode_new (void)
return inode;
}
-/* We try to create persistent inode nr based on the backing device and inode nrs, as
- * well as the doc/app id (since the same backing dev/ino should be different inodes
- * in the fuse filesystem). We do this by hashing the data to generate a value.
- * For non-phsyical files or accidental collisions we just pick a free number
- * by incrementing.
+/* We try to create persistent inode number based on the backing
+ * device and inode numbers, as well as the doc/app id (since the same
+ * backing dev/ino should be different inodes in the fuse
+ * filesystem). We do this by hashing the data to generate a value.
+ * For non-physical files or accidental collisions we just pick a free
+ * number by incrementing.
*/
static guint64
generate_persistent_ino (DevIno *backing_devino,
@@ -1645,7 +1646,7 @@ ensure_docdir_inode_by_name (XdpInode *parent,
if (o_path_fd == -1)
return -errno;
- return ensure_docdir_inode (parent, o_path_fd, e, NULL); /* Takes ownershif of o_path_fd */
+ return ensure_docdir_inode (parent, o_path_fd, e, NULL); /* Takes ownership of o_path_fd */
}
@@ -1795,7 +1796,7 @@ xdp_fuse_lookup (fuse_req_t req,
if (fd < 0)
return xdp_reply_err (op, req, -fd);
- res = ensure_docdir_inode (parent, fd, &e, NULL); /* Takes ownershif of fd */
+ res = ensure_docdir_inode (parent, fd, &e, NULL); /* Takes ownership of fd */
if (res != 0)
return xdp_reply_err (op, req, -res);
@@ -1857,7 +1858,7 @@ xdp_fuse_open (fuse_req_t req,
fi->fh = (gsize)file;
if (fuse_reply_open (req, fi) == -ENOENT)
{
- /* The open syscall was interrupted, so it must be cancelled */
+ /* The open syscall was interrupted, so it must be cancelled */
xdp_file_free (file);
}
}
@@ -1896,7 +1897,7 @@ xdp_fuse_create (fuse_req_t req,
if (o_path_fd < 0)
return xdp_reply_err (op, req, errno);
- res = ensure_docdir_inode (parent, xdp_steal_fd (&o_path_fd), &e, NULL); /* Takes ownershif of o_path_fd */
+ res = ensure_docdir_inode (parent, xdp_steal_fd (&o_path_fd), &e, NULL); /* Takes ownership of o_path_fd */
if (res != 0)
return xdp_reply_err (op, req, -res);
@@ -1905,7 +1906,7 @@ xdp_fuse_create (fuse_req_t req,
fi->fh = (gsize)file;
if (fuse_reply_create (req, &e, fi) == -ENOENT)
{
- /* The open syscall was interrupted, so it must be cancelled */
+ /* The open syscall was interrupted, so it must be cancelled */
xdp_file_free (file);
abort_reply_entry (&e);
}
@@ -2281,7 +2282,7 @@ xdp_fuse_opendir (fuse_req_t req,
if (fuse_reply_open (req, fi) == -ENOENT)
{
- /* The opendir syscall was interrupted, so it must be cancelled */
+ /* The opendir syscall was interrupted, so it must be cancelled */
xdp_dir_free (d);
}
}
@@ -2294,7 +2295,6 @@ xdp_fuse_readdir (fuse_req_t req,
struct fuse_file_info *fi)
{
XdpDir *d = (XdpDir *)fi->fh;
- char *p;
size_t rem;
const char *op = "READDIR";
@@ -2302,6 +2302,7 @@ xdp_fuse_readdir (fuse_req_t req,
if (d->dir)
{
+ char *p;
g_autofree char *buf = g_try_malloc (size);
if (buf == NULL)
@@ -2349,7 +2350,7 @@ xdp_fuse_readdir (fuse_req_t req,
d->entry->d_name, &st, nextoff);
/* The above function returns the size of the entry size even though
* the copy failed due to smaller buf size, so I'm checking after this
- * function and breaking out incase we exceed the size.
+ * function and breaking out in case we exceed the size.
*/
if (entsize > rem)
break;
@@ -2449,7 +2450,7 @@ xdp_fuse_mkdir (fuse_req_t req,
if (res != 0)
return xdp_reply_err (op, req, errno);
- res = ensure_docdir_inode_by_name (parent, dirfd, name, &e); /* Takes ownershif of o_path_fd */
+ res = ensure_docdir_inode_by_name (parent, dirfd, name, &e); /* Takes ownership of o_path_fd */
if (res != 0)
return xdp_reply_err (op, req, -res);
@@ -2833,7 +2834,7 @@ xdp_fuse_symlink (fuse_req_t req,
if (res != 0)
return xdp_reply_err (op, req, errno);
- res = ensure_docdir_inode_by_name (parent, dirfd, name, &e); /* Takes ownershif of o_path_fd */
+ res = ensure_docdir_inode_by_name (parent, dirfd, name, &e); /* Takes ownership of o_path_fd */
if (res != 0)
return xdp_reply_err (op, req, -res);
diff --git a/document-portal/document-portal.c b/document-portal/document-portal.c
index 97765da..39c7d94 100644
--- a/document-portal/document-portal.c
+++ b/document-portal/document-portal.c
@@ -291,7 +291,7 @@ do_create_doc (struct stat *parent_st_buf, const char *path, gboolean reuse_exis
char *id = NULL;
guint32 flags = 0;
- g_debug ("Creating document at path '%s', resuse_existing: %d, persistent: %d, directory: %d", path, reuse_existing, persistent, directory);
+ g_debug ("Creating document at path '%s', reuse_existing: %d, persistent: %d, directory: %d", path, reuse_existing, persistent, directory);
if (!reuse_existing)
flags |= DOCUMENT_ENTRY_FLAG_UNIQUE;
diff --git a/document-portal/file-transfer.c b/document-portal/file-transfer.c
index 028a210..e1d6e51 100644
--- a/document-portal/file-transfer.c
+++ b/document-portal/file-transfer.c
@@ -566,6 +566,7 @@ stop_file_transfers_in_thread_func (GTask *task,
}
}
G_UNLOCK (transfers);
+ g_task_return_boolean (task, TRUE);
}
void
diff --git a/meson.build b/meson.build
index 2254c0d..641f26a 100644
--- a/meson.build
+++ b/meson.build
@@ -1,8 +1,8 @@
project(
'xdg-desktop-portal',
'c',
- version: '1.18.0',
- meson_version: '>= 0.56.2',
+ version: '1.18.1',
+ meson_version: '>= 0.58',
license: 'LGPL-2.0-or-later',
default_options: ['warning_level=2'])
@@ -21,8 +21,7 @@ endif
flatpak_intf_dir = get_option('flatpak-interfaces-dir')
if flatpak_intf_dir == ''
- flatpak_required = host_machine.system() in ['linux']
- flatpak_dep = dependency('flatpak', version: '>= 1.5.0', required : flatpak_required)
+ flatpak_dep = dependency('flatpak', version: '>= 1.5.0', required: get_option('flatpak-interfaces'))
if flatpak_dep.found()
flatpak_intf_dir = flatpak_dep.get_variable(pkgconfig: 'interfaces_dir')
endif
@@ -113,8 +112,19 @@ libportal_dep = dependency('libportal',
pipewire_dep = dependency('libpipewire-0.3', version: '>= 0.2.90')
libsystemd_dep = dependency('libsystemd', required: get_option('systemd'))
-bwrap_required = host_machine.system() in ['linux']
-bwrap = find_program('bwrap', required: bwrap_required)
+
+use_bwrap = get_option('sandboxed-image-validation')
+bwrap = find_program('bwrap', required: use_bwrap)
+
+if not use_bwrap
+ warning('''
+ Sandboxed image validation with Bubblewrap is DISABLED.
+ If your system can run Bubblewrap, it's **hightly** recommended that you enable this
+ option. Bitmap validation and processing is a common attack vector.
+ By proceeding with sandboxed image validation disabled, you acknowledge that you
+ are lowering your system's security, and are subject to known or unknown exploits.
+ ''')
+endif
have_libportal = libportal_dep.found()
if have_libportal
@@ -190,6 +200,8 @@ summary({
'Enable installed tests:': enable_installed_tests,
'Enable python test suite': enable_pytest,
'Build man pages': rst2man.found(),
+ 'Build flatpak interfaces': flatpak_dep.found(),
+ 'Sandboxed image validation': use_bwrap,
},
section: 'Optional builds',
bool_yn: true,
diff --git a/meson_options.txt b/meson_options.txt
index edcbcd8..41b2eef 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -2,6 +2,10 @@ option('dbus-service-dir',
type: 'string',
value: '',
description: 'directory for dbus service files (default: PREFIX/share/dbus-1/services)')
+option('flatpak-interfaces',
+ type: 'feature',
+ value: 'auto',
+ description: 'Build flatpak interfaces')
option('flatpak-interfaces-dir',
type: 'string',
value: '',
@@ -46,3 +50,7 @@ option('man-pages',
type: 'feature',
value: 'auto',
description: 'Build man pages (requires rst2man)')
+option('sandboxed-image-validation',
+ type: 'boolean',
+ value: true,
+ description: 'Use Bubblewrap to sandbox image validation. Disabling this option may lead to security vulnerabilities.')
diff --git a/po/be.po b/po/be.po
index b2b2fd9..e384957 100644
--- a/po/be.po
+++ b/po/be.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: xdg-desktop-portal main\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-09-18 15:26-0300\n"
+"POT-Creation-Date: 2023-10-26 11:13-0300\n"
"PO-Revision-Date: 2023-01-04 01:42+0300\n"
"Last-Translator: Yuras Shumovich <shumovichy@gmail.com>\n"
"Language-Team: Belarusian <i18n-bel-gnome@googlegroups.com>\n"
@@ -19,33 +19,33 @@ msgstr ""
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Poedit 3.2.2\n"
-#: src/background.c:741
+#: src/background.c:745
#, c-format
msgid "Allow %s to run in the background?"
msgstr "Дазволіць %s выкананне ў фоне?"
-#: src/background.c:745
+#: src/background.c:749
#, c-format
msgid "%s requests to be started automatically and run in the background."
msgstr "%s хоча атрымаць доступ на аўтаматычны запуск і выкананне ў фоне."
-#: src/background.c:747
+#: src/background.c:751
#, c-format
msgid "%s requests to run in the background."
msgstr "%s хоча атрымаць доступ на выкананне ў фоне."
-#: src/background.c:748
+#: src/background.c:752
msgid ""
"The ‘run in background’ permission can be changed at any time from the "
"application settings."
msgstr ""
"Дазвол на «выкананне ў фоне» заўсёды можна змяніць праз налады праграм."
-#: src/background.c:753
+#: src/background.c:757
msgid "Don't allow"
msgstr "Не дазваляць"
-#: src/background.c:754 src/screenshot.c:238 src/wallpaper.c:182
+#: src/background.c:758 src/screenshot.c:238 src/wallpaper.c:182
msgid "Allow"
msgstr "Дазволіць"
diff --git a/po/ca.po b/po/ca.po
index 45d7ae9..ebc3d8b 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: xdg-desktop-portal master\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-09-18 15:26-0300\n"
+"POT-Creation-Date: 2023-10-26 11:13-0300\n"
"PO-Revision-Date: 2021-11-10 19:00+0100\n"
"Last-Translator: Jordi Mas i Hernàndez <jmas@softcatala.org>\n"
"Language-Team: Catalan <gnome@llistes.softcatala.org>\n"
@@ -18,23 +18,23 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.0\n"
-#: src/background.c:741
+#: src/background.c:745
#, c-format
msgid "Allow %s to run in the background?"
msgstr "Voleu que %s s'executi en segon pla?"
-#: src/background.c:745
+#: src/background.c:749
#, c-format
msgid "%s requests to be started automatically and run in the background."
msgstr ""
"%s sol·licituds que s'inicien automàticament i s'executen en segon pla."
-#: src/background.c:747
+#: src/background.c:751
#, c-format
msgid "%s requests to run in the background."
msgstr "%s sol·licituds per a executar-se en segon pla."
-#: src/background.c:748
+#: src/background.c:752
msgid ""
"The ‘run in background’ permission can be changed at any time from the "
"application settings."
@@ -42,11 +42,11 @@ msgstr ""
"El permís «executa en segon pla» es pot canviar en qualsevol moment des de "
"configuració de l'aplicació."
-#: src/background.c:753
+#: src/background.c:757
msgid "Don't allow"
msgstr "No ho permetis"
-#: src/background.c:754 src/screenshot.c:238 src/wallpaper.c:182
+#: src/background.c:758 src/screenshot.c:238 src/wallpaper.c:182
msgid "Allow"
msgstr "Permet"
diff --git a/po/cs.po b/po/cs.po
index 6d1251e..75c6548 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: xdg-desktop-portal master\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-09-18 15:26-0300\n"
+"POT-Creation-Date: 2023-10-26 11:13-0300\n"
"PO-Revision-Date: 2022-09-20 23:38+0200\n"
"Last-Translator: Daniel Rusek <mail@asciiwolf.com>\n"
"Language-Team: Czech <gnome-cs-list@gnome.org>\n"
@@ -20,33 +20,33 @@ msgstr ""
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
"X-Generator: Poedit 3.1.1\n"
-#: src/background.c:741
+#: src/background.c:745
#, c-format
msgid "Allow %s to run in the background?"
msgstr "Povolit aplikaci %s běh na pozadí?"
-#: src/background.c:745
+#: src/background.c:749
#, c-format
msgid "%s requests to be started automatically and run in the background."
msgstr "Aplikace %s požaduje automatické spouštění a běh na pozadí."
-#: src/background.c:747
+#: src/background.c:751
#, c-format
msgid "%s requests to run in the background."
msgstr "Aplikace %s požaduje běh na pozadí."
-#: src/background.c:748
+#: src/background.c:752
msgid ""
"The ‘run in background’ permission can be changed at any time from the "
"application settings."
msgstr ""
"Oprávnění pro „běh na pozadí“ můžete kdykoliv změnit v nastavení aplikace."
-#: src/background.c:753
+#: src/background.c:757
msgid "Don't allow"
msgstr "Nepovolit"
-#: src/background.c:754 src/screenshot.c:238 src/wallpaper.c:182
+#: src/background.c:758 src/screenshot.c:238 src/wallpaper.c:182
msgid "Allow"
msgstr "Povolit"
diff --git a/po/da.po b/po/da.po
index 2a27da7..4c70a7a 100644
--- a/po/da.po
+++ b/po/da.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: xdg-desktop-portal\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-09-18 15:26-0300\n"
+"POT-Creation-Date: 2023-10-26 11:13-0300\n"
"PO-Revision-Date: 2020-10-12 01:25+0200\n"
"Last-Translator: scootergrisen\n"
"Language-Team: Danish\n"
@@ -16,22 +16,22 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: src/background.c:741
+#: src/background.c:745
#, c-format
msgid "Allow %s to run in the background?"
msgstr "Tillad %s at køre i baggrunden?"
-#: src/background.c:745
+#: src/background.c:749
#, c-format
msgid "%s requests to be started automatically and run in the background."
msgstr "%s anmoder om at starte automatisk og køre i baggrunden."
-#: src/background.c:747
+#: src/background.c:751
#, c-format
msgid "%s requests to run in the background."
msgstr "%s anmoder om at køre i baggrunden."
-#: src/background.c:748
+#: src/background.c:752
msgid ""
"The ‘run in background’ permission can be changed at any time from the "
"application settings."
@@ -39,11 +39,11 @@ msgstr ""
"‘Kør i baggrunden’-tilladelsen kan når som helst ændres i "
"programindstillingerne."
-#: src/background.c:753
+#: src/background.c:757
msgid "Don't allow"
msgstr "Tillad ikke"
-#: src/background.c:754 src/screenshot.c:238 src/wallpaper.c:182
+#: src/background.c:758 src/screenshot.c:238 src/wallpaper.c:182
msgid "Allow"
msgstr "Tillad"
diff --git a/po/de.po b/po/de.po
index 22b88ee..c42d712 100644
--- a/po/de.po
+++ b/po/de.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: xdg-desktop-portal master\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-09-18 15:26-0300\n"
+"POT-Creation-Date: 2023-10-26 11:13-0300\n"
"PO-Revision-Date: 2016-09-23 19:17+0200\n"
"Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\n"
"Language-Team: German <gnome-de@gnome.org>\n"
@@ -19,22 +19,22 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 1.8.9\n"
-#: src/background.c:741
+#: src/background.c:745
#, c-format
msgid "Allow %s to run in the background?"
msgstr ""
-#: src/background.c:745
+#: src/background.c:749
#, c-format
msgid "%s requests to be started automatically and run in the background."
msgstr ""
-#: src/background.c:747
+#: src/background.c:751
#, c-format
msgid "%s requests to run in the background."
msgstr ""
-#: src/background.c:748
+#: src/background.c:752
#, fuzzy
msgid ""
"The ‘run in background’ permission can be changed at any time from the "
@@ -43,11 +43,11 @@ msgstr ""
"Der Zugriff auf Ihre Lautsprecher kann in den Einstellungen zur Privatsphäre "
"jederzeit geändert werden."
-#: src/background.c:753
+#: src/background.c:757
msgid "Don't allow"
msgstr ""
-#: src/background.c:754 src/screenshot.c:238 src/wallpaper.c:182
+#: src/background.c:758 src/screenshot.c:238 src/wallpaper.c:182
msgid "Allow"
msgstr ""
diff --git a/po/en_GB.po b/po/en_GB.po
index 5fe93cc..e6f7d60 100644
--- a/po/en_GB.po
+++ b/po/en_GB.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: xdg-desktop-portal master\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-09-18 15:26-0300\n"
+"POT-Creation-Date: 2023-10-26 11:13-0300\n"
"PO-Revision-Date: 2019-08-24 23:48+0100\n"
"Last-Translator: Zander Brown <zbrown@gnome.org>\n"
"Language-Team: English - United Kingdom <en_GB@li.org>\n"
@@ -18,22 +18,22 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Gtranslator 3.32.1\n"
-#: src/background.c:741
+#: src/background.c:745
#, c-format
msgid "Allow %s to run in the background?"
msgstr "Allow %s to run in the background?"
-#: src/background.c:745
+#: src/background.c:749
#, c-format
msgid "%s requests to be started automatically and run in the background."
msgstr "%s requests to be started automatically and run in the background."
-#: src/background.c:747
+#: src/background.c:751
#, c-format
msgid "%s requests to run in the background."
msgstr "%s requests to run in the background."
-#: src/background.c:748
+#: src/background.c:752
msgid ""
"The ‘run in background’ permission can be changed at any time from the "
"application settings."
@@ -41,11 +41,11 @@ msgstr ""
"The ‘run in background’ permission can be changed at any time from the "
"application settings."
-#: src/background.c:753
+#: src/background.c:757
msgid "Don't allow"
msgstr "Don't allow"
-#: src/background.c:754 src/screenshot.c:238 src/wallpaper.c:182
+#: src/background.c:758 src/screenshot.c:238 src/wallpaper.c:182
msgid "Allow"
msgstr "Allow"
diff --git a/po/es.po b/po/es.po
index 0605f74..0d9e535 100644
--- a/po/es.po
+++ b/po/es.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: xdg-desktop-portal master\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-09-18 15:26-0300\n"
+"POT-Creation-Date: 2023-10-26 11:13-0300\n"
"PO-Revision-Date: 2021-12-04 14:52+0100\n"
"Last-Translator: Adolfo Jayme Barrientos <fitojb@ubuntu.com>\n"
"Language-Team: Spanish\n"
@@ -17,22 +17,22 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 3.0\n"
-#: src/background.c:741
+#: src/background.c:745
#, c-format
msgid "Allow %s to run in the background?"
msgstr "¿Quiere permitir que %s se ejecute en segundo plano?"
-#: src/background.c:745
+#: src/background.c:749
#, c-format
msgid "%s requests to be started automatically and run in the background."
msgstr "%s solicita iniciarse automáticamente y ejecutarse en segundo plano."
-#: src/background.c:747
+#: src/background.c:751
#, c-format
msgid "%s requests to run in the background."
msgstr "%s solicita ejecutarse en segundo plano."
-#: src/background.c:748
+#: src/background.c:752
msgid ""
"The ‘run in background’ permission can be changed at any time from the "
"application settings."
@@ -40,11 +40,11 @@ msgstr ""
"El permiso «ejecución en segundo plano» puede modificarse en cualquier "
"momento a través de la configuración de privacidad."
-#: src/background.c:753
+#: src/background.c:757
msgid "Don't allow"
msgstr "No permitir"
-#: src/background.c:754 src/screenshot.c:238 src/wallpaper.c:182
+#: src/background.c:758 src/screenshot.c:238 src/wallpaper.c:182
msgid "Allow"
msgstr "Permitir"
diff --git a/po/fr.po b/po/fr.po
index d3fe654..dad62c6 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: xdg-desktop-portal master\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-09-18 15:26-0300\n"
+"POT-Creation-Date: 2023-10-26 11:13-0300\n"
"PO-Revision-Date: 2017-03-02 11:34+0100\n"
"Last-Translator: Nicolas Cuffia <cuffia.cuceglio@vivaldi.net>\n"
"Language-Team: French <gnomefr@traduc.org>\n"
@@ -17,22 +17,22 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-#: src/background.c:741
+#: src/background.c:745
#, c-format
msgid "Allow %s to run in the background?"
msgstr ""
-#: src/background.c:745
+#: src/background.c:749
#, c-format
msgid "%s requests to be started automatically and run in the background."
msgstr ""
-#: src/background.c:747
+#: src/background.c:751
#, c-format
msgid "%s requests to run in the background."
msgstr ""
-#: src/background.c:748
+#: src/background.c:752
#, fuzzy
msgid ""
"The ‘run in background’ permission can be changed at any time from the "
@@ -41,11 +41,11 @@ msgstr ""
"L'accès aux haut-parleurs peut être modifié n'importe quand à partir des "
"paramètres de confidentialité."
-#: src/background.c:753
+#: src/background.c:757
msgid "Don't allow"
msgstr ""
-#: src/background.c:754 src/screenshot.c:238 src/wallpaper.c:182
+#: src/background.c:758 src/screenshot.c:238 src/wallpaper.c:182
msgid "Allow"
msgstr ""
diff --git a/po/gl.po b/po/gl.po
index c9f864b..db9bf03 100644
--- a/po/gl.po
+++ b/po/gl.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: xdg-desktop-portal master\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-09-18 15:26-0300\n"
+"POT-Creation-Date: 2023-10-26 11:13-0300\n"
"PO-Revision-Date: 2023-02-08 21:13+0100\n"
"Last-Translator: Fran Diéguez <frandieguez@gnome.org>\n"
"Language-Team: Galician\n"
@@ -17,22 +17,22 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 3.2.2\n"
-#: src/background.c:741
+#: src/background.c:745
#, c-format
msgid "Allow %s to run in the background?"
msgstr "Permitir a %s executarse en segundo plano?"
-#: src/background.c:745
+#: src/background.c:749
#, c-format
msgid "%s requests to be started automatically and run in the background."
msgstr "%s solicita iniciarse automaticamente e en segundo plano."
-#: src/background.c:747
+#: src/background.c:751
#, c-format
msgid "%s requests to run in the background."
msgstr "%s solicita executarse en segundo plano."
-#: src/background.c:748
+#: src/background.c:752
msgid ""
"The ‘run in background’ permission can be changed at any time from the "
"application settings."
@@ -40,11 +40,11 @@ msgstr ""
"Pode cambiar o permiso «executarse en segundo plano» en calquera momento "
"desde as preferencias da aplicación."
-#: src/background.c:753
+#: src/background.c:757
msgid "Don't allow"
msgstr "Non permitir"
-#: src/background.c:754 src/screenshot.c:238 src/wallpaper.c:182
+#: src/background.c:758 src/screenshot.c:238 src/wallpaper.c:182
msgid "Allow"
msgstr "Permitir"
diff --git a/po/he.po b/po/he.po
index 4e4c1f4..56af62a 100644
--- a/po/he.po
+++ b/po/he.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: xdg-desktop-portal main\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-09-18 15:26-0300\n"
+"POT-Creation-Date: 2023-10-26 11:13-0300\n"
"PO-Revision-Date: 2022-07-25 21:56+0300\n"
"Last-Translator: Yosef Or Boczko <yoseforb@gmail.com>\n"
"Language-Team: Hebrew <yoseforb@gmail.com>\n"
@@ -18,32 +18,32 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
"X-Generator: Gtranslator 40.0\n"
-#: src/background.c:741
+#: src/background.c:745
#, c-format
msgid "Allow %s to run in the background?"
msgstr "לאפשר הרצה של %s ברקע?"
-#: src/background.c:745
+#: src/background.c:749
#, c-format
msgid "%s requests to be started automatically and run in the background."
msgstr "‏%s מבקש להיפתח באופן אוטומטי ולרוץ ברקע."
-#: src/background.c:747
+#: src/background.c:751
#, c-format
msgid "%s requests to run in the background."
msgstr "‏%s מבקש לרוץ ברקע."
-#: src/background.c:748
+#: src/background.c:752
msgid ""
"The ‘run in background’ permission can be changed at any time from the "
"application settings."
msgstr "ניתן לשנות בכל עת את ההרשאה „לפעול ברקע” בהגדרות היישום."
-#: src/background.c:753
+#: src/background.c:757
msgid "Don't allow"
msgstr "לא לאפשר"
-#: src/background.c:754 src/screenshot.c:238 src/wallpaper.c:182
+#: src/background.c:758 src/screenshot.c:238 src/wallpaper.c:182
msgid "Allow"
msgstr "לאפשר"
diff --git a/po/hi.po b/po/hi.po
index 93dd5e8..9ac140a 100644
--- a/po/hi.po
+++ b/po/hi.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: xdg-desktop-portal 1.8.1\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-09-18 15:26-0300\n"
+"POT-Creation-Date: 2023-10-26 11:13-0300\n"
"PO-Revision-Date: 2021-09-09 00:42+0700\n"
"Last-Translator: Dmitry <dmitrydmitry761@gmail.com>\n"
"Language-Team: Hindi <kde-i18n-doc@kde.org>\n"
@@ -18,32 +18,32 @@ msgstr ""
"X-Generator: Poedit 2.2.4\n"
"Plural-Forms: nplurals=2; plural=(n==0 || n==1);\n"
-#: src/background.c:741
+#: src/background.c:745
#, c-format
msgid "Allow %s to run in the background?"
msgstr "अनुमति देना %s पृष्ठभूमि में चलाने के लिए?"
-#: src/background.c:745
+#: src/background.c:749
#, c-format
msgid "%s requests to be started automatically and run in the background."
msgstr "%s अनुरोध स्वचालित रूप से शुरू होने और पृष्ठभूमि में चलाने का अनुरोध करता है।"
-#: src/background.c:747
+#: src/background.c:751
#, c-format
msgid "%s requests to run in the background."
msgstr "%s पृष्ठभूमि में चलाने के लिए अनुरोध।"
-#: src/background.c:748
+#: src/background.c:752
msgid ""
"The ‘run in background’ permission can be changed at any time from the "
"application settings."
msgstr "एप्लिकेशन सेटिंग से किसी भी समय 'रन इन बैकग्राउंड' अनुमति को बदला जा सकता है।"
-#: src/background.c:753
+#: src/background.c:757
msgid "Don't allow"
msgstr "अनुमति न दें"
-#: src/background.c:754 src/screenshot.c:238 src/wallpaper.c:182
+#: src/background.c:758 src/screenshot.c:238 src/wallpaper.c:182
msgid "Allow"
msgstr "अनुमति"
diff --git a/po/hr.po b/po/hr.po
index cfa8ce7..baa4141 100644
--- a/po/hr.po
+++ b/po/hr.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: xdg-desktop-portal master\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-09-18 15:26-0300\n"
+"POT-Creation-Date: 2023-10-26 11:13-0300\n"
"PO-Revision-Date: 2020-01-25 16:44+0100\n"
"Last-Translator: Milo Ivir <mail@milotype.de>\n"
"Language-Team: \n"
@@ -18,22 +18,22 @@ msgstr ""
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Poedit 1.8.12\n"
-#: src/background.c:741
+#: src/background.c:745
#, c-format
msgid "Allow %s to run in the background?"
msgstr "Dozvoliti da %s radi u pozadini?"
-#: src/background.c:745
+#: src/background.c:749
#, c-format
msgid "%s requests to be started automatically and run in the background."
msgstr "%s traži da se automatski pokrene i da radi u pozadini."
-#: src/background.c:747
+#: src/background.c:751
#, c-format
msgid "%s requests to run in the background."
msgstr "%s traži da radi u pozadini."
-#: src/background.c:748
+#: src/background.c:752
msgid ""
"The ‘run in background’ permission can be changed at any time from the "
"application settings."
@@ -41,11 +41,11 @@ msgstr ""
"Dozvolu za „radi u pozadini” je uvijek moguće promijeniti u postavkama "
"programa."
-#: src/background.c:753
+#: src/background.c:757
msgid "Don't allow"
msgstr "Nemoj dozvoliti"
-#: src/background.c:754 src/screenshot.c:238 src/wallpaper.c:182
+#: src/background.c:758 src/screenshot.c:238 src/wallpaper.c:182
msgid "Allow"
msgstr "Dozvoli"
diff --git a/po/hu.po b/po/hu.po
index 8ec7775..df36193 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: xdg-desktop-portal\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-09-18 15:26-0300\n"
+"POT-Creation-Date: 2023-10-26 11:13-0300\n"
"PO-Revision-Date: 2022-09-21 22:58+0200\n"
"Last-Translator: Balázs Úr <ur.balazs at fsf dot hu>\n"
"Language-Team: Hungarian <gnome-hu-list at gnome dot org>\n"
@@ -18,22 +18,22 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Lokalize 19.12.3\n"
-#: src/background.c:741
+#: src/background.c:745
#, c-format
msgid "Allow %s to run in the background?"
msgstr "Engedélyezi a(z) %s számára, hogy a háttérben fusson?"
-#: src/background.c:745
+#: src/background.c:749
#, c-format
msgid "%s requests to be started automatically and run in the background."
msgstr "A(z) %s azt kéri, hogy automatikusan elinduljon és a háttérben fusson."
-#: src/background.c:747
+#: src/background.c:751
#, c-format
msgid "%s requests to run in the background."
msgstr "A(z) %s azt kéri, hogy a háttérben fusson."
-#: src/background.c:748
+#: src/background.c:752
msgid ""
"The ‘run in background’ permission can be changed at any time from the "
"application settings."
@@ -41,11 +41,11 @@ msgstr ""
"A „háttérben való futás” engedély bármikor megváltoztatható az alkalmazás "
"beállításaiban."
-#: src/background.c:753
+#: src/background.c:757
msgid "Don't allow"
msgstr "Ne engedélyezze"
-#: src/background.c:754 src/screenshot.c:238 src/wallpaper.c:182
+#: src/background.c:758 src/screenshot.c:238 src/wallpaper.c:182
msgid "Allow"
msgstr "Engedélyezés"
diff --git a/po/id.po b/po/id.po
index 475a5cd..7d0bb01 100644
--- a/po/id.po
+++ b/po/id.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: xdg-desktop-portal master\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-09-18 15:26-0300\n"
+"POT-Creation-Date: 2023-10-26 11:13-0300\n"
"PO-Revision-Date: 2022-11-30 10:52+0700\n"
"Last-Translator: Kukuh Syafaat <kukuhsyafaat@gnome.org>\n"
"Language-Team: Indonesian <gnome-l10n-id@googlegroups.com>\n"
@@ -17,23 +17,23 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.2.1\n"
-#: src/background.c:741
+#: src/background.c:745
#, c-format
msgid "Allow %s to run in the background?"
msgstr "Izinkan %s berjalan di latar belakang?"
-#: src/background.c:745
+#: src/background.c:749
#, c-format
msgid "%s requests to be started automatically and run in the background."
msgstr ""
"%s meminta untuk dimulai secara otomatis dan dijalankan di latar belakang."
-#: src/background.c:747
+#: src/background.c:751
#, c-format
msgid "%s requests to run in the background."
msgstr "%s meminta untuk berjalan di latar belakang."
-#: src/background.c:748
+#: src/background.c:752
msgid ""
"The ‘run in background’ permission can be changed at any time from the "
"application settings."
@@ -41,11 +41,11 @@ msgstr ""
"Izin 'berjalan di latar belakang' dapat diubah kapan saja dari pengaturan "
"aplikasi."
-#: src/background.c:753
+#: src/background.c:757
msgid "Don't allow"
msgstr "Jangan izinkan"
-#: src/background.c:754 src/screenshot.c:238 src/wallpaper.c:182
+#: src/background.c:758 src/screenshot.c:238 src/wallpaper.c:182
msgid "Allow"
msgstr "Izinkan"
diff --git a/po/it.po b/po/it.po
index 192f252..5289b2f 100644
--- a/po/it.po
+++ b/po/it.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: xdg-desktop-portal master\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-09-18 15:26-0300\n"
+"POT-Creation-Date: 2023-10-26 11:13-0300\n"
"PO-Revision-Date: 2020-02-10 16:11+0100\n"
"Last-Translator: Milo Casagrande <milo@milo.name>\n"
"Language-Team: Italian <gnome-it-list@gnome.org>\n"
@@ -18,24 +18,24 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 2.2.4\n"
-#: src/background.c:741
+#: src/background.c:745
#, c-format
msgid "Allow %s to run in the background?"
msgstr "Consentire a %s di andare in esecuzione sullo sfondo?"
-#: src/background.c:745
+#: src/background.c:749
#, c-format
msgid "%s requests to be started automatically and run in the background."
msgstr ""
"L'applicazione %s richiede di essere avviata automaticamente e di essere "
"eseguita sullo sfondo."
-#: src/background.c:747
+#: src/background.c:751
#, c-format
msgid "%s requests to run in the background."
msgstr "L'applicazione %s richiede di essere eseguita sullo sfondo."
-#: src/background.c:748
+#: src/background.c:752
msgid ""
"The ‘run in background’ permission can be changed at any time from the "
"application settings."
@@ -43,11 +43,11 @@ msgstr ""
"Il permesso «esegui sullo sfondo» può essere modificato in qualsiasi momento "
"attraverso le impostazioni dell'applicazione."
-#: src/background.c:753
+#: src/background.c:757
msgid "Don't allow"
msgstr "Non consentire"
-#: src/background.c:754 src/screenshot.c:238 src/wallpaper.c:182
+#: src/background.c:758 src/screenshot.c:238 src/wallpaper.c:182
msgid "Allow"
msgstr "Consenti"
diff --git a/po/ka.po b/po/ka.po
index 9d6fe2b..d80b1fd 100644
--- a/po/ka.po
+++ b/po/ka.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: xdg-desktop-portal master\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-09-18 15:26-0300\n"
+"POT-Creation-Date: 2023-10-26 11:13-0300\n"
"PO-Revision-Date: 2023-02-25 14:53+0100\n"
"Last-Translator: Temuri Doghonadze <temuri.doghonadze@gmail.com>\n"
"Language-Team: Georgian <(nothing)>\n"
@@ -18,22 +18,22 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 3.2.2\n"
-#: src/background.c:741
+#: src/background.c:745
#, c-format
msgid "Allow %s to run in the background?"
msgstr "დავუშვა %s-ის ფონურ რეჟიმში გაშვება?"
-#: src/background.c:745
+#: src/background.c:749
#, c-format
msgid "%s requests to be started automatically and run in the background."
msgstr "%s ავტომატურად გაშვებას და ფონურ რეჟიმს ითხოვს."
-#: src/background.c:747
+#: src/background.c:751
#, c-format
msgid "%s requests to run in the background."
msgstr "%s ითხოვს გაშვებას ფონზე."
-#: src/background.c:748
+#: src/background.c:752
msgid ""
"The ‘run in background’ permission can be changed at any time from the "
"application settings."
@@ -41,11 +41,11 @@ msgstr ""
"„ფონში გაშვების“ ნებართვა ნებისმიერ დროს აპლიკაციის პარამეტრებიდან შეიძლება "
"შეიცვალოს."
-#: src/background.c:753
+#: src/background.c:757
msgid "Don't allow"
msgstr "არ დაშვება"
-#: src/background.c:754 src/screenshot.c:238 src/wallpaper.c:182
+#: src/background.c:758 src/screenshot.c:238 src/wallpaper.c:182
msgid "Allow"
msgstr "დაშვება"
diff --git a/po/lt.po b/po/lt.po
index c69aea3..9d79487 100644
--- a/po/lt.po
+++ b/po/lt.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: xdg-desktop-portal master\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-09-18 15:26-0300\n"
+"POT-Creation-Date: 2023-10-26 11:13-0300\n"
"PO-Revision-Date: 2020-03-07 20:26+0200\n"
"Last-Translator: Moo\n"
"Language-Team: Lithuanian <gnome-lt@lists.akl.lt>\n"
@@ -19,22 +19,22 @@ msgstr ""
"(n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Poedit 2.3\n"
-#: src/background.c:741
+#: src/background.c:745
#, c-format
msgid "Allow %s to run in the background?"
msgstr "Leisti %s vykdyti fone?"
-#: src/background.c:745
+#: src/background.c:749
#, c-format
msgid "%s requests to be started automatically and run in the background."
msgstr "%s prašo, kad būtų paleidžiama automatiškai ir vykdoma fone."
-#: src/background.c:747
+#: src/background.c:751
#, c-format
msgid "%s requests to run in the background."
msgstr "%s prašo, kad būtų vykdoma fone."
-#: src/background.c:748
+#: src/background.c:752
msgid ""
"The ‘run in background’ permission can be changed at any time from the "
"application settings."
@@ -42,11 +42,11 @@ msgstr ""
"Leidimas \"vykdyti fone\" bet kuriuo metu gali būti pakeistas programos "
"nustatymuose."
-#: src/background.c:753
+#: src/background.c:757
msgid "Don't allow"
msgstr "Neleisti"
-#: src/background.c:754 src/screenshot.c:238 src/wallpaper.c:182
+#: src/background.c:758 src/screenshot.c:238 src/wallpaper.c:182
msgid "Allow"
msgstr "Leisti"
diff --git a/po/nl.po b/po/nl.po
index 39a1013..c47051e 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: xdg-desktop-portal master\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-09-18 15:26-0300\n"
+"POT-Creation-Date: 2023-10-26 11:13-0300\n"
"PO-Revision-Date: 2021-07-18 14:05+0200\n"
"Last-Translator: Heimen Stoffels <vistausss@fastmail.com>\n"
"Language-Team: Dutch\n"
@@ -19,25 +19,25 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 3.0\n"
-#: src/background.c:741
+#: src/background.c:745
#, c-format
msgid "Allow %s to run in the background?"
msgstr "Wilt u %s toestaan om op de achtergrond te worden uitgevoerd?"
-#: src/background.c:745
+#: src/background.c:749
#, c-format
msgid "%s requests to be started automatically and run in the background."
msgstr ""
"%s verzoekt om automatisch te mogen worden opgestart en uitgevoerd te mogen "
"worden op de achtergrond."
-#: src/background.c:747
+#: src/background.c:751
#, c-format
msgid "%s requests to run in the background."
msgstr ""
"%s verzoekt om automatisch te mogen worden uitgevoerd op de achtergrond."
-#: src/background.c:748
+#: src/background.c:752
msgid ""
"The ‘run in background’ permission can be changed at any time from the "
"application settings."
@@ -45,11 +45,11 @@ msgstr ""
"Het toegangsrecht ‘uitvoeren op achtergrond’ kan te allen tijde worden "
"ingetrokken in de toepassingsvoorkeuren."
-#: src/background.c:753
+#: src/background.c:757
msgid "Don't allow"
msgstr "Niet toestaan"
-#: src/background.c:754 src/screenshot.c:238 src/wallpaper.c:182
+#: src/background.c:758 src/screenshot.c:238 src/wallpaper.c:182
msgid "Allow"
msgstr "Toestaan"
diff --git a/po/oc.po b/po/oc.po
index ba752c6..239ae1c 100644
--- a/po/oc.po
+++ b/po/oc.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: xdg-desktop-portal master\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-09-18 15:26-0300\n"
+"POT-Creation-Date: 2023-10-26 11:13-0300\n"
"PO-Revision-Date: 2023-02-13 18:49+0100\n"
"Last-Translator: Quentin PAGÈS\n"
"Language-Team: Occitan\n"
@@ -17,23 +17,23 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Poedit 3.2.2\n"
-#: src/background.c:741
+#: src/background.c:745
#, c-format
msgid "Allow %s to run in the background?"
msgstr "Permetre a %s de s’executar en rèireplan ?"
-#: src/background.c:745
+#: src/background.c:749
#, c-format
msgid "%s requests to be started automatically and run in the background."
msgstr ""
"%s demanda de poder s’aviar automaticament e de s’executar en rèireplan."
-#: src/background.c:747
+#: src/background.c:751
#, c-format
msgid "%s requests to run in the background."
msgstr "%s demanda de s’executar en rèireplan."
-#: src/background.c:748
+#: src/background.c:752
msgid ""
"The ‘run in background’ permission can be changed at any time from the "
"application settings."
@@ -41,11 +41,11 @@ msgstr ""
"La permission d’execucion en rèireplan se pòt modificar a tot moment als "
"paramètres d’aplicacion."
-#: src/background.c:753
+#: src/background.c:757
msgid "Don't allow"
msgstr "Permetre pas"
-#: src/background.c:754 src/screenshot.c:238 src/wallpaper.c:182
+#: src/background.c:758 src/screenshot.c:238 src/wallpaper.c:182
msgid "Allow"
msgstr "Permetre"
diff --git a/po/pl.po b/po/pl.po
index 34ed03b..add0eb0 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: xdg-desktop-portal\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-09-18 15:26-0300\n"
+"POT-Creation-Date: 2023-10-26 11:13-0300\n"
"PO-Revision-Date: 2022-09-11 15:05+0200\n"
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
"Language-Team: Polish <community-poland@mozilla.org>\n"
@@ -19,22 +19,22 @@ msgstr ""
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2);\n"
-#: src/background.c:741
+#: src/background.c:745
#, c-format
msgid "Allow %s to run in the background?"
msgstr "Pozwolić programowi „%s” na działanie w tle?"
-#: src/background.c:745
+#: src/background.c:749
#, c-format
msgid "%s requests to be started automatically and run in the background."
msgstr "Program „%s” potrzebuje być automatycznie uruchamiany i działać w tle."
-#: src/background.c:747
+#: src/background.c:751
#, c-format
msgid "%s requests to run in the background."
msgstr "Program „%s” potrzebuje działać w tle."
-#: src/background.c:748
+#: src/background.c:752
msgid ""
"The ‘run in background’ permission can be changed at any time from the "
"application settings."
@@ -42,11 +42,11 @@ msgstr ""
"Uprawnienie do działania w tle można zmienić w każdej chwili w ustawieniach "
"programów."
-#: src/background.c:753
+#: src/background.c:757
msgid "Don't allow"
msgstr "Nie zezwalaj"
-#: src/background.c:754 src/screenshot.c:238 src/wallpaper.c:182
+#: src/background.c:758 src/screenshot.c:238 src/wallpaper.c:182
msgid "Allow"
msgstr "Zezwól"
diff --git a/po/pt.po b/po/pt.po
index e77e0e4..a74a94d 100644
--- a/po/pt.po
+++ b/po/pt.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: xdg-desktop-portal master\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-09-18 15:26-0300\n"
+"POT-Creation-Date: 2023-10-26 11:13-0300\n"
"PO-Revision-Date: 2022-01-20 10:40-0300\n"
"Last-Translator: Juliano de Souza Camargo <julianosc@protonmail.com>\n"
"Language-Team: Portuguese < https://l10n.gnome.org/teams/pt/>\n"
@@ -18,22 +18,22 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
"X-Generator: Gtranslator 40.0\n"
-#: src/background.c:741
+#: src/background.c:745
#, c-format
msgid "Allow %s to run in the background?"
msgstr "Permitir a %s correr em segundo plano?"
-#: src/background.c:745
+#: src/background.c:749
#, c-format
msgid "%s requests to be started automatically and run in the background."
msgstr "%s requisita iniciar automaticamente e correr em segundo plano."
-#: src/background.c:747
+#: src/background.c:751
#, c-format
msgid "%s requests to run in the background."
msgstr "%s requisita correr em segundo plano."
-#: src/background.c:748
+#: src/background.c:752
msgid ""
"The ‘run in background’ permission can be changed at any time from the "
"application settings."
@@ -41,11 +41,11 @@ msgstr ""
"Pode alterar, em qualquer altura, a permissão para “correr em segundo plano” "
"pelas definições da aplicação."
-#: src/background.c:753
+#: src/background.c:757
msgid "Don't allow"
msgstr "Não permitir"
-#: src/background.c:754 src/screenshot.c:238 src/wallpaper.c:182
+#: src/background.c:758 src/screenshot.c:238 src/wallpaper.c:182
msgid "Allow"
msgstr "Permitir"
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 915e7f0..8615d3b 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: xdg-desktop-portal master\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-09-18 15:26-0300\n"
+"POT-Creation-Date: 2023-10-26 11:13-0300\n"
"PO-Revision-Date: 2019-11-24 22:29-0300\n"
"Last-Translator: Rafael Fontenelle <rafaelff@gnome.org>\n"
"Language-Team: Brazilian Portuguese <gnome-pt_br-list@gnome.org>\n"
@@ -18,22 +18,22 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
"X-Generator: Gtranslator 3.32.0\n"
-#: src/background.c:741
+#: src/background.c:745
#, c-format
msgid "Allow %s to run in the background?"
msgstr "Permitir que %s execute em segundo plano?"
-#: src/background.c:745
+#: src/background.c:749
#, c-format
msgid "%s requests to be started automatically and run in the background."
msgstr "%s solicita ser iniciado automaticamente e executado em segundo plano."
-#: src/background.c:747
+#: src/background.c:751
#, c-format
msgid "%s requests to run in the background."
msgstr "%s solicita ser executado em segundo plano."
-#: src/background.c:748
+#: src/background.c:752
msgid ""
"The ‘run in background’ permission can be changed at any time from the "
"application settings."
@@ -41,11 +41,11 @@ msgstr ""
"A permissão “executar em segundo plano” pode ser alterada a qualquer tempo a "
"partir das configurações do aplicativo."
-#: src/background.c:753
+#: src/background.c:757
msgid "Don't allow"
msgstr "Não permitir"
-#: src/background.c:754 src/screenshot.c:238 src/wallpaper.c:182
+#: src/background.c:758 src/screenshot.c:238 src/wallpaper.c:182
msgid "Allow"
msgstr "Permitir"
diff --git a/po/ro.po b/po/ro.po
index 2962137..025b2e2 100644
--- a/po/ro.po
+++ b/po/ro.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-09-18 15:26-0300\n"
+"POT-Creation-Date: 2023-10-26 11:13-0300\n"
"PO-Revision-Date: 2022-02-18 10:51+0000\n"
"Last-Translator: Sergiu Bivol <sergiu@cip.md>\n"
"Language-Team: Romanian\n"
@@ -18,22 +18,22 @@ msgstr ""
"20)) ? 1 : 2;\n"
"X-Generator: Lokalize 21.12.2\n"
-#: src/background.c:741
+#: src/background.c:745
#, c-format
msgid "Allow %s to run in the background?"
msgstr "Permiteți %s să ruleze în fundal?"
-#: src/background.c:745
+#: src/background.c:749
#, c-format
msgid "%s requests to be started automatically and run in the background."
msgstr "%s cere să fie pornit automat și să ruleze în fundal."
-#: src/background.c:747
+#: src/background.c:751
#, c-format
msgid "%s requests to run in the background."
msgstr "%s cere să ruleze în fundal."
-#: src/background.c:748
+#: src/background.c:752
msgid ""
"The ‘run in background’ permission can be changed at any time from the "
"application settings."
@@ -41,11 +41,11 @@ msgstr ""
"Permisiunea „rulează în fundal” poate fi schimbată în orice moment din "
"configurările aplicației."
-#: src/background.c:753
+#: src/background.c:757
msgid "Don't allow"
msgstr "Nu permite"
-#: src/background.c:754 src/screenshot.c:238 src/wallpaper.c:182
+#: src/background.c:758 src/screenshot.c:238 src/wallpaper.c:182
msgid "Allow"
msgstr "Permite"
diff --git a/po/ru.po b/po/ru.po
index 05c5ce4..f263214 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: xdg-desktop-portal master\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-09-18 15:26-0300\n"
+"POT-Creation-Date: 2023-10-26 11:13-0300\n"
"PO-Revision-Date: 2022-10-04 12:51+0300\n"
"Last-Translator: Aleksandr Melman <Alexmelman88@gmail.com>\n"
"Language-Team: Russian <gnome-cyr@gnome.org>\n"
@@ -19,22 +19,22 @@ msgstr ""
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Poedit 3.1.1\n"
-#: src/background.c:741
+#: src/background.c:745
#, c-format
msgid "Allow %s to run in the background?"
msgstr "Разрешить %s работать в фоне?"
-#: src/background.c:745
+#: src/background.c:749
#, c-format
msgid "%s requests to be started automatically and run in the background."
msgstr "%s запрашивает доступ на автоматический запуск и работу в фоне."
-#: src/background.c:747
+#: src/background.c:751
#, c-format
msgid "%s requests to run in the background."
msgstr "%s запрашивает доступ на работу в фоне."
-#: src/background.c:748
+#: src/background.c:752
msgid ""
"The ‘run in background’ permission can be changed at any time from the "
"application settings."
@@ -42,11 +42,11 @@ msgstr ""
"Разрешение на \"работу в фоне\" может быть изменено в любое время из меню "
"настроек приложения."
-#: src/background.c:753
+#: src/background.c:757
msgid "Don't allow"
msgstr "Запретить"
-#: src/background.c:754 src/screenshot.c:238 src/wallpaper.c:182
+#: src/background.c:758 src/screenshot.c:238 src/wallpaper.c:182
msgid "Allow"
msgstr "Разрешить"
diff --git a/po/sk.po b/po/sk.po
index 1a3ed5a..257da96 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: xdg-desktop-portal master\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-09-18 15:26-0300\n"
+"POT-Creation-Date: 2023-10-26 11:13-0300\n"
"PO-Revision-Date: 2020-09-22 14:32+0200\n"
"Last-Translator: Dušan Kazik <prescott66@gmail.com>\n"
"Language-Team: Slovak <gnome-sk-list@gnome.org>\n"
@@ -18,22 +18,22 @@ msgstr ""
"Plural-Forms: nplurals=3; plural=(n==1) ? 1 : (n>=2 && n<=4) ? 2 : 0;\n"
"X-Generator: Poedit 2.4.1\n"
-#: src/background.c:741
+#: src/background.c:745
#, c-format
msgid "Allow %s to run in the background?"
msgstr "Umožniť aplikácii %s spustenie na pozadí?"
-#: src/background.c:745
+#: src/background.c:749
#, c-format
msgid "%s requests to be started automatically and run in the background."
msgstr "Aplikácia %s požaduje automatické spustenie a beh na pozadí."
-#: src/background.c:747
+#: src/background.c:751
#, c-format
msgid "%s requests to run in the background."
msgstr "Aplikácia %s požaduje spustenie na pozadí."
-#: src/background.c:748
+#: src/background.c:752
msgid ""
"The ‘run in background’ permission can be changed at any time from the "
"application settings."
@@ -41,11 +41,11 @@ msgstr ""
"Oprávnenie „spustenie na pozadí“ môže byť kedykoľvek zmenené z nastavení "
"aplikácií."
-#: src/background.c:753
+#: src/background.c:757
msgid "Don't allow"
msgstr "Nepovoliť"
-#: src/background.c:754 src/screenshot.c:238 src/wallpaper.c:182
+#: src/background.c:758 src/screenshot.c:238 src/wallpaper.c:182
msgid "Allow"
msgstr "Povoliť"
diff --git a/po/sr.po b/po/sr.po
index 2322ff8..c4378cc 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: xdg-desktop-portal master\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-09-18 15:26-0300\n"
+"POT-Creation-Date: 2023-10-26 11:13-0300\n"
"PO-Revision-Date: 2016-09-14 12:54+0200\n"
"Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
"Language-Team: српски <gnome-sr@googlegroups.org>\n"
@@ -18,22 +18,22 @@ msgstr ""
"Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : "
"n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-#: src/background.c:741
+#: src/background.c:745
#, c-format
msgid "Allow %s to run in the background?"
msgstr ""
-#: src/background.c:745
+#: src/background.c:749
#, c-format
msgid "%s requests to be started automatically and run in the background."
msgstr ""
-#: src/background.c:747
+#: src/background.c:751
#, c-format
msgid "%s requests to run in the background."
msgstr ""
-#: src/background.c:748
+#: src/background.c:752
#, fuzzy
msgid ""
"The ‘run in background’ permission can be changed at any time from the "
@@ -42,11 +42,11 @@ msgstr ""
"Приступ вашим звучницима се може изменити у било које време из подешавања "
"приватности."
-#: src/background.c:753
+#: src/background.c:757
msgid "Don't allow"
msgstr ""
-#: src/background.c:754 src/screenshot.c:238 src/wallpaper.c:182
+#: src/background.c:758 src/screenshot.c:238 src/wallpaper.c:182
msgid "Allow"
msgstr ""
diff --git a/po/sv.po b/po/sv.po
index 72c642f..4754fa7 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: xdg-desktop-portal master\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-09-18 15:26-0300\n"
+"POT-Creation-Date: 2023-10-26 11:13-0300\n"
"PO-Revision-Date: 2022-09-10 15:25+0200\n"
"Last-Translator: Anders Jonsson <anders.jonsson@norsjovallen.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
@@ -19,22 +19,22 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 3.1.1\n"
-#: src/background.c:741
+#: src/background.c:745
#, c-format
msgid "Allow %s to run in the background?"
msgstr "Tillåt %s att köra i bakgrunden?"
-#: src/background.c:745
+#: src/background.c:749
#, c-format
msgid "%s requests to be started automatically and run in the background."
msgstr "%s begär att startas automatiskt och köras i bakgrunden."
-#: src/background.c:747
+#: src/background.c:751
#, c-format
msgid "%s requests to run in the background."
msgstr "%s begär att köras i bakgrunden."
-#: src/background.c:748
+#: src/background.c:752
msgid ""
"The ‘run in background’ permission can be changed at any time from the "
"application settings."
@@ -42,11 +42,11 @@ msgstr ""
"Rättigheten ”kör i bakgrund” kan ändras när som helst från "
"programinställningarna."
-#: src/background.c:753
+#: src/background.c:757
msgid "Don't allow"
msgstr "Tillåt inte"
-#: src/background.c:754 src/screenshot.c:238 src/wallpaper.c:182
+#: src/background.c:758 src/screenshot.c:238 src/wallpaper.c:182
msgid "Allow"
msgstr "Tillåt"
diff --git a/po/tr.po b/po/tr.po
index 4e4743c..5774f8b 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: xdg-desktop-portal master\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-09-18 15:26-0300\n"
+"POT-Creation-Date: 2023-10-26 11:13-0300\n"
"PO-Revision-Date: 2023-06-06 02:05+0300\n"
"Last-Translator: Berk Elyesa Yıldırım <beryesa@proton.me>\n"
"Language-Team: Türkçe <gnome-turk@gnome.org>\n"
@@ -22,22 +22,22 @@ msgstr ""
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Poedit 3.3.1\n"
-#: src/background.c:741
+#: src/background.c:745
#, c-format
msgid "Allow %s to run in the background?"
msgstr "%s, arka planda çalışmasına izin verilsin mi?"
-#: src/background.c:745
+#: src/background.c:749
#, c-format
msgid "%s requests to be started automatically and run in the background."
msgstr "%s, kendiliğinden başlamayı ve arka planda çalışmayı istiyor."
-#: src/background.c:747
+#: src/background.c:751
#, c-format
msgid "%s requests to run in the background."
msgstr "%s, arka planda çalışmak istiyor."
-#: src/background.c:748
+#: src/background.c:752
msgid ""
"The ‘run in background’ permission can be changed at any time from the "
"application settings."
@@ -45,11 +45,11 @@ msgstr ""
"‘Arka planda çalış’ ayarı, uygulama ayarlarından istediğiniz zaman "
"değiştirilebilir."
-#: src/background.c:753
+#: src/background.c:757
msgid "Don't allow"
msgstr "İzin verme"
-#: src/background.c:754 src/screenshot.c:238 src/wallpaper.c:182
+#: src/background.c:758 src/screenshot.c:238 src/wallpaper.c:182
msgid "Allow"
msgstr "İzin ver"
diff --git a/po/uk.po b/po/uk.po
index ca7f602..f1a9162 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: xdg-desktop-portal master\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-09-18 15:26-0300\n"
+"POT-Creation-Date: 2023-10-26 11:13-0300\n"
"PO-Revision-Date: 2022-10-04 23:10+0300\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <trans-uk@lists.fedoraproject.org>\n"
@@ -19,22 +19,22 @@ msgstr ""
"n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Lokalize 20.12.0\n"
-#: src/background.c:741
+#: src/background.c:745
#, c-format
msgid "Allow %s to run in the background?"
msgstr "Дозволити запуск %s у фоновому режимі?"
-#: src/background.c:745
+#: src/background.c:749
#, c-format
msgid "%s requests to be started automatically and run in the background."
msgstr "%s надіслано запит щодо автоматичного запуску у фоновому режимі."
-#: src/background.c:747
+#: src/background.c:751
#, c-format
msgid "%s requests to run in the background."
msgstr "%s надіслано запит щодо запуску у фоновому режимі."
-#: src/background.c:748
+#: src/background.c:752
msgid ""
"The ‘run in background’ permission can be changed at any time from the "
"application settings."
@@ -42,11 +42,11 @@ msgstr ""
"Параметри запуску у фоновому режимі може бути будь-коли змінено за допомогою "
"налаштовування параметрів програми."
-#: src/background.c:753
+#: src/background.c:757
msgid "Don't allow"
msgstr "Не дозволяти"
-#: src/background.c:754 src/screenshot.c:238 src/wallpaper.c:182
+#: src/background.c:758 src/screenshot.c:238 src/wallpaper.c:182
msgid "Allow"
msgstr "Дозволити"
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 13cd655..1f71e1c 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: xdg-desktop-portal master\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-09-18 15:26-0300\n"
+"POT-Creation-Date: 2023-10-26 11:13-0300\n"
"PO-Revision-Date: 2023-08-17 19:32+0800\n"
"Last-Translator: lumingzh <lumingzh@qq.com>\n"
"Language-Team: Chinese - China <i18n-zh@googlegroups.com>\n"
@@ -21,32 +21,32 @@ msgstr ""
"X-Generator: Gtranslator 42.0\n"
"Plural-Forms: nplurals=1; plural=0\n"
-#: src/background.c:741
+#: src/background.c:745
#, c-format
msgid "Allow %s to run in the background?"
msgstr "允许 %s 在后台运行吗?"
-#: src/background.c:745
+#: src/background.c:749
#, c-format
msgid "%s requests to be started automatically and run in the background."
msgstr "%s 请求自动启动并在后台运行。"
-#: src/background.c:747
+#: src/background.c:751
#, c-format
msgid "%s requests to run in the background."
msgstr "%s 请求在后台运行。"
-#: src/background.c:748
+#: src/background.c:752
msgid ""
"The ‘run in background’ permission can be changed at any time from the "
"application settings."
msgstr "您可随时在应用设置中修改“后台运行”的权限。"
-#: src/background.c:753
+#: src/background.c:757
msgid "Don't allow"
msgstr "禁止"
-#: src/background.c:754 src/screenshot.c:238 src/wallpaper.c:182
+#: src/background.c:758 src/screenshot.c:238 src/wallpaper.c:182
msgid "Allow"
msgstr "允许"
diff --git a/po/zh_TW.po b/po/zh_TW.po
index 6638678..72bb2ab 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: xdg-desktop-portal master\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-09-18 15:26-0300\n"
+"POT-Creation-Date: 2023-10-26 11:13-0300\n"
"PO-Revision-Date: 2022-07-03 04:00+0800\n"
"Last-Translator: Freddy Cheng <freddy4212@gmail.com>\n"
"Language-Team: Chinese (Taiwan) <chinese-l10n@googlegroups.com>\n"
@@ -17,32 +17,32 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.0.1\n"
-#: src/background.c:741
+#: src/background.c:745
#, c-format
msgid "Allow %s to run in the background?"
msgstr "允許《%s》於背景執行嗎?"
-#: src/background.c:745
+#: src/background.c:749
#, c-format
msgid "%s requests to be started automatically and run in the background."
msgstr "《%s》請求自動啟動並於背景執行。"
-#: src/background.c:747
+#: src/background.c:751
#, c-format
msgid "%s requests to run in the background."
msgstr "《%s》請求於背景執行。"
-#: src/background.c:748
+#: src/background.c:752
msgid ""
"The ‘run in background’ permission can be changed at any time from the "
"application settings."
msgstr "背景執行許可權可隨時從應用程式設定中更改。"
-#: src/background.c:753
+#: src/background.c:757
msgid "Don't allow"
msgstr "不允許"
-#: src/background.c:754 src/screenshot.c:238 src/wallpaper.c:182
+#: src/background.c:758 src/screenshot.c:238 src/wallpaper.c:182
msgid "Allow"
msgstr "允許"
diff --git a/src/background.c b/src/background.c
index b09ad47..688ec5c 100644
--- a/src/background.c
+++ b/src/background.c
@@ -474,7 +474,11 @@ notify_background_done (GObject *source,
if (nd->perm != PERMISSION_ASK)
nd->perm = PERMISSION_NO;
- g_debug ("Kill app %s (pid %d)", nd->app_id, nd->child_pid);
+ g_message ("Terminating app %s (process %d) because the app does not "
+ "have permission to run in the background. You may be able to "
+ "grant this app the permission to run in background in the "
+ "system settings of your desktop environment.",
+ nd->app_id, nd->child_pid);
kill (nd->child_pid, SIGKILL);
}
diff --git a/src/realtime.c b/src/realtime.c
index af47347..3a02d76 100644
--- a/src/realtime.c
+++ b/src/realtime.c
@@ -56,23 +56,21 @@ G_DEFINE_TYPE_WITH_CODE (Realtime, realtime, XDP_DBUS_TYPE_REALTIME_SKELETON,
realtime_iface_init));
static gboolean
-map_pid_if_needed (XdpAppInfo *app_info, pid_t *pid, pid_t *tid, GError **error)
+map_pid (XdpAppInfo *app_info, pid_t *pid, pid_t *tid, GError **error)
{
- if (!xdp_app_info_is_host (app_info))
- {
- if (!xdp_app_info_map_pids (app_info, pid, 1, error))
+ if (!xdp_app_info_map_pids (app_info, pid, 1, error))
{
g_prefix_error (error, "Could not map pid: ");
g_warning ("Realtime error: %s", (*error)->message);
return FALSE;
}
- if (!xdp_app_info_map_tids (app_info, *pid, tid, 1, error))
+
+ if (!xdp_app_info_map_tids (app_info, *pid, tid, 1, error))
{
g_prefix_error (error, "Could not map tid: ");
g_warning ("Realtime error: %s", (*error)->message);
return FALSE;
}
- }
return TRUE;
}
@@ -129,7 +127,7 @@ handle_make_thread_realtime_with_pid (XdpDbusRealtime *object,
return G_DBUS_METHOD_INVOCATION_HANDLED;
}
- if (!map_pid_if_needed (request->app_info, pids, tids, &error))
+ if (!map_pid (request->app_info, pids, tids, &error))
{
g_dbus_method_invocation_return_gerror (invocation, error);
return G_DBUS_METHOD_INVOCATION_HANDLED;
@@ -180,7 +178,7 @@ handle_make_thread_high_priority_with_pid (XdpDbusRealtime *object,
return G_DBUS_METHOD_INVOCATION_HANDLED;
}
- if (!map_pid_if_needed (request->app_info, pids, tids, &error))
+ if (!map_pid (request->app_info, pids, tids, &error))
{
g_dbus_method_invocation_return_gerror (invocation, error);
return G_DBUS_METHOD_INVOCATION_HANDLED;
diff --git a/src/request.c b/src/request.c
index 4216696..3f441ec 100644
--- a/src/request.c
+++ b/src/request.c
@@ -337,7 +337,7 @@ get_token (GDBusMethodInvocation *invocation)
{
options = g_variant_get_child_value (parameters, 0);
}
- else if (strcmp (method, "OpenPipewireRemote") == 0)
+ else if (strcmp (method, "OpenPipeWireRemote") == 0)
{
// no request objects
}
diff --git a/src/restore-token.c b/src/restore-token.c
index 2e6f31f..b084d25 100644
--- a/src/restore-token.c
+++ b/src/restore-token.c
@@ -27,28 +27,6 @@ static GHashTable *transient_permissions;
#define RESTORE_DATA_TYPE "(suv)"
-static void
-internal_closed_cb (Session *session)
-{
- g_autoptr(GMutexLocker) locker = NULL;
- GHashTableIter iter;
- const char *key;
-
- locker = g_mutex_locker_new (&transient_permissions_lock);
-
- if (!transient_permissions)
- return;
-
- g_hash_table_iter_init (&iter, transient_permissions);
- while (g_hash_table_iter_next (&iter, (gpointer *) &key, NULL))
- {
- g_auto(GStrv) split = g_strsplit (key, "/", 2);
-
- if (split && split[0] && g_strcmp0 (split[0], session->sender) == 0)
- g_hash_table_iter_remove (&iter);
- }
-}
-
void
xdp_session_persistence_set_transient_permissions (Session *session,
const char *restore_token,
@@ -66,13 +44,6 @@ xdp_session_persistence_set_transient_permissions (Session *session,
g_hash_table_insert (transient_permissions,
g_strdup_printf ("%s/%s", session->sender, restore_token),
g_variant_ref (restore_data));
-
- if (!session->persistence.has_transient_permissions)
- {
- g_signal_connect (session, "internal-closed",
- G_CALLBACK (internal_closed_cb), NULL);
- session->persistence.has_transient_permissions = TRUE;
- }
}
void
@@ -89,6 +60,29 @@ xdp_session_persistence_delete_transient_permissions (Session *session,
g_hash_table_remove (transient_permissions, id);
}
+void
+xdp_session_persistence_delete_transient_permissions_for_sender (const char *sender_name)
+{
+
+ g_autoptr(GMutexLocker) locker = NULL;
+ GHashTableIter iter;
+ const char *key;
+
+ locker = g_mutex_locker_new (&transient_permissions_lock);
+
+ if (!transient_permissions)
+ return;
+
+ g_hash_table_iter_init (&iter, transient_permissions);
+ while (g_hash_table_iter_next (&iter, (gpointer *) &key, NULL))
+ {
+ g_auto(GStrv) split = g_strsplit (key, "/", 2);
+
+ if (split && split[0] && g_strcmp0 (split[0], sender_name) == 0)
+ g_hash_table_iter_remove (&iter);
+ }
+}
+
GVariant *
xdp_session_persistence_get_transient_permissions (Session *session,
const char *restore_token)
diff --git a/src/restore-token.h b/src/restore-token.h
index 1853017..fdd3389 100644
--- a/src/restore-token.h
+++ b/src/restore-token.h
@@ -34,6 +34,8 @@ void xdp_session_persistence_set_transient_permissions (Session *session,
void xdp_session_persistence_delete_transient_permissions (Session *session,
const char *restore_token);
+void xdp_session_persistence_delete_transient_permissions_for_sender (const char *sender_name);
+
GVariant * xdp_session_persistence_get_transient_permissions (Session *session,
const char *restore_token);
diff --git a/src/session.c b/src/session.c
index 20017de..78b00a5 100644
--- a/src/session.c
+++ b/src/session.c
@@ -24,15 +24,6 @@
enum
{
- INTERNAL_CLOSED,
-
- N_SIGNALS
-};
-
-static guint signals[N_SIGNALS];
-
-enum
-{
PROP_0,
PROP_SENDER,
@@ -183,15 +174,18 @@ session_close (Session *session,
SESSION_GET_CLASS (session)->close (session);
- g_signal_emit (session, signals[INTERNAL_CLOSED], 0);
-
if (notify_closed)
{
GVariantBuilder details_builder;
g_variant_builder_init (&details_builder, G_VARIANT_TYPE_VARDICT);
- g_signal_emit_by_name (session, "closed",
- g_variant_builder_end (&details_builder));
+ g_dbus_connection_emit_signal (session->connection,
+ session->sender,
+ session->id,
+ "org.freedesktop.portal.Session",
+ "Closed",
+ g_variant_new ("(@a{sv})", g_variant_builder_end (&details_builder)),
+ NULL);
}
if (session->exported)
@@ -539,11 +533,4 @@ session_class_init (SessionClass *klass)
G_PARAM_STATIC_STRINGS);
g_object_class_install_properties (gobject_class, PROP_LAST, obj_props);
-
- signals[INTERNAL_CLOSED] = g_signal_new ("internal-closed",
- G_TYPE_FROM_CLASS (klass),
- G_SIGNAL_RUN_LAST,
- 0,
- NULL, NULL, NULL,
- G_TYPE_NONE, 0);
}
diff --git a/src/session.h b/src/session.h
index d52aa97..14e6204 100644
--- a/src/session.h
+++ b/src/session.h
@@ -45,10 +45,6 @@ struct _Session
char *impl_dbus_name;
GDBusConnection *impl_connection;
XdpDbusImplSession *impl_session;
-
- struct {
- gboolean has_transient_permissions;
- } persistence;
};
struct _SessionClass
diff --git a/src/xdg-desktop-portal.c b/src/xdg-desktop-portal.c
index 1577525..e377a96 100644
--- a/src/xdg-desktop-portal.c
+++ b/src/xdg-desktop-portal.c
@@ -57,6 +57,7 @@
#include "realtime.h"
#include "remote-desktop.h"
#include "request.h"
+#include "restore-token.h"
#include "screen-cast.h"
#include "screenshot.h"
#include "secret.h"
@@ -229,6 +230,7 @@ peer_died_cb (const char *name)
{
close_requests_for_sender (name);
close_sessions_for_sender (name);
+ xdp_session_persistence_delete_transient_permissions_for_sender (name);
}
static void
diff --git a/src/xdp-utils.c b/src/xdp-utils.c
index 840f716..dea82b9 100644
--- a/src/xdp-utils.c
+++ b/src/xdp-utils.c
@@ -397,8 +397,10 @@ xdp_app_info_rewrite_commandline (XdpAppInfo *app_info,
for (i = 1; commandline[i]; i++)
g_ptr_array_add (args, maybe_quote (commandline[i], quote_escape));
}
- else
+ else if (quote_escape)
g_ptr_array_add (args, g_shell_quote (app_info->id));
+ else
+ g_ptr_array_add (args, g_strdup (app_info->id));
g_ptr_array_add (args, NULL);
return (char **)g_ptr_array_free (g_steal_pointer (&args), FALSE);
@@ -2165,6 +2167,9 @@ app_info_map_pids (XdpAppInfo *app_info,
g_return_val_if_fail (app_info != NULL, FALSE);
g_return_val_if_fail (pids != NULL, FALSE);
+ if (app_info->kind == XDP_APP_INFO_KIND_HOST)
+ return TRUE;
+
if (app_info->kind != XDP_APP_INFO_KIND_FLATPAK)
{
g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED,