Compare commits

...

5 Commits

5 changed files with 23 additions and 16 deletions

View File

@@ -1,5 +1,5 @@
use chrono::NaiveTime;
use i3monkit::{ColorRGB, Header, I3Protocol, WidgetCollection};
use i3monkit::{widgets::VolumeWidget, ColorRGB, Header, I3Protocol, WidgetCollection};
use i3xs::widgets::{
cpu::CpuWidget,
datetime::{DateTimeWidget, TimeColor},
@@ -27,6 +27,8 @@ fn main() {
// Realtime read/write rate for a any active disks
bar.push(AllDiskSpeedWidget::new(6));
bar.push(VolumeWidget::new("default", "Master", 0));
let mut dt = DateTimeWidget::new("%m/%d %H:%M");
dt.set_colors(vec![
TimeColor {

View File

@@ -1,5 +1,5 @@
use chrono::NaiveTime;
use i3monkit::{ColorRGB, Header, I3Protocol, WidgetCollection};
use i3monkit::{widgets::VolumeWidget, ColorRGB, Header, I3Protocol, WidgetCollection};
use i3xs::widgets::{
cpu::CpuWidget,
datetime::{DateTimeWidget, TimeColor},
@@ -27,7 +27,8 @@ fn main() {
// Realtime read/write rate for a any active disks
bar.push(AllDiskSpeedWidget::new(6));
let mut dt = DateTimeWidget::tz("%H:%M %Z", chrono_tz::Europe::London);
// Setup time in Amsterdam widget with end of day warnings
let mut dt = DateTimeWidget::tz("%H:%M %Z", chrono_tz::Europe::Amsterdam);
dt.set_colors(vec![
TimeColor {
start: NaiveTime::from_hms_opt(0, 0, 0).unwrap(),
@@ -48,6 +49,8 @@ fn main() {
]);
bar.push(dt);
bar.push(VolumeWidget::new("default", "Master", 0));
let mut dt = DateTimeWidget::new("%m/%d %H:%M");
dt.set_colors(vec![
TimeColor {
@@ -68,6 +71,8 @@ fn main() {
},
]);
bar.push(dt);
let dt_utc = DateTimeWidget::tz("UTC %H:%M", chrono::offset::Utc);
bar.push(dt_utc);
// Then start updating the status bar
bar.update_loop(I3Protocol::new(Header::new(1), std::io::stdout()));

View File

@@ -1,10 +1,4 @@
use std::{
collections::vec_deque::VecDeque,
fs::File,
io::{BufRead, BufReader, Error, ErrorKind, Result},
path::PathBuf,
time::SystemTime,
};
use std::{collections::vec_deque::VecDeque, io::Result, time::SystemTime};
use i3monkit::{Block, Widget, WidgetUpdate};
@@ -158,7 +152,6 @@ impl Widget for DiskSpeedWidget {
}
pub struct AllDiskSpeedWidget {
num_samples: usize,
disks: Vec<DiskSpeedWidget>,
}
impl AllDiskSpeedWidget {
@@ -171,7 +164,7 @@ impl AllDiskSpeedWidget {
})
.collect();
AllDiskSpeedWidget { num_samples, disks }
AllDiskSpeedWidget { disks }
}
}

View File

@@ -175,12 +175,11 @@ impl Widget for NetworkSpeedWidget {
}
pub struct AllNetworkSpeedWidget {
num_samples: usize,
nics: Vec<NetworkSpeedWidget>,
}
impl AllNetworkSpeedWidget {
pub fn new(num_samples: usize) -> Self {
let dev_pat= Regex::new("(enp|eno).*").expect("bad re");
let dev_pat = Regex::new("(enp|eno).*").expect("bad re");
let nics = std::fs::read_dir(NETWORK_PATH_PREFIX)
.expect(&format!("couldn't list {NETWORK_PATH_PREFIX}"))
.filter_map(|dir| {
@@ -193,9 +192,9 @@ impl AllNetworkSpeedWidget {
None
}
})
.collect();
.collect();
AllNetworkSpeedWidget { num_samples, nics }
AllNetworkSpeedWidget { nics }
}
}

View File

@@ -58,6 +58,14 @@ impl PowerSupply {
})
})
.collect::<Result<_, _>>()?;
// Skip things that aren't battery powered
if !values
.get("POWER_SUPPLY_TYPE")
.map(|t| t == &"Battery")
.unwrap_or(false)
{
continue;
}
let cap: u32 = values
.get("POWER_SUPPLY_CAPACITY")
.unwrap_or(&"0")