I followed some guides to install an onscreen keyboard (matchbox-keyboard) and create a toggle button but for some reason the default layout that was installed for me is missing everything but basic shift, enter, backspace, space, and letters. The guides screenshots at least also had numbers and navigation keys. How can I change to a layout with more keys?
4 Answers
You need to change/create the default xml template in your home folder. You can find some example templates at /usr/share/matchbox-keyboard/
. I liked the keyboard-lq1.xml
the best, though it still isn't much to look at (at least on my screen).
mkdir ~/.matchbox
sudo cp /usr/share/matchbox-keyboard/keyboard-lq1.xml ~/.matchbox/keyboard.xml
sudo chown pi:pi ~/.matchbox/keyboard.xml
You can also create custom layouts by modifying the xml. You can find a description in matchbox's Github repo: https://github.com/mwilliams03/matchbox-keyboard
I haven't had any luck finding examples online except pictures (no xml examples), but you might have better luck with your Google-foo.

- 435
- 8
- 10
-
Thanks. This worked and should really be default. – user2924019 Jul 13 '22 at 13:37
Here a version where I crammed the UTF-8 or HTML equivalents of all 220 or so extended ASCII characters, 12 function keys and some more into 1 keyboard.
It's assembled from example keyboards found in the installation and online, as well as a list of ASCII characters and some experimenting. Feel free to use it and remove what you don't need.
Tested on Raspberry OS with a PI Zero and PI 4, using a 1920x1080 display. Works fine on an image downloaded from Raspberry but not on one pre-installed by a vendor; will check why when I find time. Some special characters don't display correctly on the keyboard, depending on your configuration, and may require using images. Some characters require methods to work and may not be 100% reliable. Keyboard sometimes opens with a title bar and options like resize or move and sometimes without; not sure why. (Edit: It was an older version which didn't supply graphic files for tab, arrows and so on, so I created my own. Useful error message appeared when starting it from the terminal).
Options like language specific layouts aren't tested or implemented. Examples should be sufficient to understand how to add further keys. Some controls are missing or not really tested. Feel free to make improvements. Besides this code to be saved as keyboard.xml
, you may want to create the PNG files arrow_down
, arrow_up
, arrow_left
, arrow_right
, arrow_up_1
, caps
and caps_up
in your .matchbox
directory.
<?xml version="1.0" encoding="UTF-8"?>
<keyboard>
<layout id="crammy keyboard">
<row>
<key>
<default display="`" action="xkeysym:grave" />
<shifted display="~" action="~" />
<mod1 display="´" action="´" />
<mod2 display="°" />
<mod3 display="esc" action="escape" />
</key>
<key extended="true">
<default display="ˆ" action="ˆ" />
<shifted display="˜" />
<mod1 display="¨" />
<mod2 display="¯" />
<mod3 display="¸" />
</key>
<key>
<default display="1" />
<shifted display="!" />
<mod1 display="image:/usr/share/matchbox-keyboard/super_1.png" action="xkeysym:onesuperior" />
<mod2 display="image:/usr/share/matchbox-keyboard/sub_1.png" action="xkeysym:onesubscript" />
<mod3 display="f1" action="f1" />
</key>
<key>
<default display="2" />
<shifted display="@" />
<mod1 display="image:/usr/share/matchbox-keyboard/super_2.png" action="xkeysym:twosuperior" />
<mod2 display="image:/usr/share/matchbox-keyboard/sub_2.png" action="xkeysym:twosubscript" />
<mod3 display="f2" action="f2" />
</key>
<key>
<default display="3" />
<shifted display="#" />
<mod1 display="image:/usr/share/matchbox-keyboard/super_3.png" action="xkeysym:threesuperior" />
<mod2 display="image:/usr/share/matchbox-keyboard/sub_3.png" action="xkeysym:threesubscript" />
<mod3 display="f3" action="f3" />
</key>
<key>
<default display="4" />
<shifted display="$" />
<mod1 display="image:/usr/share/matchbox-keyboard/super_4.png" action="xkeysym:foursuperior" />
<mod2 display="image:/usr/share/matchbox-keyboard/sub_4.png" action="xkeysym:foursubscript" />
<mod3 display="f4" action="f4" />
</key>
<key>
<default display="5" />
<shifted display="%" />
<mod1 display="image:/usr/share/matchbox-keyboard/super_5.png" action="xkeysym:fivesuperior" />
<mod2 display="image:/usr/share/matchbox-keyboard/sub_5.png" action="xkeysym:fivesubscript" />
<mod3 display="f5" action="f5" />
</key>
<key>
<default display="6" />
<shifted display="^" />
<mod1 display="image:/usr/share/matchbox-keyboard/super_6.png" action="xkeysym:sixsuperior" />
<mod2 display="image:/usr/share/matchbox-keyboard/sub_6.png" action="xkeysym:sixsubscript" />
<mod3 display="f6" action="f6" />
</key>
<key>
<default display="7" />
<shifted display="&" />
<mod1 display="image:/usr/share/matchbox-keyboard/super_7.png" action="xkeysym:sevensuperior" />
<mod2 display="image:/usr/share/matchbox-keyboard/sub_7.png" action="xkeysym:sevensubscript" />
<mod3 display="f7" action="f7" />
</key>
<key>
<default display="8" />
<shifted display="*" />
<mod1 display="image:/usr/share/matchbox-keyboard/super_8.png" action="xkeysym:eightsuperior" />
<mod2 display="image:/usr/share/matchbox-keyboard/sub_8.png" action="xkeysym:eightsubscript" />
<mod3 display="f8" action="f8" />
</key>
<key>
<default display="9" />
<shifted display="(" />
<mod1 display="image:/usr/share/matchbox-keyboard/super_9.png" action="xkeysym:ninesuperior" />
<mod2 display="image:/usr/share/matchbox-keyboard/sub_9.png" action="xkeysym:ninesubscript" />
<mod3 display="f9" action="f9" />
</key>
<key>
<default display="0" />
<shifted display=")" />
<mod1 display="image:/usr/share/matchbox-keyboard/super_0.png" action="xkeysym:zerosuperior" />
<mod2 display="image:/usr/share/matchbox-keyboard/sub_0.png" action="xkeysym:zerosubscript" />
<mod3 display="f10" action="f10" />
</key>
<key>
<default display="-" />
<shifted display="_" />
<mod1 display="image:/usr/share/matchbox-keyboard/super_minus.png" action="¯" />
<mod2 display="image:/usr/share/matchbox-keyboard/sub_minus.png" action="₋" />
<mod3 display="f11" action="f11" />
</key>
<key>
<default display="=" />
<shifted display="+" />
<mod1 display="×" />
<mod2 display="÷" />
<mod3 display="f12" action="f12" />
</key>
<key extended="true">
<default display="≠" />
<shifted display="±" />
<mod1 display="image:/usr/share/matchbox-keyboard/super_plus.png" action="⁺" />
<mod2 display="image:/usr/share/matchbox-keyboard/sub_plus.png" action="₊" />
<mod3 display="¬" />
</key>
<space width="50" extended="true" />
<key width="1000" fill="true">
<default display="⇦" action="backspace" />
<shifted display="⇨" action="delete" />
<mod1 display="image:/usr/share/matchbox-keyboard/arrow.png" action="Undo" />
<mod2 display="image:/usr/share/matchbox-keyboard/arrow.png" action="Redo" />
</key>
</row>
<row>
<key width="1250" fill="true">
<default display="image:/usr/share/matchbox-keyboard/arrows.png" action="tab" />
</key>
<key obey-caps="true">
<default display="q" />
<shifted display="Q" />
<mod1 display="à" action="xkeysym:agrave" />
<mod2 display="À" action="xkeysym:Agrave" />
<mod3 display="¹" />
</key>
<key obey-caps="true">
<default display="w" />
<shifted display="W" />
<mod1 display="á" action="xkeysym:aacute" />
<mod2 display="Á" action="xkeysym:Aacute" />
<mod3 display="²" />
</key>
<key obey-caps="true">
<default display="e" />
<shifted display="E" />
<mod1 display="â" action="xkeysym:acircumflex" />
<mod2 display="Â" action="xkeysym:Acircumflex" />
<mod3 display="³" />
</key>
<key obey-caps="true">
<default display="r" />
<shifted display="R" />
<mod1 display="ä" action="xkeysym:adiaeresis" />
<mod2 display="Ä" action="xkeysym:Adiaeresis" />
<mod3 display="∞" />
</key>
<key obey-caps="true">
<default display="t" />
<shifted display="T" />
<mod1 display="ã" action="xkeysym:atilde" />
<mod2 display="Ã" action="xkeysym:Atilde" />
<mod3 display="‰" />
</key>
<key obey-caps="true">
<default display="y" />
<shifted display="Y" />
<mod1 display="å" action="xkeysym:aring" />
<mod2 display="Å" action="xkeysym:Aring" />
<mod3 display="½" />
</key>
<key obey-caps="true">
<default display="u" />
<shifted display="U" />
<mod1 display="æ" action="xkeysym:ae" />
<mod2 display="Æ" action="xkeysym:AE" />
<mod3 display="¼" />
</key>
<key obey-caps="true">
<default display="i" />
<shifted display="I" />
<mod1 display="ç" action="xkeysym:ccedilla" />
<mod2 display="Ç" action="xkeysym:Ccedilla" />
<mod3 display="¾" />
</key>
<key obey-caps="true">
<default display="o" />
<shifted display="O" />
<mod1 display="ð" action="xkeysym:eth" />
<mod2 display="Ð" action="xkeysym:ETH" />
<mod3 display="º" />
</key>
<key obey-caps="true">
<default display="p" />
<shifted display="P" />
<mod1 display="è" action="xkeysym:egrave" />
<mod2 display="È" action="xkeysym:Egrave" />
<mod3 display="" />
</key>
<key>
<default display="[" />
<shifted display="{" />
<mod1 display="é" action="xkeysym:eacute" />
<mod2 display="É" action="xkeysym:Eacute" />
<mod3 display="" />
</key>
<key>
<default display="]" />
<shifted display="}" />
<mod1 display="ê" action="xkeysym:ecircumflex" />
<mod2 display="Ê" action="xkeysym:Ecircumflex" />
<mod3 display="" />
</key>
<key>
<default display="\" />
<shifted display="|" />
<mod1 display="ë" action="xkeysym:ediaeresis" />
<mod2 display="Ë" action="xkeysym:Ediaeresis" />
<mod3 display="" />
</key>
<key extended="true">
<default display="…" />
<shifted display="¦" />
<mod1 display="ì" action="xkeysym:igrave" />
<mod2 display="Ì" action="xkeysym:Igrave" />
<mod3 display="→" />
</key>
<key extended="true">
<default display="¤" />
<shifted display="¢" />
<mod1 display="€" />
<mod2 display="¥" />
<mod3 display="£" />
</key>
</row>
<row>
<key width="1250" fill="true">
<default display="image:caps.png" action="modifier:caps" />
<shifted display="image:caps_up.png" action="modifier:caps" />
</key>
<key obey-caps="true">
<default display="a" />
<shifted display="A" />
<mod1 display="í" action="xkeysym:iacute" />
<mod2 display="Í" action="xkeysym:Iacute" />
<mod3 display="ª" />
</key>
<key obey-caps="true">
<default display="s" />
<shifted display="S" />
<mod1 display="î" action="xkeysym:icircumflex" />
<mod2 display="Î" action="xkeysym:Icircumflex" />
<mod3 display="ß" />
</key>
<key obey-caps="true">
<default display="d" />
<shifted display="D" />
<mod1 display="ï" action="xkeysym:idiaeresis" />
<mod2 display="Ï" action="xkeysym:Idiaeresis" />
<mod3 display="" />
</key>
<key obey-caps="true">
<default display="f" />
<shifted display="F" />
<mod1 display="ñ" action="xkeysym:ntilde" />
<mod2 display="Ñ" action="xkeysym:Ntilde" />
<mod3 display="ƒ" />
</key>
<key obey-caps="true">
<default display="g" />
<shifted display="G" />
<mod1 display="ò" action="xkeysym:ograve" />
<mod2 display="Ò" action="xkeysym:Ograve" />
<mod3 display="" />
</key>
<key obey-caps="true">
<default display="h" />
<shifted display="H" />
<mod1 display="ó" action="xkeysym:oacute" />
<mod2 display="Ó" action="xkeysym:Oacute" />
<mod3 display="" />
</key>
<key obey-caps="true">
<default display="j" />
<shifted display="J" />
<mod1 display="ô" action="xkeysym:ocircumflex" />
<mod2 display="Ô" action="xkeysym:Ocircumflex" />
<mod3 display="" />
</key>
<key obey-caps="true">
<default display="k" />
<shifted display="K" />
<mod1 display="ö" action="xkeysym:odiaeresis" />
<mod2 display="Ö" action="xkeysym:Odiaeresis" />
<mod3 display="" />
</key>
<key obey-caps="true">
<default display="l" />
<shifted display="L" />
<mod1 display="õ" action="xkeysym:otilde" />
<mod2 display="Õ" action="xkeysym:Otilde" />
<mod3 display="" />
</key>
<key>
<default display=";" />
<shifted display=":" />
<mod1 display="ø" action="xkeysym:oslash" />
<mod2 display="Ø" action="xkeysym:Oslash" />
<mod3 display="" />
</key>
<key>
<default display="'" />
<shifted display='"' />
<mod1 display="œ" />
<mod2 display="Œ" />
<mod3 display="" />
</key>
<key extended="true">
<default display="¶" />
<shifted display="§" />
<mod1 display="·" />
<mod2 display="•" />
<mod3 display="" />
</key>
<key width="2000" fill="true">
<default display="⏎" action="return" />
<mod1 display="lf" action="linefeed" />
</key>
</row>
<row>
<key width="1500" fill="true">
<default display="⇧" action="modifier:shift" />
<caps display="⇪⇪" action="modifier:shift" />
</key>
<key obey-caps="true">
<default display="z" />
<shifted display="Z" />
<mod1 display="ž" />
<mod2 display="Ž" />
<mod3 display="" />
</key>
<key obey-caps="true">
<default display="x" />
<shifted display="X" />
<mod1 display="š" />
<mod2 display="Š" />
<mod3 display="" />
</key>
<key obey-caps="true">
<default display="c" />
<shifted display="C" />
<mod1 display="þ" action="xkeysym:thorn" />
<mod2 display="Þ" action="xkeysym:THORN" />
<mod3 display="" />
</key>
<key obey-caps="true">
<default display="v" />
<shifted display="V" />
<mod1 display="ù" action="xkeysym:ugrave" />
<mod2 display="Ù" action="xkeysym:Ugrave" />
<mod3 display="" />
</key>
<key obey-caps="true">
<default display="b" />
<shifted display="B" />
<mod1 display="ú" action="xkeysym:uacute" />
<mod2 display="Ú" action="xkeysym:Uacute" />
<mod3 display="" />
</key>
<key obey-caps="true">
<default display="n" />
<shifted display="N" />
<mod1 display="û" action="xkeysym:ucircumflex" />
<mod2 display="Û" action="xkeysym:Ucircumflex" />
<mod3 display="" />
</key>
<key obey-caps="true">
<default display="m" />
<shifted display="M" />
<mod1 display="ü" action="xkeysym:udiaeresis" />
<mod2 display="Ü" action="xkeysym:Udiaeresis" />
<mod3 display="μ" action="xkeysym:Greek_mu" />
</key>
<key>
<default display="," />
<shifted display="<" action="xkeysym:less" />
<mod1 display="ý" action="xkeysym:yacute" />
<mod2 display="Ý" action="xkeysym:Yacute" />
<mod3 display="≤" />
</key>
<key>
<default display="." />
<shifted display=">" action="xkeysym:greater" />
<mod1 display="ÿ" />
<mod2 display="Ÿ" />
<mod3 display="≥" />
</key>
<key>
<default display="/" />
<shifted display="?" />
<mod1 display="¿" />
<mod2 display="¡" />
<mod3 display="" />
</key>
<key>
<default display="image:arrow_up.png" action="xkeysym:Up" />
<shifted display="image:arrow_up.png" action="xkeysym:Up" />
<mod1 display="up" action="pageup" />
<mod2 display="image:arrow_up.png" action="xkeysym:Prior" />
</key>
<key extended="true">
<default display="‚" />
<shifted display='„' />
<mod1 display="–" />
<mod2 display="—" />
<mod3 display="-" action="­" />
</key>
<key extended="true">
<default display="‘" />
<shifted display='“' />
<mod1 display="‹" />
<mod2 display="«" />
<mod3 display="√" />
</key>
<key extended="true">
<default display="’" />
<shifted display='”' />
<mod1 display="›" />
<mod2 display="»" />
<mod3 display="∫" />
</key>
<key obey-caps="true" extended="true">
<default display="®" />
<shifted display="©" />
<mod1 display="™" />
<mod2 display="†" />
<mod3 display="‡" />
</key>
</row>
<row>
<key width="750">
<default display="image:arrow_up_1.png" action="modifier:mod1" />
</key>
<key width="750">
<default display="image:/usr/share/matchbox-keyboard/shift_2.png" action="modifier:mod2" />
</key>
<key width="750">
<default display="image:/usr/share/matchbox-keyboard/shift_3.png" action="modifier:mod3" />
</key>
<key width="750">
<default display="al" action="modifier:alt" />
</key>
<key width="750">
<default display="ct" action="modifier:ctrl" />
</key>
<space width="50" extended="true" />
<key width="4600" fill="true">
<default display=" " action="space" />
<mod3 display="nbsp" action=" "/>
</key>
<space width="50" extended="true" />
<key obey-caps="false" extended="true">
<default display="α" action="xkeysym:Greek_alpha" />
<shifted display="β" action="xkeysym:Greek_beta" />
<mod1 display="γ" action="xkeysym:Greek_gamma" />
<mod2 display="Γ" action="xkeysym:Greek_GAMMA" />
<mod3 display="τ" action="xkeysym:Greek_tau" />
</key>
<key>
<default display="image:arrow_left.png" action="xkeysym:Left" />
<shifted display="image:arrow_left.png" action="xkeysym:Left" />
<mod1 display="image:arrow_left.png" action="home" />
<mod2 display="image:arrow_left.png" action="xkeysym:Left" />
</key>
<key>
<default display="image:arrow_down.png" action="xkeysym:Down" />
<shifted display="image:arrow_down.png" action="xkeysym:Down" />
<mod1 display="dn" action="pagedown" />
<mod2 display="image:arrow_down.png" action="xkeysym:Next" />
</key>
<key>
<default display="image:arrow_right.png" action="xkeysym:Right" />
<shifted display="image:arrow_right.png" action="xkeysym:Right" />
<mod1 display="image:arrow_right.png" action="end" />
<mod2 display="image:arrow_right.png" action="xkeysym:Right" />
</key>
<key obey-caps="true" extended="true">
<default display="δ" action="xkeysym:Greek_delta" />
<shifted display="Δ" action="xkeysym:Greek_DELTA" />
<mod1 display="λ" action="xkeysym:Greek_lambda" />
<mod2 display="Λ" />
<mod3 display="ρ" action="xkeysym:Greek_rho" />
</key>
<key obey-caps="true" extended="true">
<default display="σ" action="xkeysym:Greek_sigma" />
<shifted display="Σ" />
<mod1 display="θ" action="xkeysym:Greek_theta" />
<mod2 display="Θ" />
<mod3 display="ϕ" />
</key>
<key obey-caps="true" extended="true">
<default display="π" action="xkeysym:Greek_pi" />
<shifted display="Π" action="xkeysym:Greek_PI" />
<mod1 display="ω" action="xkeysym:Greek_omega" />
<mod2 display="Ω" action="xkeysym:Greek_OMEGA" />
<mod3 display="ε" action="xkeysym:Greek_epsilon" />
</key>
</row>
</layout>
</keyboard>

