Hyprland Desktop Portal
An XDG Desktop Portal (later called XDP) is a program that lets other applications communicate swiftly with the compositor through D-Bus.
It’s used for stuff like e.g. opening file pickers, screen sharing.
On Wayland, it also requires an implementation. For Hyprland,
you’d usually use
xdg-desktop-portal-wlr (later called XDPW)
Unfortunately, due to various reasons the -wlr portal is inferior to the KDE or Gnome ones.
In order to bridge the gap, Hyprland has its own fork of XDPW that has more features, called xdg-desktop-portal-hyprland. (later called XDPH)
You don’t need XDPH. Hyprland will work with XDPW, but XDPH has more features, like e.g. window sharing.
XDPH will work on other wlroots-based compositors, although limited to the XDPW features (other will be disabled)
pacman -S xdg-desktop-portal-hyprland
or, for -git:
yay -S xdg-desktop-portal-hyprland-git
dev-qt/qtbase opengl egl eglfs gles2-only
btw those are the useflags that I have tested, you could also test others.
eselect repository enable guru
emaint sync -r guru
emerge --ask --verbose gui-libs/xdg-desktop-portal-hyprland
XDPH doesn’t implement a file picker. For that, I recommend installing
Should start automatically.
The most basic way of telling everything is OK is by trying to screenshare anything, or open OBS and select pipewire source. If XDPH is running, a qt menu will pop up asking you what to share.
If it doesn’t, and you get e.g. slurp, then XDPW is launching. In that case, try removing XDPW.
XDPH will work on other wlroots compositors, but features available only on Hyprland will not work (e.g. window sharing)
For a nuclear option, you can use this script and
killall -e xdg-desktop-portal-hyprland
killall -e xdg-desktop-portal-wlr
adjust the paths if incorrect.
Try one or both:
dbus-update-activation-environment --systemd --all
systemctl --user import-environment QT_QPA_PLATFORMTHEME
If it works, add it to your config in an
If you get long app launch times, or screensharing does not work, consult the logs.
systemctl --user status xdg-desktop-portal-hyprland
if you see a crash, it’s most likely you are missing