Skip to content

danbai225/tipbar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Create Go App tipBar

这是一个任务栏工具开发框架,它基于 Golang 开发。任务栏跨平台实现基于systray 提示弹窗输入框等组件基于zenity,采用模块集成,快来开发属于你的任务栏工具吧。

tipBar version  go version  go cover   go report  license

⚡️ 快速开始

在你的项目中添加依赖

go get github.com/danbai225/tipbar

main.go

package main
import (
  logs "github.com/danbai225/go-logs"
  "github.com/danbai225/tipbar/core"
  "github.com/danbai225/tipbar/example/module/hello"
  "os"
)

func main() {
  var a *core.App
  var err error
  //指定配置文件参数 默认读取当前文件夹下config.json
  if len(os.Args) > 1 {
    a, err = core.NewApp(os.Args[1])
  } else {
    a, err = core.NewApp()
  }
  if err != nil {
    logs.Err(err)
    return
  }
  //注册模块
  a.RegisterModule(
    hello.ExportModule(),
  )
  err = a.Run()
  if err != nil {
    logs.Err(err)
    return
  }
}

config.json

{
  "module": {
    "hello": {
      "enable": true,
      "config": null
    }
  },
  "http_port": 7989,
  "logs_dir": "./logs"
}

其中 module.hello是模块名,enablefalse或不存在都不会启用这个模块

logs是日志输出目录 采用 github.com/danbai225/go-logs 作为日志输出

运行

  • 根据上面快速开始构建一个项目
  • 使用本项目demo运行,拉去项目后进入项目目录执行cd example && go run main.go

运行后日志会输出一些 http 路由,任务栏会出现一个图标点击会显示注册的模块。

img.png

开发文档

模块

  • 将粘贴板中的代码转换成图片的模块 code2img
  • 天气和预警 weather
  • 键盘按键次数统计 keylog

辅助操作

    zenity.Info("你好") //提示框
	
	items, err := zenity.ListItems("请选择", "321", "123") //选择框
	if err == nil {
		logs.Info(items)
	}

	file, err := zenity.SelectFile() //文件选择
	if err == nil {
		logs.Info(file)
	}

	progress, err := zenity.Progress() //进度条
	progress.Text("下载中")
	for i := 0; i <= 100; i++ {
		_ = progress.Value(i)
		time.Sleep(time.Millisecond * 100)
		if progress.MaxValue() == i {
			_ = progress.Close()
		}
	}

	entry, err := zenity.Entry("请输入用户名") //输入框
	if err == nil {
		logs.Info(entry)
	}

模块注册按键事件

model.RegEvent()

About

这是一个开源的golang工具栏模块集成框架

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published