My Typing Experience and Repetitive Strain Injury

By Xah Lee. Date: . Last updated: .

i have several rounds of close to Repetitive Strain Injury (RSI) experience. Never had any pain, but definitely tingling, soreness.

1st time is in 2005, that's due to using laptop all the time for a year. I wrote about it here: How to Avoid Emacs Pinky

2nd time in 2010, eventually found the problem to be a bad habit of pressing the 1, 2 keys, by turning my left hand wrist sideways and using index finger to press the 1. Documented here Programer Hand Health: vi Esc Key Syndrome

3rd time in 2012. Eventually found the reason to be pressing the x key too much on a rubber-dome key-switch keyboard. Documented here: The Roadmap to Completely Replace Emacs Key System, Part 1

And there are more. Here's detail.


here's a summary of my typing experience.

• ~1988. Learned touch typing on a electric typewriter.

• 1992. Worked as a data entry clerk and secretary. (on computer (Mac classic), and typewriter)

• 1994. Learned Dvorak layout and switched to it. [see Dvorak Keyboard Layout, My Experience ⌨].

• 1998. Started using emacs, and live in it by 1999. [see My Experience of Emacs vs XEmacs]

• 1998 to 2005: Use xemacs in text terminal only, all default keys. (started to use GUI emacs, in 2006, and switched to GNU emacs from xemacs.)

Up to 2005, never had any typing/RSI problem. Am using standard PC keyboard. Most of these years using whatever the keyboard that comes with Mac.

• 2005. 1st brush of RSI. Caused by always using a laptop (Mac iBook) since 2004. Solution: bought the Microsoft Natural ergonomic keyboard. First time using a split keyboard. Never liked split keyboard before, but now, i NEVER want to type on non-split keyboard.

• 2007. Started to create and use ErgoEmacs mode

• 2009. Switched keyboard from MS Natural to Microsoft Natural Ergonomic Keyboard 4000.

• 2010. 2nd brush with RSI, due to bad habit of pressing the keys 1, 2 keys, induced by the Microsoft 4000 keyboard. Documented at Programer Hand Health: vi Esc Key Syndrome

• 2012. 3rd brush with RSI. Cause: pressing the x key too much on a bad rubber dome keyboard (the MS 4000). Documented here: The Roadmap to Completely Replace Emacs Key System, Part 1

• 2013. Started to use Truly Ergonomic Keyboard. Love it.

• 2013. Started to use a emacs keybinding system that is all single key press sequence, except for about 10 commands that make sense when held down (For example, forward-word) in ErgoEmacs mode. A preliminary report at The Roadmap to Completely Replace Emacs Key System, Part 2.

• 2013. Started to create and use a modal keybinding mode similar to vim, but key choice based on command frequency statistics. [see Emacs: Xah Fly Keys]

• 2016. Feeling discomfort. Wrist pronation problem. Due to hands on the flat Truly Ergonomic Keyboard for about 12 hours per day. The keyboard is flat, no tenting. (from ~2009 to ~2015, i write tons of stuff. The average number of hours i sit in front of computer per day, is perhaps 12. Put another way, if we rank people in the world who sit in front of computer longest hours in period of few years, as if measured by statistics with a device on the seat, i'd say i rank within top 500.)

[see Truly Ergonomic Keyboard Review]

[see Is Keyboard Tenting Important?]

• 2016-08. Started to use Kinesis Advantage2 Keyboard as my main keyboard. [see Kinesis Advantage2 Keyboard Review]

In 2017, some more mild discomfort. In the past, it's always just left hand. But now, right hand also felt discomfort. I can't pin down exactly what's the “cause”. Possibly am getting old, and haven't exercised as much before.

In 2018 to 2020-05-29 and on going. Start as mild discomfort, but by 2020 it's vague pain. Left arm, the forearm area, middle of forearm but more near the elbow. Been very hard to trace the cause of this discomfort. But i think it's due to too much pressing the key 3 (above key e on qwerty) by middle finger on the kinesis disadvantage. The key 3 in xah-fly-keys is for delete-other-windows (it removes all split panes), and is frequently used. according to my key log, it's used 0.37% of all command calls (including self insert commands) Detail at Xah Lee Emacs Pinky 2020

For all major modes:

 879480   20.84%  self-insert-command
 289286    6.86%  previous-line                               c, C-p
 277822    6.58%  next-line                                   t
 253578    6.01%  mwheel-scroll                               <wheel-down>, <wheel-up>
 219708    5.21%  forward-word                                r, M-f, ESC <right>
 180404    4.28%  xah-beginning-of-line-or-block              d
 159757    3.79%  backward-word                               g, M-b, ESC <left>
 137951    3.27%  xah-end-of-line-or-block                    s
 125464    2.97%  isearch-printing-char
 120095    2.85%  xah-fly-command-mode-activate               <menu>, <home>, <end>
  75822    1.80%  xah-fly-insert-mode-activate                u, SPC DEL
  74665    1.77%  xah-paste-or-paste-previous                 k, SPC k
  64826    1.54%  xah-find-next-match                         TAB, <right>
  60314    1.43%  xah-html-open-local-link
  53738    1.27%  xah-close-current-buffer                    C-w, SPC t h
  46826    1.11%  forward-char                                n, C-f
  46260    1.10%  xah-backward-kill-word                      .
  46210    1.10%  open-line                                   o
  43693    1.04%  xah-delete-current-text-block               i
  40887    0.97%  xah-next-window-or-frame                    w, SPC t w
  38584    0.91%  backward-char                               h
  37055    0.88%  mouse-drag-region                           <down-mouse-1>
  35337    0.84%  xah-delete-backward-char-or-bracket-text    e
  35251    0.84%  mouse-set-point
  34946    0.83%  xah-shrink-whitespaces                      ,
  34001    0.81%  xah-copy-line-or-region                     j, <f3>
  31401    0.74%  xah-browse-url-of-buffer
  27486    0.65%  xah-kill-word                               p
  26271    0.62%  isearch-exit
  26028    0.62%  isearch-forward                             b, SPC g
  25785    0.61%  isearch-repeat-forward                      s-g
  23807    0.56%  xah-backward-left-bracket                   m
  21346    0.51%  undo                                        f, C-z, C-_, s-z, C-/, C-x u
  21268    0.50%  ido-exit-minibuffer
  20938    0.50%  xah-forward-right-bracket                   v
  19775    0.47%  keyboard-quit                               C-g
  18241    0.43%  delete-backward-char
  16872    0.40%  xah-select-line                             7, 2
  16445    0.39%  xah-find-previous-match                     <left>
  16392    0.39%  xah-cut-line-or-region                      q
  15891    0.38%  exit-minibuffer
  15469    0.37%  delete-other-windows                        3, ], C-x 1
  14513    0.34%  xah-insert-space-before                     l
  14484    0.34%  xah-select-block                            6
  14074    0.33%  set-mark-command                            y, C-@
  11325    0.27%  handle-switch-frame
  11259    0.27%  xah-open-file-fast                          SPC c r
  11132    0.26%  xah-select-text-in-quote                    9
   9928    0.24%  xah-html-wrap-p-tag                         SPC . t
   9764    0.23%  dired-previous-line
   9153    0.22%  xah-extend-selection                        8, 1
   8946    0.21%  xah-html-wrap-html-tag
   8762    0.21%  beginning-of-buffer                         SPC d, M-<, 
xah emacs keylog 2020-01-06 jxdcj
xah emacs keylog 2020-01-06 jxdcj

Emacs Keys



Key Tips

Emacs Pinky