I just love writing outlines and lists. For this purpose, Org-mode is pretty great; I’ve been using it to study for about a year and a half. But I’ve never been really comfortable using it, and it’s because of Emacs, the platform it’s made for.
I know I’m going to get hell for this. Everyone seems to love Emacs and Org-mode, and that’s the reason I chose them, but Emacs is way too complicated for me. After 1,5 years, I still could never remember the keybindings required for doing simple tasks, like folding/unfolding, exporting, or even searching/replacing without looking at the menu bar. I just want to take notes in the class and help me study for exams, not learning a powerful multi-purpose text editor that is Emacs. Lately I can’t even get the GUI version to open after an upgrade.
At first I tried Org-mode in another editor like Sublime Text, or Atom (at least they have more pleasant UI), but none of them is a joy to use. In fact, the best Org-mode editor I’ve used is Orgzly, an Android app that’s specifically built for editing Org-mode files. As a temporary solution, I wrote my outlines in Markdown, via Ghostwriter. It’s not a smooth experience, but it works. I finally stopped doing so after rediscovering Workflowy.
Workflowy (Web, Chrome, Android)
I first came across Workflowy a long time ago, back before I found Org-mode, or even Markdown: it’s when I first tried to find a cross-platform outliner with an online sync in the early days of this blog. Back then I decided not to use it because I thought what I was searching for is closer to a personal wiki instead of an outliner, so I didn’t think it’s what I need. The zooming feature also baffled me, and the Android app was slow and bulky.
However, now I found that Workflowy ticks most, if not all, of my checklists: single-pane, keyboard-based with simple keybindings that doesn’t slow my typing (all you have to do is to press Enter and Tab to create, promote, and denote an item), cross-platform, and works online and offline. Even the zooming feature, which I found confusing at first, is a bliss, since it lets me to have a clear, focused view on an item and its children. I mostly use the Chrome app to edit outlines and the Android app for viewing it.
- The 500 items (nodes) capacity per month for free accounts, although you can have 250 more with every referrals you make.
- The lack of tags list a la Simplenote – you’ll have to use the search bar.
- The Android app would be much better if it’s a native app instead of a wrapper of the mobile site.
I’m also aware of similar apps like Dynalist that offer more features, but I don’t really need calendars, checklists, or other task management features; I use Google Task for it. As for formatting, I can still use Markdown, export my outline as plain text, and edit it in Ghostwriter if needed.
Another interesting thing about Workflowy is that although it only resumed development recently after being dormant for a few years and thus lacks some features, people are stepping in to fill the gaps with userscripts and userstyles. Even the developers themselves regularly promote them on Workflowy’s blog.
Finding Workflowy inspired me to try other outliner apps for the web, Linux, and even Windows. After all, I’m still partial to a native app instead of a web/Chrome app.
The first outliner I’ve tried for Linux is Treeline. It’s stable (in fact, it’s been around since 2001), fast, and can be as simple or complex as you want it to be – as a very basic text-based outliner or a large database manager with multiple data? types (still using outline structure).
There are several templates provided, and the ‘longtext’ one is pretty similar with what I want. Plus, the ability to change keyboard shortcuts is really useful, since it doesn’t come with straightforward keybindings from the box.
The missing things:
- It can’t wrap really long text. I can actually put long text on Treeline’s ‘Name’ field (which I use as an equivalent to the ‘Notes’ field on both Org-mode and Workflowy), but they’re not visible in the main window. This makes Treeline basically a two-pane outliner, which I don’t like.
- It can’t directly import and export OPML files.
Treeline is not what I need, but on the correct hand (not mine), it’s a powerful and cusomizable app. I found it more suitable as a desktop wiki/note-taking app than an outliner.
To be honest, I’ve been having an aversion to terminal-based apps since I started using Linux. But hnb, like most ncurses apps, has a text-based interface besides CLI. It has a menu bar that’s visible upon pressing Esc and some sort of a status bar on the top and the bottom.
Manipulating nodes is a no-brainer; just type what you want to make a new node, and the only other keys you need to remember is arrow keys to move around, Shift to promote/denote, and Enter to edit a node. Even folding a level, done by pressing the left arrow key, is simpler than Workflowy (going to the topmost node>CTRL+UP). There are also some other features like joining and splitting nodes (CTRL+J and CTRL+S when editing), the ability to turn a node into a checklist, and autosave after x number of nodes has been edited. hnb can import and export outlines from/to ASCII (.txt) and OPML, among other formats.
Still, there are several things I don’t like:
- Somehow hnb always saves a new outline to /home/.hnb, even though I always enter a filename. My solution is to create a .hnb file directly from the terminal (e.g
- No multi-select.
- Moving up/down is only limited to the current level, and left/right moves between upper and lower level, which I found annoying.
I wholeheartedly agree with K. Mandla that hnb is quick, clever, and clean. It’s also the first terminal-based app I enjoy using, and instead of being a weakness, I consider its lack of a GUI making it a distraction-free writing environment. As a bonus, the CPU usage is almost non-existent, too.
After trying hnb, I decided to try Tines, an up-to-date fork of hnb with some extra features. Some compiling confusion ensued, but thankfully I managed to have it installed. I was missing the
libncurses5-dev and package and had to change the
INSTFLAGS=-D argument on the makefile to
Since it’s a fork of hnb, there’s nothing much more to say about Tines; it fixed hnb’s file saving and navigation problems I mentioned above (still no multi-select, though), while bringing along some features:
- Moving up/down is not limited to the current level (this can be turned off from the config file)
- Add a node above (CTRL+B) or below (CTRL+O) a current node.
- Some planner tools such as project list and calendar, e.g making a node for every date in a given month.
- Mark a node as text (most apparent in OPML export).
- Saving only a level (‘branch’) of an outline.
Tines in an improvement of an already great outliner, and what you should be using instead of the unsupported hnb. According to the wiki, there’s plan to create a Qt-based GUI for it someday, which is intriguing, but not really necessary.
My search for Org-mode replacement is over. I decided to use Tines as my main outliner on the desktop, and Workflowy on mobile, if I need to read or make quick outlines on the go. Fortunately, they play nice with each other.
However, there are some other outliner I’d still like to try. One of them is Outliner Lighto, but I always failed to build it from source. The Github page is long gone, and there is no deb package I could install (easily).
Further reading: If you’re interested in outliners in general, you should read About This Particular Outliner, a series of articles (although Mac-oriented) about the history, features, usage, design, and comparison of outliners.