Bug 451510

Summary: Support the new Dynamic Launcher portal
Product: [Plasma] xdg-desktop-portal-kde Reporter: Georges Stavracas <georges.stavracas>
Component: generalAssignee: Harald Sitter <sitter>
Status: RESOLVED FIXED    
Severity: normal CC: aleixpol, bednarczyk.pawel, jgrulich, nate, sitter
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed In: 5.25
Sentry Crash Report:

Description Georges Stavracas 2022-03-14 22:26:08 UTC
A new portal was recently merged, the Dynamic Launcher portal [1], which enables creating PWAs and launchers in general. This is useful for browsers (e.g. Chromium [which still needs to be adapted to use this portal, mind you], Epiphany, etc). App stores like GNOME Software and Discover can use this portal to display and manage PWAs as if they are native apps as well.

In addition to PWAs, the portal is designed in such a way to enable general desktop files to be installed and managed. This could be useful, for example, for Steam and Wine.

[1] https://github.com/flatpak/xdg-desktop-portal/pull/696
Comment 1 Harald Sitter 2022-04-07 11:07:21 UTC
Is there a test app somewhere?
Comment 2 Nate Graham 2022-04-08 14:50:52 UTC
In terms of UI, I think the existing UI that Epiphany offers is pretty good: https://gitlab.gnome.org/Teams/Design/os-mockups/uploads/a6378d68610b96d8d4b881a8000db240/epiphany-install-app-dialog.png

Of course we would need to KDE-ify it a bit, but that's simple enough.

One nice thing we could add would be a little bit of text saying, "In the future, you can edit or delete this launcher using the Menu Editor app." so people know know how to do those things. KMenuEdit was only just recently made visible in Kickoff so I think it's likely a lot of users aren't very familiar with it.
Comment 3 Harald Sitter 2022-04-22 09:36:30 UTC
Git commit d5f958e149705e27bbba9f3bbec659ff5bed1d80 by Harald Sitter.
Committed on 22/04/2022 at 09:29.
Pushed by sitter into branch 'master'.

add DynamicLauncher portal

this portal enables sandboxed applications to create desktop entries on
the host

M  +1    -0    CMakeLists.txt
M  +1    -1    data/kde.portal
M  +3    -0    src/CMakeLists.txt
A  +107  -0    src/DynamicLauncherDialog.qml     [License: LGPL(3+eV) LGPL(v3.0) LGPL(v2.1)]
M  +3    -0    src/desktopportal.cpp
M  +3    -0    src/desktopportal.h
A  +162  -0    src/dynamiclauncher.cpp     [License: LGPL(3+eV) LGPL(v3.0) LGPL(v2.1)]
A  +34   -0    src/dynamiclauncher.h     [License: LGPL(3+eV) LGPL(v3.0) LGPL(v2.1)]
A  +24   -0    src/dynamiclauncherdialog.cpp     [License: LGPL(3+eV) LGPL(v3.0) LGPL(v2.1)]
A  +23   -0    src/dynamiclauncherdialog.h     [License: LGPL(3+eV) LGPL(v3.0) LGPL(v2.1)]
M  +1    -0    src/resources.qrc

https://invent.kde.org/plasma/xdg-desktop-portal-kde/commit/d5f958e149705e27bbba9f3bbec659ff5bed1d80