Modes are only problematic if the current mode is not the user's locus of attention?
A quasimode is more likely the user's locus of attention because the act of pressing and holding a button creates a richer experience that the user is in this mode?
I've implemented an special select mode in rlworkbench that simplifies selecting different portions of a document. Here is a demo of it.
The select mode is entered by pressing ctrl+l for se(l)ect. The mode is a quasimode meaning that it is only active while the 'l' key is still pressed. (The ctrl key can be released.)
In the select mode buttons to different things:
Pressing 'r' extends the selection to the current (r)egion leaped over
Pressing 'e' extends the selection to lin(e) boundaries
Pressing 'a' extends the selection to p(a)ragraph boundaries
The editor is also in select mode when clicking and dragging with the mouse. So the same keys can be used there. (That is why all the keys are on the left side of the keyboard, since, for me, I operate the mouse with the right hand.)
Having an explicit select mode frees up more keys for select operations. So far I find it a little uncomfortable sustaining the 'l' key, but I feel like it has potential.
Last month I decided to try to make rlworkbench a fully modeless editor.
In theory, I get why modeless editing is good. However, I'm a long time, happy Vim user. Vim is probably the most common example of a modal editor. The opposite of modeless. Despite that I want to try. This is a note about my current thoughts and experiences.
One thing that I like about editing in Vim is that I seldom have to press multiple keys at once. That is comfortable for my hands and fingers. My right arm is quite sensitive to bad ergonomics. For example, I often feel a slight pain after working on a laptop keyboard for an hour or so. I'm afraid that a modeless editing interface can not preserve this ergonomics.
In Vim, you are by default in "normal mode" where key presses don't usually insert characters but instead perform operations such as moving the cursor. With a modeless editor interface, you are by default in "insert mode" where key presses insert characters. Now that rlworkbench has a modeless editing interface, I'm sometimes afraid of accidentally inserting characters. Maybe I just have a bad habit of moving the cursor around and I should stop doing that. However, the feeling is that always insert mode feels a little scary.
In modeless editors the default mode is insert mode, and you issue commands by holding down control for example. Why is that? Can we invert that so that the default mode is "command mode" and you have to press and hold a key to insert characters? My guess is that I spend more time navigating than typing.
The Humane Interface (p. 59) argues that the hope is that most time is spent creating content (aka insert mode) and that should be as easy as possible. But I wonder if that is really true. Issuing commands can create content as well, right? For example, there might be a command to format a piece of source code. The formatting might be important for readability. Making the content more readable. Isn't that then part of "creating content"?
What is Rickard working on and thinking about right now?
Every month I write a newsletter about just that. You will get updates about my current projects and thoughts about programming, and also get a chance to hit reply and interact with me. Subscribe to it below.