1
0
mirror of https://github.com/pcvolkmer/checkbar.git synced 2025-04-19 19:16: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", "async-trait",
"chrono", "chrono",
"console", "console",
"ctrlc",
"dirs", "dirs",
"http", "http",
"parse_duration", "parse_duration",
@ -181,6 +182,16 @@ version = "0.8.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" 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]] [[package]]
name = "dirs" name = "dirs"
version = "5.0.1" version = "5.0.1"
@ -522,6 +533,17 @@ dependencies = [
"windows-sys 0.48.0", "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]] [[package]]
name = "num-traits" name = "num-traits"
version = "0.2.17" version = "0.2.17"

View File

@ -10,6 +10,7 @@ members = ["parse_duration"]
async-trait = "0.1" async-trait = "0.1"
chrono = { version = "0.4", features = ["serde"] } chrono = { version = "0.4", features = ["serde"] }
console = "0.15" console = "0.15"
ctrlc = "3.4"
dirs = "5.0" dirs = "5.0"
reqwest = { version = "0.11", features = ["json", "rustls-tls"], default-features = false } reqwest = { version = "0.11", features = ["json", "rustls-tls"], default-features = false }
serde = { version = "1.0", features = ["derive"] } 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 checkbar::{get_click_cmd, print_states, read_click_event, run_click_cmd, Config, MouseButton};
use console::Term; use console::Term;
use serde_json::json; use serde_json::json;
use std::process::exit;
use tokio::task; use tokio::task;
use tokio::time::sleep; use tokio::time::sleep;
@ -8,6 +9,11 @@ use tokio::time::sleep;
async fn main() { async fn main() {
if Term::stdout().is_term() { if Term::stdout().is_term() {
let _ = Term::stdout().hide_cursor(); let _ = Term::stdout().hide_cursor();
let _ = ctrlc::set_handler(|| {
let _ = Term::stdout().show_cursor();
println!();
exit(1);
});
} else { } else {
println!( println!(
"{}", "{}",
@ -37,6 +43,7 @@ async fn main() {
loop { loop {
let config = Config::read(); let config = Config::read();
print_states(&config).await; print_states(&config).await;
let _ = Term::stdout().hide_cursor();
let _ = sleep(config.interval).await; let _ = sleep(config.interval).await;
} }
}); });