[Feature request] Add Workman layout
This is my absolute favorite keyboard app but recently I switched my layout from Qwerty to Workman, so for the time being I have to use AnySoftKeyboard.
I'd love it if this layout were supported (I tried adding it myself using the guidelines but I had issues installing the apk I couldn't work out :/)
To create a new layout, you need to make a .xml file that looks like this: https://github.com/Julow/Unexpected-Keyboard/blob/master/res/xml/qwerty.xml
I've made the xml file, but I can't figure out how to use it. Seems I need to build the app with my xml file in the source code, but idk how to actually build it in the first place even with the instructions on the contributing page.
You can try to paste the XML into the "custom layout" option in the settings of the app. If there's an error in the XML, the app will likely not tell you. If that doesn't work for you, you can paste your layout here and I'll debug it.
That worked, but there's a few problems. First, the default bottom row is present and idk how to remove it, and certain characters (@, #, ?, etc.) have a \ before it. I used Lixquid's online layout editor if that helps.
Here's what's in the xml: Unexpected_Workman.txt
Nice!
You can hide the bottom row by adding bottom_row="false" to <keyboard>, see for example neo2.
The bug about the extra \ is reported in https://github.com/Julow/Unexpected-Keyboard/issues/381 and will not be a problem when the layout will be added into the app later.
Some remarks:
-
Keys that are present in the "Add keys to the keyboard" option should be prefixed with
loc. This will hide them for people that don't want to see them. For example,capslock,selectAll,copy,undo, etc.. -
The subtle values passed to
shiftdon't belong here. It makes the layout more complicated for something that is already covered by the settings ("spacing between the keys"). -
The left and right arrows on your space bar are not "sliders". You need to add
slider="true". -
It's nice to experiment new bottom rows but be warned that the standard bottom row changes sometimes and I won't update layouts. You might miss future features due to that. One example is the slider.
-
The symbols around
g y c vare on the center of the layout and might be hard to reach.
yes:
- having workman layout in default offering will help a lot.
- the qwerty layout causes toooo much thumb movements, and causes my hands to ache even for several sentences.
- similar goes for qwerty in desktop / full size keyboards: tooo much finger movements. i am exclusively using workman there too for well over 2 months now, & no regrets.
for making the workman layout xml for unexpected keyb:
- while the key placement is easy,
- i can't figure out how to even decide for what the symbols placement for it should be.
- just for info, my use for unexpected keyb will be doing coding, but i am not an optimization freak so this should not matter that very much.
following is the layout xml i made from the default qwerty template, it has duplicate symbols due to above very reason.
Details
<?xml version="1.0" encoding="utf-8"?>
<!-- This file defines the WORKMAN 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.
'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
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)
See bottom_row.xml for the definition of the bottom row and neo2.xml for a
layout that re-defines it.
See srcs/juloo.keyboard2/KeyValue.java for the keys that have a special meaning.
-->
<keyboard name="WORKMAN (US)" script="latin">
<row>
<key key0="q" key2="1" key4="loc esc"/>
<key key0="d" key1="~" key2="2" key3="\@"/>
<key key0="r" key1="!" key2="3" key3="\#" key4="loc €"/>
<key key0="w" key2="4" key3="$"/>
<key key0="b" key2="5" key3="%"/>
<key key0="j" key2="6" key3="^"/>
<key key0="f" key2="7" key3="&"/>
<key key0="u" key2="8" key3="*"/>
<key key0="p" key2="9" key3="(" key4=")"/>
<key key0=";" key2="0"/>
</row>
<row>
<key key0="a" key1="loc tab" key2="`" shift="0"/>
<key key0="s" key2="loc §" key3="loc ß"/>
<key key0="h"/>
<key key0="t"/>
<key key0="g" key2="-" key3="_"/>
<key key0="y" key2="=" key3="+"/>
<key key0="n" key4="}" key3="{"/>
<key key0="e" key3="[" key4="]"/>
<key key0="o" key2="|" key3="\\"/>
<key key0="i" key2="|" key3="\\"/>
</row>
<row>
<key width="1.5" key0="shift" key2="loc capslock"/>
<key key0="z"/>
<key key0="x" key2="loc †"/>
<key key0="m" key2="<" key3="."/>
<key key0="c" key2=">" key3=","/>
<key key0="v" key2="\?" key3="/"/>
<key key0="k" key2=":" key3=";"/>
<key key0="l" key2=""" key3="'"/>
<key width="1.5" key0="backspace" key2="delete"/>
</row>
</keyboard>
-
unexpected keyboard with workman layout (custom)
-
rkkr simple keyboard with workman layout (preset)
Looks nice! Some keys are present twice on the layout: ;, , |. Is that intended ?
following is the layout xml i made from the default qwerty template, it has duplicate symbols due to above very reason. - me at https://github.com/Julow/Unexpected-Keyboard/issues/317#issuecomment-2526744663
Some keys are present twice on the layout: ;, , |. Is that intended ? - @ Julow at https://github.com/Julow/Unexpected-Keyboard/issues/317#issuecomment-2543059567
hi! no, those are not intended. i just couldnt think where to start regarding symbol placement. i just duplicated the keys (code lines), & modified their main element.
so, my comment is like a call to input or call to add workman layout on the set of layouts bundled with app.
I suggested a placement for the punctuation symbols and added the layout in d73b9d6. Feel free to suggest more change, it's located here: https://github.com/Julow/Unexpected-Keyboard/blob/master/srcs/layouts/latn_workman_us.xml Debug APK at the end of this page: https://github.com/Julow/Unexpected-Keyboard/actions/runs/12363330759