diff --git a/Cargo.lock b/Cargo.lock index d4b5f49..12f9332 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -20,11 +20,21 @@ version = "2.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4388bee8683e3d04af747c73422af53102d2bd24d9eadb6cbc100baef4b43f8" +[[package]] +name = "bread-utils" +version = "0.2.3" +dependencies = [ + "dirs", + "serde", + "serde_json", +] + [[package]] name = "breadmon" version = "0.1.1" dependencies = [ "anyhow", + "bread-utils", "crossterm", "dirs", "futures", diff --git a/Cargo.toml b/Cargo.toml index 4f6e0f8..3c3c3b4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -19,6 +19,8 @@ toml = "0.8" anyhow = "1" dirs = "5" futures = "0.3" +# TODO(owner): switch to tag-pinned git dependency once bread-utils is merged and tagged, matching the bread-theme pattern +bread-utils = { path = "../bread-ecosystem-fix-worktree/bread-utils" } [profile.release] lto = "thin" diff --git a/src/main.rs b/src/main.rs index 57e3ba6..5343ef1 100644 --- a/src/main.rs +++ b/src/main.rs @@ -24,12 +24,6 @@ use tokio::{ use ui::{AppState, StatusLevel}; -fn hyprland_socket2_path() -> Option { - let instance = std::env::var("HYPRLAND_INSTANCE_SIGNATURE").ok()?; - let runtime = std::env::var("XDG_RUNTIME_DIR").unwrap_or_else(|_| "/run/user/1000".into()); - Some(format!("{}/hypr/{}/.socket2.sock", runtime, instance)) -} - #[derive(Debug)] enum AppEvent { Key(crossterm::event::KeyEvent), @@ -104,7 +98,7 @@ async fn run( // Hyprland socket hotplug listener let tx_hotplug = tx.clone(); tokio::spawn(async move { - if let Some(sig) = hyprland_socket2_path() { + if let Some(sig) = bread_utils::hypr::socket_path(bread_utils::hypr::Socket::Events) { if let Ok(mut stream) = tokio::net::UnixStream::connect(&sig).await { use tokio::io::AsyncBufReadExt; let reader = tokio::io::BufReader::new(&mut stream);