Xdg desktop portal что это
Xdg desktop portal что это
A portal frontend service for Flatpak and possibly 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.
Documentation for the available D-Bus interfaces can be found here.
xdg-desktop-portal depends on GLib and Flatpak. To build the documentation, you will need xmlto and the docbook stylesheets.
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. Different backends are available see:
There are several reasons for the frontend/backend separation of the portal code:
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:
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.
xdg-desktop-portal и wayland
А что, сабж в сабже не работает? firefox и kde plasma 5.22 wayland.
При чем под Xwayland все работает 🙂 Мда. В очередной раз надурили. «Plasma готова под Wayland» уже стала мемом, ясчитаю.
Мда. В очередной раз надурили. «Plasma готова под Wayland» уже стала мемом, ясчитаю.
Виновата ли в данном случае Plasma или таки GTK?
Ну это только в Фурифоксе. Выход один: не использовать GTK-говнецо.
Запустилось с какой-то вырвиглазной темой в стиле Windows 95. В консоль при этом пишет:
приходит озарение кто же самый большой тормоз в продвижении Wayland
Но Я всё равно ННП. Кто?
Да. Я не заметил, что оно такое высирает.
Но отзывчивость на Вуланде, конечно, мое уважение. Я, как заядлый гэймер, могу замечать такие задержки.
xdg-desktop-portal-wlr есть и xdg-desktop-portal-kde
При чём здесь Wlroots?
Ну и какой бекенд пробовал? Или претензии только к gtk? GDK_BACKEND=wayland в переменных есть?
Бэкенды можно устанавливать одновременно, тогда недостающие в более приоритетном бэкенде функции будут дергаться из менее приоритетного.
А как заработало? GTK-приложения и так нативно запускаются. От запуска с GDK_BACKEND=wayland ничего не меняется.
Пользуясь случаем, кто-то может подтвердить, что анимация автоскрытия панелей в KDE + wayland криво работает (оставляет полную полоску вплоть до скрытия)? KDE 5.22.5
Спасибо, значит что-то специфичное. Может из-за того, что у меня блоб от nvidia.
Так, получается эта хрень работает со многим ГТК софтом? Не только Firefox и Thunderbird как я думал?
Не, как раз с ним все работает хорошо. Это по сути единственный мелкий косяк, а на опенсорсных дровах в принципе невозможно работать.
а на опенсорсных дровах в принципе невозможно работать
Про банальный десктоп. Слишком низкая производительность, как минимум на 4K мониторах. Как раз на анимациях хорошо видно, не тормозит конечно, особенно, если привыкнуть, но после блоба режет глаз. Про игры и 3D-софт вообще не говорю.
Это ты про какую видеокарту? Потому что как раз таки все наоборот.
Это ты про какую видеокарту? Потому что как раз таки все наоборот.
1080, наоборот быть не может, бенчмарки на форониксе сходятся с тем, что вижу я.
Производительнось опенсорсных дров просто мусорная. Даже учитывая то, что они еще и зачастую картинку выдают битую.
Производительнось опенсорсных дров просто мусорная
Лол. Так это опенсурс драйвер для Нвидии. Он чисто сообществом пилится. У АМД опенсорс драйвер — основной(amdgpu+mesa) и он отлично работает. Как с играми на Линуксах обстоит вопрос
Вот тебе скрин из SC2 на нищей RX560: https://i.imgur.com/mNOlc3B.jpg
Подтверждаю. У меня rx560. Разница 30-35% в производительности, в полозу овенсорс.
Так это опенсурс драйвер для Нвидии
А ты думал, что я вместо блоба для нвидии опенсорсные дрова для AMD брал? 🙂
А, у меня тоже заработало, после того как я перезагрузился и применилось установленное ранее обновление.
Просто я Ноувеау за драйвер не считаю. Думал, что ты про АМД говоришь.
Вот еще добавят поддерку вуланда в вайн и вообще красота будет.
Короче, вейланд в плазме — готов. Я перешел.
Пакет: xdg-desktop-portal-kde (5.23.4-1 и другие)
Ссылки для xdg-desktop-portal-kde
Ресурсы Debian:
Исходный код xdg-desktop-portal-kde:
Сопровождающие:
Внешние ресурсы:
Подобные пакеты:
backend implementation for xdg-desktop-portal using Qt
xdg-desktop-portal-kde provides a Qt implementation for the desktop-agnostic xdg-desktop-portal service. This allows sandboxed applications to request services from outside the sandbox using KDE GUIs (app chooser, file chooser, print dialog) or using KDE services (session manager, screenshot provider).
Другие пакеты, относящиеся к xdg-desktop-portal-kde
) [hppa] resource and network access abstraction (KIO file widgets library) dep: libkf5kiofilewidgets5 (>= 5.69.0) [sh4] dep: libkf5kiofilewidgets5 (>= 5.86
) [hppa, sh4] Qt library wrapper for Wayland libraries dep: libkf5waylandclient5 (>= 4:5.86
) [sparc64] Convenience access to certain properties and features of the window manager dep: libkf5windowsystem5 (>= 5.62.0) [hppa, sh4] dep: libkf5windowsystem5 (>= 5.86
) [sparc64] Qt 5 core module dep: libqt5core5a (>= 5.12.0
) [sparc64] Qt 5 D-Bus module dep: libqt5dbus5 (>= 5.12.0
) [не hppa, ia64, sh4, sparc64] dep: libqt5dbus5 (>= 5.4.0
) [hppa, sh4] Qt 5 GUI module или libqt5gui5-gles (>= 5.12.0
) Qt 5 GUI module — OpenGL ES variant dep: libqt5gui5 (>= 5.15.0
) [не hppa, ia64, sh4, sparc64] или libqt5gui5-gles (>= 5.15.0
) [sparc64] Qt 5 print support module dep: libqt5printsupport5 (>= 5.12.0
) [не hppa, ia64, sh4, sparc64] dep: libqt5printsupport5 (>= 5.4.0
) [не hppa, ia64, sh4, sparc64] Qt 5 Quick library или libqt5quick5-gles (>= 5.15.0
) [sparc64] Qt 5 widgets module dep: libqt5widgets5 (>= 5.12.0
) [не hppa, ia64, sh4, sparc64] dep: libqt5widgets5 (>= 5.4.0
Загрузка xdg-desktop-portal-kde
Архитектура | Версия | Размер пакета | В установленном виде | Файлы |
---|---|---|---|---|
alpha (неофициальный перенос) | 5.23.2-1 | 197,4 Кб | 1 123,0 Кб | [список файлов] |
amd64 | 5.23.4-1 | 204,1 Кб | 943,0 Кб | [список файлов] |
arm64 | 5.23.4-1 | 193,9 Кб | 955,0 Кб | [список файлов] |
armel | 5.23.4-1 | 190,4 Кб | 870,0 Кб | [список файлов] |
armhf | 5.23.4-1 | 181,2 Кб | 722,0 Кб | [список файлов] |
hppa (неофициальный перенос) | 5.17.5-2 | 161,0 Кб | 845,0 Кб | [список файлов] |
i386 | 5.23.4-1 | 222,6 Кб | 1 010,0 Кб | [список файлов] |
ia64 (неофициальный перенос) | 5.12.2-1+b1 | 77,5 Кб | 565,0 Кб | [список файлов] |
m68k (неофициальный перенос) | 5.23.4-1 | 196,1 Кб | 898,0 Кб | [список файлов] |
mips64el | 5.23.4-1 | 175,6 Кб | 1 049,0 Кб | [список файлов] |
mipsel | 5.23.4-1 | 175,6 Кб | 998,0 Кб | [список файлов] |
ppc64 (неофициальный перенос) | 5.23.4-1 | 207,3 Кб | 1 235,0 Кб | [список файлов] |
ppc64el | 5.23.4-1 | 207,6 Кб | 1 171,0 Кб | [список файлов] |
riscv64 (неофициальный перенос) | 5.23.4-1 | 195,8 Кб | 801,0 Кб | [список файлов] |
s390x | 5.23.4-1 | 185,7 Кб | 979,0 Кб | [список файлов] |
sh4 (неофициальный перенос) | 5.17.5-3 | 147,7 Кб | 542,0 Кб | [список файлов] |
sparc64 (неофициальный перенос) | 5.14.5-1 | 77,1 Кб | 498,0 Кб | [список файлов] |
x32 (неофициальный перенос) | 5.23.4-1 | 207,1 Кб | 882,0 Кб | [список файлов] |
Эта страница также доступна на следующих языках (Как установить язык по умолчанию):
Чтобы сообщить о проблеме, связанной с веб-сайтом, отправьте сообщение (на английском) в список рассылки debian-www@lists.debian.org. Прочую контактную информацию см. на странице Debian Как с нами связаться.
XDG desktop portals
Portals are a standardised framework allowing desktop applications to use resources outside of their sandbox. The file chooser portal, for example, opens a native file chooser on the host system. When the user selects a file, the application is granted access to that file.
Portals provide a range of common features to applications, including:
See the Portal API reference for all supported portals.
Portals originated from the Flatpak project, but are now a common Linux desktop standard with support from GNOME, KDE and Snapcraft. They are even used outside of sandboxes to provide a standardised API to common desktop features such as screenshots and screen casts on wayland.
How to use portals in your snap
Use the Portal API’s in your application
Unlike regular Snapcraft interfaces, portals require applications to use a new API in order to access resources. Toolkits like GTK 3 and Qt5, however, provide transparent support for portals. See Portal support in GTK 3 or Portal support in Qt5 and KDE for detailed information.
If your application is not using one of those toolkits, you will need to use the Portals API directly. See the Portals API documentation for more information.
Add the desktop interface to your snap
This interface gives your snap access to the portals.
Enable Portal support in your application.
GTK 3: turn on portal support in GTK 3 by setting the following environment variable:
GTK_USE_PORTAL=1
Qt: often defaults to using portals, but you can enable it manually by changing the platform theme:
Set QT_QPA_PLATFORMTHEME=gtk3 on GTK based desktops and
Set QT_QPA_PLATFORMTHEME=flatpak and QT_QPA_FLATPAK_PLATFORMTHEME=kde for Qt based desktops.
Electron: portal support in the Electron file chooser is being worked on.
Both the gnome-3-34 extension and the kde-neon extension automatically enable portal support for GTK 3 and Qt applications on GTK-based desktops. If your snap uses either extension, you only need to do step 1.
File chooser portal vs home interface ⚓
It is recommended to use the file chooser portal instead of the home and removable-media interfaces for the following reasons:
However, the file chooser portal works a bit differently than the home interface:
The FileChooser portal also contains a few bugs:
Known Limitations
See Desktop applications for more information on how to snap a desktop application.
Xdg desktop portal что это
xdg-desktop-portal provides a portal frontend service for Flatpak, Snap, and possibly other desktop containment/sandboxing frameworks. This service is made available to the sandboxed application, and provides mediated D-Bus interfaces for file access, URI opening, printing and similar desktop integration features.
The implementation of these interfaces is expected to require user confirmation before responding to the sandboxed application’s requests. For example, when the sandboxed application ask to open a file, the portal implementation will open an «Open» dialog outside the sandbox, and will only make the selected file available to the sandboxed app if that dialog is confirmed.
xdg-desktop-portal is designed to be desktop-agnostic, and uses a desktop-environment-specific GUI backend such as xdg-desktop-portal-gtk to provide its functionality.
Загрузка xdg-desktop-portal
Архитектура | Размер пакета | В установленном виде | Файлы |
---|---|---|---|
amd64 | 207,8 Кб | 1 122,0 Кб | [список файлов] |
arm64 | 197,9 Кб | 1 090,0 Кб | [список файлов] |
armel | 165,2 Кб | 850,0 Кб | [список файлов] |
armhf | 170,2 Кб | 670,0 Кб | [список файлов] |
i386 | 215,1 Кб | 1 194,0 Кб | [список файлов] |
mips | 155,3 Кб | 1 191,0 Кб | [список файлов] |
mips64el | 156,1 Кб | 1 236,0 Кб | [список файлов] |
mipsel | 159,3 Кб | 1 183,0 Кб | [список файлов] |
ppc64el | 220,7 Кб | 1 534,0 Кб | [список файлов] |
s390x | 188,7 Кб | 1 166,0 Кб | [список файлов] |
Эта страница также доступна на следующих языках (Как установить язык по умолчанию):
Xdg desktop portal что это
A portal frontend service for Flatpak and possibly 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.
Documentation for the available D-Bus interfaces can be found here.
xdg-desktop-portal depends on GLib and Flatpak. To build the documentation, you will need xmlto and the docbook stylesheets.
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. Different backends are available see:
There are several reasons for the frontend/backend separation of the portal code:
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:
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.
Xdg desktop portal что это
A portal frontend service for Flatpak and possibly 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.
Documentation for the available D-Bus interfaces can be found here.
xdg-desktop-portal depends on GLib and Flatpak. To build the documentation, you will need xmlto and the docbook stylesheets.
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. Different backends are available see:
There are several reasons for the frontend/backend separation of the portal code:
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:
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.
Другие пакеты, относящиеся к xdg-desktop-portal
Пакет: xdg-desktop-portal (1.2.0-1)
xdg-desktop-portal provides a portal frontend service for Flatpak, Snap, and possibly other desktop containment/sandboxing frameworks. This service is made available to the sandboxed application, and provides mediated D-Bus interfaces for file access, URI opening, printing and similar desktop integration features.
The implementation of these interfaces is expected to require user confirmation before responding to the sandboxed application’s requests. For example, when the sandboxed application ask to open a file, the portal implementation will open an «Open» dialog outside the sandbox, and will only make the selected file available to the sandboxed app if that dialog is confirmed.
xdg-desktop-portal is designed to be desktop-agnostic, and uses a desktop-environment-specific GUI backend such as xdg-desktop-portal-gtk to provide its functionality.
Другие пакеты, относящиеся к xdg-desktop-portal
Загрузка xdg-desktop-portal
Архитектура | Версия | Размер пакета | В установленном виде | Файлы |
---|---|---|---|---|
alpha (неофициальный перенос) | 1.0.3-1 | 169,2 Кб | 1 141,0 Кб | [список файлов] |
amd64 | 1.10.1-2 | 271,6 Кб | 1 467,0 Кб | [список файлов] |
arm64 | 1.10.1-2 | 258,6 Кб | 1 455,0 Кб | [список файлов] |
armel | 1.10.1-2 | 237,4 Кб | 1 219,0 Кб | [список файлов] |
armhf | 1.10.1-2 | 229,2 Кб | 907,0 Кб | [список файлов] |
hppa (неофициальный перенос) | 1.10.1-2 | 227,3 Кб | 1 370,0 Кб | [список файлов] |
i386 | 1.10.1-2 | 282,7 Кб | 1 571,0 Кб | [список файлов] |
ia64 (неофициальный перенос) | 1.0.3-1 | 189,7 Кб | 1 701,0 Кб | [список файлов] |
m68k (неофициальный перенос) | 1.0.3-1 | 154,2 Кб | 786,0 Кб | [список файлов] |
mips64el | 1.10.1-2 | 201,7 Кб | 1 607,0 Кб | [список файлов] |
mipsel | 1.10.1-2 | 206,4 Кб | 1 562,0 Кб | [список файлов] |
ppc64 (неофициальный перенос) | 1.10.1-2 | 276,6 Кб | 2 172,0 Кб | [список файлов] |
ppc64el | 1.10.1-2 | 286,7 Кб | 1 979,0 Кб | [список файлов] |
riscv64 (неофициальный перенос) | 1.10.1-2 | 236,2 Кб | 1 062,0 Кб | [список файлов] |
s390x | 1.10.1-2 | 248,7 Кб | 1 511,0 Кб | [список файлов] |
sh4 (неофициальный перенос) | 1.0.3-1 | 158,0 Кб | 759,0 Кб | [список файлов] |
sparc64 (неофициальный перенос) | 1.0.3-1 | 130,1 Кб | 845,0 Кб | [список файлов] |
x32 (неофициальный перенос) | 1.10.1-2 | 273,4 Кб | 1 331,0 Кб | [список файлов] |
Эта страница также доступна на следующих языках (Как установить язык по умолчанию):