Skip to content
This repository has been archived by the owner on Feb 4, 2020. It is now read-only.

[Feature Request] New Keyboard layout, Eastman THERM, optomized for one finger swiping #286

Open
IronJunkie opened this issue Sep 18, 2019 · 0 comments

Comments

@IronJunkie
Copy link

Hi. I've been using the Flow soft keyboard for years, it's a a keyboard optimized for single finger swiping in English with the most common letters & letter groupings located as close to the centre or adjacent to common letter groupings as possible, unfortunately the developer appears inactive and it now exhibits several little bugs on Android Pie & Android 10 making it less easy to use. As ASK now supports swipe it would be ideal to incorporate this innovative layout into ASK.

The original app is here https://play.google.com/store/apps/details?id=com.enchantedcode.flow&hl=en

It has an open source licence so this layout (which I've called "Eastman THERM" after the developer, followed by main key layout ie "THERM" as someone here might produce a different layout optimised for a different language).
Licence here https://sourceforge.net/projects/flowkeyboard/ and original code etc

Unfortunately I'm no coder & haven't created an apk or even run it as a virtual device on Android Studio yet, so hope someone here could help.

I've made an attempt to combine the basic layout of the Flow keyboard while also keeping features & behaviors of ASK eg same symbols will appear when long pressing for most popups. (there are a couple of duplicate symbols for this reason). I suspect one drawback is likely to be the the generic bottom row used by ASK which doesn't suit this layout, likewise with some others eg EN Keyboard, Halmak etc, but at least we might have a functional layout.

So I'll post the code I've "hacked" here, no doubt there are likely some errors not to mention completely wrong coding ie I've used the @interger coding from the utility keyboard of the main module eg android:codes="@integer/key_code_voice_input but I don't know if it'll work within the language pack. Also I'm not sure what effect using the code "isfunctional" on keys within the normal key area will have. Also you'll see I've "commented out" some code in favour of another line,

Basic Eastman THERM layout
`










<Row>
    <Key android:horizontalGap="15%p" android:codes="," android:popupCharacters="" ask:hintLabel="" android:keyEdgeFlags="left"/>
    <Key android:codes="t" android:popupCharacters="\u003a ťṭṯ™" ask:hintLabel="\u003a"/>
    <Key android:codes="h" android:popupCharacters="1¹₁_~ĥḥḫẖ" ask:hintLabel="1_ ~"/>
    <Key android:codes="e" android:popupCharacters="2²₂èéêëęē€" ask:hintLabel="2"/>
    <Key android:codes="r" android:popupCharacters="3³₃řŕ®℞" ask:hintLabel="3"/>
    <Key android:codes="m" android:popupCharacters="/÷\\|µ" ask:hintLabel="/"/>
    <Key ask:isFunctional="true" android:codes="32" android:popupCharacters="" ask:keyLabel="⎵"
        android:keyEdgeFlags="right" android:horizontalGap="15%p"/>
</Row>

<Row>
    <Key android:horizontalGap="15%p" android:codes="." android:popupCharacters="…·•" ask:hintLabel="…•" android:keyEdgeFlags="left"/>
    <Key android:codes="c" android:popupCharacters="\u003b çćĉč©" ask:hintLabel="−"/>
    <Key android:codes="a" android:popupCharacters="4⁴₄@àáâãāäåæąα" ask:hintLabel="4@" />
    <Key android:codes="i" android:popupCharacters="5ìíîïłīι*" ask:hintLabel="5"/>
    <Key android:codes="o" android:popupCharacters="6òóôõöøőœō" ask:hintLabel="6"/>
    <Key android:codes="l" android:popupCharacters="+ľĺł±" ask:hintLabel="+"/>
    <Key android:codes="p" android:popupCharacters="U+03C0" ask:hintLabel="π"
        android:keyEdgeFlags="right" android:horizontalGap="15%p"/>
</Row>

<Row>
    <Key android:horizontalGap="15%p" android:codes="-2" android:keyLabel="123" android:keyEdgeFlags="left"/>
    <Key android:codes="k" android:popupCharacters="$€£¥¢₽₹元₿" ask:hintLabel="$"/>
    <Key android:codes="s" android:popupCharacters="7$§ßśŝšṣ" ask:hintLabel="7"/>
    <Key android:codes="n" android:popupCharacters="8ńňñ" ask:hintLabel="8"/>
    <Key android:codes="u" android:popupCharacters="9ùúûüŭűūµ" ask:hintLabel="9"/>
    <Key android:codes="d" android:popupCharacters="-—#°đďḏ" ask:hintLabel="-"/>
    <Key android:codes="j" android:popupCharacters="\u003Dĵ≠" ask:hintLabel="="/>

    <Key ask:isFunctional="true" android:codes="\u0027" android:popupCharacters="ʾʿʻ\u0022"
         android:keyEdgeFlags="right" android:horizontalGap="15%p"/>
</Row>

<Row>
    <Key android:horizontalGap="15%p" android:codes="-1" android:keyWidth="10%p"
         android:isModifier="true" android:isSticky="true" android:keyEdgeFlags="left"/>
    <Key android:codes="z" android:popupCharacters="=żžź" ask:hintLabel="="/>
    <Key android:codes="'" android:popupCharacters="'u0022" ask:hintLabel="u0022"/>
    <Key android:codes="g" android:popupCharacters="0`°ĝ" ask:hintLabel="0`°"/>
    <Key android:codes="f" android:popupCharacters="#" ask:hintLabel="#"/>
    <Key android:codes="q" android:popupCharacters="*^‡†" ask:hintLabel="*"/>
    <Key android:keyWidth="10%p" android:codes="-4" android:isRepeatable="true"
    android:keyEdgeFlags="right" android:horizontalGap="15%p"/>

</Row>
`

My extended version with extra keys on sides for better usability as most phones have wide enough screens and keys should be small to aid swiping speed rather than spread across the whole screen.
`












<Row>
    <Key android:codes="@integer/key_code_clipboard_select"/>
    <Key android:codes="," android:popupCharacters="" ask:hintLabel=""/>
    <Key ask:isFunctional="true" android:codes="," android:popupCharacters="\u002C;" ask:hintLabel=", ; -" android:keyEdgeFlags="left"/>
    <Key android:codes="t" android:popupCharacters="\u003a ťṭṯ™" ask:hintLabel="\u003a"/>
    <Key android:codes="h" android:popupCharacters="1¹₁_~ĥḥḫẖ" ask:hintLabel="1_ ~"/>
    <Key android:codes="e" android:popupCharacters="2²₂èéêëęē€" ask:hintLabel="2"/>
    <Key android:codes="r" android:popupCharacters="3³₃řŕ®℞" ask:hintLabel="3"/>
    <Key android:codes="m" android:popupCharacters="/÷\\|µ" ask:hintLabel="/"/>
    <Key android:keyWidth="20%p" ask:isFunctional="true" android:codes="32"
    android:popupCharacters="" ask:keyLabel="⎵" android:keyEdgeFlags="right"/>

</Row>

<Row>
    <Key android:codes="@integer/key_code_clipboard_cut" android:keyEdgeFlags="left"/>
    <Key android:codes="." android:popupCharacters="…·•" ask:hintLabel="…•"/>
    <Key ask:isFunctional="true" android:codes="." android:popupCharacters="\?!\u0026\u00a1&#191;&#11822;&#8253;" ask:hintLabel="\? !"/>
    <Key android:codes="c" android:popupCharacters="\u003b çćĉč©" ask:hintLabel="−"/>
    <Key android:codes="a" android:popupCharacters="4⁴₄@àáâãāäåæąα" ask:hintLabel="4@" />
    <Key android:codes="i" android:popupCharacters="5ìíîïłīι*" ask:hintLabel="5"/>
    <Key android:codes="o" android:popupCharacters="6òóôõöøőœō" ask:hintLabel="6"/>
    <Key android:codes="l" android:popupCharacters="+ľĺł±" ask:hintLabel="+"/>
    <Key android:codes="p" android:popupCharacters="U+03C0" ask:hintLabel="π"/>
    android:keyEdgeFlags="right"/>
</Row>

<Row>
    <Key android:codes="@integer/key_code_clipboard_copy" android:keyEdgeFlags="left"/>
    <Key android:codes="-2" android:keyLabel="123"/>
    <Key android:codes="k" android:popupCharacters="$€£¥¢₽₹元₿" ask:hintLabel="$"/>
    <Key android:codes="s" android:popupCharacters="7$§ßśŝšṣ" ask:hintLabel="7"/>
    <Key android:codes="n" android:popupCharacters="8ńňñ" ask:hintLabel="8"/>
    <Key android:codes="u" android:popupCharacters="9ùúûüŭűūµ" ask:hintLabel="9"/>
    <Key android:codes="d" android:popupCharacters="-—#°đďḏ" ask:hintLabel="-"/>
    <Key android:codes="j" android:popupCharacters="\u003Dĵ≠" ask:hintLabel="="/>
    <Key android:codes="@integer/key_code_quick_text" ask:longPressCode="@integer/key_code_quick_text_popup"
        android:keyEdgeFlags="right"/>
</Row>

<Row>
    <Key android:codes="@integer/key_code_clipboard_paste"
        ask:longPressCode="@integer/key_code_clipboard_paste_popup" android:keyEdgeFlags="left"/>
    <Key android:codes="-1" android:isModifier="true" android:isSticky="true" android:keyEdgeFlags="left"/>
    <Key android:codes="z" android:popupCharacters="=żžź" ask:hintLabel=""/>
    <Key ask:isFunctional="true" android:codes="\u0027" android:popupCharacters="ʾʿʻ\u0022"/>
    <Key android:codes="g" android:popupCharacters="0`°ĝ" ask:hintLabel="0`°"/>
    <Key android:codes="f" android:popupCharacters="#" ask:hintLabel="#"/>
    <Key android:codes="q" android:popupCharacters="*^‡†" ask:hintLabel="*"/>
    <Key android:codes="-4" android:isRepeatable="true"
    <Key android:keyWidth="10%p" android:codes="@integer/key_code_voice_input"
        android:keyEdgeFlags="right"/>

</Row>
`

I've also added the above keyboards to the english_pack_strings, english_pack_strings_dont_translate, english_keyboards files but I won't post for now as this is long enough already & no doubt there will be others that need updating.

All feedback,suggestions & critique welcome

@IronJunkie IronJunkie changed the title New Keyboard layout, Eastman THERM, optomized for one finger swiping [Request] New Keyboard layout, Eastman THERM, optomized for one finger swiping Sep 18, 2019
@IronJunkie IronJunkie changed the title [Request] New Keyboard layout, Eastman THERM, optomized for one finger swiping [Feature Request] New Keyboard layout, Eastman THERM, optomized for one finger swiping Oct 4, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant