Skip to content

Add support for experimental portals - #2129

Open
iinuwa wants to merge 3 commits into
flatpak:mainfrom
iinuwa:experimental-portals
Open

iinuwa wants to merge 3 commits into
flatpak:mainfrom
iinuwa:experimental-portals

Conversation

@iinuwa

@iinuwa iinuwa commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Fixes #2066.

Comment thread desktop-portal/xdp-context.c
@iinuwa
iinuwa force-pushed the experimental-portals branch from 0138498 to 811d10a Compare September 8, 2026 12:52
@iinuwa

iinuwa commented Sep 8, 2026

Copy link
Copy Markdown
Contributor Author

@tytan652 or @swick, any comments on this documentation for experimental portals?

An experimental interface is named org.freedesktop.portal.Name.X#, and
adjust_title() feeds the whole remainder of the name to the CamelCase
split, so the page for Certificate.X1 is titled " Certificate . X 1".

Take the .X# off before the split and put it back as an "(Experimental
X1)" label, so the page is titled "Certificate (Experimental X1)" and
says in its heading what the interface promises.

Assisted-by: Claude:claude-fable-5-1
@sjtrotter

Copy link
Copy Markdown

hi there, i'm implementing some experimental backends that utilize this in anticipation of the merge.

full disclosure: i'm using claude and codex to assist with my builds.

originally my issue was with freerdp; i connect on a govcloud remote desktop that requires oauth sign in as well as smartcard support.

in exploring the code and playing around with it, i eventually landed on the idea for two separate portals: one for web authentication, and one for a smartcard/client certificate chooser.

the one i think has the most potential for acceptance is the cert chooser: https://github.com/sjtrotter/xdg-desktop-portal-certificate

i have a small fix that changes how the name is generated. this version parses the name as e.g. " Certificate . X 1" and the fix changes it to "Certificate (Experimental X1)". @iinuwa i can submit it to your branch as a PR for inclusion if you'd like to see it?

@iinuwa

iinuwa commented Sep 10, 2026

Copy link
Copy Markdown
Contributor Author

@sjtrotter, sure that'd be helpful!

@sjtrotter

Copy link
Copy Markdown

okay, just pushed it -- it should be with you for review

Comment on lines +20 to +25
- The frontend object path must be
``/org/freedesktop/portal/desktop/experimental``. The backend object path
should be the same.
- The interface name must follow the pattern
``org.freedesktop.portal.Name.X#``, where ``#`` is a number that increments
on major changes to the experimental portal.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Backends usually expose these under names and paths like org.freedesktop.impl.portal, don't they?


- Go through final review by the committers, including frontend code and
documentation for both the frontend and backend.
- Be implemented and merged into at least one major backend implementation.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not 3? GNOME, KDE, and Cosmic, for example. Those are the major desktop environments I see floating around as of late, and having more than one major backend implementation means potentially exposing different problems that wouldn't show up otherwise.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add support for experimental portals

4 participants