Allow time color to change based on time of day.

This commit is contained in:
2019-09-21 22:10:03 -07:00
parent 2d054bb9a1
commit 4cb50597e1
4 changed files with 62 additions and 11 deletions

View File

@@ -1,11 +1,12 @@
use chrono::NaiveTime;
use i3monkit::widgets::CpuWidget;
use i3monkit::{Header, I3Protocol, WidgetCollection};
use i3monkit::{ColorRGB, Header, I3Protocol, WidgetCollection};
use num_cpus;
use structopt::StructOpt;
use i3xs::widgets::datetime::DateTimeWidget;
use i3xs::widgets::datetime::{DateTimeWidget, TimeColor};
use i3xs::widgets::network::NetworkSpeedWidget;
#[derive(Debug, StructOpt)]
@@ -28,7 +29,18 @@ fn main() {
// Realtime upload/download rate for a interface
bar.push(NetworkSpeedWidget::new(&opts.nic, 6));
bar.push(DateTimeWidget::new("%m/%d %H:%M".to_string()));
let mut dt = DateTimeWidget::new("%m/%d %H:%M".to_string());
dt.set_colors(&vec![
TimeColor {
start: NaiveTime::from_hms(19, 0, 0),
color: ColorRGB::yellow(),
},
TimeColor {
start: NaiveTime::from_hms(20, 0, 0),
color: ColorRGB::red(),
},
]);
bar.push(dt);
// Then start updating the status bar
bar.update_loop(I3Protocol::new(Header::new(1), std::io::stdout()));