33

WTF——码农专属终端的仪表板

 5 years ago
source link: https://studygolang.com/articles/18102?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

之前虫虫的文章中介绍过很多终端软件,也介绍过分屏神器Screen和Tmux但是毕竟他们使用配置有一点点的难度。那么有没有一款简单易用,界面美观的终端仪表板程序,实现各种所需信息的展示呢,答案是肯定的,那就是本文我们要介绍的另一个神器WTF。

NJbq2yf.jpg!web

WTF——码农专属终端的仪表板

WTF是一个简单,易于配置的终端信息仪表板。使用Golang语言编写的,使用简单的一个YAML配置和各种模块就可以从几个不同的源中提取我们所需数据。这些模块包括系统信息、安全信息、电源信息、天气、Git问题跟踪、国际时间,谷歌表格以及更多内容。也能实现交互式窗格,进行操作。

安装

WTF的安装很简单,可以直接安装下载适合你操作系统(Windows、Linux、MacOS

)二进制包,下载解压就可以用。也可以下载源码编译安装,安装方法如下:

uuMjaii.jpg!web

WTF——码农专属终端的仪表板

运行

安装后运行很简单只需输入wtf就可以,wtf会自动加载默认的配置文件~/.wtf/config.yml的模块并渲染出终端界面,界面数据也按照配置的模块中设定的刷新时间自动刷新界面数值。

MJria2b.jpg!web

WTF——码农专属终端的仪表板

上面是我做了点简单配置后的终端仪表盘界面,显示了世界时间、系统版本信息、安全项、配置文件内容和天气以及Hacker 新闻客户端(数据没有加载出来)。

WTF配置

wtf的配置默认是~/.wtf/config.yml,该文件为YAML配置的格式,仪表盘总所有显示和数据项都是基于该配置文件,所以如果要真正的使用好WTF就必须熟悉该配置文件。

YRrYryb.jpg!web

WTF——码农专属终端的仪表板

上面是我~/.wtf/config.yml默认配置部分,我们以此为例说明WTF配置。

属性配置

属性配置是WTF配置的第一部分,通过配置熟悉可以设置WTF全局性的颜色、背景色、边框等。下面列出常见的属性:

colors.background

绘制应用程序背景的颜色。使用此颜色来设置终端背景色颜色。注意模块中如果设置了背景色,会覆盖这个全局设置

值:支持X11的所有颜色名称。

colors.border.focusable

绘制可接受键盘焦点的小部件边框的颜色。

值:支持X11的所有颜色名称。

colors.border.focused

绘制当前具有键盘焦点的窗口小部件边框的颜色。

值:支持X11的所有颜色名称。

colors.border.normal

绘制无法接受焦点的小部件边框的颜色。

值:支持X11的所有颜色名称。

grid.columns

一个数组,定义所有列的宽度。

值:详见下一部分网格设置部分

grid.rows

一个数组,定义所有行的高度。

值:详见下一部分网格设置部分

openFileUtil

用于打开文件或URL的命令

refreshInterval

UI刷新数据的频率。

值:正整数,0..n。

term

可选属性

使用这个属性设定自定义值的运行终端。

注意:如果为此设置提供了无效值,程序会报"terminal entry not found"错误而崩溃。

值:任何有效的终端类型(比如:vt100,xterm,xterm-256color,ansi等)。

终端网格布局

全局设置部分除了 colors 部分外,就是grid部分的网格布局配置,以虫虫的设置顶为例:

grid:

columns: [40, 60]

rows: [7, 13, 8, 4]

网格设置中的数字表示每个块的字符尺寸。默认配置是两列,宽度分别为40个字符和60个字符宽。共有4行(排),行的宽度分别为7,13,8,4个字符高。

YZF3yqB.jpg!web

WTF——码农专属终端的仪表板

模块的布局则是通过相对的数值通过4个参数类设置位置和大小的:

top: 2 // 上面从第3行开始,即第3个位置

left: 0 // 左边从第1列开始,即相对第1列的位置

height: 2 // 高度为两个格子,即占第3和4行

width: 1 // 宽度为两个格子,即第1列的位置

该布局就是详见上面的上面的示意图,注意top和left的位置都是从0开始的。

我喜欢在仪表板上看到当天的天气。有两个天气模块可供选择:天气,只显示文本信息,和漂亮天气,丰富多彩,在显示屏中使用基于文本的图形。

WTF常见模块介绍

当然WTF最重要的就是模块,这是所有内容的来源,它自带一些很实用的模块,当然如果你熟悉golang和WTF的结构,你也可以自己DIY需要的模块,这也是开源软件的优势之一。

天气插件

首先是我们最常用的天气插件,截图如下:

