aboutsummaryrefslogtreecommitdiff
path: root/src/dbus
diff options
context:
space:
mode:
authorbbb651 <bar.ye651@gmail.com>2024-12-10 01:58:26 +0200
committerIvan Molodetskikh <yalterz@gmail.com>2025-01-02 08:50:48 +0300
commit0113292cf6a77aea55739c7e779a891786aa35bd (patch)
tree1ded074e286b46bf6a622f320e3a53d9cf81d4f9 /src/dbus
parent4741ab2e0465275d58c36db426b169c742d964cf (diff)
downloadniri-0113292cf6a77aea55739c7e779a891786aa35bd.tar.gz
niri-0113292cf6a77aea55739c7e779a891786aa35bd.tar.bz2
niri-0113292cf6a77aea55739c7e779a891786aa35bd.zip
Upgrade `zbus` and `async-io`
Diffstat (limited to 'src/dbus')
-rw-r--r--src/dbus/freedesktop_screensaver.rs9
-rw-r--r--src/dbus/gnome_shell_introspect.rs9
-rw-r--r--src/dbus/gnome_shell_screenshot.rs4
-rw-r--r--src/dbus/mod.rs2
-rw-r--r--src/dbus/mutter_display_config.rs9
-rw-r--r--src/dbus/mutter_screen_cast.rs31
-rw-r--r--src/dbus/mutter_service_channel.rs13
7 files changed, 40 insertions, 37 deletions
diff --git a/src/dbus/freedesktop_screensaver.rs b/src/dbus/freedesktop_screensaver.rs
index 19bb6bf0..2ed874aa 100644
--- a/src/dbus/freedesktop_screensaver.rs
+++ b/src/dbus/freedesktop_screensaver.rs
@@ -6,9 +6,10 @@ use std::sync::{Arc, Mutex, OnceLock};
use anyhow::Context;
use futures_util::StreamExt;
use zbus::fdo::{self, RequestNameFlags};
+use zbus::message::Header;
use zbus::names::{OwnedUniqueName, UniqueName};
use zbus::zvariant::NoneValue;
-use zbus::{dbus_interface, MessageHeader, Task};
+use zbus::{interface, Task};
use super::Start;
@@ -20,11 +21,11 @@ pub struct ScreenSaver {
monitor_task: Arc<OnceLock<Task<()>>>,
}
-#[dbus_interface(name = "org.freedesktop.ScreenSaver")]
+#[interface(name = "org.freedesktop.ScreenSaver")]
impl ScreenSaver {
async fn inhibit(
&mut self,
- #[zbus(header)] hdr: MessageHeader<'_>,
+ #[zbus(header)] hdr: Header<'_>,
application_name: &str,
reason_for_inhibit: &str,
) -> fdo::Result<u32> {
@@ -33,7 +34,7 @@ impl ScreenSaver {
hdr.sender()
);
- let Ok(Some(name)) = hdr.sender() else {
+ let Some(name) = hdr.sender() else {
return Err(fdo::Error::Failed(String::from("no sender")));
};
let name = OwnedUniqueName::from(name.to_owned());
diff --git a/src/dbus/gnome_shell_introspect.rs b/src/dbus/gnome_shell_introspect.rs
index d9485d81..5151351b 100644
--- a/src/dbus/gnome_shell_introspect.rs
+++ b/src/dbus/gnome_shell_introspect.rs
@@ -1,8 +1,9 @@
use std::collections::HashMap;
use zbus::fdo::{self, RequestNameFlags};
+use zbus::interface;
+use zbus::object_server::SignalEmitter;
use zbus::zvariant::{SerializeDict, Type, Value};
-use zbus::{dbus_interface, SignalContext};
use super::Start;
@@ -33,7 +34,7 @@ pub struct WindowProperties {
pub app_id: String,
}
-#[dbus_interface(name = "org.gnome.Shell.Introspect")]
+#[interface(name = "org.gnome.Shell.Introspect")]
impl Introspect {
async fn get_windows(&self) -> fdo::Result<HashMap<u64, WindowProperties>> {
if let Err(err) = self.to_niri.send(IntrospectToNiri::GetWindows) {
@@ -52,8 +53,8 @@ impl Introspect {
// FIXME: call this upon window changes, once more of the infrastructure is there (will be
// needed for the event stream IPC anyway).
- #[dbus_interface(signal)]
- pub async fn windows_changed(ctxt: &SignalContext<'_>) -> zbus::Result<()>;
+ #[zbus(signal)]
+ pub async fn windows_changed(ctxt: &SignalEmitter<'_>) -> zbus::Result<()>;
}
impl Introspect {
diff --git a/src/dbus/gnome_shell_screenshot.rs b/src/dbus/gnome_shell_screenshot.rs
index 61121990..742f72b2 100644
--- a/src/dbus/gnome_shell_screenshot.rs
+++ b/src/dbus/gnome_shell_screenshot.rs
@@ -1,7 +1,7 @@
use std::path::PathBuf;
-use zbus::dbus_interface;
use zbus::fdo::{self, RequestNameFlags};
+use zbus::interface;
use super::Start;
@@ -18,7 +18,7 @@ pub enum NiriToScreenshot {
ScreenshotResult(Option<PathBuf>),
}
-#[dbus_interface(name = "org.gnome.Shell.Screenshot")]
+#[interface(name = "org.gnome.Shell.Screenshot")]
impl Screenshot {
async fn screenshot(
&self,
diff --git a/src/dbus/mod.rs b/src/dbus/mod.rs
index a231a1d1..347b16fd 100644
--- a/src/dbus/mod.rs
+++ b/src/dbus/mod.rs
@@ -1,5 +1,5 @@
use zbus::blocking::Connection;
-use zbus::Interface;
+use zbus::object_server::Interface;
use crate::niri::State;
diff --git a/src/dbus/mutter_display_config.rs b/src/dbus/mutter_display_config.rs
index b6df149c..e535e583 100644
--- a/src/dbus/mutter_display_config.rs
+++ b/src/dbus/mutter_display_config.rs
@@ -3,8 +3,9 @@ use std::sync::{Arc, Mutex};
use serde::Serialize;
use zbus::fdo::RequestNameFlags;
+use zbus::object_server::SignalEmitter;
use zbus::zvariant::{self, OwnedValue, Type};
-use zbus::{dbus_interface, fdo, SignalContext};
+use zbus::{fdo, interface};
use super::Start;
use crate::backend::IpcOutputMap;
@@ -43,7 +44,7 @@ pub struct LogicalMonitor {
properties: HashMap<String, OwnedValue>,
}
-#[dbus_interface(name = "org.gnome.Mutter.DisplayConfig")]
+#[interface(name = "org.gnome.Mutter.DisplayConfig")]
impl DisplayConfig {
async fn get_current_state(
&self,
@@ -156,8 +157,8 @@ impl DisplayConfig {
Ok((0, monitors, logical_monitors, properties))
}
- #[dbus_interface(signal)]
- pub async fn monitors_changed(ctxt: &SignalContext<'_>) -> zbus::Result<()>;
+ #[zbus(signal)]
+ pub async fn monitors_changed(ctxt: &SignalEmitter<'_>) -> zbus::Result<()>;
}
impl DisplayConfig {
diff --git a/src/dbus/mutter_screen_cast.rs b/src/dbus/mutter_screen_cast.rs
index 0aba084e..a19535ae 100644
--- a/src/dbus/mutter_screen_cast.rs
+++ b/src/dbus/mutter_screen_cast.rs
@@ -5,8 +5,9 @@ use std::sync::{Arc, Mutex};
use serde::Deserialize;
use zbus::fdo::RequestNameFlags;
+use zbus::object_server::{InterfaceRef, SignalEmitter};
use zbus::zvariant::{DeserializeDict, OwnedObjectPath, SerializeDict, Type, Value};
-use zbus::{dbus_interface, fdo, InterfaceRef, ObjectServer, SignalContext};
+use zbus::{fdo, interface, ObjectServer};
use super::Start;
use crate::backend::IpcOutputMap;
@@ -94,14 +95,14 @@ pub enum ScreenCastToNiri {
session_id: usize,
target: StreamTargetId,
cursor_mode: CursorMode,
- signal_ctx: SignalContext<'static>,
+ signal_ctx: SignalEmitter<'static>,
},
StopCast {
session_id: usize,
},
}
-#[dbus_interface(name = "org.gnome.Mutter.ScreenCast")]
+#[interface(name = "org.gnome.Mutter.ScreenCast")]
impl ScreenCast {
async fn create_session(
&self,
@@ -136,26 +137,26 @@ impl ScreenCast {
Ok(path)
}
- #[dbus_interface(property)]
+ #[zbus(property)]
async fn version(&self) -> i32 {
4
}
}
-#[dbus_interface(name = "org.gnome.Mutter.ScreenCast.Session")]
+#[interface(name = "org.gnome.Mutter.ScreenCast.Session")]
impl Session {
async fn start(&self) {
debug!("start");
for (stream, iface) in &*self.streams.lock().unwrap() {
- stream.start(self.id, iface.signal_context().clone());
+ stream.start(self.id, iface.signal_emitter().clone());
}
}
pub async fn stop(
&self,
#[zbus(object_server)] server: &ObjectServer,
- #[zbus(signal_context)] ctxt: SignalContext<'_>,
+ #[zbus(signal_context)] ctxt: SignalEmitter<'_>,
) {
debug!("stop");
@@ -175,7 +176,7 @@ impl Session {
let streams = mem::take(&mut *self.streams.lock().unwrap());
for (_, iface) in streams.iter() {
server
- .remove::<Stream, _>(iface.signal_context().path())
+ .remove::<Stream, _>(iface.signal_emitter().path())
.await
.unwrap();
}
@@ -264,17 +265,17 @@ impl Session {
Ok(path)
}
- #[dbus_interface(signal)]
- async fn closed(ctxt: &SignalContext<'_>) -> zbus::Result<()>;
+ #[zbus(signal)]
+ async fn closed(ctxt: &SignalEmitter<'_>) -> zbus::Result<()>;
}
-#[dbus_interface(name = "org.gnome.Mutter.ScreenCast.Stream")]
+#[interface(name = "org.gnome.Mutter.ScreenCast.Stream")]
impl Stream {
- #[dbus_interface(signal)]
- pub async fn pipe_wire_stream_added(ctxt: &SignalContext<'_>, node_id: u32)
+ #[zbus(signal)]
+ pub async fn pipe_wire_stream_added(ctxt: &SignalEmitter<'_>, node_id: u32)
-> zbus::Result<()>;
- #[dbus_interface(property)]
+ #[zbus(property)]
async fn parameters(&self) -> StreamParameters {
match &self.target {
StreamTarget::Output(output) => {
@@ -361,7 +362,7 @@ impl Stream {
}
}
- fn start(&self, session_id: usize, ctxt: SignalContext<'static>) {
+ fn start(&self, session_id: usize, ctxt: SignalEmitter<'static>) {
if self.was_started.load(Ordering::SeqCst) {
return;
}
diff --git a/src/dbus/mutter_service_channel.rs b/src/dbus/mutter_service_channel.rs
index c78dcbee..d2be1c5f 100644
--- a/src/dbus/mutter_service_channel.rs
+++ b/src/dbus/mutter_service_channel.rs
@@ -1,9 +1,8 @@
-use std::os::fd::{FromRawFd, IntoRawFd};
use std::os::unix::net::UnixStream;
use std::sync::Arc;
use smithay::reexports::wayland_server::DisplayHandle;
-use zbus::dbus_interface;
+use zbus::{fdo, interface, zvariant};
use super::Start;
use crate::niri::ClientState;
@@ -12,14 +11,14 @@ pub struct ServiceChannel {
display: DisplayHandle,
}
-#[dbus_interface(name = "org.gnome.Mutter.ServiceChannel")]
+#[interface(name = "org.gnome.Mutter.ServiceChannel")]
impl ServiceChannel {
async fn open_wayland_service_connection(
&mut self,
service_client_type: u32,
- ) -> zbus::fdo::Result<zbus::zvariant::OwnedFd> {
+ ) -> fdo::Result<zvariant::OwnedFd> {
if service_client_type != 1 {
- return Err(zbus::fdo::Error::InvalidArgs(
+ return Err(fdo::Error::InvalidArgs(
"Invalid service client type".to_owned(),
));
}
@@ -34,7 +33,7 @@ impl ServiceChannel {
credentials_unknown: true,
});
self.display.insert_client(sock2, data).unwrap();
- Ok(unsafe { zbus::zvariant::OwnedFd::from_raw_fd(sock1.into_raw_fd()) })
+ Ok(zvariant::OwnedFd::from(std::os::fd::OwnedFd::from(sock1)))
}
}
@@ -46,7 +45,7 @@ impl ServiceChannel {
impl Start for ServiceChannel {
fn start(self) -> anyhow::Result<zbus::blocking::Connection> {
- let conn = zbus::blocking::ConnectionBuilder::session()?
+ let conn = zbus::blocking::connection::Builder::session()?
.name("org.gnome.Mutter.ServiceChannel")?
.serve_at("/org/gnome/Mutter/ServiceChannel", self)?
.build()?;