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

Add composition as a toggle option in all layouts #663

Closed
quasipedia opened this issue Feb 5, 2024 · 6 comments
Closed

Add composition as a toggle option in all layouts #663

quasipedia opened this issue Feb 5, 2024 · 6 comments
Labels
enhancement New feature or request

Comments

@quasipedia
Copy link

As a user with a complex identity who types primarily in a language with a given set of accented letters, and secondarily in a language with a different second set of accented letters, I would like to be able to choose if the keyboard should try to compose characters independently by what layout I chose (=it should be a separate checkbox under the layouts option in the settings). Unwanted (accidental) composition should be undone with a backspace

Example:
a followed by " will result in ä. If the user now taps backspace it will result in a".

This is useful because you may for example primarily type in Swedish and have the letters äëöå as primary taps/swipes, but you may occasionally text to an Italian relative, and want to be able to quickly compose àèìòùáéíóú, rather than switching the full layout, where the position of the main taps/swipes change.

Other than that: this project is amazing. I have been using MessagEase since my palm III time (yes! MessageEase pre-dates smart phones!) and finding a free and open source version of it has been a godsend! <3

@quasipedia quasipedia added the enhancement New feature or request label Feb 5, 2024
@dessalines
Copy link
Owner

This would be something better on a per-key basis. Not all letters have composed types.

@quasipedia could you handle this one?

@smurfix
Copy link

smurfix commented Feb 9, 2024

IMHO you can ignore whether letters have composable types or not. You just need a way to enter the combining diacritical of your choice. In principle, assigning keys to them should be sufficient.

For displaying the diacritical on the keyboard you probably need to emit either a punctuation space U+2008 or a ◌ U+25CC (the latter would make distinguishing between an accent and a cedilla easier …) in front of the diacritical mark.

Backspacing through a letter+plus+diacritical sequence should separate the two by inserting a punctuation space, then another backspace should remove both the space and the diacritical.

@dessalines
Copy link
Owner

@smurfix can you handle this one?

@smurfix
Copy link

smurfix commented Feb 10, 2024

I'm not exactly out of work, but I'll have a look at the code.

@smurfix
Copy link

smurfix commented Feb 12, 2024

Well, this seems tractable. First (and rather easy) step: remove the explicit compose tables and simply append u0301 instead of replacing an a with an á. Same for the others. Instead of the ç cedilla special-case, just support Compose+Comma → u0327, that way users can write a z̧ or even an ẍ̧̀ if they need that.

Oh yes, special case: if the last character is a space: replace it with the non-combining version of the mark. Combiners are not displayed on spaces. (Alternately you could replace the space with its non-breaking sibling u00A0.) There's also Compose+period → u0323 ("dot below"). Dot Above u0307 is also moderately common and could be Compose+colon.

What currently is not tractable, however, is my work system's inability to run Gradle. 🤬 The stupid errors I get are beyond my ability to track down, let alone fix, given limited free (or even "free") time. Thus I'm sorry but as much as I'd want to I can't provide you with a pull request that has a non-zero chance of actually compiling, let alone working.

@dessalines
Copy link
Owner

Can re-open if someone wants to work on this.

@dessalines dessalines closed this as not planned Won't fix, can't repro, duplicate, stale May 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants