WTF 使用指南:自制高逼格终端仪表盘

文章首发于个人公众号:「阿拉平平」

平时工作中,我们会有一些不需要实时可见但需要定期检查的信息,比如天气情况,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 中所有的可交互模块均可使用数字键进行选择(键盘焦点),如示例中的 TodoFeed ReaderTextfile。选中后,可以输入 / 查询使用方法。

  • 模块的通用配置如下(均可选):

    • enabled:是否可用,默认值:false。
    • focusable:是否开启键盘焦点,默认值:false。
    • title:模块显示的标题。

如果每个模块都显示正常的话,就可以将模块填充到网格里了。模块的位置是通过 position 进行配置的,其中包含四个子项:

  • top: 所在的行数,从 0 开始计算。
  • left: 所在的列数,从 0 开始计算。
  • height:模块的高度,所占的行数。
  • width:模块的宽度,所占的列数。

填充网格的过程就像是在玩拼图,最终显示效果如下:


写在最后

WTF 集成了许多实用有趣的模块,受限于篇幅,这里无法一一介绍和测试。有兴趣的童鞋可以查询官方文档,自己动手试试看。

如果需要 Windows 下的可执行文件,可以在微信后台回复 wtf,感谢你的阅读。

你可能感兴趣的:(WTF 使用指南:自制高逼格终端仪表盘)