Featured image of post 在Linux上做任务管理,这件事得好好掰扯

在Linux上做任务管理,这件事得好好掰扯

最后还是投奔了Vikunja温暖的怀抱~

记得是两三年前吧,我曾经在酷安写过 一篇文章 ,介绍我如何在Linux和Android间同步我的待办事项。

那篇文章写得很烂,同步的方法一样很烂,一切都得借助Todoist这个第三方服务,难免会受服务器环境和第三方应用稳定性的牵制。然而,在手握一台VPS的现在,我找到了一个更有趣的方案―― Vikunja

于是,我想从头梳理梳理这几年我是如何在Linux任务管理这个需求上挣扎跳跃,最后踏上Vikunja的贼船的。

简陋朴素 ―― Todo.txt

放一段Todo.txt官方仓库的介绍吧:

A complete primer on the whys and hows of todo.txt.

The first and most important rule of todo.txt:

A single line in your todo.txt text file represents a single task.

简而言之,Todo.txt是一个以纯文本的方式运作的待办规则,这样的好处是你几乎可以在任何平台找到支持Todo.txt的客户端,坏处是由于这种看起来比较简陋的处理模式,这些客户端往往都不尽如人意……

比如,如果我们打开万能的应用商店Github搜索一下支持Todo.txt的Android应用:

1

2

3

嚯,这一个比一个看着不靠谱。不过正如在酷安那篇文章里写过的,我体验过一段时间TooDoot,然而,对于那款应用,我的感想是————还是去用Todoist吧。

老老实实 ―― Todoist

在国内互联网上,Todoist的讨论度还是比较高的。想当年它曾经也是被国内一众“生产力工具狂热爱好者”奉为至宝的产品~

fe379102b5c62f016bb53b0e00d4c26c.png

唯一有一点别扭是什么呢——它在我编写酷安上那篇文章的时候还没有发布Linux版本(即使现在发布了,也是基于Electron技术的产物,毕竟自己曾经也是个 “Native Apps” 的狂热追求者),不过好在,开源社区给出了一个足够有吸引力的解决方案—— Planify

aa3cbecee3818891665782f85f7ec48d.png

同样地,放一段官方仓库里的介绍:

Planify is here…

  • Neat visual style.
  • Drag and Order: Sort your tasks wherever you want.
  • Progress indicator for each project.
  • Be more productive and organize your tasks by ‘Sections’.
  • Visualize your events and plan your day better.
  • Reminder system, you can create one or more reminders, you decide.
  • Better integration with the dark theme.

然而,前面已经提到过我的选择,最终是Todoist服务器访问速度的缓慢和对它的移动端UI风格的别扭感让我放弃了它。

顺带一提 ―― Microsoft Todo

自从我用Linux之后,就没怎么用过Microsoft Todo了,因为Linux上根本没有能用的客户端(那些单纯套网页的大可不必算作客户端),然而,最近我在Github上发现了一款支持MS Todo同步的GTK应用—— Reminders ,没怎么用过,就不多介绍了。

勉强能用 ―― CalDAV + Tasks

从我初三到高一,一直用的都是这个方案,足够看出来,对于“凑合用”这一指标,CalDAV是合格甚至优秀的。

我一开始使用的是Yandex家的CalDAV服务器,效果出奇得不错,在移动端可以使用Tasks进行同步,Tasks的功能强大,界面现代(然而并不支持Material You),开源自由,堪称是Android下绝对理想的Todo管理软件,那么现在压力给到了桌面端——

桌面端什么都没有。

不论是KDE或者Gnome家自带的日历应用(K系甚至没有自带日历,我选择了Kalendar),还是第三方的所谓日历管理应用,对CalDAV的支持都堪称灾难,唯一令我觉得比较顺手的操作方式,反而是在Yandex Calendar的网页端添加Todo。然而,Yandex Calendar毕竟不是专门的Todo list应用,Todo管理页面被深深埋在二级页面,操作起来也颇觉不顺,而且,毕竟是外国服务器,访问速度还是有些令人难受的。

