Linuxでアクティブなアプリケーションを記録&可視化した

FluentdとGrowthForecastを使って自分の行動をロギング・可視化する -すぎゃーんメモ を見て、自分もやりたくなったのでやった。 上記リンクと違うのは、アクティブなアプリケーションを取得する箇所のみ。 Linuxだと、xpropというコマンドを使ってXの状態を取得できる。

なので、まずは今アクティブなウィンドウのIDを取得。

bash
xprop -root _NET_ACTIVE_WINDOW | awk '{print $5}'

次に、取得したIDを使ってアクティブなウィンドウの情報を取得する。 今回はウィンドウのクラスを取得した。 他にもいろいろな情報を得られておもしろそうなので時間を作って遊んでみたい。

bash
xprop -id ${取得したID} WM_CLASS | awk '{print $4}' | tr -d '\"'
これらをワンライナーにしてfluentdの設定に組み込んだのが下記である。 DISPLAY環境変数の設定を行っているのは、fluentdを実行しているfluentユーザからディスプレイを参照できなかったため。 今はmongodbとGrowthForecastに投げている。なかなかおもしろい。

html
<script src="https://gist.github.com/takaishi/6bcefcd3e43f5779fc15.js"></script>