I’ve been using Dvorak for about 18 months now and it has been a pleasant experience. I’m actually not sure if I type faster then before, but I do physically move my hands less then I did before which gives a nice feel. I find Qwerty cumbersome in the way I always seemed to have my fingers “trip” over each others. This doesn’t happen with Dvorak.
The biggest downside of Dvorak for me is that many programs have their keyboard shortcuts organized for the left hand on a Qwerty layout. For example Undo-Cut-Copy-Paste. These keys are often used and are easy to access with Qwerty. Since I mostly use Vim when I type, this is not a problem for me. But as soon as I use a program that conforms to the standard layout these shortcuts are harder to use.
Blender is hard to use with Dvorak. It relies on Qwerty focused shortcuts for basic operations. Another problem is games. It’s annoying having to configure keys for all games and If you’re using a nationalized version of Dvorak like me (Swedish Dvorak, Svorak), some keys simply wont be assignable because the game doesn’t recognize them.
Sharing your computer becomes a problem since most other users wont be familiar with your layout. So you end up having to navigate various settings menus or running a command to switch layout each time someone else touches your keyboard.
The best solution I’ve come that solves both these problems is to bind a global keyboard shortcut in your window manager to switch between Qwerty and Dvorak.
In Windows you can toggle keyboard layout with
SHIFT+ALT. In Linux you can bind these a command:
setxkbmap us # English setxkbmap se # Swedish setxkbmap dvorak # Dvorak setxkbmap se dvorak # Svorak
I’ve bound the shortcut
CTRL+Meta+1 to set Dvorak (Svorak) and
CTRL+Meta+2 to set Qwerty. This way if you’re using a program that is designed for a specific layout (games, blender etc.) or letting someone else use your computer, you can activate the Qwerty layout.
In the window manager i3 you can put this in your configuration file (
bindsym $mod+Ctrl+1 exec "setxkbmap us dvorak" bindsym $mod+Ctrl+2 exec "setxkbmap us"