golang终端多功能信息聚合插件tinycare-tui的使用
Golang终端多功能信息聚合插件tinycare-tui的使用
关于Tinycare-tui
Tinycare-tui是一个小型终端应用程序,主要功能包括:
- 显示过去24小时和一周内的git提交记录
- 显示当前天气
- 提供自我关怀建议
- 显示当前待办事项列表
这个项目最初是为了几个目标而创建的:
- 学习Go语言基础知识
- 练习使用Copilot和ChatGPT等生成式AI工具进行开发
- 创建一个有趣的终端应用程序
安装
使用以下命令安装tinycare-tui:
go install github.com/DMcP89/tinycare-tui@latest
配置
设置以下环境变量来配置Tinycare-tui:
# API Keys
GITHUB_TOKEN=123456789abcdefg # 设置此变量从Github获取提交记录而不是使用本地仓库
OPEN_WEATHER_MAP_API_KEY=123456789abcdefg # 设置此变量从OpenWeatherMap.org获取天气信息
TODOIST_TOKEN=123456789abcdefg # 设置此变量从Todoist获取待办事项
# 设置
TINYCARE_POSTAL_CODE=123456 # 设置此变量指定获取天气信息的邮政编码
TINYCARE_WORKSPACE=/path/to/directory/with/git/repos,/another/path/to/repos # 设置此变量告诉应用程序在哪里查找git仓库以获取提交记录
TODO_FILE=/path/to/todolist/file # 设置此变量告诉应用程序本地任务列表的位置
运行
安装并配置完成后,只需运行以下命令:
tinycare-tui
功能示例
以下是一个完整的配置示例:
package main
import (
"os"
)
func main() {
// 设置环境变量
os.Setenv("GITHUB_TOKEN", "your_github_token_here")
os.Setenv("OPEN_WEATHER_MAP_API_KEY", "your_weather_api_key_here")
os.Setenv("TODOIST_TOKEN", "your_todoist_token_here")
os.Setenv("TINYCARE_POSTAL_CODE", "10001") // 纽约的邮政编码
os.Setenv("TINYCARE_WORKSPACE", "/Users/yourname/Projects,/Users/yourname/Work")
os.Setenv("TODO_FILE", "/Users/yourname/todo.txt")
// 运行tinycare-tui
// 实际使用中直接运行安装后的二进制即可
}
特性列表
项目已完成的主要功能:
- 允许聚焦每个信息框
- 扩展自我关怀提醒
- 移除Twitter抓取代码
- 用环境变量替换硬编码值
- 按’r’键刷新视图
- 每30秒自动刷新视图
- 按’q’键退出应用
- 使用goroutines优化性能
- 允许设置多个git仓库位置
- 支持本地待办事项列表
- 显示已完成的任务
- 添加从GitHub获取提交记录的选项
- 添加错误处理机制
- 创建测试用例
- 添加日志记录功能
- 添加笑话API集成
贡献
这是一个主要用来学习项目,作者会不定期进行维护,但也欢迎提交Issues和PRs。
更多关于golang终端多功能信息聚合插件tinycare-tui的使用的实战教程也可以访问 https://www.itying.com/category-94-b0.html
更多关于golang终端多功能信息聚合插件tinycare-tui的使用的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
TinyCareTUI - 终端多功能信息聚合工具
TinyCareTUI 是一个用 Go 语言编写的终端多功能信息聚合插件,它可以在终端中显示天气、待办事项、Git 提交、系统信息等多种内容,非常适合开发者在终端中一站式查看各种信息。
功能特点
- 天气信息显示
- 待办事项管理
- Git 提交统计
- 系统资源监控
- 名言警句展示
- 可定制化界面
安装方法
使用 Go 安装
go install github.com/notwaldorf/tiny-care-terminal@latest
使用 Homebrew (macOS)
brew tap notwaldorf/tiny-care-terminal
brew install tiny-care-terminal
基本使用
package main
import (
"fmt"
"os/exec"
)
func main() {
// 启动 TinyCareTUI
cmd := exec.Command("tiny-care-terminal")
// 设置自定义配置
cmd.Args = append(cmd.Args,
"--weather", "auto", // 自动检测位置天气
"--todos", "~/.todos", // 指定待办文件
"--git", "~/code", // 监控的代码目录
"--show-quotes", // 显示名言
"--show-system", // 显示系统信息
)
// 运行命令
output, err := cmd.CombinedOutput()
if err != nil {
fmt.Printf("运行错误: %v\n", err)
return
}
fmt.Println(string(output))
}
配置示例
TinyCareTUI 支持通过配置文件进行定制,通常位于 ~/.tiny-care-terminal.yml
:
weather:
location: "auto" # 自动检测或指定城市
unit: "c" # 温度单位 (c/f)
todos:
file: "~/.todos" # 待办事项文件路径
git:
repos: # 监控的Git仓库
- "~/code/project1"
- "~/code/project2"
days: 7 # 显示最近几天提交
quotes:
enabled: true # 启用名言
file: "~/.quotes" # 自定义名言文件
system:
enabled: true # 显示系统信息
interval: 5 # 刷新间隔(秒)
ui:
theme: "dark" # 界面主题
refresh: 60 # 全局刷新间隔(秒)
Go 语言集成示例
如果你想在自己的 Go 应用中集成类似功能,可以参考以下代码:
package main
import (
"fmt"
"time"
"github.com/shirou/gopsutil/cpu"
"github.com/shirou/gopsutil/mem"
"github.com/briandowns/openweathermap"
)
type SystemInfo struct {
CPUUsage float64
MemoryUsage float64
Weather string
}
func getSystemInfo() (SystemInfo, error) {
var info SystemInfo
// 获取CPU使用率
percent, err := cpu.Percent(time.Second, false)
if err != nil {
return info, fmt.Errorf("获取CPU信息失败: %v", err)
}
info.CPUUsage = percent[0]
// 获取内存使用率
memInfo, err := mem.VirtualMemory()
if err != nil {
return info, fmt.Errorf("获取内存信息失败: %v", err)
}
info.MemoryUsage = memInfo.UsedPercent
// 获取天气信息
w, err := openweathermap.NewCurrent("C", "en", "YOUR_API_KEY")
if err != nil {
return info, fmt.Errorf("天气API错误: %v", err)
}
err = w.CurrentByName("Beijing")
if err != nil {
return info, fmt.Errorf("获取天气失败: %v", err)
}
info.Weather = fmt.Sprintf("%s, %.1f°C", w.Weather[0].Description, w.Main.Temp)
return info, nil
}
func main() {
info, err := getSystemInfo()
if err != nil {
fmt.Println("错误:", err)
return
}
fmt.Printf("系统状态:\n")
fmt.Printf("CPU使用率: %.1f%%\n", info.CPUUsage)
fmt.Printf("内存使用率: %.1f%%\n", info.MemoryUsage)
fmt.Printf("当前天气: %s\n", info.Weather)
}
自定义开发建议
如果你想基于 TinyCareTUI 开发自己的终端信息聚合工具,可以考虑以下组件:
- UI框架: 使用
tview
或bubbletea
构建终端界面 - 天气API:
openweathermap
或weather-api
- 系统监控:
gopsutil
获取系统信息 - Git集成:
go-git
库操作Git仓库 - 配置管理:
viper
读取配置文件
总结
TinyCareTUI 是一个功能丰富且高度可定制的终端信息聚合工具,非常适合开发者使用。通过 Go 语言的强大能力,你可以轻松扩展或修改它的功能,打造属于自己的终端工作环境。