<?xml version='1.0' encoding='UTF-8'?>
<keyboard format='2.2'>

    <!-- common key definitions -->

    <key_template id='AB01' keycode='52'/>
    <key_template id='AB02' keycode='53'/>
    <key_template id='AB03' keycode='54'/>
    <key_template id='AB04' keycode='55'/>
    <key_template id='AB05' keycode='56'/>
    <key_template id='AB06' keycode='57'/>
    <key_template id='AB07' keycode='58'/>
    <key_template id='AB08' keycode='59'/>
    <key_template id='AB09' keycode='60'/>
    <key_template id='AB10' keycode='61'/>
    <key_template id='AC01' keycode='38'/>
    <key_template id='AC02' keycode='39'/>
    <key_template id='AC03' keycode='40'/>
    <key_template id='AC04' keycode='41'/>
    <key_template id='AC05' keycode='42'/>
    <key_template id='AC06' keycode='43'/>
    <key_template id='AC07' keycode='44'/>
    <key_template id='AC08' keycode='45'/>
    <key_template id='AC09' keycode='46'/>
    <key_template id='AC10' keycode='47'/>
    <key_template id='AC11' keycode='48'/>
    <key_template id='AD01' keycode='24'/>
    <key_template id='AD02' keycode='25'/>
    <key_template id='AD03' keycode='26'/>
    <key_template id='AD04' keycode='27'/>
    <key_template id='AD05' keycode='28'/>
    <key_template id='AD06' keycode='29'/>
    <key_template id='AD07' keycode='30'/>
    <key_template id='AD08' keycode='31'/>
    <key_template id='AD09' keycode='32'/>
    <key_template id='AD10' keycode='33'/>
    <key_template id='AD11' keycode='34'/>
    <key_template id='AD12' keycode='35'/>
    <key_template id='AE01' keycode='10'/>
    <key_template id='AE02' keycode='11'/>
    <key_template id='AE03' keycode='12'/>
    <key_template id='AE04' keycode='13'/>
    <key_template id='AE05' keycode='14'/>
    <key_template id='AE06' keycode='15'/>
    <key_template id='AE07' keycode='16'/>
    <key_template id='AE08' keycode='17'/>
    <key_template id='AE09' keycode='18'/>
    <key_template id='AE10' keycode='19'/>
    <key_template id='AE11' keycode='20'/>
    <key_template id='AE12' keycode='21'/>
    <key_template id='TLDE' keycode='49'/>
    <key_template id='LSGT' keycode='94'/>
    <key_template id='BKSL' keycode='51'/>

    <key_template id='CAPS' keycode='66'  label='⇪'      modifier='caps'    sticky='true' label_x_align='0.0' sticky_behavior='lock' action='double-stroke'/>
    <key_template id='LFSH' keycode='62'  label='⇧'      modifier='shift'   sticky='true' label_x_align='0.0' action='single-stroke'/>
    <key_template id='RTSH' keycode='50'  label='⇧'      modifier='shift'   sticky='true' label_x_align='0.0' action='single-stroke'/>
    <key_template id='LCTL' keycode='37'  label='Ctrl'   modifier='control' sticky='true' action='single-stroke'/>
    <key_template id='RCTL' keycode='105' label='Ctrl'   modifier='control' sticky='true' action='single-stroke'/>
    <key_template id='LALT' keycode='64'  label='Alt'    modifier='mod1'    sticky='true' action='single-stroke'/>
    <key_template id='RALT' keycode='108' label='Alt Gr' modifier='mod5'    sticky='true' action='single-stroke'/>
    <key_template id='LWIN' keycode='133' label='Win'    modifier='mod4'    sticky='true' action='single-stroke'/>
    <key_template id='RWIN' keycode='134' label='Win'    modifier='mod4'    sticky='true' action='single-stroke'/>

    <key_template id='TAB'  keycode='23'  label='⇥'  label_x_align='0.0' action='single-stroke'/>
    <key_template id='BKSP' keycode='22'  image='erase-left.svg' action='single-stroke'/>
    <key_template id='RTRN' keycode='36'  label='⏎'  label_x_align='0.1' action='single-stroke'/>
    <key_template id='MENU' keycode='135' label='Menu'  action='delayed-stroke'/>

    <key_template id='SPCE' keycode='65'/>

    <key_template id='Prnt'   keysym='65377' label='Prnt' action='single-stroke'/>
    <key_template id='Pause'  keysym='65299' label='Pause' action='single-stroke'/>
    <key_template id='Scroll' keysym='65300' label='Scroll' action='single-stroke'/>

    <key_template id='LEFT' keycode='113' label='←' action='single-stroke'/>
    <key_template id='RGHT' keycode='114' label='→' action='single-stroke'/>
    <key_template id='UP'   keycode='111' label='↑' action='single-stroke'/>
    <key_template id='DOWN' keycode='116' label='↓' action='single-stroke'/>
    <key_template id='INS'  keycode='118' label='Ins' action='single-stroke'/>
    <key_template id='DELE' keycode='119' label=''  image='erase.svg' action='single-stroke'/>
    <key_template id='HOME' keycode='110' label='Hm' action='single-stroke'/>
    <key_template id='END'  keycode='115' label='End' action='single-stroke'/>
    <key_template id='PGUP' keycode='112' label='Pg&#10;Up' action='single-stroke'/>
    <key_template id='PGDN' keycode='117' label='Pg&#10;Dn' action='single-stroke'/>
    <key_template id='ESC'  keycode='9'   label='Esc' action='single-stroke'/>

    <!-- function keys -->
    <key_template id='F1' keysym='65470' label='F1' action='single-stroke'/>
    <key_template id='F2' keysym='65471' label='F2' action='single-stroke'/>
    <key_template id='F3' keysym='65472' label='F3' action='single-stroke'/>
    <key_template id='F4' keysym='65473' label='F4' action='single-stroke'/>
    <key_template id='F5' keysym='65474' label='F5' action='single-stroke'/>
    <key_template id='F6' keysym='65475' label='F6' action='single-stroke'/>
    <key_template id='F7' keysym='65476' label='F7' action='single-stroke'/>
    <key_template id='F8' keysym='65477' label='F8' action='single-stroke'/>
    <key_template id='F9' keysym='65478' label='F9' action='single-stroke'/>
    <key_template id='F10' keysym='65479' label='F10' action='single-stroke'/>
    <key_template id='F11' keysym='65480' label='F11' action='single-stroke'/>
    <key_template id='F12' keysym='65481' label='F12' action='single-stroke'/>

    <!-- number pad -->
    <key_template id='NMLK' keycode='77' label='Nm&#10;Lk' modifier='mod2' sticky='true' sticky_behavior='lock' action='double-stroke'/>
    <key_template id='KPDV' keycode='106' action='single-stroke'/>
    <key_template id='KPMU' keycode='63' action='single-stroke'/>
    <key_template id='KPSU' keycode='82' action='single-stroke'/>
    <key_template id='KPAD' keycode='86' action='single-stroke'/>
    <key_template id='KP0'  keycode='90' action='single-stroke'/>
    <key_template id='KP1'  keycode='87' action='single-stroke'/>
    <key_template id='KP2'  keycode='88' action='single-stroke'/>
    <key_template id='KP3'  keycode='89' action='single-stroke'/>
    <key_template id='KP4'  keycode='83' action='single-stroke'/>
    <key_template id='KP5'  keycode='84' action='single-stroke'/>
    <key_template id='KP6'  keycode='85' action='single-stroke'/>
    <key_template id='KP7'  keycode='79' action='single-stroke'/>
    <key_template id='KP8'  keycode='80' action='single-stroke'/>
    <key_template id='KP9'  keycode='81' action='single-stroke'/>
    <key_template id='KPDL' keycode='91' action='single-stroke'/>
    <key_template id='KPEN' keycode='104' action='single-stroke'/>

    <keysym_rule keysym='0xffaf' label='÷'/>         <!-- KP_Divide -->
    <keysym_rule keysym='0xffaa' label='×'/>         <!-- KP_Multiply -->
    <keysym_rule keysym='0xffad' label='−'/>         <!-- KP_Subtract -->
    <keysym_rule keysym='0xffab' label='+'/>         <!-- KP_Add -->

    <!-- number pad labels for NumLock=off -->
    <keysym_rule keysym='0xff96' label='←'/>         <!-- KP_Left -->
    <keysym_rule keysym='0xff98' label='→'/>         <!-- KP_Right -->
    <keysym_rule keysym='0xff97' label='↑'/>         <!-- KP_Up -->
    <keysym_rule keysym='0xff99' label='↓'/>         <!-- KP_Down -->
    <keysym_rule keysym='0xff95' label='Hm'/>        <!-- KP_Home -->
    <keysym_rule keysym='0xff9c' label='End'/>       <!-- KP_End -->
    <keysym_rule keysym='0xff9a' label='Pg&#10;Up'/> <!-- KP_Prior -->
    <keysym_rule keysym='0xff9b' label='Pg&#10;Dn'/> <!-- KP_Next -->
    <keysym_rule keysym='0xff9d' label=''/>          <!-- KP_Begin -->
    <keysym_rule keysym='0xff9e' label='Ins'/>       <!-- KP_Insert -->
    <keysym_rule keysym='0xff9f' label='Del'/>       <!-- KP_Delete -->
    <keysym_rule keysym='0xff8b' label='Ent'/>       <!-- KP_Enter -->

    <!-- snippets -->
    <key_template id='m0'  macro='0'/>
    <key_template id='m1'  macro='1'/>
    <key_template id='m2'  macro='2'/>
    <key_template id='m3'  macro='3'/>
    <key_template id='m4'  macro='4'/>
    <key_template id='m5'  macro='5'/>
    <key_template id='m6'  macro='6'/>
    <key_template id='m7'  macro='7'/>
    <key_template id='m8'  macro='8'/>
    <key_template id='m9'  macro='9'/>
    <key_template id='m10' macro='10'/>
    <key_template id='m11' macro='11'/>
    <key_template id='m12' macro='12'/>
    <key_template id='m13' macro='13'/>
    <key_template id='m14' macro='14'/>
    <key_template id='m15' macro='15'/>

    <!-- click helpers -->
    <key_template id='middleclick'    button='true' image='middle-click.svg' scannable='false' tooltip='Middle click'/>
    <key_template id='secondaryclick' button='true' image='right-click.svg'  scannable='false' tooltip='Right click'/>
    <key_template id='doubleclick'    button='true' image='double-click.svg' scannable='false' tooltip='Double click'/>
    <key_template id='dragclick'      button='true' image='drag-click.svg'   scannable='false' tooltip='Drag click'/>
    <key_template id='hoverclick'     button='true' image='hover-click.svg'  scannable='false' tooltip='Activate Hover Click'/>

    <!-- misc buttons -->
    <key_template id='quit'           button='true' label='Quit' tooltip='Quit Onboard'/>
    <key_template id='settings'       button='true' image='preferences.svg' tooltip='Preferences'/>
    <key_template id='hide'           button='true' image='close.svg' tooltip='Hide Onboard' scannable='false'/>
    <key_template id='move'           button='true' image='move.svg' tooltip='Move Onboard' scannable='false'/>
    <key_template id='showclick'      button='true' image='show-click.svg' tooltip='Toggle click helpers' scannable='false'/>
    <key_template id='layer0'         button='true' label='Abc' tooltip='Main keyboard'/>
    <key_template id='layer1'         button='true' label='123' tooltip='Number block and snippets'/>
    <key_template id='layer2'         button='true' image='snippets.svg' tooltip='Snippets'/>
    <key_template id='layer3'         button='true'/>
    <key_template id='layer4'         button='true'/>
    <key_template id='layer5'         button='true'/>
    <key_template id='layer6'         button='true'/>
    <key_template id='layer7'         button='true'/>

    <!-- word prediction -->
    <key_template id='inputline' label='' button='true' scannable='false' label_x_align='0.0'/>
</keyboard>

