A portable version of go systray, using stdin/stdout to communicate with other language.
This repo is fork of systray-portable but uses fyne's tray widget instead (removed GTK dependency and support for legacy linux system tray).
Each line is a json string.
tray binary =>
=> ready {"type": "ready"}
<= init menu (with a separator)
{
"icon": "<base64 string of image>",
"title": "Title",
"tooltip": "Tooltips",
"items":[
{
"title": "aa",
"tooltip": "bb",
"checked": true,
"enabled": true,
"hidden": false
},
{
"title": "<SEPARATOR>",
"tooltip": "",
"checked": true,
"enabled": true,
"hidden": false
},
{
"title": "aa2",
"tooltip": "bb",
"checked": false,
"enabled": true,
"hidden": false
}
]
}
=> 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
}
<= exit gracefully
{
"type": "exit"
}
$ ./build.sh