JexGay

Last updated 2026-09-20

JexGay is a keyboard layout for the Unexpected Keyboard Android app I designed for myself.

↖↑↗
←→
↙↓↘
'U"
‘u’
„“”
QSP
qsp
…•.
BRK
brk
,:;
`C´
⌨c⌦
Act↵\n
↺PPT↻
All⌫Shr
CpyPst✂
ÜÍŠ
üíš
¥ß
^I/
+i-
_|\
≤⬆≥
⬅⎵⮕
<⬇>
JEX
jex
?!‽
[H]
(h)
{&}
ČĚŤ
čěť
SupSubOrd
ÄÁŮ
äáů
◌́£€
*N–
=n—
#01
GAY
gay
234
FOW
fow
567
AltTEsc
CtltMta
89
ŇÉÓ
ňéó
⚙Box
ÖÝÚ
öýú
◌̌◌̧◌̂
$V%
~v@
◌̀◌̄◌̊
\tLTab
⬅l⮕
◌̃◌̈◌̨
ZDClp
zd⦶
◌̇◌̋◌̷
123Mπ∇¬
EmjmFn
◌⃗◌̆◌̶
ŽŘĎ
žřď
◌̣◌̛◌̉

Design

The JexGay layout is heavily inspired by the MessagEase layout, in that keys enter the most common characters with a tap and other characters are entered by swiping in eight directions. However, there are some major differences:

There is some regularity to the layout:

Name

The layout is named after two keys on the keyboard whose triplet of letters happens to spell out a word: “Jex” (the surname of a professor at my faculty) and “gay”. This is not meant to imply any connection between these two words, it’s purely coincidental.

XML code

If you want to try out JexGay for yourself, simply install the Unexpected Keyboard app (from F-Droid, Google Play or GitHub), add a custom layout in the settings and paste the code below.

<keyboard name="JexGay" bottom_row="false" script="latin">
  <row>
    <key nw="↖" n="↑" ne="↗" w="←" c="" e="→" sw="↙" s="↓" se="↘" />
    <key nw="&apos;" n="U" ne="&quot;" w="‘" c="u" e="’" sw="„" s="“" se="”" />
    <key nw="Q" n="S" ne="P" w="q" c="s" e="p" sw="…" s="•" se="." />
    <key nw="B" n="R" ne="K" w="b" c="r" e="k" sw="," s=":" se=";" />
    <key nw="`" n="C" ne="´" w="switch_forward" c="c" e="delete" sw="action" s="enter" se="\n" />
    <key nw="undo" n="pasteAsPlainText" ne="redo" w="selectAll" c="backspace" e="shareText" sw="copy" s="paste" se="cut" />
  </row>
  <row>
    <key nw="Ü" n="Í" ne="Š" w="ü" c="í" e="š" sw="" s="¥" se="ß" />
    <key nw="^" n="I" ne="/" w="+" c="i" e="-" sw="_" s="|" se="\\" />
    <key nw="≤" n="up" ne="≥" w="left" c="space" e="right" sw="&lt;" s="down" se="&gt;" />
    <key nw="J" n="E" ne="X" w="j" c="e" e="x" sw="\?" s="!" se="‽" />
    <key nw="[" n="H" ne="]" w="(" c="h" e=")" sw="{" s="&amp;" se="}" />
    <key nw="Č" n="Ě" ne="Ť" w="č" c="ě" e="ť" sw="superscript" s="subscript" se="ordinal" />
  </row>
  <row>
    <key nw="Ä" n="Á" ne="Ů" w="ä" c="á" e="ů" sw="accent_aigu" s="£" se="€" />
    <key nw="*" n="N" ne="–" w="=" c="n" e="—" sw="\#" s="0" se="1" />
    <key nw="G" n="A" ne="Y" w="g" c="a" e="y" sw="2" s="3" se="4" />
    <key nw="F" n="O" ne="W" w="f" c="o" e="w" sw="5" s="6" se="7" />
    <key nw="alt" n="T" ne="esc" w="ctrl" c="t" e="meta" sw="8" s="9" se="f11_placeholder" />
    <key nw="Ň" n="É" ne="Ó" w="ň" c="é" e="ó" sw="f12_placeholder" s="config" se="box" />
  </row>
  <row>
    <key nw="Ö" n="Ý" ne="Ú" w="ö" c="ý" e="ú" sw="accent_caron" s="accent_cedille" se="accent_circonflexe" />
    <key nw="$" n="V" ne="%" w="~" c="v" e="\@" sw="accent_grave" s="accent_macron" se="accent_ring" />
    <key nw="\t" n="L" ne="tab" w="cursor_left" c="l" e="cursor_right" sw="accent_tilde" s="accent_trema" se="accent_ogonek" />
    <key nw="Z" n="D" ne="switch_clipboard" w="z" c="d" e="compose" sw="accent_dot_above" s="accent_double_aigu" se="accent_slash" />
    <key nw="switch_numeric" n="M" ne="switch_greekmath" w="switch_emoji" c="m" e="fn" sw="accent_arrow_right" s="accent_breve" se="accent_bar" />
    <key nw="Ž" n="Ř" ne="Ď" w="ž" c="ř" e="ď" sw="accent_dot_below" s="accent_horn" se="accent_hook_above" />
  </row>
</keyboard>