Files
xembed-sni-proxy/Cargo.toml
vikingowl 548adb6bbb feat: initial implementation of xembed-sni-proxy
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
2026-03-02 15:00:26 +01:00

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