Unexpected-Keyboard icon indicating copy to clipboard operation
Unexpected-Keyboard copied to clipboard

One sided keyboard

Open linux-a7s opened this issue 7 months ago • 7 comments

Add one sided option like right or left when we type from one handed

linux-a7s avatar Nov 18 '23 13:11 linux-a7s

Seconded! For example, add syntax in the layout XML that would make the keyboard align-left or align-right rather than span the full available width. And perhaps attach to top instead of bottom of the screen.

Spike-from-NH avatar Nov 18 '23 18:11 Spike-from-NH

It's possible to add emtpy space on either side of the keyboard (though not on the right without having at least one row touching the right side).

Here's an impractical layout that cram the latin letters and a few symbols on 4 rows and 4 columns:

<?xml version="1.0" encoding="utf-8"?>
<keyboard name="QWERTY One-Handed (US)" script="latin" bottom_row="false">
  <row>
    <key shift="3" key0="!" key1="config" key2="q" key3="?"/>
    <key key0="e" key1="w" key2="r" key3=":"/>
    <key key0="y" key1="t" key2="u"/>
    <key key0="o" key1="i" key2="p"/>
  </row>
  <row>
    <key shift="3" key0="backspace" key2="delete"/>
    <key key0="s" key1="a" key2="d" key3="fn"/>
    <key key0="g" key1="f" key2="h" key3="-"/>
    <key key0="k" key1="j" key2="l" key3="@"/>
  </row>
  <row>
    <key shift="3" key0="shift" key2="loc capslock"/>
    <key key0="." key2="z" key3=","/>
    <key key0="c" key1="x" key2="v"/>
    <key key0="n" key1="b" key2="m"/>
  </row>
  <row>
    <key shift="2.5" key0="switch_numeric" key1="change_method" key3="ctrl" key4="switch_emoji"/>
    <key width="3" key0="space" key7="switch_forward" key8="switch_backward" key5="cursor_left" key6="cursor_right" slider="true"/>
    <key key0="enter" key1="loc voice_typing" key2="action"/>
  </row>
</keyboard>

It looks like that (with french keys being automatically added): shot

More research into this is welcome.

Julow avatar Jan 10 '24 00:01 Julow

I've tried a layout by myself: Screenshot_20240221-234341

<keyboard name="doak (single handed)" bottom_row="false" script="latin">
    <row>
        <key    key0="q"    key1="y"    key2="esc"  key3="&lt;" key4="&gt;" shift="2.5" />
        <key    key0="u"    key1="w"    key2="1"    key3="@"    key4="#"                />
        <key    key0="e"    key1="i"    key2="2"    key3="$"    key4="€"                />
        <key    key0="o"    key1="r"    key2="3"    key3="%"    key4="^"                />
        <key    key0="t"    key1="p"    key2="|"    key4="*"
                key3="&amp;"                                                            />
    </row>
    <row>
        <key    key0="a"    key1="h"    key2="tab"  key3="~"
                key4="loc accent_trema"                                     shift="2.5" />
        <key    key0="s"    key1="j"    key2="4"    key3="ß"                            />
        <key    key0="d"    key1="k"    key2="5"    key3="("    key4=")"                />
        <key    key0="f"    key1="l"    key2="6"    key3="["    key4="]"                />
        <key    key0="g"    key1="+"    key2="-"    key3="_"    key4="="                />
    </row>
    <row>
        <key    key0="b"    key1="z"    key2="?"    key3="/"    key4="\"    shift="2.5" />
        <key    key0="n"    key1="x"    key2="7"    key3="!"                            />
        <key    key0="c"    key1="m"    key2="8"                                        />
        <key    key0="v"    key1=":"    key2="9"    key3=","    key4="."                />
        <key
                key0="backspace"
                key1="shift"
                key2="delete"
                key3="subscript"
                key4="superscript"
                />
    </row>
    <row>
        <key
                key0="ctrl"
                key1="loc switch_greekmath"
                key2="loc meta"
                key4="switch_numeric"
                shift="2.5"
                />
        <key
                key0="fn"
                key1="alt"
                key2="0"
                key3="switch_emoji"
                key4="config"
                />
        <key
                key0="space"
                key1="switch_backward"
                key2="switch_forward"
                key5="left"
                key6="right"
                key7="up"
                key8="down"
                slider="true"
                width="2"
                />
        <key
                key0="enter"
                key1="ctrl"
                key2="action"
                key3="compose"
                />
    </row>

    <row height="0">
        <key width="10"/>
    </row>
</keyboard>

doak avatar Feb 21 '24 22:02 doak

Yes, but having the keyboard centered reduces the utility of one-handed typing! Delete shift="2.5" or replace it with shift="5.0" depending on your handedness!

Spike-from-NH avatar Feb 22 '24 00:02 Spike-from-NH

That's funny. What device you are using? I reach the middle best without letting the mobile phone go … :)

doak avatar Feb 22 '24 00:02 doak

Very well! Have it your way (which is the essence of custom layouts)!

Spike-from-NH avatar Feb 22 '24 11:02 Spike-from-NH

which is the essence of custom layouts

Absolutely. I am still curious. Is the device rather wide? Mine is such slippy, I would let it go if I wanna reach a key at the edge.

Since there is afaik no toggle to configure placement, I will create a layout for left, middle and right placement and provide it on https://github.com/Julow/Unexpected-Keyboard-layouts.

doak avatar Feb 27 '24 08:02 doak