feat(src/commands): add get_active_display_info and status display output

Add function to retrieve and display active monitor information, and expose it via status command.

New Features:
- Implement get_active_display_info returning formatted display strings.
- Extend status command to list active displays using the new function.

Enhancements:
- Improve console output for display information.
- Update dependency usage for cleaner code.

Bug Fixes:
- None
This commit is contained in:
sankalp committed 2026-03-19 20:35:57 +05:45
1 parent c03251b0a8
commit a9ea518457
2 files changed
+35

No files matched your search

+24
View File
@@ -269,6 +269,30 @@ fn fetch_state() -> Option<(Connection, AppState, wayland_client::EventQueue<App
Some((conn, state, event_queue))
}
pub fn get_active_display_info() -> Vec<String> {
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() {
+11
View File
@@ -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);
}
}
}