5

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?

What my matchbox-keyboard looks like

BunniFaccie
  • 61
  • 1
  • 1
  • 4

4 Answers4

6

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.

Warr1611
  • 435
  • 8
  • 10
1

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="&amp;" />
      <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="&lt;" action="xkeysym:less" />
      <mod1    display="ý" action="xkeysym:yacute" />
      <mod2    display="Ý" action="xkeysym:Yacute" />
      <mod3    display="≤" />
    </key>

    <key>
      <default display="." />
      <shifted display="&gt;" 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="&#173;" />
    </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="&#160;"/>
    </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>

View of the keyboard and its directory

1

matchbox is a very primitive virtual keyboard. If you're open to other options I recommend checking out Onboard which makes theming & customization much easier. On raspbian you will also need the at-spi2-core module

novwhisky
  • 446
  • 3
  • 14
0

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="&amp;" />                
          <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="&lt;" />
    </key>
    <key>
      <default display="." />                
      <shifted display="&gt;" />
    </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>
bstipe
  • 252
  • 2
  • 6