From ff6060140feaa63b72251d65ecff68fa07babc98 Mon Sep 17 00:00:00 2001 From: Seoxi Ryouko Date: Thu, 27 Aug 2026 02:34:41 -0500 Subject: [PATCH] Fixes --- src/main.rs | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/src/main.rs b/src/main.rs index 69037fc..78c403e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,5 +1,5 @@ use std::{env::args,process::Command,str::from_utf8,error::Error}; -use colored::{Color,Colorize}; +use colored::{Color,Colorize,control::{ShouldColorize, SHOULD_COLORIZE}}; #[derive(Debug, Copy, Clone)] enum BatteryState { @@ -14,13 +14,15 @@ fn get_state(s: Option<&str>) -> BatteryState { Some("Battery 0: Discharging") => BatteryState::Discharging, Some("Battery 0: Charging") => BatteryState::Charging, Some("Battery 0: Charged") => BatteryState::Charged, + Some("Battery 0: Not charging") => BatteryState::Charged, _ => BatteryState::Error, } } fn get_charge(s: Option<&str>) -> Result> { + //println!(":{}:", s.unwrap().replace('%', "")); let f = match s { - Some(s) => s.replace('%', "").parse()?, + Some(s) => s.replace("\n", "").replace("%", "").parse()?, None => 1. / 0., }; Ok(f) @@ -75,7 +77,7 @@ fn battery_beginning() -> Result> { let mut parts = stdout.split(", "); let charge_state = get_state(parts.next()); let charge_remaining = get_charge(parts.next())?; - let charge_time = parts.next().ok_or("aaa")?.lines().next().ok_or("aaaaa")?; + let charge_time = parts.next().unwrap_or("Not charging\n").lines().next().ok_or("aaaaa")?; let charge_symbol = get_battery_state_symbol(charge_state, charge_remaining); let (bg, fg) = get_battery_colors(charge_state, charge_remaining); Ok(format!("{}{}{}", format!(" {charge_remaining:>3}% {charge_symbol} ").on_color(bg).color(fg), "\u{0e0bc}".on_black().color(bg), format!(" {charge_time} ").on_black().white())) @@ -90,7 +92,6 @@ fn volume_wrapper() -> Result<(String, Color), Box> { let mut words = stdout.split(" "); words.next(); let vol_ = words.next().ok_or("AAA")?; - println!(":{vol_}:"); let vol: f32 = vol_.parse()?; let (symbol, bg) = match (words.next(), vol) { (Some("[MUTED]"), _) => ("\u{f0581}", Color::White), @@ -124,22 +125,23 @@ fn music() -> Result> { let (symbol, bg) = match status { "playing" => ('\u{f04b}', Color::Cyan), "paused" => ('\u{f04c}', Color::Yellow), - "stopped" => return Ok(format!("{}{}", " \u{f04d} ".on_red().black(), "\u{0e0bc}".red())), + "stopped" => return Ok(format!("{}{}{}{}", " \u{f04d} ".on_red().black(), "\u{0e0bc}".on_black().red(), " Nothing playing ".on_black().white(), "\u{e0bc}".black())), _ => Err(format!("Unknown state: {status}"))?, }; Ok(format!("{}{}{}{}", format!(" {symbol} ").on_color(bg).black(), "\u{0e0bc}".on_white().color(bg), format!(" {artist} \u{E0BB} {title} ").on_white().black(), "\u{e0bc}".white())) } fn main() -> Result<(), Box> { + ShouldColorize::set_override(&SHOULD_COLORIZE, true); let mut args = args(); args.next(); let arg = args.next().ok_or("Argument required: ")?; - match arg.as_str() { - "battery" => println!("{}", battery()?), - "bat-vol" => println!("{}", bat_vol()?), - "volume" => println!("{}", volume()?), - "music" => println!("{}", music()?), + println!("{}", match arg.as_str() { + "battery" => battery(), + "bat-vol" => bat_vol(), + "volume" => volume(), + "music" => music(), _ => Err(format!("invalid argument: {arg}"))?, - } + }?); Ok(()) }