release/1.1.0 #1
@@ -136,9 +136,10 @@ impl DellXps9380Guard {
|
||||
|
||||
impl EnvironmentGuard for DellXps9380Guard {
|
||||
fn suppress(&mut self) -> Result<()> {
|
||||
let services = ["tlp", "thermald"];
|
||||
let services = ["tlp", "thermald", "i8kmon"];
|
||||
for s in services {
|
||||
if Command::new("systemctl").args(["is-active", "--quiet", s]).status()?.success() {
|
||||
debug!("Suppressing service: {}", s);
|
||||
Command::new("systemctl").args(["stop", s]).status()?;
|
||||
self.stopped_services.push(s.to_string());
|
||||
}
|
||||
|
||||
@@ -58,7 +58,7 @@ pub fn draw_dashboard(
|
||||
.direction(Direction::Vertical)
|
||||
.constraints([
|
||||
Constraint::Length(10), // Gauges
|
||||
Constraint::Length(3), // Cooling
|
||||
Constraint::Min(4), // Cooling (Increased for multiple fans)
|
||||
Constraint::Length(3), // CPU State
|
||||
Constraint::Min(4), // Metadata
|
||||
])
|
||||
@@ -182,22 +182,35 @@ fn draw_cooling(f: &mut Frame, area: Rect, state: &TelemetryState) {
|
||||
let inner = block.inner(area);
|
||||
f.render_widget(block, area);
|
||||
|
||||
let fan_info = if state.fans.is_empty() {
|
||||
"N/A".to_string()
|
||||
} else {
|
||||
state.fans.iter()
|
||||
.map(|rpm| format!("{} RPM", rpm))
|
||||
.collect::<Vec<String>>()
|
||||
.join(" | ")
|
||||
};
|
||||
let mut lines = Vec::new();
|
||||
|
||||
let info = Line::from(vec![
|
||||
// Line 1: Tier
|
||||
lines.push(Line::from(vec![
|
||||
Span::styled(" Tier: ", Style::default().fg(C_LAVENDER)),
|
||||
Span::styled(&state.fan_tier, Style::default().fg(C_TEAL)),
|
||||
Span::styled(" | ", Style::default().fg(C_LAVENDER)),
|
||||
Span::styled(fan_info, Style::default().fg(C_TEXT)),
|
||||
]);
|
||||
f.render_widget(Paragraph::new(info), inner);
|
||||
]));
|
||||
|
||||
// Line 2+: Fans
|
||||
if state.fans.is_empty() {
|
||||
lines.push(Line::from(vec![
|
||||
Span::styled(" Fans: ", Style::default().fg(C_LAVENDER)),
|
||||
Span::styled("N/A", Style::default().fg(C_SUBTEXT)),
|
||||
]));
|
||||
} else if state.fans.len() == 1 {
|
||||
lines.push(Line::from(vec![
|
||||
Span::styled(" Fan: ", Style::default().fg(C_LAVENDER)),
|
||||
Span::styled(format!("{} RPM", state.fans[0]), Style::default().fg(C_TEXT)),
|
||||
]));
|
||||
} else {
|
||||
for (i, rpm) in state.fans.iter().enumerate() {
|
||||
lines.push(Line::from(vec![
|
||||
Span::styled(format!(" Fan {}: ", i + 1), Style::default().fg(C_LAVENDER)),
|
||||
Span::styled(format!("{} RPM", rpm), Style::default().fg(C_TEXT)),
|
||||
]));
|
||||
}
|
||||
}
|
||||
|
||||
f.render_widget(Paragraph::new(lines), inner);
|
||||
}
|
||||
|
||||
fn draw_cpu_state(f: &mut Frame, area: Rect, state: &TelemetryState) {
|
||||
|
||||
Reference in New Issue
Block a user