はじめに
WTFはターミナル上(iterm2など)で個人用のダッシュボードを表示するツールです。Googleカレンダー、天気、PCのバッテリー残量、ニュースフィード、Githubのリポジトリ情報など様々な情報をターミナル上に表示できます。
社内のTypetalk上にある技術情報を共有するトピックで紹介されていて、「これは便利そう」と思ったのでさっそく使ってみました。
前提条件
- macOS上で操作すること。
- バイナリでインストールすれば、LinuxやFreeBSD上でも動作するようです。
参考情報
WTFをインストール
INSTALLATION を参考にインストールします。
Homebrewの場合
brew tap wtfutil/wtfutil
brew install wtfutil
wtfutil
バイナリの場合
https://github.com/wtfutil/wtf/releases から自分の環境にあう最新版を取得し、展開。そのディレクトリに移動し、以下コマンドを実行。
./wtfutil
WTFを起動
すでにインストールの手順で書いてあるとおり、Homebrewでインストールした場合はwtfutil
、バイナリでインストールした場合はバイナリがあるディレクトリで./wtfutil
を実行するとWTFが起動します。
初回起動時に設定ファイル ~/.config/wtf/confg.yml
が生成され、この内容に従ってダッシュボードが表示されます。(v0.21.0以前は手動での作成が必要です)
ダッシュボードにはWTFのモジュールを組み合わせることで様々な情報を表示することができます。
左の縦長の列が~/.config/wtf/confg.yml
の内容。1 とキーボードフォーカスがついています。 1 を入力すると、このカラムにフォーカスが移動します。Enterでデフォルトのテキストエディタが開きconfg.ymlが編集できます。
1行目に2つ並んだカラムは、各種都市・タイムゾーンの時計です。表示したい都市・タイムゾーンはconfg.ymlで定義可能です。
2行目のFeed Reader
には、ニュースフィード(RSSやatom)から取得した情報が表示されます。ここには 2 とキーボードフォーカスがついています。
フォーカスを移動したあと、キーボードの↑↓で行の移動ができ、Enterでそのフィードをブラウザで開きます。
3行目には左側にインターネット接続時のグローバルIPアドレス、プロバイダー名、都市名などの情報が表示されています。右側にはバッテリーの充電状況や残り稼働時間などが表示されています。
4行目には、uptime
コマンドの結果が表示されています。
config.ymlのカスタマイズ
上記のスクリーンショットではClocksのカラム内で行が途中で折り返しているため、幅の設定が合っていないようです。(wtf/grid/columnsの設定)
そのほか、自分に必要なモジュールを並べて全体的にカスタマイズしてみました。
TodoリストやPCのリソース情報、ニュースフィード、天気予報などを並べています。
~/.config/wtf/confg.yml
は以下のように定義しています。
wtf:
colors:
border:
focusable: darkslateblue
focused: orange
normal: gray
grid:
columns: [35, 35, 35]
rows: [10, 10, 10, 10]
refreshInterval: 1
mods:
clocks:
colors:
rows:
even: "lightblue"
odd: "white"
enabled: true
locations:
UTC: "Etc/UTC"
New York: "America/New_York"
Amsterdam: "Europe/Amsterdam"
Paris: "Europe/Paris"
Tokyo: "Asia/Tokyo"
Singapore: "Asia/Singapore"
position:
top: 0
left: 1
height: 1
width: 1
refreshInterval: 15
sort: "alphabetical"
title: "🕗 World Clocks"
type: "clocks"
feedreader:
enabled: true
feeds:
- http://www.publickey1.jp/atom.xml
feedLimit: 10
position:
top: 3
left: 0
height: 1
width: 3
title: "📰 News"
updateInterval: 14400
prettyweather:
colors:
name: "lightblue"
value: "white"
enabled: true
position:
top: 1
left: 1
height: 1
width: 1
title: "☀️ Weather"
City: "Fukuoka"
refreshInterval: 150
power:
enabled: true
position:
top: 0
left: 2
height: 1
width: 1
refreshInterval: 15
title: "⚡️"
hackernews:
enabled: true
numberOfStories: 10
storytype: top
position:
top: 2
left: 0
height: 1
width: 3
title: "🗞 HackerNews"
refreshInterval: 300
resourceusage:
enabled: true
position:
top: 1
left: 2
height: 1
width: 1
title: "💻 Resouce"
refreshInterval: 1
todo:
checkedIcon: "X"
colors:
checked: gray
highlight:
fore: "black"
back: "orange"
enabled: true
filename: "todo.yml"
position:
top: 0
left: 0
height: 2
width: 1
title: "📋 ToDo"
refreshInterval: 3600
モジュール
MODULESに様々なモジュールが公開されていたり、オリジナルのモジュールも開発できるようなのでカスタマイズの幅は広そうです。
Googleカレンダーを表示するサンプルは、WTF the terminal dashboard でターミナル上にGoogleカレンダーを表示する に記載しました。