Dvorak keyboard layout for Garmin nuvi GPS

Former Member
Former Member
Hello everyone,

I have a Garmin nuvi 50. Also, I normally use the Dvorak keyboard layout on my desktop computers and smartphone. Unfortunately, Garmin does not support this layout in the GPS touchscreen GUI. But I've found a way to add it in!

Attached is a file that is a modification of the stock Keyboards/en_US.kbd file. It adds a new "Dvorak" keyboard option, selectable via the settings GUI in the usual manner. The other keyboards (QWERTY, ABCDE, etc.) remain available if desired.

I created this about two years ago, and have been happily using it ever since. I hope that others may find it useful. (If anyone wants this layout for a locale other than en_US, or wants a different layout altogether, my work may serve as a reference for their own customizations.)

How to install this keyboard:
  • Connect the GPS unit to your host computer, in USB Mass Storage mode
  • Go to the "Keyboards" folder on the device filesystem
  • Rename the original en_US.kbd file to en_US.kbd.orig . This will make reverting the change easier if you want to do so later.
  • Copy the en_US_dvorak.kbd.txt file into this same folder, and rename it to remove the .txt filename extension. (It should show as a "KBD File," not a "Text Document.") There is no need to remove the "_dvorak" part from the filename.
  • Disconnect the GPS unit (safely!) from the computer, let it boot into the normal navigator interface, and look for a new "Dvorak" keyboard in the settings GUI.
  • Former Member
    Former Member over 6 years ago
    The file attached to the original post doesn't work. That is, I got an error when I tried to download it.
    Copy the following (posted in multiple parts because of length restrictions) text.
    Paste it into a text editor.
    Save it.
    Name it: en_Dv.kbd
    Drag it into the "keyboards" folder on your garmin gps.

    It will then appear as a keyboard option on your garmin device.

    <?xml version='1.0' encoding='UTF-8'?>
    <keyboards>
    <header>
    <lang_id>en_Dv</lang_id>
    <display_name>American English Dvorak</display_name>
    <trans_name>STR_LANGUAGE_AMERICAN_DVORAK</trans_name>
    <code_page>1252</code_page>

    <version>1.30</version>
    </header>

    <group layout_type="dvorak" name="DVORAK" priority="1" wide_screen_only="true">
    <keyboard name="Dvorak">

    <key h="2" type="normal" w="2" x="0" y="0">
    <levels>
    <level id="0,1" label="1" output="1" />
    </levels>
    </key>
    <key h="2" type="normal" w="2" x="2" y="0">
    <levels>
    <level id="0,1" label="2" output="2" />
    </levels>
    </key>
    <key h="2" type="normal" w="2" x="4" y="0">
    <levels>
    <level id="0,1" label="3" output="3" />
    </levels>
    </key>
    <key h="2" type="normal" w="2" x="6" y="0">
    <levels>
    <level id="0,1" label="4" output="4" />
    </levels>
    </key>
    <key h="2" type="normal" w="2" x="8" y="0">
    <levels>
    <level id="0,1" label="5" output="5" />
    </levels>
    </key>
    <key h="2" type="normal" w="2" x="10" y="0">
    <levels>
    <level id="0,1" label="6" output="6" />
    </levels>
    </key>
    <key h="2" type="normal" w="2" x="12" y="0">
    <levels>
    <level id="0,1" label="7" output="7" />
    </levels>
    </key>
    <key h="2" type="normal" w="2" x="14" y="0">
    <levels>
    <level id="0,1" label="8" output="8" />
    </levels>
    </key>
    <key h="2" type="normal" w="2" x="16" y="0">
    <levels>
    <level id="0,1" label="9" output="9" />
    </levels>
    </key>
    <key h="2" type="normal" w="2" x="18" y="0">
    <levels>
    <level id="0,1" label="0" output="0" />
    </levels>
    </key>
    <key h="2" type="normal" w="2" x="20" y="0">
    <levels>
    <level id="0" label="+" output="+" />
    <level id="1" label="-" output="-" />
    </levels>
    </key>


    <key display_style="alt" h="2" type="spacer" w="1" x="0" y="2">
    <levels>
    <level id="0,1" image="IMG_KB_BUTN_L_HNDL" />
    </levels>
    </key>
    <key h="2" type="normal" w="2" x="1" y="2">
    <levels>
    <level id="0" label="," output="," />
    <level id="1" label="," output="," />
    </levels>
    </key>
    <key h="2" type="normal" w="2" x="3" y="2">
    <levels>
    <level id="0" label="." output="." />
    <level id="1" label="." output="." />
    </levels>
    </key>
    <key h="2" type="normal" w="2" x="5" y="2">
    <levels>
    <level id="0" label="P" output="P" />
    <level id="1" label="p" output="p" />
    </levels>
    </key>
    <key h="2" type="normal" w="2" x="7" y="2">
    <levels>
    <level id="0" label="Y" output="Y" />
    <level id="1" label="y" output="y" />
    </levels>
    </key>
    <key h="2" type="normal" w="2" x="9" y="2">
    <levels>
    <level id="0" label="F" output="F" />
    <level id="1" label="f" output="f" />
    </levels>
    </key>
    <key h="2" type="normal" w="2" x="11" y="2">
    <levels>
    <level id="0" label="G" output="G" />
    <level id="1" label="g" output="g" />
    </levels>
    </key>
    <key h="2" type="normal" w="2" x="13" y="2">
    <levels>
    <level id="0" label="C" output="C" />
    <level id="1" label="c" output="c" />
    </levels>
    </key>
    <key h="2" type="normal" w="2" x="15" y="2">
    <levels>
    <level id="0" label="R" output="R" />
    <level id="1" label="r" output="r" />
    </levels>
    </key>
    <key h="2" type="normal" w="2" x="17" y="2">
    <levels>
    <level id="0" label="L" output="L" />
    <level id="1" label="l" output="l" />
    </levels>
    </key>
    <key display_style="alt" h="2" type="backspace" w="3" x="19" y="2">
    <levels>
    <level id="0,1" image="IMG_KB_BACKSPACE_BUTTON_ICON_HNDL" />
    </levels>
    </key>


    <key h="2" type="normal" w="2" x="0" y="4">
    <levels>
    <level id="0" label="A" output="A" />
    <level id="1" label="a" output="a" />
    </levels>
    </key>
    <key h="2" type="normal" w="2" x="2" y="4">
    <levels>
    <level id="0" label="O" output="O" />
    <level id="1" label="o" output="o" />
    </levels>
    </key>
    <key h="2" type="normal" w="2" x="4" y="4">
    <levels>
    <level id="0" label="E" output="E" />
    <level id="1" label="e" output="e" />
    </levels>
    </key>
    <key h="2" type="normal" w="2" x="6" y="4">
    <levels>
    <level id="0" label="U" output="U" />
    <level id="1" label="u" output="u" />
    </levels>
    </key>
    <key h="2" type="normal" w="2" x="8" y="4">
    <levels>
    <level id="0" label="I" output="I" />
    <level id="1" label="i" output="i" />
    </levels>
    </key>
    <key h="2" type="normal" w="2" x="10" y="4">
    <levels>
    <level id="0" label="D" output="D" />
    <level id="1" label="d" output="d" />
    </levels>
    </key>
    <key h="2" type="normal" w="2" x="12" y="4">
    <levels>
    <level id="0" label="H" output="H" />
    <level id="1" label="h" output="h" />
    </levels>
    </key>
    <key h="2" type="normal" w="2" x="14" y="4">
    <levels>
    <level id="0" label="T" output="T" />
    <level id="1" label="t" output="t" />
    </levels>
    </key>
    <key h="2" type="normal" w="2" x="16" y="4">
    <levels>
    <level id="0" label="N" output="N" />
    <level id="1" label="n" output="n" />
    </levels>
    </key>
    <key h="2" type="normal" w="2" x="18" y="4">
    <levels>
    <level id="0" label="S" output="S" />
    <level id="1" label="s" output="s" />
    </levels>
    </key>
    <key h="2" type="normal" w="2" x="20" y="4">
    <levels>
    <level id="0" label="'" output="'" />
    <level id="1" label="&quot;" output="&quot;" />
    </levels>
    </key>
  • Former Member
    Former Member over 6 years ago
    Part 2:

    <key bit="0" display_style="alt" h="2" sticky="FALSE" type="modifier" w="3" x="0" y="6">
    <levels>
    <level id="0,1" image="IMG_KB_SHIFT_BUTN_ICON_HNDL" />
    </levels>
    </key>
    <key h="2" type="normal" w="2" x="3" y="6">
    <levels>
    <level id="0" label="Q" output="Q" />
    <level id="1" label="q" output="q" />
    </levels>
    </key>
    <key h="2" type="normal" w="2" x="5" y="6">
    <levels>
    <level id="0" label="J" output="J" />
    <level id="1" label="j" output="j" />
    </levels>
    </key>
    <key h="2" type="normal" w="2" x="7" y="6">
    <levels>
    <level id="0" label="K" output="X" />
    <level id="1" label="k" output="x" />
    </levels>
    </key>
    <key h="2" type="normal" w="2" x="9" y="6">
    <levels>
    <level id="0" label="X" output="X" />
    <level id="1" label="x" output="x" />
    </levels>
    </key>
    <key h="2" type="normal" w="2" x="11" y="6">
    <levels>
    <level id="0" label="B" output="B" />
    <level id="1" label="b" output="b" />
    </levels>
    </key>
    <key h="2" type="normal" w="2" x="13" y="6">
    <levels>
    <level id="0" label="M" output="M" />
    <level id="1" label="m" output="m" />
    </levels>
    </key>
    <key h="2" type="normal" w="2" x="15" y="6">
    <levels>
    <level id="0" label="W" output="W" />
    <level id="1" label="w" output="w" />
    </levels>
    </key>
    <key h="2" type="normal" w="2" x="17" y="6">
    <levels>
    <level id="0" label="V" output="V" />
    <level id="1" label="v" output="v" />
    </levels>
    </key>
    <key h="2" type="normal" w="2" x="19" y="6">
    <levels>
    <level id="0" label="Z" output="Z" />
    <level id="1" label="z" output="z" />
    </levels>
    </key>


    <key display_style="alt" h="2" type="back" w="3" x="0" y="8">
    <levels>
    <level id="0,1" image="IMG_KB_BACK_BUTN_ICON_HNDL" />
    </levels>
    </key>
    <key display_style="alt" h="2" type="layout" w="4" x="3" y="8">
    <levels>
    <level id="0,1" label=" " />
    </levels>
    </key>
    <key h="2" type="normal" w="6" x="7" y="8">
    <levels>
    <level id="0,1" image="IMG_KB_SPACE_BUTN_ICON_HNDL" output=" " />
    </levels>
    </key>
    <key display_style="alt" h="2" type="mode" w="2" x="13" y="8">
    <levels>
    <level id="0,1" image="IMG_KB_MODE_BUTN_ICON_HNDL" />
    </levels>
    </key>
    <key display_style="submit" h="2" type="submit" w="5" x="15" y="8">
    <levels>
    <level id="0,1" label=" " />
    </levels>
    </key>
    </keyboard>

    <keyboard name="&amp;?%">

    <key h="2" type="normal" w="3" x="0" y="0">
    <levels>
    <level id="0,1" label="~" output="~" />
    </levels>
    </key>
    <key h="2" type="normal" w="3" x="3" y="0">
    <levels>
    <level id="0,1" label="!" output="!" />
    </levels>
    </key>
    <key h="2" type="normal" w="3" x="6" y="0">
    <levels>
    <level id="0,1" label="@" output="@" />
    </levels>
    </key>
    <key h="2" type="normal" w="3" x="9" y="0">
    <levels>
    <level id="0,1" label="#" output="#" />
    </levels>
    </key>
    <key h="2" type="normal" w="3" x="12" y="0">
    <levels>
    <level id="0,1" label="$" output="$" />
    </levels>
    </key>
    <key h="2" type="normal" w="3" x="15" y="0">
    <levels>
    <level id="0,1" label="%" output="%" />
    </levels>
    </key>


    <key h="2" type="normal" w="3" x="0" y="2">
    <levels>
    <level id="0,1" label="^" output="^" />
    </levels>
    </key>
    <key h="2" type="normal" w="3" x="3" y="2">
    <levels>
    <level id="0,1" label="&amp;" output="&amp;" />
    </levels>
    </key>
    <key h="2" type="normal" w="3" x="6" y="2">
    <levels>
    <level id="0,1" label="*" output="*" />
    </levels>
    </key>
    <key h="2" type="normal" w="3" x="9" y="2">
    <levels>
    <level id="0,1" label="=" output="=" />
    </levels>
    </key>
    <key h="2" type="normal" w="3" x="12" y="2">
    <levels>
    <level id="0,1" label="-" output="-" />
    </levels>
    </key>
    <key h="2" type="normal" w="3" x="15" y="2">
    <levels>
    <level id="0,1" label="+" output="+" />
    </levels>
    </key>


    <key h="2" type="normal" w="3" x="0" y="4">
    <levels>
    <level id="0,1" label="(" output="(" />
    </levels>
    </key>
    <key h="2" type="normal" w="3" x="3" y="4">
    <levels>
    <level id="0,1" label=")" output=")" />
    </levels>
    </key>
    <key h="2" type="normal" w="3" x="6" y="4">
    <levels>
    <level id="0,1" label=";" output=";" />
    </levels>
    </key>
    <key h="2" type="normal" w="3" x="9" y="4">
    <levels>
    <level id="0,1" label=":" output=":" />
    </levels>
    </key>
    <key h="2" type="normal" w="3" x="12" y="4">
    <levels>
    <level id="0,1" label="'" output="'" />
    </levels>
    </key>
    <key h="2" type="normal" w="3" x="15" y="4">
    <levels>
    <level id="0,1" label="&quot;" output="&quot;" />
    </levels>
    </key>


    <key h="2" type="normal" w="3" x="0" y="6">
    <levels>
    <level id="0,1" label="`" output="`" />
    </levels>
    </key>
    <key h="2" type="normal" w="3" x="3" y="6">
    <levels>
    <level id="0,1" label="," output="," />
    </levels>
    </key>
    <key h="2" type="normal" w="3" x="6" y="6">
    <levels>
    <level id="0,1" label="." output="." />
    </levels>
    </key>
    <key h="2" type="normal" w="3" x="9" y="6">
    <levels>
    <level id="0,1" label="/" output="/" />
    </levels>
    </key>
    <key h="2" type="normal" w="3" x="12" y="6">
    <levels>
    <level id="0,1" label="?" output="?" />
    </levels>
    </key>
    <key display_style="alt" h="2" type="backspace" w="3" x="15" y="6">
    <levels>
    <level id="0,1" image="IMG_KB_BACKSPACE_BUTTON_ICON_HNDL" />
    </levels>
    </key>


    <key display_style="alt" h="2" type="back" w="4" x="0" y="8">
    <levels>
    <level id="0,1" image="IMG_KB_BACK_BUTN_ICON_HNDL" />
    </levels>
    </key>
    <key display_style="alt" h="2" type="layout" w="4" x="4" y="8">
    <levels>
    <level id="0,1" label=" " />
    </levels>
    </key>
    <key h="2" type="normal" w="8" x="8" y="8">
    <levels>
    <level id="0,1" image="IMG_KB_SPACE_BUTN_ICON_HNDL" output=" " />
    </levels>
    </key>
    <key display_style="alt" h="2" type="mode" w="2" x="16" y="8">
    <levels>
    <level id="0,1" image="IMG_KB_MODE_BUTN_ICON_HNDL" />
    </levels>
    </key>
    <key display_style="submit" h="2" type="submit" w="4" x="19" y="8">
    <levels>
    <level id="0,1" label=" " />
    </levels>
    </key>
    </keyboard>
    </group>





    </keyboards>
  • This forum is about Garmin Connect IQ so I'm closing this thread.