| Crates.io | trayicon |
| lib.rs | trayicon |
| version | 0.4.0 |
| created_at | 2020-07-11 21:27:45.017859+00 |
| updated_at | 2026-01-19 11:57:46.83553+00 |
| description | Tray Icon, that thing in the corner |
| homepage | https://github.com/ciantic/trayicon-rs/ |
| repository | https://github.com/ciantic/trayicon-rs/ |
| max_upload_size | |
| id | 264195 |
| size | 208,878 |
Currently I target KDE/Windows tray icon implementation, with popup menu, click, double click events. I don't use MacOS, but I try to cargo check that it still compiles. Library has ability to plug in winit event loop easily as well as other event loop structures.
Open here a full working example with winit crate 🢅
Most mature alternative is qdot's systray-rs. Unfortunately I got frustrated with the API in it and decided to rewrite my own. This however largely does not use the code in it, instead I loaned my old C/C++ code repository as a template.
KDE only KSNI
rustup target add x86_64-unknown-linux-gnu
rustup target add x86_64-apple-darwin
rustup target add x86_64-pc-windows-msvc
Then you can check the code compiles for all targets with:
cargo check --target x86_64-apple-darwin
cargo check --target x86_64-pc-windows-msvc
cargo check --target x86_64-unknown-linux-gnu
0.4.0 - 2026-01-12
Send + Sync0.3.0 - 2025-07-18
0.2.0 - 2024-05-09
winit crate, now setting a sender is a function.show_menu, this means user must call it to show the menu even on right click. Previously right click always showed the menu.winapi library and use windows crate instead, or directly bind to C functions (this was previous behavior).