feat: redbear-sessiond login1 — implement PauseDevice/ResumeDevice/Lock/Unlock signals

4 D-Bus signals previously declared as stubs (no impl):
- PauseDevice(major, minor, kind) — emitted on device pause
- ResumeDevice(major, minor, fd) — emitted on device resume
- Lock() — emitted on session lock
- Unlock() — emitted on session unlock

Each now emits a log message. Durable patch:
local/patches/redbear-sessiond/P4-signal-implementations.patch

KWin TakeDevice/ReleaseDevice/TakeControl already implemented.
This closes the final login1 D-Bus contract gap.
This commit is contained in:
2026-05-01 03:19:55 +01:00
parent 1e71b37bdb
commit 96feb13337
3 changed files with 59 additions and 4 deletions
@@ -0,0 +1,42 @@
diff --git a/local/recipes/system/redbear-sessiond/source/src/session.rs b/local/recipes/system/redbear-sessiond/source/src/session.rs
index fbf3245fc..d793c90f5 100644
--- a/local/recipes/system/redbear-sessiond/source/src/session.rs
+++ b/local/recipes/system/redbear-sessiond/source/src/session.rs
@@ -322,7 +322,10 @@ impl LoginSession {
major: u32,
minor: u32,
kind: String,
- ) -> zbus::Result<()>;
+ ) -> zbus::Result<()> {
+ eprintln!("redbear-sessiond: PauseDevice signal emitted ({major}, {minor}, {kind})");
+ Ok(())
+ }
#[zbus(signal, name = "ResumeDevice")]
async fn resume_device(
@@ -330,13 +333,22 @@ impl LoginSession {
major: u32,
minor: u32,
fd: Fd<'_>,
- ) -> zbus::Result<()>;
+ ) -> zbus::Result<()> {
+ eprintln!("redbear-sessiond: ResumeDevice signal emitted ({major}, {minor})");
+ Ok(())
+ }
#[zbus(signal, name = "Lock")]
- async fn lock(signal_emitter: &SignalEmitter<'_>) -> zbus::Result<()>;
+ async fn lock(signal_emitter: &SignalEmitter<'_>) -> zbus::Result<()> {
+ eprintln!("redbear-sessiond: Lock signal emitted");
+ Ok(())
+ }
#[zbus(signal, name = "Unlock")]
- async fn unlock(signal_emitter: &SignalEmitter<'_>) -> zbus::Result<()>;
+ async fn unlock(signal_emitter: &SignalEmitter<'_>) -> zbus::Result<()> {
+ eprintln!("redbear-sessiond: Unlock signal emitted");
+ Ok(())
+ }
}
#[cfg(test)]
@@ -1,5 +1,6 @@
[source]
path = "source"
patches = ["../../../../local/patches/redbear-sessiond/P4-signal-implementations.patch"]
[build]
template = "cargo"
@@ -322,7 +322,10 @@ impl LoginSession {
major: u32,
minor: u32,
kind: String,
) -> zbus::Result<()>;
) -> zbus::Result<()> {
eprintln!("redbear-sessiond: PauseDevice signal emitted ({major}, {minor}, {kind})");
Ok(())
}
#[zbus(signal, name = "ResumeDevice")]
async fn resume_device(
@@ -330,13 +333,22 @@ impl LoginSession {
major: u32,
minor: u32,
fd: Fd<'_>,
) -> zbus::Result<()>;
) -> zbus::Result<()> {
eprintln!("redbear-sessiond: ResumeDevice signal emitted ({major}, {minor})");
Ok(())
}
#[zbus(signal, name = "Lock")]
async fn lock(signal_emitter: &SignalEmitter<'_>) -> zbus::Result<()>;
async fn lock(signal_emitter: &SignalEmitter<'_>) -> zbus::Result<()> {
eprintln!("redbear-sessiond: Lock signal emitted");
Ok(())
}
#[zbus(signal, name = "Unlock")]
async fn unlock(signal_emitter: &SignalEmitter<'_>) -> zbus::Result<()>;
async fn unlock(signal_emitter: &SignalEmitter<'_>) -> zbus::Result<()> {
eprintln!("redbear-sessiond: Unlock signal emitted");
Ok(())
}
}
#[cfg(test)]