- 11
- 3
-
Did you ever find out how to show the title bar & close button for the keyboard? – novwhisky Oct 18 '22 at 04:06
I have had the same problem. I could not find a good solution online so by working with the /usr/share/matchbox-keyboard/keyboard.xml configuration file, the spacing of the different rows determines the font size. Here is the configuration file that works for me.
<?xml version="1.0" encoding="UTF-8"?>
<keyboard>
<options>
<!-- not yet implemented -->
</options>
<layout id="default keyboard">
<row>
<space width="500" extended="true"/>
<key fill="true">
<default display="Esc" action="escape" />
</key>
<key width="1500">
<default display="1" />
<shifted display="!" />
<mod1 display="F1" action="f1"/>
</key>
<key width="1500">
<default display="2" />
<shifted display='@' />
<mod1 display="F2" action="f2"/>
</key>
<key width="1500">
<default display="3" />
<shifted display="#" />
<mod1 display="F3" action="f3"/>
</key>
<key width="1500">
<default display="4" />
<shifted display="$" />
<mod1 display="F4" action="f4"/>
</key>
<key width="1500">
<default display="5" />
<shifted display="%" />
<mod1 display="F5" action="f5"/>
</key>
<key width="1500">
<default display="6" />
<shifted display="^" />
<mod1 display="F6" action="f6"/>
</key>
<key width="1500">
<default display="7" />
<shifted display="&" />
<mod1 display="F7" action="f7"/>
</key>
<key width="1500">
<default display="8" />
<shifted display="*" />
<mod1 display="F8" action="f8"/>
</key>
<key width="1500">
<default display="9" />
<shifted display="(" />
<mod1 display="F9" action="f9"/>
</key>
<key fill="true">
<default display="0" />
<shifted display=")" />
<mod1 display="F10" action="f10"/>
</key>
<key fill="true">
<default display="-" />
<shifted display="_" />
<mod1 display="F11" action="f11"/>
</key>
<key fill="true">
<default display="=" />
<shifted display="+" />
<mod1 display="F12" action="f12"/>
</key>
<key fill="true">
<default display="Ins" action="insert"/>
</key>
<key fill="true">
<default display="Del" action="delete"/>
</key>
<space width="500" extended="true"/>
<key width="4000" extended="true">
<default display="Home" action="home"/>
</key>
<key width="4000" extended="true">
<default display="PgUp" action="pageup"/>
</key>
<space width="500" extended="true"/>
</row>
<row>
<space width="500" extended="true"/>
<key fill="true">
<!-- <default display="↹" action="tab"/> -->
<default display="Tab" action="tab"/>
</key>
<key>
<default display="`" />
<shifted display="~" />
</key>
<key obey-caps='true'>
<default display="q" />
<shifted display="Q" />
</key>
<key obey-caps='true'>
<default display="w" />
<shifted display="W" />
</key>
<key obey-caps='true'>
<default display="e" />
<shifted display="E" />
</key>
<key obey-caps='true'>
<default display="r" />
<shifted display="R" />
</key>
<key obey-caps='true'>
<default display="t" />
<shifted display="T" />
</key>
<key obey-caps='true'>
<default display="y" />
<shifted display="Y" />
</key>
<key obey-caps='true'>
<default display="u" />
<shifted display="U" />
</key>
<key obey-caps='true'>
<default display="i" />
<shifted display="I" />
</key>
<key obey-caps='true'>
<default display="o" />
<shifted display="O" />
</key>
<key obey-caps='true'>
<default display="p" />
<shifted display="P" />
</key>
<key>
<default display="{" />
<shifted display="[" />
</key>
<key>
<default display="}" />
<shifted display="]" />
</key>
<key>
<default display="\" />
<shifted display="|" />
</key>
<key fill="true">
<default display="Bksp" action="backspace"/>
</key>
<space width="500" extended="true"/>
<key width="4000" extended="true">
<default display="End" action="end"/>
</key>
<key width="4000" extended="true">
<default display="PgDn" action="pagedown"/>
</key>
<space width="500" extended="true"/>
</row>
<row>
<space width="500" extended="true"/>
<key fill="true">
<default display="Caps" action="modifier:caps"/>
</key>
<key obey-caps='true'>
<default display="a" />
<shifted display="A" />
</key>
<key obey-caps='true'>
<default display="s" />
<shifted display="S" />
</key>
<key obey-caps='true'>
<default display="d" />
<shifted display="D" />
</key>
<key obey-caps='true'>
<default display="f" />
<shifted display="F" />
</key>
<key obey-caps='true'>
<default display="g" />
<shifted display="G" />
</key>
<key obey-caps='true'>
<default display="h" />
<shifted display="H" />
</key>
<key obey-caps='true'>
<default display="j" />
<shifted display="J" />
</key>
<key obey-caps='true'>
<default display="k" />
<shifted display="K" />
</key>
<key obey-caps='true'>
<default display="l" />
<shifted display="L" />
</key>
<key>
<default display=";" />
<shifted display=":" />
</key>
<key>
<default display="'" />
<shifted display='"' />
</key>
<key fill="true">
<default display="Enter" action="return"/>
</key>
<space width="500" extended="true"/>
<space width="4000" extended="true" />
<space width="4000" extended="true" />
<space width="500" extended="true"/>
</row>
<row>
<space width="500" extended="true"/>
<key fill="true">
<default display="Shift" action="modifier:shift"/>
</key>
<key obey-caps='true'>
<default display="z" />
<shifted display="Z" />
</key>
<key obey-caps='true'>
<default display="x" />
<shifted display="X" />
</key>
<key obey-caps='true'>
<default display="c" />
<shifted display="C" />
</key>
<key obey-caps='true'>
<default display="v" />
<shifted display="V" />
</key>
<key obey-caps='true'>
<default display="b" />
<shifted display="B" />
</key>
<key obey-caps='true'>
<default display="n" />
<shifted display="N" />
</key>
<key obey-caps='true'>
<default display="m" />
<shifted display="M" />
</key>
<key>
<default display="," />
<shifted display="<" />
</key>
<key>
<default display="." />
<shifted display=">" />
</key>
<key>
<default display="/" />
<shifted display="?" />
</key>
<key fill="true">
<default display="Shift" action="modifier:shift"/>
</key>
<space width="500" extended="true"/>
<key width="4000" extended="true">
<default display="Up" action="up"/>
</key>
<key width="4000" extended="true">
<default display="Down" action="down"/>
</key>
<space width="500" extended="true"/>
</row>
<row>
<space width="500" extended="true"/>
<key width="4000" extended="true">
<default display="Ctrl" action="modifier:ctrl"/>
</key>
<key width="4000" extended="true">
<default display="Alt" action="modifier:alt"/>
</key>
<!-- <key fill="true"> -->
<key width="16000" extended="true">
<default display=" S p a c e B a r " action="space" />
</key>
<key width="5000" extended="true">
<default display="Func" action="modifier:mod1"/>
</key>
<space width="500" extended="true"/>
<key width="4000" extended="true">
<default display="Left" action="left"/>
</key>
<key width="4000" extended="true">
<default display="Right" action="right"/>
</key>
<space width="500" extended="true"/>
</row>
</layout>
</keyboard>

- 252
- 2
- 6