見出し画像

#4 勝手に記録してくれるタイプのタイムトラッキングツール 〜ActivityWatch〜

勝手に記録してくれるタイプのタイムトラッキングツールには、以下のようなものがあります。

 ResucueTimeとManicTimeが有料の商用ソフトであるのに対し、ActivityWatchは無料のOSSです。商用ソフトの2つは、さすがにユーザインタフェースがこなれていたりしますが、説明を読んでいる限りでは3つとも機能に大きな違いはなさそうです。ということで、手っ取り早く使えそうなActivityWatchを試してみます。

 ActivityWatchは、PC画面で、何らかのウインドウがアクティブになるごとに「ウインドウを表示しているアプリケーション名」「ウインドウタイトル」「ウインドウがアクティブになった時刻」「アクティブでなくなるまでの経過時間」を「イベント」として記録します。
また、キーボードやマウスからの入力を監視し、「端末から離れていた時間(afk : away from keyboard)」と「端末の前で作業をしていた時間(not-afk)」をデータとして記録します。

記録されたイベント
記録されたデータのタイムライン表示

 さらに、記録されたデータを、カテゴリーごとに集計して表示してくれます。
カテゴリーは、自分で設定できます。例えば、「仕事」「プライベート」というカテゴリーを作り、さらに「仕事」の中に「原稿執筆」「プログラミング」「営業活動」「会計作業」などをサブカテゴリーとして設定するというような感じです。

 設定したカテゴリーにどのイベントが含まれるかの判断は、カテゴリーごとに設定する「マッチングルール」により行われます。例えば、「アプリケーション名やウインドウタイトルに"会計"や"銀行口座"や"領収書"の文字列が含まれているものは"会計作業"カテゴリーに振り分ける」という具合にルールを設定します。どのカテゴリーの条件にもマッチしなかったイベントは、Uncategorizeというカテゴリーに集計されます。

カテゴリーとマッチングルールの設定画面

設定を行うと、カテゴリーごとに集計した結果が表示できるようになります。ActivityWatchで元々用意されている集計・表示機能としては、以下のものがあります。

Top Applications : アクティブ表示された総時間が長かったアプリケーション
Top Categories : アクティブ表示された総時間が長かったカテゴリー
Top Window Titles : アクティブ表示された総時間が長かったタイトル
Category Tree : カテゴリーごとの総時間を階層ごとに表示
Timeline(Barchart) : 時間ごとに何のカテゴリーの作業をしていたかを表示
Category Sunburst : カテゴリーの割合を円グラフで表示

データの集計・表示

カテゴリーのマッチングルールを、色々と変えるとそれに追随して、集計・表示結果もすぐに変わって表示されます。

端末から離れていたときに何をしていたのかは、当然記録されません。そのために、Stopwatchという、自分でタイマーを押して作業を記録する機能も「一応」ついていますが、これは今のところ集計・表示には反映されません。

 このツールの良いところは、自分で記録するタイプのツールとは違い、自分がした作業イベントを記録するためにしなければならない手間が一切ないことです。イベントとカテゴリーの紐付けは、後でまとめてできますし、紐付けのためのルールを色々変えて試してみることもできます。カテゴリーとそのルールの設定を、ちゃんとやれば、自分が何にどれだけの時間を使っていたのかが簡単にわかるようになります。

 問題は、カテゴリーとの紐付けルールのために使えるデータがアプリケーション名とウインドウタイトルだけなので、これでどこまで正確にカテゴリーが判別できるのか?ということでしょう。
 私が実際に使ってみた範囲では、ルールを工夫すれば、意外に正しく判別できそうです。細かい難点はいくつもありますが、少なくとも、個人的に自分の時間の使い方を省みる目的で使う分には、良さそうに思います。

 以上が、Activity Watchの概要ですが、次回はもう少し細かいところについても解説してみたいと思います。
(続く)



いいなと思ったら応援しよう!