From ArchWiki

From Wikipedia:

Dvorak is a keyboard layout for English patented in 1936 by August Dvorak and his brother-in-law, William Dealey, as a faster and more ergonomic alternative to the QWERTY layout (the de facto standard keyboard layout). Dvorak proponents claim that it requires less finger motion and as a result reduces errors, increases typing speed, reduces repetitive strain injuries, or is simply more comfortable than QWERTY.

Setting Dvorak Layout

See Keyboard configuration in console or Keyboard configuration in Xorg for configuration details.

For the virtual terminal, dvorak and the regional keyboard are combined into one keymap. But Xorg lists dvorak as variant of your regional keymap.

The us Dvorak keymaps for the virtual terminal are:

  • dvorak, Standard
  • dvorak-l, Left handed Dvorak
  • dvorak-r, Right handed Dvorak
  • dvorak-programmer, Programmer Dvorak

The us Dvorak keymaps for Xorg are:

  • dvorak, Standard
  • dvorak-l, Left Handed Dvorak
  • dvorak-r, Right Handed Dvorak
  • dvp, Programmer Dvorak
  • dvorak-intl, International Dvorak
  • dvorak-classic
  • dvorak-alt-intl
Note: For console, these are standalone keymaps, but for Xorg these are variants of the us layout, you need to pass them to XkbVariant variable. See Keyboard configuration in Xorg#Setting keyboard layout for an explanation.

For international users


The french variant is called Bépo.


Swedish people interested in trying dvorak can find the swedish "version", called svorak, at aoeu.info! To convert to svorak in X you do not need to download any additional files from www.aoeu.info.


In console, specify dvorak-es instead of dvorak to use the Spanish dvorak variant.

In Xorg, specify es as XkbLayout and dvorak as XkbVariant.

United Kingdom

In console, specify dvorak-ukp (available from dvorak-ukpAUR) instead of dvorak to use the United Kingdom dvorak variant with ISO/IEC 9995-1 punctuation.

In Xorg, specify gb as XkbLayout and dvorakukp as XkbVariant.

Program specific rebinding

These are some simple and sane sugguestions for rebinding in keyboard-centric programs. Since Dvorak's keys lean more to the right of the keyboard, the home row used here is htns.


noremap h <left>
noremap t <down>
noremap n <up>   
noremap s <right>

noremap l n
noremap L N
Note: Here n stands for the n search repeat command and have nothing to do with the n key. See :help n

See also Vim Wiki, if you want a more extreme approach.


bind index t next-entry
bind index n previous-entry
bind index s display-message

bind index G last-entry
bind index gg first-entry

bind pager,attach h exit
bind pager t next-line
bind pager n previous-line
bind pager s view-attachments

bind browser h goto-parent
bind pager,browser gg top-page
bind pager,browser G bottom-page


t         forw-line
n         back-line
l         repeat-search 
L         reverse-search

To apply settings you have to run lesskey.


map h scroll left
map t scroll down
map n scroll up
map s scroll right

map l search forward
map L search backward


config.bind('h', 'scroll left')
config.bind('t', 'scroll down')
config.bind('n', 'scroll up')
config.bind('s', 'scroll right')

config.bind('H', 'back')
config.bind('T', 'tab-prev')
config.bind('N', 'tab-next')
config.bind('S', 'forward')

config.bind('l', 'search-next')
config.bind('L', 'search-prev')

config.bind('e', 'hint all')

Typing tutors

  • ktouch (includes Dvorak lessons in English, French, German & Spanish)
  • klavaro Dvorak lessons: (BG; BR; DE_neo2; EO; FR; FR_bépo; TR; UK; US; US_BR; US_ES; US_SE)