add unexpected keyboard layouts/config

This commit is contained in:
KemoNine 2024-12-14 10:25:25 -05:00
parent 343cb564f9
commit 7934346f15
7 changed files with 188 additions and 0 deletions

View file

@ -8,6 +8,7 @@ Various sources and information on how KemoNine has setup their keyboards, mice
- The ```hardware``` folder contains useful hardware
- The ```layouts``` folder has [Keyboard Layout Editor](http://www.keyboard-layout-editor.com/) json and image files for keymaps in use
- The ```notes``` folder has various notes KemoNine has taken while working on this code
- The ```unexpected_keyboard``` folder includes layouts for the Unexpected Keyboard app on Android
- The ```qmk``` folder has KemoNine's QMK changes and personalization
- The ```zmk-config``` folder has KemoNine's ZMK changes and personalization
- Other folders are keyboard related sources, keymaps and ohter information

View file

@ -0,0 +1,69 @@
## Unexpected Keyboard Custom Layouts
MessagEase and a tweaked QWERTY (US) layouts that work together. MessagEase is best for vertical, one handed orientations. QWERTY for landscape.
The QWERTY layout is an adjusted form of the bundled QWERTY (US) layout to be more consistent with the MessagEase layout. It is strongly recommended to use both of these layouts together.
Both layouts allow you to flip/flop between the two as well as launch the Android keyboard picker so you can easily swap between MessagEase, QWERTY (US) within Unexpected Keyboard and switch to a different keyboard as appropriate.
## Adding to Unexpected Keyboard
To use these layouts you can copy/paste the contents of the `xml` files into the Unexpected Keyboard custom layout editor.
## KemoNine's Personal Config
**Layout**
- Layout 1: KmN QWERTY (US)
- Layout 2: KmN MessagEase
**Add keys to the keyboard**
- Disable all but...
- Alt
- Meta
- Tab
- Esc
- Page Up
- Page Down
- Home
- End
- Switch Keyboard
- F11
- F12
- Disable `Show number row`
- `Show NumPad` set to `Never`
- `NumPad layout` set to `Low digits first`
- Tweak `Swiping distance` as needed / desired
- `Circle gesture sensitivity` set to `Disabled`
- Circle gestures can be fiddly, enable if you feel they work for you
- Enable `Double tap on shift for caps lock`
- `Custom Vibration` set to `50ms`
- Enable `Pin entry layout`
- Adjust margins as needed / desired
## Additional Info
### Resources
- https://github.com/Julow/Unexpected-Keyboard
- https://github.com/Julow/Unexpected-Keyboard/blob/master/doc/Custom-layouts.md
- https://github.com/Julow/Unexpected-Keyboard/blob/master/doc/Possible-key-values.md
- https://unexpected-keyboard-layout-editor.lixquid.com/
### Screenshots
#### MessagEase
(note: the `#` symbol was added to the layout *after* the screen shot was taken. it is located on the `r` key in the upper right corner)
![MessagEase](message_ease.jpg)
#### QWERTY
![QWERTY](qwerty.jpg)
#### Standard Numeric Layer
(built in / cannot be changed)
![Standard Numeric Layer](standard_numeric_layer.jpg)

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

View file

@ -0,0 +1,50 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- This file defines the KmN messagease layout.
A layout is made of keys arranged into rows. Keys can be made bigger with the
'width' attribute and blank space can be added on the left of a key with the
'shift' attribute.
old method:
'key0' assigns the symbol on the middle of the key. 'key1', 'key2', etc..
assign symbols to the corners of a key, they are arranged like this:
1 7 2
5 0 6
3 8 4
new method
nw n ne
w key0 e
sw s se
Keys prefixed with 'loc ' are not visible on the keyboard. They are used to
specify a place for a key, if it needed to be added to the layout later.
(for example, by the "Add keys to keyboard" option)
-->
<keyboard bottom_row="false" name="KmN MessagEase">
<row>
<key indication="" anticircle="1" key0="a" key1="(" key4="v" key5="[" key7="\\"/>
<key indication="" anticircle="2" key0="n" key1="~" key2="&amp;" key7="_" key8="l"/>
<key indication="" anticircle="3" key0="i" key2=")" key3="x" key6="]" key7="/"/>
<key key0="fn" key1="copy" key2="cut" key5="undo" key6="redo" key7="selectAll" key8="paste"/>
</row>
<row>
<key indication="" anticircle="4" key0="h" key1="`" key5="&lt;" key6="k" key7="%" key8="\@"/>
<key indication="" anticircle="5" key0="o" key1="q" key2="p" key3="g" key4="j" key5="c" key6="b" key7="u" key8="d"/>
<key indication="" anticircle="6" key0="r" key2="#" key5="m" key6=">" key7="shift" key8="ctrl"/>
<key key0="switch_numeric" key1="alt" key5="loc meta" key2="loc change_method" key3="switch_emoji" key4="config"/>
</row>
<row>
<key indication="" anticircle="7" key0="t" key1="'" key2="y" key3=";" key4="\?" key5="^" key7="$" key8="+"/>
<key indication="" anticircle="8" key0="e" key3="," key4="." key5="=" key6="z" key7="w" key8="-"/>
<key indication="" anticircle="9" key0="s" key1="f" key2="&quot;" key3="!" key4=":" key6="tab" key7="€" key8="*"/>
<key key0="backspace" key2="delete"/>
</row>
<row>
<key key0="loc compose" key1="loc home" key2="loc page_up" key3="loc end" key4="loc page_down" key5="left" key6="right" key7="up" key8="down"/>
<key indication="" anticircle="0" width="2" key0="space"/>
<key key0="enter" key1="loc voice_typing" key2="action" key3="switch_forward" key4="switch_backward"/>
</row>
</keyboard>

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 KiB

View file

@ -0,0 +1,68 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- This file defines the KmN QWERTY (US) layout.
A layout is made of keys arranged into rows. Keys can be made bigger with the
'width' attribute and blank space can be added on the left of a key with the
'shift' attribute.
old method:
'key0' assigns the symbol on the middle of the key. 'key1', 'key2', etc..
assign symbols to the corners of a key, they are arranged like this:
1 7 2
5 0 6
3 8 4
new method
nw n ne
w key0 e
sw s se
Keys prefixed with 'loc ' are not visible on the keyboard. They are used to
specify a place for a key, if it needed to be added to the layout later.
(for example, by the "Add keys to keyboard" option)
-->
<keyboard bottom_row="false" name="KmN QWERTY (US)">
<row>
<key key0="q" key2="1" key4="esc"/>
<key key0="w" key1="~" key2="2" key3="\@"/>
<key key0="e" key1="!" key2="3" key3="\#" key4="loc €"/>
<key key0="r" key1="loc ₪" key2="4" key3="$"/>
<key key0="t" key2="5" key3="%"/>
<key key0="y" key2="6" key3="^"/>
<key key0="u" key2="7" key3="&amp;"/>
<key key0="i" key2="8" key3="*"/>
<key key0="o" key1="loc accent_macron" key2="9" key3="(" key4=")"/>
<key key0="p" key2="0" key3="f11_placeholder" key4="f12_placeholder"/>
</row>
<row>
<key shift="0.5" key0="a" key1="tab" key2="`"/>
<key key0="s" key1="loc accent_ring" key3="loc ß" key4="loc accent_ogonek"/>
<key key0="d" key1="loc accent_grave" key2="loc £" key3="loc accent_aigu"/>
<key key0="f" key1="loc accent_dot_above"/>
<key key0="g" key1="loc accent_caron" key2="-" key3="_"/>
<key key0="h" key2="=" key3="+"/>
<key key0="j" key1="loc accent_trema" key2="loc accent_circonflexe" key3="{" key4="}"/>
<key key0="k" key1="loc accent_double_aigu" key3="[" key4="]"/>
<key key0="l" key2="|" key3="\\"/>
</row>
<row>
<key width="1.5" key0="shift"/>
<key key0="z"/>
<key key0="x"/>
<key key0="c" key1="loc accent_cedille" key2="&lt;" key3="."/>
<key key0="v" key2=">" key3=","/>
<key key0="b" key2="\?" key3="/"/>
<key key0="n" key1="loc accent_tilde" key2=":" key3=";"/>
<key key0="m" key2="&quot;" key3="'"/>
<key width="1.5" key0="backspace" key2="delete"/>
</row>
<row>
<key width="1.7" key0="ctrl" key1="loc switch_greekmath" key2="loc meta" key4="switch_numeric"/>
<key width="1.1" key0="fn" key1="loc alt" key2="loc change_method" key3="switch_emoji" key4="config"/>
<key width="4.4" key0="space"/>
<key width="1.1" key0="loc compose" key1="loc home" key2="loc page_up" key3="loc end" key4="loc page_down" key5="left" key6="right" key7="up" key8="down"/>
<key width="1.7" key0="enter" key1="loc voice_typing" key2="action" key3="switch_backward" key4="switch_forward"/>
</row>
</keyboard>

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB