aboutsummaryrefslogtreecommitdiff
path: root/src/dbus/mod.rs
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2025-10-18 09:13:41 +0300
committerIvan Molodetskikh <yalterz@gmail.com>2025-10-18 09:14:57 +0300
commit8c8447918f4fd7bc6c86a8622b1db52417fbbbbd (patch)
treef8b04b0b7eef20dc2f4d5d4d6c50486052319368 /src/dbus/mod.rs
parenta4f5c90cf00545cd942c6ae07e3ff727b0bbed30 (diff)
downloadniri-8c8447918f4fd7bc6c86a8622b1db52417fbbbbd.tar.gz
niri-8c8447918f4fd7bc6c86a8622b1db52417fbbbbd.tar.bz2
niri-8c8447918f4fd7bc6c86a8622b1db52417fbbbbd.zip
Add login1 LidClosed monitoring
Diffstat (limited to 'src/dbus/mod.rs')
-rw-r--r--src/dbus/mod.rs18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/dbus/mod.rs b/src/dbus/mod.rs
index 6a164d48..5941456f 100644
--- a/src/dbus/mod.rs
+++ b/src/dbus/mod.rs
@@ -5,6 +5,7 @@ use crate::niri::State;
pub mod freedesktop_a11y;
pub mod freedesktop_locale1;
+pub mod freedesktop_login1;
pub mod freedesktop_screensaver;
pub mod gnome_shell_introspect;
pub mod gnome_shell_screenshot;
@@ -35,6 +36,7 @@ pub struct DBusServers {
pub conn_introspect: Option<Connection>,
#[cfg(feature = "xdp-gnome-screencast")]
pub conn_screen_cast: Option<Connection>,
+ pub conn_login1: Option<Connection>,
pub conn_locale1: Option<Connection>,
pub conn_keyboard_monitor: Option<Connection>,
}
@@ -136,6 +138,22 @@ impl DBusServers {
}
}
+ let (to_niri, from_login1) = calloop::channel::channel();
+ niri.event_loop
+ .insert_source(from_login1, move |event, _, state| match event {
+ calloop::channel::Event::Msg(msg) => state.on_login1_msg(msg),
+ calloop::channel::Event::Closed => (),
+ })
+ .unwrap();
+ match freedesktop_login1::start(to_niri) {
+ Ok(conn) => {
+ dbus.conn_login1 = Some(conn);
+ }
+ Err(err) => {
+ warn!("error starting login1 watcher: {err:?}");
+ }
+ }
+
let (to_niri, from_locale1) = calloop::channel::channel();
niri.event_loop
.insert_source(from_locale1, move |event, _, state| match event {