diff --git a/misc/luminous.portal b/misc/luminous.portal index 720651b..0bfcef6 100644 --- a/misc/luminous.portal +++ b/misc/luminous.portal @@ -1,4 +1,3 @@ [portal] DBusName=org.freedesktop.impl.portal.desktop.luminous -Interfaces=org.freedesktop.impl.portal.Screenshot;org.freedesktop.impl.portal.ScreenCast;org.freedesktop.impl.portal.RemoteDesktop;org.freedesktop.impl.portal.Settings; -UseIn=wlroots;sway;Wayfire;river;phosh;Hyprland,nextwm; +Interfaces=org.freedesktop.impl.portal.Screenshot;org.freedesktop.impl.portal.ScreenCast;org.freedesktop.impl.portal.RemoteDesktop;org.freedesktop.impl.portal.Settings;org.freedesktop.impl.portal.Access; diff --git a/src/access.rs b/src/access.rs new file mode 100644 index 0000000..fbe6195 --- /dev/null +++ b/src/access.rs @@ -0,0 +1,27 @@ +use std::collections::HashMap; + +use zbus::{ + dbus_interface, fdo, + zvariant::{OwnedValue, Value}, +}; + +use crate::PortalResponse; + +#[derive(Debug)] +pub struct AccessBackend; + +#[dbus_interface(name = "org.freedesktop.impl.portal.Access")] +impl AccessBackend { + async fn access_dialog( + &self, + _app_id: String, + _parrent_window: String, + _title: String, + _sub_title: String, + _body: String, + _options: HashMap>, + ) -> fdo::Result>> { + Ok(PortalResponse::Success(HashMap::new())) + } + // add code here +} diff --git a/src/main.rs b/src/main.rs index 10e9326..84a7240 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,3 +1,4 @@ +mod access; mod remotedesktop; mod request; mod screencast; @@ -6,6 +7,7 @@ mod session; mod settings; mod slintbackend; +use access::AccessBackend; use remotedesktop::RemoteDesktopBackend; use screencast::ScreenCastBackend; use screenshot::ScreenShotBackend; @@ -118,6 +120,7 @@ async fn main() -> anyhow::Result<()> { let conn = ConnectionBuilder::session()? .name("org.freedesktop.impl.portal.desktop.luminous")? + .serve_at("/org/freedesktop/portal/desktop", AccessBackend)? .serve_at("/org/freedesktop/portal/desktop", ScreenShotBackend)? .serve_at("/org/freedesktop/portal/desktop", ScreenCastBackend)? .serve_at("/org/freedesktop/portal/desktop", RemoteDesktopBackend)?