之前蟲(chóng)蟲(chóng)的文章中介紹過(guò)很多終端軟件毅糟,也介紹過(guò)分屏神器Screen和Tmux但是畢竟他們使用配置有一點(diǎn)點(diǎn)的難度栗竖。那么有沒(méi)有一款簡(jiǎn)單易用耿导,界面美觀的終端儀表板程序赎离,實(shí)現(xiàn)各種所需信息的展示呢晦攒,答案是肯定的闽撤,那就是本文我們要介紹的另一個(gè)神器WTF。
WTF是一個(gè)簡(jiǎn)單脯颜,易于配置的終端信息儀表板哟旗。使用Golang語(yǔ)言編寫(xiě)的,使用簡(jiǎn)單的一個(gè)YAML配置和各種模塊就可以從幾個(gè)不同的源中提取我們所需數(shù)據(jù)栋操。這些模塊包括系統(tǒng)信息闸餐、安全信息、電源信息矾芙、天氣舍沙、Git問(wèn)題跟蹤、國(guó)際時(shí)間剔宪,谷歌表格以及更多內(nèi)容拂铡。也能實(shí)現(xiàn)交互式窗格,進(jìn)行操作葱绒。
安裝
WTF的安裝很簡(jiǎn)單感帅,可以直接安裝下載適合你操作系統(tǒng)(Windows、Linux地淀、MacOS
)二進(jìn)制包失球,下載解壓就可以用。也可以下載源碼編譯安裝帮毁,安裝方法如下:
運(yùn)行
安裝后運(yùn)行很簡(jiǎn)單只需輸入wtf就可以实苞,wtf會(huì)自動(dòng)加載默認(rèn)的配置文件~/.wtf/config.yml的模塊并渲染出終端界面璧微,界面數(shù)據(jù)也按照配置的模塊中設(shè)定的刷新時(shí)間自動(dòng)刷新界面數(shù)值。
上面是我做了點(diǎn)簡(jiǎn)單配置后的終端儀表盤(pán)界面硬梁,顯示了世界時(shí)間前硫、系統(tǒng)版本信息、安全項(xiàng)荧止、配置文件內(nèi)容和天氣以及Hacker 新聞客戶(hù)端(數(shù)據(jù)沒(méi)有加載出來(lái))屹电。
WTF配置
wtf的配置默認(rèn)是~/.wtf/config.yml,該文件為YAML配置的格式跃巡,儀表盤(pán)總所有顯示和數(shù)據(jù)項(xiàng)都是基于該配置文件危号,所以如果要真正的使用好WTF就必須熟悉該配置文件。
上面是我~/.wtf/config.yml默認(rèn)配置部分素邪,我們以此為例說(shuō)明WTF配置外莲。
屬性配置
屬性配置是WTF配置的第一部分,通過(guò)配置熟悉可以設(shè)置WTF全局性的顏色兔朦、背景色偷线、邊框等。下面列出常見(jiàn)的屬性:
colors.background
繪制應(yīng)用程序背景的顏色沽甥。使用此顏色來(lái)設(shè)置終端背景色顏色声邦。注意模塊中如果設(shè)置了背景色,會(huì)覆蓋這個(gè)全局設(shè)置
值:支持X11的所有顏色名稱(chēng)摆舟。
colors.border.focusable
繪制可接受鍵盤(pán)焦點(diǎn)的小部件邊框的顏色亥曹。
值:支持X11的所有顏色名稱(chēng)。
colors.border.focused
繪制當(dāng)前具有鍵盤(pán)焦點(diǎn)的窗口小部件邊框的顏色恨诱。
值:支持X11的所有顏色名稱(chēng)媳瞪。
colors.border.normal
繪制無(wú)法接受焦點(diǎn)的小部件邊框的顏色步鉴。
值:支持X11的所有顏色名稱(chēng)敛瓷。
grid.columns
一個(gè)數(shù)組,定義所有列的寬度邪铲。
值:詳見(jiàn)下一部分網(wǎng)格設(shè)置部分
grid.rows
一個(gè)數(shù)組硫豆,定義所有行的高度龙巨。
值:詳見(jiàn)下一部分網(wǎng)格設(shè)置部分
openFileUtil
用于打開(kāi)文件或URL的命令
refreshInterval
UI刷新數(shù)據(jù)的頻率。
值:正整數(shù)熊响,0..n旨别。
term
可選屬性
使用這個(gè)屬性設(shè)定自定義值的運(yùn)行終端。
注意:如果為此設(shè)置提供了無(wú)效值汗茄,程序會(huì)報(bào)"terminal entry not found"錯(cuò)誤而崩潰秸弛。
值:任何有效的終端類(lèi)型(比如:vt100,xterm,xterm-256color递览,ansi等)叼屠。
終端網(wǎng)格布局
全局設(shè)置部分除了colors部分外,就是grid部分的網(wǎng)格布局配置绞铃,以蟲(chóng)蟲(chóng)的設(shè)置頂為例:
grid:
columns: [40, 60]
rows: [7, 13, 8, 4]
網(wǎng)格設(shè)置中的數(shù)字表示每個(gè)塊的字符尺寸镜雨。默認(rèn)配置是兩列,寬度分別為40個(gè)字符和60個(gè)字符寬儿捧。共有4行(排)荚坞,行的寬度分別為7,13菲盾,8颓影,4個(gè)字符高。
模塊的布局則是通過(guò)相對(duì)的數(shù)值通過(guò)4個(gè)參數(shù)類(lèi)設(shè)置位置和大小的:
top: 2 // 上面從第3行開(kāi)始懒鉴,即第3個(gè)位置
left: 0 // 左邊從第1列開(kāi)始诡挂,即相對(duì)第1列的位置
height: 2 // 高度為兩個(gè)格子,即占第3和4行
width: 1 // 寬度為兩個(gè)格子临谱,即第1列的位置
該布局就是詳見(jiàn)上面的上面的示意圖璃俗,注意top和left的位置都是從0開(kāi)始的。
我喜歡在儀表板上看到當(dāng)天的天氣吴裤。有兩個(gè)天氣模塊可供選擇:天氣旧找,只顯示文本信息,和漂亮天氣麦牺,豐富多彩,在顯示屏中使用基于文本的圖形鞭缭。
WTF常見(jiàn)模塊介紹
當(dāng)然WTF最重要的就是模塊剖膳,這是所有內(nèi)容的來(lái)源,它自帶一些很實(shí)用的模塊岭辣,當(dāng)然如果你熟悉golang和WTF的結(jié)構(gòu)吱晒,你也可以自己DIY需要的模塊,這也是開(kāi)源軟件的優(yōu)勢(shì)之一沦童。
天氣插件
首先是我們最常用的天氣插件仑濒,截圖如下:
典型配置如下:
prettyweather:
enabled: true
position:
top: 0
left: 0
height: 1
width: 1
Bittrex
使用Bittrex獲取加密貨幣市場(chǎng)的最新24小時(shí)摘要。
典型配置:
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
世界時(shí)間
可以根據(jù)你時(shí)區(qū)城市來(lái)偷遗,獲取當(dāng)前的時(shí)間墩瞳,比如:
典型配置:
CmdRunner
這個(gè)模塊是把一些cmd命令的執(zhí)行放到儀表盤(pán)中顯示,比如我們查看網(wǎng)絡(luò)信息:
典型配置:
args: ["-ie"]
cmd: "netstat"
enabled: true
position:
top: 0
left: 0
height: 1
width: 1
refreshInterval: 30
args數(shù)組用來(lái)設(shè)定命令的參數(shù)氏豌,cmd用來(lái)設(shè)置命令喉酌,如果是參數(shù)有值的參數(shù)比如curl -I 網(wǎng)址,agrs數(shù)組配置為["-I", "網(wǎng)址"]。
Git信息
該模塊可以顯示git倉(cāng)庫(kù)的信息泪电,效果如下:
典型配置如下:
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
截圖如下:
典型配置:
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"
類(lèi)似的模塊還有g(shù)itlab:
谷歌日歷
典型配置:
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: "chriscummer@me.com"
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
當(dāng)使用筆記本電腦時(shí)候般妙,顯示你當(dāng)前的電源信息也是大有裨益的,WTF也內(nèi)置了這樣模塊那就是Power:
典型配置:
power:
enabled: true
position:
top: 5
left: 0
height: 2
width: 1
refreshInterval: 15
文件顯示模塊Textfile
可以模塊相速,可以在窗格中顯示文件內(nèi)容碟渺,比如你的程序源碼,例如:
不過(guò)美中不足的是還不支持語(yǔ)法高亮突诬,不過(guò)這也是一個(gè)hack點(diǎn)苫拍,同學(xué)們可以在基礎(chǔ)是上做個(gè)顯示源碼的模塊。以上示意圖的典型配置:
textfile:
enabled: true
filePath: "git/git_repo.go"
position:
top: 0
left: 0
height: 2
width: 1
refreshInterval: 15
以上就是我們列舉了常見(jiàn)一些模塊攒霹,更多的信息可以參考官方模塊怯疤,或者自己DIY個(gè)性化的模塊。
總之催束,WTF是一個(gè)非常棒的終端儀表盤(pán)顯示工具集峦,非常適合那些需要在一個(gè)屏幕上查看大量不同來(lái)源的數(shù)據(jù)的人。注意這個(gè)模塊可以和screen和Tmux配合使用把自己的終端界面共享給其他人抠刺。