From fc063b18cdfdeb8793b86d21229ebb8e8ea5b4ab Mon Sep 17 00:00:00 2001 From: Andy Killorin <37423245+Speedy6451@users.noreply.github.com> Date: Sat, 28 Oct 2023 19:45:04 -0500 Subject: [PATCH] added gtk requires xdotool on arch --- Cargo.lock | 1 + Cargo.toml | 1 + src/main.rs | 15 +++++++++++++++ 3 files changed, 17 insertions(+) diff --git a/Cargo.lock b/Cargo.lock index 5c87f4e..6c79ea9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -386,6 +386,7 @@ name = "funring" version = "0.1.0" dependencies = [ "anyhow", + "gtk", "mpris", "tray-icon", ] diff --git a/Cargo.toml b/Cargo.toml index 7af1210..c20daba 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,5 +7,6 @@ edition = "2021" [dependencies] anyhow = "1.0.75" +gtk = "0.18.1" mpris = "2.0.1" tray-icon = "0.10.0" diff --git a/src/main.rs b/src/main.rs index e7a5b77..5bf89ee 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,10 +1,21 @@ use mpris::PlayerFinder; use anyhow::Result; +use tray_icon::{TrayIconEvent, TrayIconBuilder, Icon}; fn main() -> Result<()> { let pf = PlayerFinder::new()?; 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 tray_channel = TrayIconEvent::receiver(); + println!("Hello, {}!", players[0].identity()); loop { @@ -12,5 +23,9 @@ fn main() -> Result<()> { let elapsed = tick.progress.position().as_secs(); let total = tick.progress.length().unwrap().as_secs(); println!("{elapsed}s/{total}s!"); + + for event in tray_channel.try_iter() { + println!("{:?}: event", event) + } } }