文章首发于个人公众号:「阿拉平平」
平时工作中,我们会有一些不需要实时可见但需要定期检查的信息,比如天气情况,Github 仓库的更新记录,Jira 的工作单等等。对于这些信息,我们通常需要一直开着浏览器,那么有没有什么好的解决办法呢?
今天和大家分享的是一个仪表盘工具:WTF
。本文演示环境为 Windows x64,Golang 版本为 1.14。
简介
WTF 是一个 Golang 开发的终端仪表盘工具。通过 WTF,我们可以自制一个仪表盘来聚合显示需要定期检查的信息。
安装
由于官方未提供 Windows 平台的可执行文件,所以这里介绍下如何在 Windows 下源码安装 WTF。安装前,请确保 Golang 版本至少为 1.13。
下载:
git clone https://github.com/wtfutil/wtf.git
设置:
# 设置 Go proxy
go env -w GOPROXY=https://goproxy.cn,direct
# 不校验包的有效性
go env -w GOSUMDB=off
# 启用 Go modules
go env -w GO111MODULE=on
构建:
# 进入项目目录
cd wtf
# 构建
go buid -o wtf.exe
构建完成后,在项目中会生成 wtf.exe
文件,运行效果如下:
实践
本章将介绍如何配置终端仪表盘。
配置
WTF 默认会加载 ~/.config/wtf/config.yml
,如果该文件不存在,则会自动生成。可以通过 --config
指定配置文件。
修改配置前,先说下全局配置项:
colors: 用于配置颜色,可配置背景和边框的颜色。
grid:网格布局,其中包含 columns 和 rows 两个子项,用于配置列和行的尺寸。
refreshInterval:刷新数据的时间,单位为秒。
这次我准备制作一个 3 X 3 的仪表盘,修改 grid 配置项:
grid:
columns: [32, 32, 54]
rows: [11, 12, 15]
上面网格配置表示:
- 三列显示字符长度分别为 32,32 和 54。
- 三行显示字符长度分别为 11,12 和15。
模块
接下来是配置模块。WTF 自带了许多模块,选取自己需要的就好,这里我选取了以下模块:
Todo:一个交互式的待办事项清单。
IPInfo:显示当前 IP 地址信息。
Digital Clock:一个可配置的数字时钟。
Pretty Weather:显示天气信息。
Feed Reader:RSS 订阅模块。示例中配置了知乎每日精选数据。
Textfile:显示指定文件的内容,可配置多项。示例中指定了系统的 hosts 文件。
模块的配置这里就不贴了,基本都是参考官方的文档。不过有些地方需要补充说明下:
WTF 中所有的可交互模块均可使用数字键进行选择(键盘焦点),如示例中的
Todo
,Feed Reader
和Textfile
。选中后,可以输入/
查询使用方法。模块的通用配置如下(均可选):
- enabled:是否可用,默认值:false。
- focusable:是否开启键盘焦点,默认值:false。
- title:模块显示的标题。
如果每个模块都显示正常的话,就可以将模块填充到网格里了。模块的位置是通过 position
进行配置的,其中包含四个子项:
- top: 所在的行数,从 0 开始计算。
- left: 所在的列数,从 0 开始计算。
- height:模块的高度,所占的行数。
- width:模块的宽度,所占的列数。
填充网格的过程就像是在玩拼图,最终显示效果如下:
写在最后
WTF 集成了许多实用有趣的模块,受限于篇幅,这里无法一一介绍和测试。有兴趣的童鞋可以查询官方文档,自己动手试试看。
如果需要 Windows 下的可执行文件,可以在微信后台回复 wtf
,感谢你的阅读。