base_layer = "1_base" caps_lock_layer = "2_shift" [layers] 1_base = [ # Dead keys { scan_code = 0x29, characters = "\u0302" }, # Combining Circumflex Accent { scan_code = 0x0D, characters = "\u0300" }, # Combining Grave Accent { scan_code = 0x1B, characters = "\u0301" }, # Combining Acute Accent # Numbers and letters { scan_code = 0x02, characters = "1234567890-" }, { scan_code = 0x10, characters = "xvlcwkhgfqß" }, { scan_code = 0x1E, characters = "uiaeosnrtdy" }, { scan_code = 0x2C, characters = "üöäpzbm,.j" }, # Layer modifiers { scan_code = 0x2A, layer = "2_shift", virtual_key = 0xA0 }, # left shift { scan_code = 0xE036, layer = "2_shift", virtual_key = 0xA1 }, # right shift { scan_code = 0x3A, layer = "3_symbols" }, # caps lock { scan_code = 0x2B, layer = "3_symbols" }, # `\` on US layout, `#` key on german layout { scan_code = 0x56, layer = "4_navigation_numpad" }, # `>` on german layout { scan_code = 0xE038, layer = "4_navigation_numpad" }, # `right alt` US layout, `Alt Gr` on german layout { scan_code = 0x021D, virtual_keys = [] }, # ignore additional scan code from `Alt Gr` ] 2_shift = [ # Dead keys { scan_code = 0x29, characters = "\u030C" }, # Combining Caron { scan_code = 0x0D, characters = "\u0327" }, # Combining Cedilla { scan_code = 0x1B, characters = "\u0303" }, # Combining Tilde # Numbers and letters { scan_code = 0x02, characters = "°§ℓ»«$€„“”—" }, { scan_code = 0x10, characters = "XVLCWKHGFQẞ" }, { scan_code = 0x1E, characters = "UIAEOSNRTDY" }, { scan_code = 0x2C, characters = "ÜÖÄPZBM–•J" }, # Layer modifiers { scan_code = 0x2A, lock = "2_shift", layer = "1_base", virtual_key = 0xA0 }, # left shift { scan_code = 0xE036, lock = "2_shift", layer = "1_base", virtual_key = 0xA0 }, # right shift { scan_code = 0x3A, layer = "5_greek" }, # caps lock { scan_code = 0x2B, layer = "5_greek" }, # `\` on US layout, `#` key on german layout ] 3_symbols = [ { scan_code = 0x0D, characters = "\u030A" }, # Combining Ring Above { scan_code = 0x1B, characters = "\u0338" }, # Combining Long Solidus Overlay { scan_code = 0x02, characters = "¹²³›‹¢¥‚‘’" }, { scan_code = 0x10, characters = "…_[]^!<>=&ſ" }, { scan_code = 0x1E, characters = "\\/{}*?()-:@" }, { scan_code = 0x2C, characters = "#$|~`+%\"`;" }, # Layer modifiers { scan_code = 0x2A, layer = "5_greek", virtual_key = 0xA0 }, # left shift { scan_code = 0xE036, layer = "5_greek", virtual_key = 0xA1 }, # right shift { scan_code = 0x56, layer = "6_greek" }, # `>` on german layout { scan_code = 0xE038, layer = "6_greek" }, # `right alt` US layout, `Alt Gr` on german layout ] 4_navigation_numpad = [ { scan_code = 0x29, characters = "\u0307" }, # Combining Dot Above { scan_code = 0x0D, characters = "\u0308" }, # Combining Diaeresis { scan_code = 0x1B, characters = "\u030B" }, # Combining Double Acute Accent { scan_code = 0x02, characters = "ªº№⋮·£¤0/*-" }, { scan_code = 0x15, characters = "¿" }, { scan_code = 0x23, characters = "¡" }, { scan_code = 0x1B, characters = "˝" }, # Navigation { scan_code = 0x10, virtual_keys = [0x21, 0x08, 0x26, 0x2E, 0x22] }, { scan_code = 0x1E, virtual_keys = [0x24, 0x25, 0x28, 0x27, 0x23] }, { scan_code = 0x2C, virtual_keys = [0x1B, 0x09, 0x2D, 0x0D] }, # Numpad { scan_code = 0x16, virtual_keys = [0x67, 0x68, 0x69, 0x6B, 0x6D] }, { scan_code = 0x24, virtual_keys = [0x64, 0x65, 0x66] }, { scan_code = 0x27, characters = ",." }, { scan_code = 0x31, characters = ":" }, { scan_code = 0x32, virtual_keys = [0x61, 0x62, 0x63] }, { scan_code = 0x35, characters = ";" }, { scan_code = 0x39, virtual_keys = [0x60] }, # Layer modifiers { scan_code = 0x56, lock = "4_navigation_numpad", layer = "1_base" }, # `>` on german layout { scan_code = 0xE038, lock = "4_navigation_numpad", layer = "1_base" }, # `right alt` US layout, `Alt Gr` on german layout { scan_code = 0x3A, layer = "6_greek" }, # caps lock { scan_code = 0x2B, layer = "6_greek" }, # `\` on US layout, `#` key on german layout ] 5_greek = [ { scan_code = 0x02, characters = "₁₂₃♂♀⚥ϰ⟨⟩₀-" }, { scan_code = 0x10, characters = "ξ\u0000λχωκψγφς" }, { scan_code = 0x1E, characters = "\u0000ιαεοσνρτδυ" }, { scan_code = 0x2C, characters = "\u0000ϵηπζβμϱϑθ" }, { scan_code = 0x39, characters = "\u00A0" }, # no-break space ] 6_greek = [ { scan_code = 0x02, characters = "¬∨∧⊥∡∥→∞∝⌀╌" }, { scan_code = 0x10, characters = "Ξ√ΛℂΩ⨯ΨΓΦℚ∘" }, { scan_code = 0x1E, characters = "⊂∫∀∃∈Σℕℝ∂Δ∇" }, { scan_code = 0x2C, characters = "∪∩ℵΠℤ⇐⇔⇒↦Θ" }, { scan_code = 0x39, characters = "\u202F" }, # narrow no-break space ]