Awesome
systray-portable
A portable version of go systray, using stdin/stdout to communicate with other language
Protocol
Each line is a json string.
tray binary =>
=> ready {"type": "ready"}
<= init menu
{
"icon": "<base64 string of image>",
"title": "Title",
"tooltip": "Tooltips",
"items":[{
"title": "aa",
"tooltip":"bb",
"checked": true,
"enabled": true
}, {
"title": "aa2",
"tooltip":"bb",
"checked": false,
"enabled": true
}]}
=> clicked
{
"type":"clicked",
"item":{"title":"aa","tooltip":"bb","enabled":true,"checked":true},
"menu":{"icon":"","title":"","tooltip":"","items":null},
"seq_id":0
}
<= update-item / update-menu / update-item-and-menu
{
"type": "update-item",
"item": {"title":"aa3","tooltip":"bb","enabled":true,"checked":true},
"seq_id": 0
}
Binary
main_xxx_release: go build -ldflags "-s -w" tray.go
main_xxx: go build tray.go