diff options
author | Simon McVittie <smcv@debian.org> | 2023-10-26 17:16:28 +0100 |
---|---|---|
committer | Simon McVittie <smcv@debian.org> | 2023-10-26 17:16:28 +0100 |
commit | 59f0aa5ea5b692e80c6854885cff625349a7a571 (patch) | |
tree | 55150e7be1a39a6ff0e4863e2e20237bfe87d107 | |
parent | 67c8f59349195030e5a77167e8572ba10d595dc2 (diff) | |
parent | 44aabb66ffdaef8991af1e42367e43e68b1c72da (diff) |
Update upstream source from tag 'upstream/1.18.1'
Update to upstream version '1.18.1'
with Debian dir c3bddd9d0e9179b217cbb1b2bb3324c7fcc0ea09
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 @@ -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 @@ -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>© {{ 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 Binary files differnew file mode 100644 index 0000000..72fc757 --- /dev/null +++ b/doc/website/apple-touch-icon.png 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 Binary files differnew file mode 100644 index 0000000..3f59a49 --- /dev/null +++ b/doc/website/assets/404.png diff --git a/doc/website/assets/card.png b/doc/website/assets/card.png Binary files differnew file mode 100644 index 0000000..1374749 --- /dev/null +++ b/doc/website/assets/card.png 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 Binary files differnew file mode 100644 index 0000000..3eaa0fb --- /dev/null +++ b/doc/website/assets/docs-button-dark.png diff --git a/doc/website/assets/docs-button.png b/doc/website/assets/docs-button.png Binary files differnew file mode 100644 index 0000000..5c5136d --- /dev/null +++ b/doc/website/assets/docs-button.png 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 Binary files differnew file mode 100644 index 0000000..02405bb --- /dev/null +++ b/doc/website/assets/readme.png diff --git a/doc/website/assets/splash-dark.png b/doc/website/assets/splash-dark.png Binary files differnew file mode 100644 index 0000000..29d781b --- /dev/null +++ b/doc/website/assets/splash-dark.png diff --git a/doc/website/assets/splash.png b/doc/website/assets/splash.png Binary files differnew file mode 100644 index 0000000..2fc8094 --- /dev/null +++ b/doc/website/assets/splash.png diff --git a/doc/website/favicon.png b/doc/website/favicon.png Binary files differnew file mode 100644 index 0000000..c531fcd --- /dev/null +++ b/doc/website/favicon.png 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 Binary files differnew file mode 100644 index 0000000..365eedc --- /dev/null +++ b/doc/website/fonts/Inter.var.woff2 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.') @@ -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 "Дазволіць" @@ -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" @@ -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" @@ -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" @@ -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" @@ -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" @@ -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 "" @@ -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" @@ -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 "לאפשר" @@ -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 "अनुमति" @@ -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" @@ -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" @@ -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" @@ -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" @@ -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 "დაშვება" @@ -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" @@ -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" @@ -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" @@ -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" @@ -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" @@ -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" @@ -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 "Разрешить" @@ -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ť" @@ -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 "" @@ -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" @@ -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" @@ -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, |