pub fn spawn(
data_dir: PathBuf,
dir_hash: String,
) -> Result<Receiver<TrayAction>, String>Expand description
ksni’s blocking API drives its own current-thread Tokio runtime
(RUNTIME.block_on), which panics if entered from inside another runtime —
and both our callers are (run_unix for spawn, the notify task for
updates). So the tray lives entirely on its own std thread; everyone else
only sends it Updates.