all repos — site @ 511f6ce5904a65f8a347817961a5070ab9c8238c

source for my site, found at icyphox.sh

pages/blog/workman.md (view raw)

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
---
template:
url: workman
title: The Workman keyboard layout
subtitle: I have a lot of free time on my hands (heh)
date: 2020-10-24
---

I've been at my computer everyday, for at least 10 hours at minimum.
These past ~6 - 7 months have been the most I've ever used my computer.
Eventually, I started experiencing discomfort and pain -- especially in
my pinkie finger. Typing became a chore, and I found myself using my
shell's command history more just to avoid typing commands. I tried
using a wrist rest, different keyboard heights, but nothing helped.

Thus began my search for a new keyboard layout, and it swiftly concluded
once I chanced upon the [Workman layout](https://workmanlayout.org).
According to the website, it is supposedly an improvement over Colemak
and Dvorak. I skimmed through the numbers and other stats, but
I honestly didn't care. "Oh it's better than the popular alternative
layouts? Okay that's enough for me."

![workman layout](https://raw.githubusercontent.com/kdeloach/workman/gh-pages/images/workman_layout.png)

I downloaded the tarball containing the different config files for
different platforms etc. I just needed the `xmodmap` -- that's the
easiest way to apply a keyboard layout.

```console
$ xmodmap xmodmap.workman
```

To practice the layout, I used [keybr.com](https://keybr.com). You can
configure the keyboard layout via the settings. Naturally, the first few
days were incredibly painful. I was only able to type short sentences
with very small words. I tried to not engage in heated discussions on
IRC, for I could not type up a response in time. However, if I did
stumble into one, I would switch back to QWERTY just for those couple of
messages.

I found myself making the switch less and less, over the next few days.
Chatting on IRC is a _great_ way to learn a layout. Or chatting
anywhere, really. It forces you to get accustomed to the layout by
typing the common words used in conversation. I also made a tiny change
to the layout -- swapping the <kbd>F</kbd> and <kbd>B</kbd> keys, since
typing the "fo" / "of" digram in the same hand felt really weird. Soon
enough, I was averaging about 30 - 40 WPM within the first week of
having switched to Workman. 

And then things at work started to pick up, and I had to do what I had
been dreading the most: edit code -- in Vim. It's fairly common
knowledge that Vim, by default, extensively uses the <kbd>H</kbd>,
<kbd>J</kbd>, <kbd>K</kbd> and <kbd>L</kbd> keys for navigation. Sure,
there are better ways to move around and only using those keys is
frowned upon -- but it's a habit built over years, and hard to shake
off. After poking around for a bit, I found the
[vim-workman](https://github.com/nicwest/vim-workman) plugin. Forked it
to apply the <kbd>F</kbd>/<kbd>B</kbd> change, and I began using it.

It was great at first. My Vim muscle memory was not hampered, as I was
able to use QWERTY in normal mode, and Workman in insert. But as I got
better at Workman, I found myself instinctively reaching for the Workman
keys in normal mode. Well, everything except for the <kbd>H</kbd>,
<kbd>J</kbd>, <kbd>K</kbd> and <kbd>L</kbd> keys. This quickly became
bothersome and I uninstalled the plugin to search for a better solution.

Wait, don't I have a sick new [programmable mechanical
keyboard](/blog/ducky-one-2)? What if I configure a layer on it just for
the <kbd>H</kbd>, <kbd>J</kbd>, <kbd>K</kbd>, <kbd>L</kbd> keys? After
pouring through the manual for a bit, I eventually got it set up. I even
remapped the <kbd>Caps Lock</kbd> key to <kbd>Fn</kbd> so it's easier to
access the layer. So now, hitting <kbd>Caps Lock</kbd>
+ <kbd>Y</kbd>/<kbd>N</kbd>/<kbd>E</kbd>/<kbd>O</kbd> results in
<kbd>HJKL</kbd> being pressed. This took a little bit of getting used to,
but it got easier with a bit of practice. 

Since I don't rely on any plugin/remappings, I can use Vim as is on
remote machines too. Another bonus from this adventure was I actually
spent time learning better ways to navigate, and reduce my reliance on
<kbd>HJKL</kbd>. Overall, a big win.

It's been over 4 weeks since my switch, I think, and I'm comfortably
averaging around 80 WPM. Still a good 20 WPM slower than QWERTY, but
I think it'll get better with time. And am I still able to use QWERTY?
Well, kinda. I still use QWERTY on my phone keyboard, since Workman
isn't an option on it and it's actually alright. However, when I use my
desktop to play Dota, I prefer using voice chat to communicate since
typing on QWERTY takes too long -- I am forced to hunt and peck.
Interestingly, after about 15 - 20 minutes on QWERTY, my brain kinda
just clicks back and I can type on it with relative ease. Not as fast as
I used to be, but it's manageable.

All things considered, switching to Workman was one of the better
decisions I have made in life. It feels so nice to be able to type out
whole words in just the home row. It just _flows_ so nicely, and it has
made typing so much more enjoyable again.