ActivityWatch介绍与使用


简单介绍一下ActivityWatch。

如果加载图片慢,可以访问微信文章

这里说的软件是一种能够自动记录电脑使用情况的软件, 其主要记录的内容包括应用、标题栏内容以及激活的起止时间。

对这类软件的需求主要是起源于读研究生的时候, 有一段时间深感自己明明一天在办公室, 但是一天下来回顾自己的工作却对所做的工作一点印象都没有, 感觉自己的时间不知道用在什么地方了。 于是搜索了一番,记得当时使用了一个名为RescueTime的软件。 但是用了一段时间后,感觉这个软件所有数据均是上传到它的服务器上, 这就包括了运行的软件名称已经所对应的标题, 同时这个公司实体应该在美国,感觉还是安全和隐私都有点顾虑。 于是就放弃了。

后来因为处理数据主要是在Linux上, 于是用了一段时间的Ubuntu,于是自己编写shell脚本, 然后开机自动运行,并且隔一定时间调用一个命令行工具自动截屏并保存的。 用这样原始的方法,在偶尔回顾的时候看一下自己到底做了什么。 这个方法一是统计记录的内容过于粗糙,根本没有进一步分析统计的可能, 二是保存的截图很占空间。 所以在之后用上Manjaro并进而转到Archlinux之后,也不再使用了。 当然这可能也和在研究生的最后一两年,基本了解自己所做的工作, 不再纠结每天时间去哪了有关系。

最近觉得自己工作方式是不是没有适应好新的环境, 又觉得每天时间不知道去哪了,于是又找了相应的软件希望能够记录一下自己的时间分配。 而且现在主要用的MacBook,主要的操作系统是macOS,之前的一些经验已经有一些不适用了, 所以又得进行一些检索。 主要的过程就是以RescueTime为起点的,寻找替代软件 https://alternativeto.net/software/rescuetime/ 。 根据其中的推荐,综合一些我个人比较在意的要素,最终选择就是ActivityWatch。

ActivityWatch的官网以及Github主页分别是:

其主页和Github的介绍已经非常详细了, 这里仅仅列出一些我个人关心的。 首先这是一个开源的,所有数据实在本地保存的,并且其对所存储的内容有很详细的描述。 其他诸如全桌面平台支持之类也是非常不错的。 并且它对标了RescueTime,基本上RescueTime能做的它都能做,而且还说明了怎么做。 实际上RescueTime确实做的不错,特别是利用它的服务器对数据分类,我感觉还是非常准确的, 但是相比之下,个人还是更看重隐私吧。

具体使用过程是十分简单的。 首先是安装,macOS下的Homebrew已经包含了ActivityWatch, 联网状态下运行 brew cask install activitywatch 就行了。 之后就是命令行下运行 aw-qt&! ,其中 &! 为zsh下让该命令后台一直运行,不随命令行窗口关闭而关闭。 最后在浏览器中输入 http://localhost:5600/, 就可以见到其运行状态的所记录的数据。

其中对活动的统计分类为Activity页面

对活动按时间顺序排列为Timeline页面

个人感觉其对活动展示还是十分清晰的, 无论是回顾还是进一步分析自己的活动都能够派上用场。 根据这一段时间后台运行ActivityWatch的感觉, 没有明显的感觉到其对性能的影响。

还有一点就是macOS下如何开机自动启动ActivityWatch的问题。 虽然macOS基本不用关机,不过偶尔更新了一些较为底层的软件还是需要重启的, 所以这个还是需要考虑的。 最开始可以利用macOS系统设置里面用户的启动项页面, 直接添加 /usr/local/bin/aw-qt。 但是这样在重启的时候是弹出一个命令行窗口,然后运行这个命令后exit;, 而且这个命令本身不是直接退出的,所以这个命令行窗口会一直存在, 如果关闭这个窗口,其后台运行的记录程序也会跟着中断。 而这个不是我想要的效果。 根据搜索结果看,应该还有新建个plist文件,大致看了下,感觉有点麻烦。 实际这里就是运行aw-qt要加个&!的问题,如果直接添加到启动里面不行, 那写个shell脚本不就行了。 于是新建一个文本文件,并写入以下内容:

#!/bin/zsh

aw-qt&!
exit

然后chmod +x添加这个文件的运行权限, 最后添加到用户启动项中。 这样重启就可以自动后台运行ActivityWatch, 并且没有多余的窗口。

在没有新的需求以及新的想法之前,应该会一直用ActivityWatch。