Orgzly: 手机安卓使用 org mode 做任务管理

前言

我总是在自我的懒惰和散漫中尝试寻找秩序感,希望能用上 GTD(Getting Things Done) ,列出待办清单,重新掌控自己的生活。我现在已经是重度 Org Mode 的使用者,自然便想着用它来做任务管理。事实上更方便的操作自然是移动端,即手机上操作,方便快捷,随时记录。

官方给出了相关的工具,可以用来在移动端操作。之前用的 iPhone, 其平台支持的是 OrgMobile, 说实话,并不太好用,功能少,界面丑,交互性差。后来换了安卓机,下了个 Orgzly 来试试,发现效果出奇的好,于是写下这篇博客。

Orgzly 的官网:Orgzly | Notes & To-Do Lists.

准备

Orgzly 目前只支持本地文件和 WebDav, 所以需要自己准备一个服务器。目前从阿里云迁移到京东云, WebDav 的搭建我会记录到另一篇博文上。

安装

  • 手机上安装 Orgzly, 从仓库直接下载,或者在 F-droid 下载。
  • Web 服务器安装好,安装教程可以参加我的另一篇博文。
  • 电脑上 Emacs (废话)和 rsync (用于同步)

使用

侧边栏有两个模块:视图模块,笔记本模块。

视图

就是 Agenda, 用来展示特定的代办事项,它自带了四个:

  • Agenda: 一周之内所有未完成的项目
  • Next 3 days: 接下来三天内未完成的项目
  • Scheduled: 今天之内未完成的项目
  • To Do: 所有未完成的项目

它的真正名字叫搜索,可以快速找到相应的分类项目。可以点击侧边栏的“搜索”,会列出所有的视图,可以自定义。语法在官网上有详细的介绍。目前来说基本够用,后续需要再添加。

笔记本

每个笔记本就是一个 org 文件,点击打开之后显示所有项目。右侧加减号可以展开和折叠内容。

最开始默认会给一个笔记本,里面包含了几乎所有的 org 语法在 Orgzly 上用法,自己看过一遍就懂了。

新建项目,里面都有很详细的交互选项。

TODO 的关键字可以在设置里的“笔记 & 笔记本”里面找到。

小组件

搭配小组件,就可以在主屏幕上快速操作:

  • 顶栏第一个四条横线 logo, 会打开 Orgzly 的主界面:
  • 顶栏第二个可以快速切换视图
  • 顶栏第三个是与 WebDav 同步
  • 顶栏第四个可以快速新建项目
  • 内容里的项目可以快速打钩

整个组件简约,但是主要内容都有,设计得真的很好。

不足

目前用下来不足的地方有两个。

第一个是小组件没办法现实 Checkboxs, 需要打开主界面点开笔记去打钩。

第二个是 TODO 状态下不同的关键词(如 todo, doing, wait)都用了同一个颜色。这个功能在 Issues 里,17 年就开始提了,目前还没有动静……连接:STATE coloring · Issue #139 · orgzly/orgzly-android · GitHub.

PC 上的 Emacs

没有操作,正常 Org Mode 操作即可。

同步

目前我用的 Sftpgo 来搭建 WebDav, 开放一个用户 orgzly, 给一个密码,设定它的根目录为 /root/orgzly. 服务器以地址 127.0.0.1 、用户 root 为例。我的云上用了密钥的,省去密码输入的部分,比方说密钥是 ~/key.pem.

手机端

在 Orgzly 的设置中打开“同步”,点击存储库就可以添加 WebDav 的地址了。可以设定自动同步,它会在某些特定的场合——比如新建笔记,进入或离开 App 的主界面——自动同步。我没有使用,每次需要在 PC 端操作时两端手动同步一下即可。

电脑端

通过 rsync 去同步。命令模板[1]

rsync -avzP --delete -e 'ssh -p 22 -i ~/key.pem' src dst

为了自动话,定义两个 Elisp 函数,方便操作:

(setq
 ;; 设定服务器中 orgzly 文件夹所在的根目录
 dust/orgzly-remote-dir "[email protected]:/root/"
 ;; 设定本地 orgzly 文件夹所在的根目录
 dust/orgzly-local-dir (expand-file-name "~")
 ;; Rsync 同步命令,如果不想用 orgzly 这个名字,
 ;; 自行修改即可
 dust/orgzly-sync-form "rsync -avzP --delete -e 'ssh -p 22 -i ~/key.pem' '%sorgzly' '%s'")
(defun dust/orgzly-pull ()
  "Pulling items from WebDav"
  (interactive)
  (shell-command (format dust/orgzly-sync-form
                         dust/orgzly-remote-dir
                         dust/orgzly-local-dir)))
(defun dust/orgzly-push ()
  "PUshing items to Webdav"
  (interactive)
  (shell-command (format dust/orgzly-sync-form
                         dust/orgzly-local-dir
                         dust/orgzly-remote-dir)))

每次电脑操作前先 dust/orgzly-pull 一下,操作完成后 dust/orgzly-push 就好了。

Powered by Org Mode.