概要
システムのステータスをConkyを使ってi3barに表示させているのですが,最近取引をはじめた仮想通貨のレート情報を手軽にいつでも確認できる方法がほしいと考え,texeciを使った設定例を書いてみました.
Conky 1.10.6_pre 時点の話をしています.
coincheckのPublic API
今回はcurlを使ってcoincheck Public APIを叩き,結果をConkyに表示させます.
あまり細かい情報を表示させても仕方がないので,BTCとXRPの販売レートのみを取得してみます. Public APIは特に認証を必要としないため,適当にcurlで叩くだけでJSON形式のレスポンスが帰ってきます.
(BTCの場合)
$ curl https://coincheck.com/api/rate/btc_jpy |
さらに適当にgrepして数値を取り出します.
$ curl -s https://coincheck.com/api/rate/btc_jpy | grep -o '[0-9.]*' |
このコマンドをconkyrcに記述して読み込ませます.
Conkyのtexeciオブジェクト
Conkyには,exec
, execi
, execp
, execpi
, texeci
などのコマンドを実行するオブジェクトが用意されています.
コマンド | 説明 |
---|---|
exec |
コマンドの実行結果を表示 |
execp |
コマンドの実行結果をConkyの設定としてパースして結果を表示 |
execi |
exec の時間間隔指定バージョン |
execpi |
execp の時間間隔指定バージョン |
texeci |
指定した時間間隔でスレッドを立ち上げて実行し,結果を表示 |
texeci
の t は thread を意味しており,時間がかかる可能性があるコマンドを非同期的に実行する際に使用します.
その他の exec
オブジェクトを使用する場合は,コマンドの実行も同期的に行われるため,実行に時間がかかった場合にConkyがハングしてしまいます.
今回はそれを避けるために,curlにタイムアウトの設定をした上で,texeci
を使って非同期的に実行することにします.
設定例
レートリミットがよくわからないので,今回は2通貨の情報を5秒毎(0.4req/s)に取得します.
Conkyのマニュアルでは,texeci
の時間間隔にコマンドの最大実行時間+1秒を設定することが推奨されています.
今回は5秒毎に取得したいため,curlのタイムアウトを4秒に設定することにします.
最終的に,設定はつぎのようになります(関係のない部分は省略).
ほかにも設定しているのでごちゃごちゃしていますが,つぎの画像のようにレートが表示できていることがわかります. 値は5秒毎に更新されます.
今回利用したcoincheckはインタフェースがシンプルで取引がしやすいサービスです. BTC取引手数料も執筆時点で無料ですので,気になる方は登録だけでもしてみてはいかがでしょうか.