added gtk
requires xdotool on arch
This commit is contained in:
parent
813d430af5
commit
fc063b18cd
3 changed files with 17 additions and 0 deletions
1
Cargo.lock
generated
1
Cargo.lock
generated
|
@ -386,6 +386,7 @@ name = "funring"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
|
"gtk",
|
||||||
"mpris",
|
"mpris",
|
||||||
"tray-icon",
|
"tray-icon",
|
||||||
]
|
]
|
||||||
|
|
|
@ -7,5 +7,6 @@ edition = "2021"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
anyhow = "1.0.75"
|
anyhow = "1.0.75"
|
||||||
|
gtk = "0.18.1"
|
||||||
mpris = "2.0.1"
|
mpris = "2.0.1"
|
||||||
tray-icon = "0.10.0"
|
tray-icon = "0.10.0"
|
||||||
|
|
15
src/main.rs
15
src/main.rs
|
@ -1,10 +1,21 @@
|
||||||
use mpris::PlayerFinder;
|
use mpris::PlayerFinder;
|
||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
|
use tray_icon::{TrayIconEvent, TrayIconBuilder, Icon};
|
||||||
fn main() -> Result<()> {
|
fn main() -> Result<()> {
|
||||||
let pf = PlayerFinder::new()?;
|
let pf = PlayerFinder::new()?;
|
||||||
let players = pf.find_all()?;
|
let players = pf.find_all()?;
|
||||||
|
|
||||||
|
let icon = Icon::from_rgba(vec![0,1,0,0], 1, 1)?;
|
||||||
|
|
||||||
|
gtk::init()?;
|
||||||
|
let tray_icon = TrayIconBuilder::new()
|
||||||
|
.with_icon(icon).build()
|
||||||
|
.unwrap();
|
||||||
|
gtk::main();
|
||||||
|
|
||||||
let mut tracker = players[0].track_progress(500)?;
|
let mut tracker = players[0].track_progress(500)?;
|
||||||
|
let tray_channel = TrayIconEvent::receiver();
|
||||||
|
|
||||||
|
|
||||||
println!("Hello, {}!", players[0].identity());
|
println!("Hello, {}!", players[0].identity());
|
||||||
loop {
|
loop {
|
||||||
|
@ -12,5 +23,9 @@ fn main() -> Result<()> {
|
||||||
let elapsed = tick.progress.position().as_secs();
|
let elapsed = tick.progress.position().as_secs();
|
||||||
let total = tick.progress.length().unwrap().as_secs();
|
let total = tick.progress.length().unwrap().as_secs();
|
||||||
println!("{elapsed}s/{total}s!");
|
println!("{elapsed}s/{total}s!");
|
||||||
|
|
||||||
|
for event in tray_channel.try_iter() {
|
||||||
|
println!("{:?}: event", event)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue