aboutsummaryrefslogtreecommitdiff
path: root/src/server/protocol.rs
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-05-14 02:50:00 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-05-14 02:50:00 +0300
commited4253d6031c9a3b12ddd6dfc7d7bf39480ae761 (patch)
tree315cea3ee7b5ad3a7c3f9fb31272064a0eed5dd2 /src/server/protocol.rs
parent287bf51640f8e1bed227cb27d93377d962851196 (diff)
feat: add tmux-style mouse capture config
Diffstat (limited to 'src/server/protocol.rs')
-rw-r--r--src/server/protocol.rs15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/server/protocol.rs b/src/server/protocol.rs
index 8748c41c..e0a3c4a0 100644
--- a/src/server/protocol.rs
+++ b/src/server/protocol.rs
@@ -294,6 +294,12 @@ pub enum ServerMessage {
/// Client-local sound config changed on disk; refresh it without reconnecting.
ReloadSoundConfig,
+
+ /// Whether the client should currently capture host mouse input.
+ MouseCapture {
+ /// True when Herdr mouse UI is enabled or the focused pane app requests mouse reporting.
+ enabled: bool,
+ },
}
// ---------------------------------------------------------------------------
@@ -799,6 +805,15 @@ mod tests {
assert_eq!(msg, decoded);
}
+ #[test]
+ fn server_mouse_capture_roundtrip() {
+ let msg = ServerMessage::MouseCapture { enabled: true };
+ let encoded = bincode::serde::encode_to_vec(&msg, bincode::config::standard()).unwrap();
+ let (decoded, _): (ServerMessage, _) =
+ bincode::serde::decode_from_slice(&encoded, bincode::config::standard()).unwrap();
+ assert_eq!(msg, decoded);
+ }
+
// ---- Framing ----
#[test]