Lightweight Rust binary that bridges XEmbed tray icons (Wine/Proton) to StatusNotifierItem D-Bus objects for Waybar on Wayland compositors. - Claim _NET_SYSTEM_TRAY_S0 selection and handle dock requests - Per-icon container with MANUAL composite redirect (invisible on XWayland) - Pixel capture via get_image with BGRA→ARGB conversion - SNI D-Bus interface with IconPixmap, Activate, ContextMenu - Minimal com.canonical.dbusmenu stub for Waybar right-click support - XTest fake_input click injection (works on XWayland unlike send_event) - Dynamic icon size detection from client geometry - Graceful shutdown with selection release and proxy cleanup
17 lines
513 B
TOML
17 lines
513 B
TOML
[package]
|
|
name = "xembed-sni-proxy"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
description = "Lightweight XEmbed-to-SNI proxy for Wayland compositors"
|
|
|
|
[dependencies]
|
|
x11rb = { version = "0.13", features = ["composite", "damage", "xtest"] }
|
|
zbus = { version = "5", default-features = false, features = ["tokio"] }
|
|
tokio = { version = "1", features = ["rt", "macros", "signal", "sync", "net"] }
|
|
tracing = "0.1"
|
|
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
|
|
|
|
[profile.release]
|
|
lto = true
|
|
strip = true
|