Skip to content

waycrate/xdg-desktop-portal-luminous

Repository files navigation

The Luminous portal:

An alternative to xdg-desktop-portal-wlr for wlroots compositors. This project is a stand alone binary and does not depend on grim. libwayshot is used as the screencopy backend to enable screenshots.

https://github.com/waycrate/xdg-desktop-portal-luminous/actions

Exposed interfaces:

  1. org.freedesktop.impl.portal.RemoteDesktop
  2. org.freedesktop.impl.portal.ScreenCast
  3. org.freedesktop.impl.portal.ScreenShot
  4. org.freedesktop.impl.portal.Settings

Settings:

Luminous is configured through the following auto hot-reloaded file: ~/.config/xdg-desktop-portal-luminous/config.toml.

color_scheme = "dark" # can also be "light"
accent_color = "#880022"

How to set priority of portal backend:

The following file needs to be created ~/.config/xdg-desktop-portal/CURRENT_DESKTOP_NAME-portals.conf. (eg: For the sway desktop, sway-portals.conf must exist.)

Eg:

[preferred]
default=luminous
org.freedesktop.impl.portal.Settings=luminous;gtk

Future goals:

  • Do not rely on slurp binary. We feel calling binaries is a hack to achieve some end goal, it is almost always better to programmatically invoke the given API.

Building:

meson build
ninja -C build install

Requirements:

Build time requirements are marked with *.

  1. cargo *
  2. libclang *
  3. meson *
  4. ninja *
  5. pipewire *
  6. pkg-config *
  7. rustc *
  8. xkbcommon *
  9. slurp
  10. wayland
  11. wayland-protocols *