HACKER Q&A
📣 monroewalker

Do you use Dvorak or any alternative typing / input technology?


Any time I find myself repeating some process a lot I generally try to reflect on how I might make that process more efficient. This has led me to adopting new workflow tools and plugins, but I still haven't done much to address what seems to be the elephant in the room - having most of the work I do go through a keyboard with a infamously impractical layout, especially for programming. I've been curious to try switching to a layout like Dvorak, but never actually wanted to spend the time. One thing I find particularly frustrating is the frequency of symbols I have to type while programming that are pretty unergonomic to input and often lead to typos. For example all the []\{}|;':" keys on the right hand side. I saw a snippet of some Rust code a minute ago (below) and one of my initial reactions was apprehension toward the use of pipes "|" in the lambda syntax since they're relatively difficult to press. The keyboard is definitely something I don't want biasing my judgement of a language or syntax, so that feeling has reminded me that it might be worth investing the time in taking a new approach.

Rust snippet: let squares: Vec<_> = (0..10).map(|i| i * i).collect();

Do you use Dvorak or another keyboard layout alternative to QWERTY?

Do you use any other unconventional input devices such as mouse alternatives?

Do you use any other non-standard input configurations?


  👤 auslegung Accepted Answer ✓
I use an ergodox EZ with this layout https://configure.ergodox-ez.com/ergodox-ez/layouts/ZPn5v/la... (I'm constantly tweaking it though). There are lots of inefficiencies but they aren't causing me enough pain to change them yet. My favorite things about this layout are the number of dual-function keys (blue keys), the Mvmnt layer (I use the keyboard for 95% and laptop's mousepad the other 5%), and the sym&num layer so my most-used symbols are easily accessible for me.

There's a relatively easy way to find out what keys you use the most using git log, clean up the output, then feed that into a tool (forget the name) that outputs the frequency of each key. I did that and that's why those particular symbols are where they are.


👤 danieka
I know you question really isn't about ergonomics and RSI, but I can't help myself.

I usually get pain in my little fingers after typing a lot. Switch to Dvorak has really helped, but I still had some trouble with typing "special characters". Using shift and cmd put a lot of strain on my left little finger.

What has been a huge boon for me is using pedals for the shift modifier keys. So to hold down shift I press down my right foot. That way I let my little fingers rest a bit and I have to use one finger less for key combinations.

It took me maybe a week to get back to (almost) my normal typing speed. And for me typing speed isn't the limiting factor when programming, it's my brain.

I also use the Advantage2 keyboard, note how the keyboard is "hollowed out". This means that my fingers can rest comfortably and not "bend backwards". Also note that modifier keys are placed by the thumbs.

So to sum up:

- Dvorak

- Advantage2 [https://kinesis-ergo.com/shop/advantage2/]

- Advantage Triple Pedal [https://kinesis-ergo.com/shop/advantage-triple-pedal-refurbi...]


👤 mech422
I'm actually trying to customize a 'tracktyl' (Dactyl manuform keyboard with thumb trackball)(1). Qqurn has code up at gitlab(2) that can generate layouts with thumb cluster, trackball, or joystick. The code can create .stl files to be used with 3d printers, as well as viewed on-line for sanity checking. Interestingly, the original code was clojure, but migrated to python. Oh! And QMK is awesome for keyboard mapping, macros, etc!

1: https://imgur.com/a/TDE640k 2: https://gitlab.com/keyboards1


👤 monroewalker
Just found a layout called "Workman" which seems to be a more reasonably designed layout for programming. Also has a "Workman-P" variant which switches the number/symbol keys so that shift is needed for numbers and the symbols insert with a regular press. https://github.com/workman-layout/Workman

👤 iforgottherest
If symbols are your pain point, why not just put those on an external macro pad? From what I remember, switching to Dvorak et al isn't best for increased efficiency, and you lock yourself from standard devices. Qwerty is better than good: it's good enough. Ergonomic keyboards are a good consideration, not for efficiency, but to avoid wrist pain.