https://github.com/bnema/xtrayhide
Capture and hide X11 tray icons on Wayland, expose them as SNI
https://github.com/bnema/xtrayhide
go linux sni statusnotifieritem systray wayland x11 xembed
Last synced: about 1 month ago
JSON representation
Capture and hide X11 tray icons on Wayland, expose them as SNI
- Host: GitHub
- URL: https://github.com/bnema/xtrayhide
- Owner: bnema
- License: mit
- Created: 2026-01-17T14:28:27.000Z (6 months ago)
- Default Branch: master
- Last Pushed: 2026-01-17T14:33:27.000Z (6 months ago)
- Last Synced: 2026-01-18T00:35:35.287Z (6 months ago)
- Topics: go, linux, sni, statusnotifieritem, systray, wayland, x11, xembed
- Language: Go
- Size: 12.7 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# xtrayhide
Captures X11 system tray icons (XEmbed) and hides them, exposing them as modern StatusNotifierItem (SNI) icons instead.
Useful on Wayland compositors (like niri) where XWayland tray windows appear visible and always-on-top.
## Install
```sh
go install github.com/bnema/xtrayhide/cmd/xtrayhide@latest
```
Or build from source:
```sh
git clone https://github.com/bnema/xtrayhide
cd xtrayhide
make install
```
Then enable the systemd service:
```sh
systemctl --user enable --now xtrayhide
```
## Usage
Just run `xtrayhide`. It will:
1. Become the X11 system tray owner
2. Capture any docking tray icons
3. Hide the X11 windows (keep them unmapped)
4. Expose each icon as an SNI on D-Bus
5. Forward clicks from SNI back to the hidden X11 window
## License
MIT