From 13863836bc63d7c7a9980553bc0b4731e7886421 Mon Sep 17 00:00:00 2001 From: Breadway Date: Fri, 17 Jul 2026 09:26:00 +0800 Subject: [PATCH] Migrate socket2 path resolution to bread-utils::hypr MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit hyprland_socket2_path() duplicated the same HYPRLAND_INSTANCE_SIGNATURE + XDG_RUNTIME_DIR resolution breadbox and breadclip had for socket1 — now shared via bread_utils::hypr::socket_path (path dependency for now, see the TODO in Cargo.toml). Builds and all 16 existing tests pass. --- Cargo.lock | 10 ++++++++++ Cargo.toml | 2 ++ src/main.rs | 8 +------- 3 files changed, 13 insertions(+), 7 deletions(-) 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);