Project Icon

systray

Go语言实现的系统托盘图标和菜单库

systray是一个跨平台Go语言库,用于在系统托盘区域创建图标和菜单。该库支持Windows、macOS和Linux平台,具有可选中和禁用菜单项等功能,并允许从任何goroutine进行调用。systray简化了系统托盘应用程序的开发过程,开发者可以轻松创建带有自定义图标、标题和菜单的应用。此外,systray提供了详细的API文档和示例代码,便于开发者快速掌握和集成该库。

systray

systray 是一个跨平台的 Go 库,用于在通知区域放置图标和菜单。

特性

  • 支持 Windows、macOS 和 Linux
  • 菜单项可以被选中和/或禁用
  • 大多数函数可以从任何 goroutine 中调用

API

func main() {
	systray.Run(onReady, onExit)
}

func onReady() {
	systray.SetIcon(icon.Data)
	systray.SetTitle("超棒应用")
	systray.SetTooltip("非常棒超级棒")
	mQuit := systray.AddMenuItem("退出", "退出整个应用")

	// 设置菜单项的图标。仅在 Mac 和 Windows 上可用。
	mQuit.SetIcon(icon.Data)
}

func onExit() {
	// 在此处进行清理
}

查看完整 API以及更新日志

注意:此包需要 cgo,因此请确保在构建之前设置 CGO_ENABLED=1

尝试示例应用!

已安装 Go v1.12+ 或更高版本?以下是在 macOS 上开始使用的示例:

git clone https://github.com/getlantern/systray
cd systray/example
env GO111MODULE=on go build
./example

在 Windows 上,你应该这样构建:

env GO111MODULE=on go build -ldflags "-H=windowsgui"

现在在你的菜单栏中查找超棒应用

超棒应用截图

Webview 示例

webview_example 目录下的代码用于演示如何与其他 UI 元素共存。请注意,该示例在 macOS 10.15 Catalina 之前的版本上不起作用。

平台说明

Linux

  • 构建应用需要安装 gcc 以及 gtk3libayatana-appindicator3 开发头文件。对于 Debian 或 Ubuntu,你可以使用以下命令安装:
sudo apt-get install gcc libgtk-3-dev libayatana-appindicator3-dev

在 Linux Mint 上,还需要 libxapp-dev

如果你需要支持较旧的 libappindicator3 库,可以在构建时传递构建标志 legacy_appindicator。例如:

go build -tags=legacy_appindicator

要构建 webview_example,你还需要安装 libwebkit2gtk-4.0-dev 并删除 webview_example/rsrc.syso(这是 Windows 上需要的)。

Windows

  • 为了避免在应用启动时打开控制台,请使用以下编译标志:
go build -ldflags -H=windowsgui

macOS

在 macOS 上,你需要创建一个应用程序包来封装二进制文件;只需创建具有以下最小结构和资源的文件夹:

SystrayApp.app/
  Contents/
    Info.plist
    MacOS/
      go-executable
    Resources/
      SystrayApp.icns

当作为应用程序包运行时,你可能想在 Info.plist 中添加以下一项或两项:

<!-- 避免图标和文本模糊 -->
	<key>NSHighResolutionCapable</key>
	<string>True</string>

	<!-- 避免在 Dock 上显示应用 -->
	<key>LSUIElement</key>
	<string>1</string>

请参阅官方 Apple 文档

在 macOS 上,可以使用 systray.SetRemovalAllowed(true) 设置底层的 NSStatusItemBehavior。启用后,用户可以通过 cmd 拖动将图标从菜单栏移除。

致谢

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号