diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2025-10-18 09:13:41 +0300 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2025-10-18 09:14:57 +0300 |
| commit | 8c8447918f4fd7bc6c86a8622b1db52417fbbbbd (patch) | |
| tree | f8b04b0b7eef20dc2f4d5d4d6c50486052319368 /src/dbus/mod.rs | |
| parent | a4f5c90cf00545cd942c6ae07e3ff727b0bbed30 (diff) | |
| download | niri-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.rs | 18 |
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 { |
