An experiment in writing faster

By Abhijit Menon-Sen <ams@toroid.org>

2010-03-17

I've always enjoyed writing, but it's only in the past year or so that I've forced myself to write regularly. The practice is paying off, the principal difference being that I consistently write much faster than I could before. I've also been able to identify and correct a number of problems with my writing that may have otherwise gone unnoticed.

Thanks to some bad habits I've developed, however, there's still plenty of room for improvement. For example, I tend to rewrite things to make the right margin of the paragraph line up "nicely", which is an absurd waste of time. Sometimes, I get stuck at a particular sentence or paragraph and tweak it endlessly rather than moving onwards.

Years ago, I read about a program whose minimal interface was modelled on a typewriter. It presented a blank screen, with nothing to distract from the process of writing; and it had minimal editing capabilities, to avoid the temptation of rearranging text. I can't remember what that program was called, but there is more than one like it (e.g., Writeroom and OmniWriter for OS X, and a few clones). Most of them have more features than I can remember reading about.

I spent an hour or so writing a similar Qt program. It was surprisingly easy (thanks to some advice from my Qt hacker friends Arnt and Brad): I created a QWidget, called showFullScreen() on it, gave it a QPlainTextEdit child displayed in the centre of the screen, and wrote a few lines of code to load and save files. The QPlainTextEdit class provides minimal editing capabilities, which suits me fine. I named the program wry, and I've been using it for some months now. (The source is at github.com/amenonsen/wry for the incurably curious.)

Digression: I'm very pleased that Unicode text "just works" in wry. I can display Markus Kuhn's UTF-8 demo with none of the ugly problems I've had with xterm in the past. For Unicode text input, I set up ~/.Xcompose so that I can compose any character I want, but I miss vim's :digraphs command, which would show me the available options.

Using wry was slightly frustrating at first, but once I got used to it, it worked very well. The enforced lack of distractions helped me to put down more text more quickly; and it was easier and faster to edit things later when I was looking at several paragraphs rather than one sentence. Since wry uses a proportional font and rewraps text as it likes, I could no longer waste time trying to align the right margin.

Someday, perhaps I'll be cured enough that I can write properly in vim without succumbing to the temptation of editing, but until then, wry is the perfect set of training wheels.