RrAFjuU.jpg!web

WTF——码农专属终端的仪表板

典型配置如下:

prettyweather:
     enabled: true
     position:
        top: 0
        left: 0
        height: 1
     width: 1

Bittrex

使用Bittrex获取加密货币市场的最新24小时摘要。

7Brmmqy.jpg!web

WTF——码农专属终端的仪表板

典型配置:

bittrex:
   enabled: true
   position:
      top: 1
      left: 2
      height: 3
      width: 1
   refreshInterval: 5
   summary:
       BTC:
          displayName: Bitcoin
          market:
             - LTC
             - ETH
 colors:
     base:
        name: orange
        displayName: red
market:
     name: red
    field: white
     value: green

相似模块还有Blockfolio

QVZbEzv.jpg!web

WTF——码农专属终端的仪表板

世界时间

可以根据你时区城市来,获取当前的时间,比如:

YnARFzi.jpg!web

WTF——码农专属终端的仪表板

典型配置:

iQ36riI.jpg!web

WTF——码农专属终端的仪表板

CmdRunner

这个模块是把一些cmd命令的执行放到仪表盘中显示,比如我们查看网络信息:

ZFBjayE.jpg!web

WTF——码农专属终端的仪表板

典型配置:

args: ["-ie"]
  cmd: "netstat"
  enabled: true
  position:
    top: 0
    left: 0
    height: 1
    width: 1
  refreshInterval: 30

args数组用来设定命令的参数,cmd用来设置命令,如果是参数有值的参数比如curl -I 网址,agrs数组配置为["-I", "网址"]。

Git信息

该模块可以显示git仓库的信息,效果如下:

jeaYvuJ.jpg!web

WTF——码农专属终端的仪表板

典型配置如下:

git:
   commitCount: 5
   commitFormat: "[forestgreen]%h [grey]%cd [white]%s [grey]%an[white]"
   dateFormat: "%H:%M %d %b %y"
   enabled: true
   position:
     top: 0
     left: 3
     height: 2
     width: 2
  refreshInterval: 8
  repositories:
    - "/Users/chris/go/src/wtfutil/wtf"

githbub

截图如下:

QfQje22.jpg!web

WTF——码农专属终端的仪表板

典型配置:

github:
   apiKey: "3276d7155dd9ee27b8b14f8743a408a9"
   baseURL: ""
   enabled: true
   enableStatus: true
   position:
     top: 2
     left: 3
     height: 2
     width: 2
   refreshInterval: 300
   repositories:
   wesker-api: "UmbrellaCorp"
   wtf: "wtfutil"
   uploadURL: ""
   username: "wtfutil"

类似的模块还有gitlab:

qyIj6zn.jpg!web

WTF——码农专属终端的仪表板

谷歌日历

zaquMfn.jpg!web

WTF——码农专属终端的仪表板

典型配置:

gcal:
  colors:
  title: "red"
  description: "lightblue"
  highlights:
    - ['1on1|1/11', 'green']
    - ['apple|google|aws', 'blue']
    - ['interview|meet', 'magenta']
    - ['lunch', 'yellow']
  past: "gray"
  conflictIcon: ""
  currentIcon: ""
  displayResponseStatus: true
  email: "[email protected]"
  enabled: true
  eventCount: 12
  multiCalendar: true
  position:
    top: 0
    left: 0
    height: 4
    width: 1
  refreshInterval: 300
  secretFile: "~/.config/wtf/gcal/client_secret.json"
  showDeclined: true
  withLocation: true

电源信息Power

当使用笔记本电脑时候,显示你当前的电源信息也是大有裨益的,WTF也内置了这样模块那就是Power:

fMf2qeZ.jpg!web

WTF——码农专属终端的仪表板

典型配置:

power:
  enabled: true
  position:
    top: 5
    left: 0
    height: 2
    width: 1
  refreshInterval: 15

文件显示模块Textfile

可以模块,可以在窗格中显示文件内容,比如你的程序源码,例如:

rMJFzeZ.jpg!web

WTF——码农专属终端的仪表板

不过美中不足的是还不支持语法高亮,不过这也是一个hack点,同学们可以在基础是上做个显示源码的模块。以上示意图的典型配置:

textfile:
   enabled: true
   filePath: "git/git_repo.go"
   position:
      top: 0
      left: 0
      height: 2
      width: 1
   refreshInterval: 15

以上就是我们列举了常见一些模块,更多的信息可以参考官方模块,或者自己DIY个性化的模块。

总之,WTF是一个非常棒的终端仪表盘显示工具,非常适合那些需要在一个屏幕上查看大量不同来源的数据的人。注意这个模块可以和screen和Tmux配合使用把自己的终端界面共享给其他人。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK