From 1db1d8149b1f1e1bbf26dbfe96a779a8befd9d54 Mon Sep 17 00:00:00 2001 From: Christian Duvholt Date: Sun, 10 Aug 2025 20:38:31 +0200 Subject: [PATCH] output_configuration: Set wlr_output_head serial number --- src/backend/kms/device.rs | 4 ++++ src/backend/winit.rs | 1 + src/backend/x11.rs | 1 + src/wayland/protocols/output_configuration/mod.rs | 3 +++ 4 files changed, 9 insertions(+) diff --git a/src/backend/kms/device.rs b/src/backend/kms/device.rs index 024eea5d..0b7fab74 100644 --- a/src/backend/kms/device.rs +++ b/src/backend/kms/device.rs @@ -949,6 +949,10 @@ fn create_output_for_conn(drm: &mut DrmDevice, conn: connector::Handle) -> Resul .as_ref() .and_then(|info| info.model()) .unwrap_or_else(|| String::from("Unknown")), + serial_number: edid_info + .as_ref() + .and_then(|info| info.serial()) + .unwrap_or_else(|| String::from("Unknown")), }, ); if let Some(edid) = edid_info.as_ref().and_then(|x| x.edid()) { diff --git a/src/backend/winit.rs b/src/backend/winit.rs index a0af2432..f0a65f9d 100644 --- a/src/backend/winit.rs +++ b/src/backend/winit.rs @@ -148,6 +148,7 @@ pub fn init_backend( subpixel: Subpixel::Unknown, make: "COSMIC".to_string(), model: name.clone(), + serial_number: "Unknown".to_string(), }; let mode = Mode { size: (size.w, size.h).into(), diff --git a/src/backend/x11.rs b/src/backend/x11.rs index 7bae191e..4cb4def6 100644 --- a/src/backend/x11.rs +++ b/src/backend/x11.rs @@ -94,6 +94,7 @@ impl X11State { subpixel: Subpixel::Unknown, make: "COSMIC".to_string(), model: name.clone(), + serial_number: "Unknown".to_string(), }; let mode = Mode { size: (size.w as i32, size.h as i32).into(), diff --git a/src/wayland/protocols/output_configuration/mod.rs b/src/wayland/protocols/output_configuration/mod.rs index 955b7fec..bb37d89c 100644 --- a/src/wayland/protocols/output_configuration/mod.rs +++ b/src/wayland/protocols/output_configuration/mod.rs @@ -507,6 +507,9 @@ where if physical.model != "Unknown" { instance.obj.model(physical.model); } + if physical.serial_number != "Unknown" { + instance.obj.serial_number(physical.serial_number); + } } if let Some(extension_obj) = instance.extension_obj.as_ref() {