Migrate socket2 path resolution to bread-utils::hypr

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.
This commit is contained in:
Breadway 2026-07-17 09:26:00 +08:00
parent ddbc9e63d3
commit 13863836bc
3 changed files with 13 additions and 7 deletions

10
Cargo.lock generated
View file

@ -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",

View file

@ -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"

View file

@ -24,12 +24,6 @@ use tokio::{
use ui::{AppState, StatusLevel};
fn hyprland_socket2_path() -> Option<String> {
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);