<?xml version="1.1" encoding="UTF-8"?>
<!DOCTYPE keyboard PUBLIC "" "file://localhost/System/Library/DTDs/KeyboardLayout.dtd">
<!--
Colemak with the following modifications:
* DHk mod applied (for ISO keyboards)
* Custom layer for special characters added
* Capslock has - and _ swapped for easy typing of uppercase identifiers
* Shift-Capslock produces lowercase characters
Instead of just editing the existing .keylayout, this layout was created from
scratch, because the official one has a broken Ctrl layer and an Alt layer I
don't like, so it was easier to start from scratch.
© 2021 Jonathan Schleifer. Released into the public domain.
-->
<keyboard group="0" id="3644" name="Colemak DHk-js" maxout="1">
<layouts>
<layout first="0" last="17" modifiers="Modifiers" mapSet="ANSI"/>
<layout first="18" last="18" modifiers="Modifiers" mapSet="JIS"/>
<layout first="21" last="23" modifiers="Modifiers" mapSet="JIS"/>
<layout first="30" last="30" modifiers="Modifiers" mapSet="JIS"/>
<layout first="33" last="33" modifiers="Modifiers" mapSet="JIS"/>
<layout first="36" last="36" modifiers="Modifiers" mapSet="JIS"/>
<layout first="194" last="194" modifiers="Modifiers" mapSet="JIS"/>
<layout first="197" last="197" modifiers="Modifiers" mapSet="JIS"/>
<layout first="200" last="201" modifiers="Modifiers" mapSet="JIS"/>
<layout first="206" last="207" modifiers="Modifiers" mapSet="JIS"/>
</layouts>
<modifierMap id="Modifiers" defaultIndex="0">
<keyMapSelect mapIndex="0">
<modifier keys=""/>
</keyMapSelect>
<keyMapSelect mapIndex="1">
<modifier keys="anyShift"/>
</keyMapSelect>
<keyMapSelect mapIndex="2">
<modifier keys="anyOption"/>
</keyMapSelect>
<keyMapSelect mapIndex="3">
<modifier keys="caps"/>
</keyMapSelect>
<keyMapSelect mapIndex="4">
<modifier keys="anyShift caps? anyOption"/>
</keyMapSelect>
<keyMapSelect mapIndex="5">
<modifier keys="anyControl"/>
</keyMapSelect>
<keyMapSelect mapIndex="6">
<modifier keys="anyShift caps"/>
</keyMapSelect>
</modifierMap>
<keyMapSet id="ANSI">
<keyMap index="0">
<key code="0" output="a"/>
<key code="1" output="r"/>
<key code="2" output="s"/>
<key code="3" output="t"/>
<key code="4" output="k"/>
<key code="5" output="g"/>
<key code="6" output="x"/>
<key code="7" output="c"/>
<key code="8" output="d"/>
<key code="9" output="v"/>
<key code="10" output="`"/>
<key code="12" output="q"/>
<key code="13" output="w"/>
<key code="14" output="f"/>
<key code="15" output="p"/>
<key code="16" output="j"/>
<key code="17" output="b"/>
<key code="18" output="1"/>
<key code="19" output="2"/>
<key code="20" output="3"/>
<key code="21" output="4"/>
<key code="22" output="6"/>
<key code="23" output="5"/>
<key code="24" output="="/>
<key code="25" output="9"/>
<key code="26" output="7"/>
<key code="27" output="-"/>
<key code="28" output="8"/>
<key code="29" output="0"/>
<key code="30" output="]"/>
<key code="31" output="y"/>
<key code="32" output="l"/>
<key code="33" output="["/>
<key code="34" output="u"/>
<key code="35" output=";"/>
<key code="36" output="
"/>
<key code="37" output="i"/>
<key code="38" output="n"/>
<key code="39" output="'"/>
<key code="40" output="e"/>
<key code="41" output="o"/>
<key code="42" output="\"/>
<key code="43" output=","/>
<key code="44" output="/"/>
<key code="45" output="m"/>
<key code="46" output="h"/>
<key code="47" output="."/>
<key code="48" output="	"/>
<key code="49" output=" "/>
<key code="50" output="z"/>
<key code="51" output=""/>
<key code="53" output=""/>
<key code="64" output=""/>
<key code="65" output="."/>
<key code="66" output=""/>
<key code="67" output="*"/>
<key code="69" output="+"/>
<key code="70" output=""/>
<key code="71" output=""/>
<key code="72" output=""/>
<key code="75" output="/"/>
<key code="76" output=""/>
<key code="77" output=""/>
<key code="78" output="-"/>
<key code="79" output=""/>
<key code="80" output=""/>
<key code="81" output="="/>
<key code="82" output="0"/>
<key code="83" output="1"/>
<key code="84" output="2"/>
<key code="85" output="3"/>
<key code="86" output="4"/>
<key code="87" output="5"/>
<key code="88" output="6"/>
<key code="89" output="7"/>
<key code="91" output="8"/>
<key code="92" output="9"/>
<key code="96" output=""/>
<key code="97" output=""/>
<key code="98" output=""/>
<key code="99" output=""/>
<key code="100" output=""/>
<key code="101" output=""/>
<key code="103" output=""/>
<key code="105" output=""/>
<key code="106" output=""/>
<key code="107" output=""/>
<key code="109" output=""/>
<key code="111" output=""/>
<key code="113" output=""/>
<key code="114" output=""/>
<key code="115" output=""/>
<key code="116" output=""/>
<key code="117" output=""/>
<key code="118" output=""/>
<key code="119" output=""/>
<key code="120" output=""/>
<key code="121" output=""/>
<key code="122" output=""/>
<key code="123" output=""/>
<key code="124" output=""/>
<key code="125" output=""/>
<key code="126" output=""/>
</keyMap>
<keyMap index="1">
<key code="0" output="A"/>
<key code="1" output="R"/>
<key code="2" output="S"/>
<key code="3" output="T"/>
<key code="4" output="K"/>
<key code="5" output="G"/>
<key code="6" output="X"/>
<key code="7" output="C"/>
<key code="8" output="D"/>
<key code="9" output="V"/>
<key code="10" output="~"/>
<key code="12" output="Q"/>
<key code="13" output="W"/>
<key code="14" output="F"/>
<key code="15" output="P"/>
<key code="16" output="J"/>
<key code="17" output="B"/>
<key code="18" output="!"/>
<key code="19" output="@"/>
<key code="20" output="#"/>
<key code="21" output="$"/>
<key code="22" output="^"/>
<key code="23" output="%"/>
<key code="24" output="+"/>
<key code="25" output="("/>
<key code="26" output="&"/>
<key code="27" output="_"/>
<key code="28" output="*"/>
<key code="29" output=")"/>
<key code="30" output="}"/>
<key code="31" output="Y"/>
<key code="32" output="L"/>
<key code="33" output="{"/>
<key code="34" output="U"/>
<key code="35" output=":"/>
<key code="36" output="
"/>
<key code="37" output="I"/>
<key code="38" output="N"/>
<key code="39" output="""/>
<key code="40" output="E"/>
<key code="41" output="O"/>
<key code="42" output="|"/>
<key code="43" output="<"/>
<key code="44" output="?"/>
<key code="45" output="M"/>
<key code="46" output="H"/>
<key code="47" output=">"/>
<key code="48" output="	"/>
<key code="49" output=" "/>
<key code="50" output="Z"/>
<key code="51" output=""/>
<key code="53" output=""/>
<key code="64" output=""/>
<key code="66" output=""/>
<key code="70" output=""/>
<key code="71" output=""/>
<key code="72" output=""/>
<key code="76" output=""/>
<key code="77" output=""/>
<key code="79" output=""/>
<key code="80" output=""/>
<key code="96" output=""/>
<key code="97" output=""/>
<key code="98" output=""/>
<key code="99" output=""/>
<key code="100" output=""/>
<key code="101" output=""/>
<key code="103" output=""/>
<key code="105" output=""/>
<key code="106" output=""/>
<key code="107" output=""/>
<key code="109" output=""/>
<key code="111" output=""/>
<key code="113" output=""/>
<key code="114" output=""/>
<key code="115" output=""/>
<key code="116" output=""/>
<key code="117" output=""/>
<key code="118" output=""/>
<key code="119" output=""/>
<key code="120" output=""/>
<key code="121" output=""/>
<key code="122" output=""/>
<key code="123" output=""/>
<key code="124" output=""/>
<key code="125" output=""/>
<key code="126" output=""/>
</keyMap>
<keyMap index="2">
<key code="0" output="ä"/>
<key code="1" output="®"/>
<key code="2" output="ß"/>
<key code="3" output="™"/>
<key code="7" output="©"/>
<key code="10" output="§"/>
<key code="19" output="½"/>
<key code="20" output="¾"/>
<key code="21" output="¼"/>
<key code="23" output="‰"/>
<key code="30" output="»"/>
<key code="33" output="«"/>
<key code="34" output="ü"/>
<key code="36" output="
"/>
<key code="39" output="“"/>
<key code="40" output="€"/>
<key code="41" output="ö"/>
<key code="42" output="”"/>
<key code="43" output="•"/>
<key code="44" output="¿"/>
<key code="45" output="µ"/>
<key code="47" output="…"/>
<key code="48" output="	"/>
<key code="49" output=" "/>
<key code="51" output=""/>
<key code="53" output=""/>
<key code="64" output=""/>
<key code="66" output=""/>
<key code="70" output=""/>
<key code="71" output=""/>
<key code="72" output=""/>
<key code="76" output=""/>
<key code="77" output=""/>
<key code="79" output=""/>
<key code="80" output=""/>
<key code="96" output=""/>
<key code="97" output=""/>
<key code="98" output=""/>
<key code="99" output=""/>
<key code="100" output=""/>
<key code="101" output=""/>
<key code="103" output=""/>
<key code="105" output=""/>
<key code="106" output=""/>
<key code="107" output=""/>
<key code="109" output=""/>
<key code="111" output=""/>
<key code="113" output=""/>
<key code="114" output=""/>
<key code="115" output=""/>
<key code="116" output=""/>
<key code="117" output=""/>
<key code="118" output=""/>
<key code="119" output=""/>
<key code="120" output=""/>
<key code="121" output=""/>
<key code="122" output=""/>
<key code="123" output=""/>
<key code="124" output=""/>
<key code="125" output=""/>
<key code="126" output=""/>
</keyMap>
<keyMap index="3">
<key code="0" output="A"/>
<key code="1" output="R"/>
<key code="2" output="S"/>
<key code="3" output="T"/>
<key code="4" output="K"/>
<key code="5" output="G"/>
<key code="6" output="X"/>
<key code="7" output="C"/>
<key code="8" output="D"/>
<key code="9" output="V"/>
<key code="10" output="`"/>
<key code="12" output="Q"/>
<key code="13" output="W"/>
<key code="14" output="F"/>
<key code="15" output="P"/>
<key code="16" output="J"/>
<key code="17" output="B"/>
<key code="18" output="1"/>
<key code="19" output="2"/>
<key code="20" output="3"/>
<key code="21" output="4"/>
<key code="22" output="6"/>
<key code="23" output="5"/>
<key code="24" output="="/>
<key code="25" output="9"/>
<key code="26" output="7"/>
<key code="27" output="_"/>
<key code="28" output="8"/>
<key code="29" output="0"/>
<key code="30" output="]"/>
<key code="31" output="Y"/>
<key code="32" output="L"/>
<key code="33" output="["/>
<key code="34" output="U"/>
<key code="35" output=";"/>
<key code="36" output="
"/>
<key code="37" output="I"/>
<key code="38" output="N"/>
<key code="39" output="'"/>
<key code="40" output="E"/>
<key code="41" output="O"/>
<key code="42" output="\"/>
<key code="43" output=","/>
<key code="44" output="/"/>
<key code="45" output="M"/>
<key code="46" output="H"/>
<key code="47" output="."/>
<key code="48" output="	"/>
<key code="49" output=" "/>
<key code="50" output="Z"/>
<key code="51" output=""/>
<key code="53" output=""/>
<key code="64" output=""/>
<key code="65" output="."/>
<key code="66" output=""/>
<key code="67" output="*"/>
<key code="69" output="+"/>
<key code="70" output=""/>
<key code="71" output=""/>
<key code="72" output=""/>
<key code="75" output="/"/>
<key code="76" output=""/>
<key code="77" output=""/>
<key code="78" output="-"/>
<key code="79" output=""/>
<key code="80" output=""/>
<key code="81" output="="/>
<key code="82" output="0"/>
<key code="83" output="1"/>
<key code="84" output="2"/>
<key code="85" output="3"/>
<key code="86" output="4"/>
<key code="87" output="5"/>
<key code="88" output="6"/>
<key code="89" output="7"/>
<key code="91" output="8"/>
<key code="92" output="9"/>
<key code="96" output=""/>
<key code="97" output=""/>
<key code="98" output=""/>
<key code="99" output=""/>
<key code="100" output=""/>
<key code="101" output=""/>
<key code="103" output=""/>
<key code="105" output=""/>
<key code="106" output=""/>
<key code="107" output=""/>
<key code="109" output=""/>
<key code="111" output=""/>
<key code="113" output=""/>
<key code="114" output=""/>
<key code="115" output=""/>
<key code="116" output=""/>
<key code="117" output=""/>
<key code="118" output=""/>
<key code="119" output=""/>
<key code="120" output=""/>
<key code="121" output=""/>
<key code="122" output=""/>
<key code="123" output=""/>
<key code="124" output=""/>
<key code="125" output=""/>
<key code="126" output=""/>
</keyMap>
<keyMap index="4">
<key code="0" output="Ä"/>
<key code="2" output="ẞ"/>
<key code="18" output="¹"/>
<key code="19" output="²"/>
<key code="20" output="³"/>
<key code="30" output="→"/>
<key code="33" output="←"/>
<key code="34" output="Ü"/>
<key code="36" output="
"/>
<key code="41" output="Ö"/>
<key code="42" output="„"/>
<key code="43" output="≤"/>
<key code="44" output="‽"/>
<key code="47" output="≥"/>
<key code="48" output="	"/>
<key code="49" output=" "/>
<key code="51" output=""/>
<key code="53" output=""/>
<key code="64" output=""/>
<key code="66" output=""/>
<key code="70" output=""/>
<key code="71" output=""/>
<key code="72" output=""/>
<key code="76" output=""/>
<key code="77" output=""/>
<key code="79" output=""/>
<key code="80" output=""/>
<key code="96" output=""/>
<key code="97" output=""/>
<key code="98" output=""/>
<key code="99" output=""/>
<key code="100" output=""/>
<key code="101" output=""/>
<key code="103" output=""/>
<key code="105" output=""/>
<key code="106" output=""/>
<key code="107" output=""/>
<key code="109" output=""/>
<key code="111" output=""/>
<key code="113" output=""/>
<key code="114" output=""/>
<key code="115" output=""/>
<key code="116" output=""/>
<key code="117" output=""/>
<key code="118" output=""/>
<key code="119" output=""/>
<key code="120" output=""/>
<key code="121" output=""/>
<key code="122" output=""/>
<key code="123" output=""/>
<key code="124" output=""/>
<key code="125" output=""/>
<key code="126" output=""/>
</keyMap>
<keyMap index="5">
<key code="0" output=""/>
<key code="7" output=""/>
<key code="8" output=""/>
<key code="36" output="
"/>
<key code="40" output=""/>
<key code="46" output=""/>
<key code="48" output="	"/>
<key code="51" output=""/>
<key code="53" output=""/>
<key code="64" output=""/>
<key code="66" output=""/>
<key code="70" output=""/>
<key code="71" output=""/>
<key code="72" output=""/>
<key code="76" output=""/>
<key code="77" output=""/>
<key code="79" output=""/>
<key code="80" output=""/>
<key code="96" output=""/>
<key code="97" output=""/>
<key code="98" output=""/>
<key code="99" output=""/>
<key code="100" output=""/>
<key code="101" output=""/>
<key code="103" output=""/>
<key code="105" output=""/>
<key code="106" output=""/>
<key code="107" output=""/>
<key code="109" output=""/>
<key code="111" output=""/>
<key code="113" output=""/>
<key code="114" output=""/>
<key code="115" output=""/>
<key code="116" output=""/>
<key code="117" output=""/>
<key code="118" output=""/>
<key code="119" output=""/>
<key code="120" output=""/>
<key code="121" output=""/>
<key code="122" output=""/>
<key code="123" output=""/>
<key code="124" output=""/>
<key code="125" output=""/>
<key code="126" output=""/>
</keyMap>
<keyMap index="6">
<key code="0" output="a"/>
<key code="1" output="r"/>
<key code="2" output="s"/>
<key code="3" output="t"/>
<key code="4" output="k"/>
<key code="5" output="g"/>
<key code="6" output="x"/>
<key code="7" output="c"/>
<key code="8" output="d"/>
<key code="9" output="v"/>
<key code="10" output="~"/>
<key code="12" output="q"/>
<key code="13" output="w"/>
<key code="14" output="f"/>
<key code="15" output="p"/>
<key code="16" output="j"/>
<key code="17" output="b"/>
<key code="18" output="!"/>
<key code="19" output="@"/>
<key code="20" output="#"/>
<key code="21" output="$"/>
<key code="22" output="^"/>
<key code="23" output="%"/>
<key code="24" output="+"/>
<key code="25" output="("/>
<key code="26" output="&"/>
<key code="27" output="-"/>
<key code="28" output="*"/>
<key code="29" output=")"/>
<key code="30" output="}"/>
<key code="31" output="y"/>
<key code="32" output="l"/>
<key code="33" output="{"/>
<key code="34" output="u"/>
<key code="35" output=":"/>
<key code="36" output="
"/>
<key code="37" output="i"/>
<key code="38" output="n"/>
<key code="39" output="""/>
<key code="40" output="e"/>
<key code="41" output="o"/>
<key code="42" output="|"/>
<key code="43" output="<"/>
<key code="44" output="?"/>
<key code="45" output="m"/>
<key code="46" output="h"/>
<key code="47" output=">"/>
<key code="48" output="	"/>
<key code="49" output=" "/>
<key code="50" output="z"/>
<key code="51" output=""/>
<key code="53" output=""/>
<key code="64" output=""/>
<key code="66" output=""/>
<key code="70" output=""/>
<key code="71" output=""/>
<key code="72" output=""/>
<key code="76" output=""/>
<key code="77" output=""/>
<key code="79" output=""/>
<key code="80" output=""/>
<key code="96" output=""/>
<key code="97" output=""/>
<key code="98" output=""/>
<key code="99" output=""/>
<key code="100" output=""/>
<key code="101" output=""/>
<key code="103" output=""/>
<key code="105" output=""/>
<key code="106" output=""/>
<key code="107" output=""/>
<key code="109" output=""/>
<key code="111" output=""/>
<key code="113" output=""/>
<key code="114" output=""/>
<key code="115" output=""/>
<key code="116" output=""/>
<key code="117" output=""/>
<key code="118" output=""/>
<key code="119" output=""/>
<key code="120" output=""/>
<key code="121" output=""/>
<key code="122" output=""/>
<key code="123" output=""/>
<key code="124" output=""/>
<key code="125" output=""/>
<key code="126" output=""/>
</keyMap>
</keyMapSet>
<keyMapSet id="JIS">
<keyMap index="0" baseMapSet="ANSI" baseIndex="0">
<key code="512" output=""/>
</keyMap>
<keyMap index="1" baseMapSet="ANSI" baseIndex="1">
<key code="512" output=""/>
</keyMap>
<keyMap index="2" baseMapSet="ANSI" baseIndex="2">
<key code="512" output=""/>
</keyMap>
<keyMap index="3" baseMapSet="ANSI" baseIndex="3">
<key code="512" output=""/>
</keyMap>
<keyMap index="4" baseMapSet="ANSI" baseIndex="4">
<key code="512" output=""/>
</keyMap>
<keyMap index="5" baseMapSet="ANSI" baseIndex="5">
<key code="512" output=""/>
</keyMap>
<keyMap index="6" baseMapSet="ANSI" baseIndex="6">
<key code="512" output=""/>
</keyMap>
</keyMapSet>
</keyboard>