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

feat: new sil_ipa gestures (first draft) #2521

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open

Conversation

jahorton
Copy link
Contributor

@jahorton jahorton commented Jan 12, 2024

A public link for anyone wanting to try out this draft: https://jahorton.github.io/sil_ipa.kmp

General rules of thumb:

  • <key> + < => left flick (includes shifted versions)

  • <key> + > => right flick (includes shifted versions)

  • <key> + = => down flick (includes shifted versions)

  • the superscript version of a default-layer key: up flick

    • exception to the above rules: the default-layer qs variants are based on ? instead, supporting glottal stops and similar characters.
    • There does exist a corresponding character for q now, if we'd rather fix the exception for superscript q: https://www.fileformat.info/info/unicode/char/107a5/index.htm
      • Added in Unicode 14.0 / 2021, so I understand why it wasn't originally part of the keyboard. I'll leave the glottal stop in place for now, though.
    • SHIFT+Q flicks are based on Q as per the standard pattern, though.
  • !-based clicks: accessible as flicks on SHIFT+P following the patterns set above, with ! as up flick.

    • The p + = flick is still rooted on the default layer p per the rules above.
  • the velarized/darkened version of a consonant: shift layer's up flick (if not otherwise defined)

    • except for special cases for particularly important superscript characters, such as the uvularization marker.
  • if a | variant for a key exists and the shifted key's up-flick is still otherwise undefined, I used that instead of leaving the spot empty.

    • (this is probably my most questionable decision here)
  • adds hints for some less-obvious subkeys (such as glottal stops being on the q)

    image

The 'clicks' are all available from p (down) and shift+p (with hardware-keyboard's ! base as shift+p up-flick).
The glottal-stop variants are all available from q and shift+q.

Aside from that, the patterns involved should be quite consistent, though there is some regrettable conflict between velarization and a few of the super-script variants.

@mcdurdin
Copy link
Member

Note: this should not be merged until 17.0 is released.

@jahorton jahorton changed the base branch from master to staging-17.0 January 15, 2024 01:20
@jahorton
Copy link
Contributor Author

jahorton commented Jan 15, 2024

@mhosken @LornaSIL

No rush here; this is partly a fun thought experiment. That said, it may make a good keyboard to use as an example for flick-gesture use, and it would be nice to have a couple of early examples to point people toward when talking about the new gestures landing in Keyman 17.0.

So yeah, I thought I'd try adding gesture support to the IPA keyboard - it seems like it could be a fantastic case for use of the new flick gesture type. Since there do seem to be just four "main modifiers" (<, >, =, ^) with very consistent patterns, it seems like the patterns should be easy to "mentally map" to the four flick directions. This way, users can use the desktop patterns they already know without having to learn new patterns.

~, for velarization, gets treated as a fifth on the shift layer, as the keyboard hasn't done superscript capitals per key. As noted above, I did, early on, also consider some use of | outputs, but in retrospect, the few uses that remain in the version seen here are probably better to drop - those are generally non-IPA characters, anyway.

You two are far more "expert" in this field... and are listed as the original authors for the keyboard... so I feel I should leave the ball in your court on this. Feel free to reject this idea or to modify things to better suit what you believe would be most needed for end users.

@darcywong00
Copy link
Contributor

Noting that subscript numerals are getting added in #2587 . It might be nice on the numeric layer to also add those (convert superscript and subscript numerals to flicks?)

@LornaSIL
Copy link
Contributor

Mostly I like it. The flicks on the uppercase layer are kind of irritating because when I was trying different flicks on SHIFT it kept reverting to the default layer rather than staying with SHIFT. Maybe I wasn't typing it correctly.

I'm wondering about the keyboard automatically going to default anyway since this is IPA does it make sense to default back to the default layer? I know you didn't make that change and I cannot remember at what point we added that (It looks like it's been that way since I created the mobile layout. Since no one has complained maybe that's not an issue.)

Base automatically changed from staging-17.0 to master June 3, 2024 01:24
@LornaSIL
Copy link
Contributor

@jahorton is this a PR that's now ready to process or was it replaced with something else?

@jahorton
Copy link
Contributor Author

@jahorton is this a PR that's now ready to process or was it replaced with something else?

Oh, uh... if you feel like the keystroke layout I went with is fine, I suppose it's ready to process. I was kind of expecting there to be a few layout change requests before proceeding further.

@jahorton jahorton marked this pull request as ready for review June 11, 2024 01:09
@MattGyverLee
Copy link
Contributor

I like this a lot. The flicks make sense and one could easily get used to it. There is the issue of diacritics being quite small and having no dotted circle, but I think Marc has said that that's work to be done outside of specific keyboards.

@LornaSIL
Copy link
Contributor

@MattGyverLee do I understand that you, as a user, would be happy for us to merge this in to the keyboard? (Yes, the font issue is a separate issue. I have no idea when we can address that)

@MattGyverLee
Copy link
Contributor

Yes, of course, with some added documentation for the mobile version. Flicks are now in Keyman stable, right?

The mobile version was usable before this, but I agree that this is 1) a step in the right direction toward usability, 2) it would be a great example to instruct future developers wanting to see a practical example of flicks, and 3) won't confuse the existing 70,000 users (I hope you have statistics for how many are on mobile) because this feature is below the surface.

@MattGyverLee
Copy link
Contributor

I just explored the shift issue Lorna mentioned. Flicks seem to work but Longpresses on the SHIFT layer look like they're sometimes only giving their lowercase equivalents. Oddly, Flick down on G gives ɢ for example, but it's not in the longpress on G. Maybe this is an isolated issue.

I'm not sure if longpress on a capital letter should include lowercase variants since IPA is predominantly lowercase, but for people not using shift, I believe all lowercase and uppercase options should be in the lowercase longpress. Does that make sense?

@mcdurdin
Copy link
Member

mcdurdin commented Mar 20, 2025

  1. it would be a great example to instruct future developers wanting to see a practical example of flicks

sil_euro_latin and khmer_angkor are two other keyboards with great flick usage.

  1. (I hope you have statistics for how many are on mobile)

Why? What would we do with those stats?

@LornaSIL
Copy link
Contributor

LornaSIL commented Mar 20, 2025 via email

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

Successfully merging this pull request may close these issues.

5 participants