
So here’s a project that I’ve been working on for the last 10 years that I’m going to just put out there for others to see what they think, or maybe use.
I find editing large amounts of text in a modern OS to be painful to my wrists. Using a mouse to select text, move it around, then switching back and forth between the mouse and the keyboard adds to the strain. I’ve been very invested in ergonomic keyboards and even alternate keyboard layouts to help my wrists. But no matter what you do with the keyboard, editing is still often a painful process due to the mouse.
This isn’t a new problem. Before operating systems got graphical user interfaces the keyboard was the only input source, so this problem was attacked by programmers and early writing programs. Early programmers used text-only systems for editing their code. vim, emacs, and spacemacs are common tools (spacemacs is an update to emacs, but some consider its own thing) used still to this day, as programmers editing large amounts of code find keeping their hands on the keyboard is efficient.
Early text editing programs also had that issue as well. With no mouse, how did writers in the early 80s or 70s using their early programs go back and edit their stories or novels or even business reports?
They used the keyboard.
In programs like Wordstar, writers used key combinations to navigate the cursor around the screen, select text, and edit it. Many writers still use this 50-year old program, rigging up DOS environments, or paying programmers to keep it up and running because the keyboard shortcuts are deep habits, and they don’t have to pick their hands off the keyboard over to a mouse and back constantly.

I’ve heard writers in my field praise Wordstar and the ability to move around the text with keys only but when I was editing I began to wonder about helping my wrists out by learning a keyboard navigation system. I began some years ago by looking into emacs and vim, as I didn’t know of any systems for non-programmers. emacs I found tough to master as it required a lot of memorization up front to get into using it right off the bat. It uses a system that is almost grammar like. Powerful, but hard to get started with.
I spent some time looking into vim as well, and began using it while in Obsidian, a text editor that I use to write in that uses it. The power of moving the cursor around with keys was clear, but over and over I found it hard to memorize. I’m adhd, so the instructions that came with vim required me to keep a printout near my screen to look up commands. It felt unintuitive to me, particularly the use of hjkl keys just didn’t map to anything that made sense to me and my fingers, even after several years of trying, would still get tripped up. This doesn’t make sense to me:

But WASD keys for gaming, as that is a paradigm I have instinctively wired into my fingers:

Arrow keys, movement on a keyboard, are 3 keys on the bottom and one on top. It’s just the way it is in my head, and fighting it is counterproductive for me, even after trying years of remapping my brain to the vim style.
So what to do?
Some years ago I paid a programmer to help me code a system that used IJKL keys to move around when I tapped a key, but it was a bit overcomplicated to set up, but it started me down the idea of designing my own layout that worked in a way that didn’t fight my arrow key neuroprogramming. I’ve tested out several variations of it, but decided to spend my Fall Break actually turning it into something I’d use as I’d found myself looking up vim commands again that I’d forgotten during the semester as I hadn’t been editing.
What I wanted was something that I would start using without thinking about.
My first iteration of a mockup that I called ‘vigor’ some years ago:

The core idea was to be able to hit the capslock key and at the very least be able to move around with arrow keys (launch edit mode). But even this required a lot more memorization than I felt was needed.
The next iteration began a few weeks ago when I downloaded an app for my MacBook Air called Karabiner-Elements which allowed key remapping. It had an implementation of vim that worked system-wide, because the little bit of vim I was using only working in Obsidian. If I was going to take on the trouble of memorizing any system, I wanted it to work in as many different writing environments as possible.
Again, though, I found vim to not work in a way my brain liked. So using Karabiner, and using a set of keyboard maps called vim mode plus for guidance to see how to write the json code to remap the keys, I started creating a new setup. The idea was to hit a key (‘d’) using my left index finger to then be able to select text, not just move it around.
This was my first attempt at a keyboard that could fit where my fingers felt more comfortable using that as a guiding idea:

I’ve spent a week fiddling around with it and quickly realized that there was some user interface and user experience issue with it, as it required some memorization. I could use line up or down, and word left or right, and use capslock to pop in and out. But I found some of the logic missing until I rearranged things around:

So hitting capslock pops me into the editing mode, and then the IJKL keys move me around. Hold the ‘d’ key while in this mode, and they get selected.
That felt natural, I was moving text around and editing in minutes. Dropping from paragraph in the upper row, to word, to then character made intuitive sense, even when I forgot the map that knowledge remained. Moving the end of line keys to other side of the arrow keys also made more intuitive sense, and since operating systems don’t think like authors, I don’t use them as much as they jump to the left of the page, not to the beginning of the sentence. A line and a sentence aren’t the same in programmer minds, I don’t yet know how to get around this, so they work there.
I call it ‘Glyph’ and I am sure it can be tweaked, but I’m basically using it in this current incarnation with Karabiner, and I’ve posted the JSON files up on a GitHub page so anyone can download Karabiner-Elements and import 4 JSON files and use it if they’re someone who works with a lot of text, aren’t interested in vim and emacs, and are intrigued by not having to use a mouse.
Here is a link to the GitHub page for Glyph where the JSON files are kept, with some more instructions on how to enable it.

This is great. I’m a video editor by trade and am very heavily keyboard-navigation oriented in that work. Being able to use that sort of muscle memory while editing text is a “duh, why didn’t I think of this before” idea. Thanks for this. I am going to use it.
Huh, fascinating! The last time I worked in a keyboard-only environment was Wordperfect 5.0 in the days of MS-DOS, but that did leave me with a strong tendency to use (or create) keyboard shortcuts for common tasks, rather than always reaching for the mouse. I wonder what the learning curve would be for me on something like this — I never tried to use vim or emacs.
I felt with the arrow-key like IJKL, I was able to use it to move around pretty quickly. Remembering to hit capslock or (I have m and v keys at the same time trigger this) is not instinctual yet, but I’m getting there. I may disable my arrow keys on my keyboard and my backspace and delete keys for a while to enforce using the mode to edit and get it instinctual.
If you do try it, let me know!