diff --git a/src/commands/display.rs b/src/commands/display.rs index f259ead..f7c2530 100644 --- a/src/commands/display.rs +++ b/src/commands/display.rs @@ -269,6 +269,30 @@ fn fetch_state() -> Option<(Connection, AppState, wayland_client::EventQueue Vec { + let mut infos = Vec::new(); + if let Some((_, state, _)) = fetch_state() { + for (_, head) in state.heads.iter() { + if !head.enabled { + continue; + } + let Some(current_mode_handle) = &head.current_mode else { + continue; + }; + let Some((_, mode)) = state.modes.get(current_mode_handle) else { + continue; + }; + + let hz = (mode.refresh as f64) / 1000.0; + infos.push(format!( + "{} ({}): {}x{} px, {:.3} Hz", + head.name, head.make, mode.width, mode.height, hz + )); + } + } + infos +} + fn show_refresh_rates() { if let Some((_, state, _)) = fetch_state() { for (head_handle, head) in state.heads.iter() { diff --git a/src/commands/status.rs b/src/commands/status.rs index e5f692a..c459501 100644 --- a/src/commands/status.rs +++ b/src/commands/status.rs @@ -1,3 +1,4 @@ +use crate::commands::display; use crate::hardware::gpu; use std::fs; use std::path::Path; @@ -179,4 +180,14 @@ pub fn execute() { } } } + + // Display Status + let displays = display::get_active_display_info(); + if displays.is_empty() { + println!("Display: Unknown / Firmware managed"); + } else { + for d in displays { + println!("Display: {}", d); + } + } }