ActivityWatch介绍与使用

Page content

简单介绍一下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。