Create a new file in the
/usr/share/X11/xkb/symbols/
directory. You can name the file anything you like, but it's recommended to use a name that reflects your new layout.For example, you can create a file called "mydvorak" by opening a terminal and typing the following command:
sudo gedit /usr/share/X11/xkb/symbols/mydvorak
In the new file, define your new layout. You can use the existing
dvorak
layout as a starting point, and make modifications as needed.Here's an example of a modified
dvorak
layout that makes the symbol positioning easier for people coming fromqwerty
.// My custom Dvorak layout partial alphanumeric_keys xkb_symbols "basic" { include "us(dvorak)" key <AE11> { [ minus, underscore ] }; key <AE12> { [ equal, plus ] }; key <AC11> { [ slash, question ] }; key <AD11> { [ bracketleft, braceleft ] }; key <AD12> { [ bracketright, braceright ] }; key <BKSL> { [ backslash, bar ] }; };
Save the file and exit the editor.
Edit the
/usr/share/X11/xkb/rules/evdev.xml
file to include a reference to your new layout.I added the following next to all the
dovrak
entries<variant> <configItem> <name>mydvorak</name> <description>mydvorak</description> </configItem> </variant>
Restart your computer to apply the changes.
How to switch keyboard layouts
you can use the setxkbmap
program to change the keyboard layouts.
I have setup the following aliases to switch back and forth between the qwerty
vs mydvorak
layout.
alias asdf="setxkbmap -v mydvorak"
alias aoeu="setxkbmap -v us"