Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Two shift keys don't work as one and the capslock isn't the "master" key for them. #832

Open
manieKMP opened this issue Dec 16, 2024 · 5 comments
Milestone

Comments

@manieKMP
Copy link

manieKMP commented Dec 16, 2024

I've tried to reproduce to some point gboard lyout for tablet/landscape mode in Unexpected Keyboard. I found out that having two shift keys (on the left and right side) the right one behaving like the "main" one and only this one is activating by auto capital letters function and/or by the capslock key (that one doesn't work like a toggle for any shift key) and only he -right shift- can be used to "turn him off".

I think that expected behaviour in that scenario supposed to be that the left or right shift key shoud activate his counterpart and the capslock key (at least as a separate key) should be a "master" key for them to (de)activate both of them.

Here is the layout, if someone wants to use it...

<?xml version="1.0" encoding="utf-8"?>
<keyboard name="QWERTY GBoard (Polski)" script="latin" bottom_row="false">
  <row>
    <key width="0.6" key0="tab"/>
    <key key0="q" nw="loc esc" ne="1" sw="~"/>
    <key key0="w" ne="2"/>
    <key key0="e" ne="3" se="ę"/>
    <key key0="r" nw="loc ₪" ne="4"/>
    <key key0="t" ne="5"/>
    <key key0="y" ne="6" sw="^"/>
    <key key0="u" ne="7" sw="&amp;" se="loc €"/>
    <key key0="i" nw="loc accent_macron" ne="8"/>
    <key key0="o" ne="9" se="ó"/>
    <key key0="p" ne="0"/>
    <key key0="backspace" ne="delete" nw="f11_placeholder" sw="f12_placeholder"/>
  </row>
  <row>
    <key key0="capslock"/>
    <key key0="a" ne="\@" se="ą"/>
    <key key0="s" ne="loc §" sw="\#" se="ś"/>
    <key key0="d" ne="loc $" se="loc £"/>
    <key key0="f" ne="_"/>
    <key key0="g" ne="-"/>
    <key key0="h" ne="=" sw="+"/>
    <key key0="j" sw="{" se="}"/>
    <key key0="k" nw="(" ne=")" sw="[" se="]"/>
    <key key0="l" ne="|" sw="\\" se="ł"/>
    <key width="1.6" key0="enter" nw="loc voice_typing" ne="action"/>
  </row>
  <row>
    <key width="1.5" key0="shift"/>
    <key key0="z" ne="*" se="ż"/>
    <key key0="x" ne="&quot;" se="ź"/>
    <key key0="c" ne="'" se="ć"/>
    <key key0="v" ne=":" sw="&lt;" se="&gt;"/>
    <key key0="b" ne=";" sw="/" se="//"/>
    <key key0="n" ne="!" se="ń"/>
    <key key0="m" nw="`" ne="\?" sw="```"/>
    <key key0="." nw=".com" ne="," sw="%" se=".pl"/>
    <key width="0.6" key0="up"/>
    <key width="1.5" key0="shift"/>
  </row>
  <row height="0.95">
    <key width="1.2" key0="ctrl" ne="loc meta" sw="loc switch_clipboard" se="switch_numeric"/>
    <key width="1.2" key0="fn" nw="loc alt" ne="loc change_method" sw="switch_emoji" se="config"/>
    <key width="6.5" key0="space" n="switch_forward" s="switch_backward" w="cursor_left" e="cursor_right" slider="true"/>
    <key width="0.6" key0="left"/>
    <key width="0.6" key0="down"/>
    <key width="0.6" key0="right"/>
  </row>
</keyboard>
@Julow
Copy link
Owner

Julow commented Dec 19, 2024

The solution to this might be that the caps lock key should stay pressed while the two shift key remain unpressed.

@Spike-from-NH
Copy link
Contributor

Moreover, as far as I can see, Unexpected has no concept of "right shift," even if you write a layout with two keys generating shift. On a physical keyboard, the two keys produce different codes; some PC games distinguish them, and the WinXP power tool "RemapKey" lets me map each shift key independently. Is this a concept that is never used by Android apps?

@manieKMP
Copy link
Author

The solution to this might be that the caps lock key should stay pressed while the two shift key remain unpressed.

I'm fine with any working solution, of course if caps lock, at least as separate key, will behave like toggle (pressing first time activates it, pressing second time deactivates it).

Moreover, as far as I can see, Unexpected has no concept of "right shift," even if you write a layout with two keys generating shift.

Probably the same goes with gboard. Devs of that keyboard just managed to "mimic" two shift keys but in reality it's still one button, just cloned for ease of use.

@Julow Julow added this to the 1.31.0 milestone Dec 21, 2024
@ValerieLehane
Copy link

Moreover, as far as I can see, Unexpected has no concept of "right shift," even if you write a layout with two keys generating shift. On a physical keyboard, the two keys produce different codes; some PC games distinguish them, and the WinXP power tool "RemapKey" lets me map each shift key independently. Is this a concept that is never used by Android apps?

I wouldn't say never. You can probably use it in Termux.

@Spike-from-NH
Copy link
Contributor

The solution to this might be that the caps lock key should stay pressed while the two shift key remain unpressed.

In the typewriter era, CAPS LOCK was SHIFT LOCK. The innovation that the two would affect a different set of keys was unthinkable until we built video terminals and could write firmware. SHIFT had its given effect—while it was pressed—but also unlocked the LOCK key. This was once a wonder of springs and plastic.

This might not be what we want, now that we can code whatever we want, but it is what white-haired users will expect. These users will sometimes tap SHIFT solely to cancel the LOCK.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants