1
0
mirror of https://github.com/pcvolkmer/checkbar.git synced 2025-04-19 11:06:50 +00:00

Show cursor after exit in terminal mode

This commit is contained in:
Paul-Christian Volkmer 2023-12-11 16:45:44 +01:00
parent fea1d3f650
commit b75a1218bd
3 changed files with 30 additions and 0 deletions

22
Cargo.lock generated
View File

@ -125,6 +125,7 @@ dependencies = [
"async-trait",
"chrono",
"console",
"ctrlc",
"dirs",
"http",
"parse_duration",
@ -181,6 +182,16 @@ version = "0.8.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
[[package]]
name = "ctrlc"
version = "3.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "82e95fbd621905b854affdc67943b043a0fbb6ed7385fd5a25650d19a8a6cfdf"
dependencies = [
"nix",
"windows-sys 0.48.0",
]
[[package]]
name = "dirs"
version = "5.0.1"
@ -522,6 +533,17 @@ dependencies = [
"windows-sys 0.48.0",
]
[[package]]
name = "nix"
version = "0.27.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
dependencies = [
"bitflags 2.4.1",
"cfg-if",
"libc",
]
[[package]]
name = "num-traits"
version = "0.2.17"

View File

@ -10,6 +10,7 @@ members = ["parse_duration"]
async-trait = "0.1"
chrono = { version = "0.4", features = ["serde"] }
console = "0.15"
ctrlc = "3.4"
dirs = "5.0"
reqwest = { version = "0.11", features = ["json", "rustls-tls"], default-features = false }
serde = { version = "1.0", features = ["derive"] }

View File

@ -1,6 +1,7 @@
use checkbar::{get_click_cmd, print_states, read_click_event, run_click_cmd, Config, MouseButton};
use console::Term;
use serde_json::json;
use std::process::exit;
use tokio::task;
use tokio::time::sleep;
@ -8,6 +9,11 @@ use tokio::time::sleep;
async fn main() {
if Term::stdout().is_term() {
let _ = Term::stdout().hide_cursor();
let _ = ctrlc::set_handler(|| {
let _ = Term::stdout().show_cursor();
println!();
exit(1);
});
} else {
println!(
"{}",
@ -37,6 +43,7 @@ async fn main() {
loop {
let config = Config::read();
print_states(&config).await;
let _ = Term::stdout().hide_cursor();
let _ = sleep(config.interval).await;
}
});