诶嘿,恰逢我买了一台VPS,于是自己搭建了一个CalDAV Server。这下访问速度上来了,但是却没有Web UI可以创建和编辑Todos了。

望着空空荡荡的任务列表,我沉思着:难道速度和WebUI真的不可兼得?

死心塌地 ―― Vikunja

初夏的雨后,我独自站在街角的十字路口。夜晚的寂静包围着我,仿佛一层无形的孤独笼罩在身上。寂寥的感觉如潮水般涌上心头,我感到自己孤独的存在像是一个被遗忘的角落。

突然,我的目光被一个昏黄的路灯牢牢吸引住。灯火温柔地闪烁,将周围的光影扑朔迷离地渲染成诗意的画面。那盏路灯在黑夜中独自发光,仿佛是寄托着所有寂静雨夜的心声。

我就这样静静地站在那里,与路灯一同呼吸着雨夜的寂静。在这个瞬间,我的孤独和寂寞在那盏默默发光的路灯的怀抱中找到了安慰。我感受到了一种被包容和理解的温暖,仿佛寂静和洁净在这一刻相互拥抱。雨夜带来的孤独,不再是伤痛,而是一种与自己对话的契机。

——Generated By ChatGPT

试赏析以上文字在一篇技术分享类博客中起到的作用(6分)

据说,当我第一眼看见Vikunja时,我就知道,我的服务器又要被吃掉一块内存了。

极简的界面,强大的功能(这甚至是一个多人协作的Todo Manager),内置的CalDAV Server(不需要自己搭CalDAV服务器啦!)。谁见了能不爱呢?

vk1

vk2

安装

我选择使用Docker-compose安装Vikunja,它的文档详细得令人垂泪——怎么能够这么友好?

如果你对此感到怀疑,不妨亲自看看这份覆盖市面上几乎所有主流Reverse Proxy的Docker-compose示例配置列表

我走的是Traefik v2,所以找到对应的Example,稍作修改,服务便跑起来了。

值得注意的是,不用于我们熟悉的某些服务,会要求你在首次访问时设置管理员账户和密码,或是在log中输出初始密码,Vikunja是没有管理员账户的,部署之后你需要做的,就是访问,创建新账户,然后愉快(并感激)地享受它为你提供的一切便利。

多端同步

再来讲讲Vikunja的多端同步吧,移动端的应用我选择的还是在CalDAV那一节已经提到过的Tasks。

在Vikunja网页端右上角点选用户头像,在弹出的菜单里选择“设置”,进入后选择“CalDAV”,然后选择“创建令牌”,将CalDAV地址,账户和令牌填入Tasks,就可以愉快地将你的Todos同步到移动端了。在目前测试中,创建列表、修改/删除Todo、标记完成等等都是完全没问题的。

所以,我到底该用什么好呢?

我们让ChatGPT来回答这个问题吧。

根据用户在文章中的描述,可以给出以下用户适合使用各个应用的建议:

  1. Todo.txt:适用于追求简单、轻量级且跨平台的用户。适合在不同设备间同步待办事项,不过需要注意,客户端的可用性和功能可能会受限。

  2. Todoist:适用于那些希望在多个平台上都能使用一款稳定、成熟的任务管理应用的用户。Todoist 提供了跨平台的支持,并且有广泛的用户群体和开发支持。

  3. Microsoft Todo:适用于 Windows 和 Microsoft 生态系统用户。但是需要注意,Linux 平台上的客户端支持有限,可能无法满足在 Linux 上使用任务管理的需求。

  4. CalDAV + Tasks:适用于追求自主搭建服务器、有技术能力并且愿意妥协一些 UX 的用户。这种方案可以在多个平台上同步任务,但需要一定的技术设置和对服务器的管理。

  5. Vikunja:适用于寻求全方位任务管理解决方案的用户,尤其是那些追求跨平台同步、拥有多人协作功能,并且希望有现代界面和简便部署的用户。

总之,不同的用户可以根据自己的需求和优先级来选择适合自己的任务管理应用。建议用户在选择之前试用一下,并考虑到自己的平台偏好、同步需求、用户界面喜好以及对技术设置的兴趣程度等因素。