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

Symbol mode

Open jwkwshjsjsj opened this issue 3 months ago • 22 comments

I think it would be useful for Unexpected Keyboard to have a symbol mode like most other virtual keyboards. I think it greatly improves the speed of typing symbols if the user is typing a lot of them. The user doesn't have to do tons of swiping to get what they want and they get the best of both worlds is there (symbol mode with quick access to many symbols and swiping to quickly access a few symbols).

jwkwshjsjsj avatar Aug 30 '25 14:08 jwkwshjsjsj

I'm not sure switching to an other mode would help typing. Swipes are intended to be very fast, at least way faster than reading a different page full of symbols. Do you think swipes are slow ?

Julow avatar Aug 31 '25 22:08 Julow

I'm not sure switching to an other mode would help typing. Swipes are intended to be very fast, at least way faster than reading a different page full of symbols. Do you think swipes are slow ?

My opinion is that typing a few symbols with swipes is fast but typing more than that is probably faster with a dedicated mode.

jwkwshjsjsj avatar Sep 01 '25 11:09 jwkwshjsjsj

like most other virtual keyboards

For the shake of god, that was irreverent.

Comparing UK to another keyb makes no sense.

You can customize it as you want. Just build your "symbol" layout and navigate to it throught the provided methods.

simper66 avatar Sep 04 '25 13:09 simper66

@jwkwshjsjsj, do you know about custom layouts? If there are symbols you use repeatedly, you should make them keys or swipes in your copy rather than propose that the keyboard be restructured for everyone else.

@simper66, "irreverent"? Wrong word? We need not revere Julow to benefit from his work. And comparing UK does make sense; it has occasionally adopted features from elsewhere, though not necessarily the same way—for example, the Compose key.

Spike-from-NH avatar Sep 05 '25 18:09 Spike-from-NH

oh god, i was joking man

Well, for me it is not so joke. For some reasons I have to code only with the phone, so the keyboard app is more than a fancy thing for me,

I have deeply evaluate dozens of them and belive me, UK has no so common features such as forward delete, events, gestures or composing itself yes.

it has occasionally adopted features from elsewhere

so? One or another way, everything else also do it. That way, i imagine that nothing deserves a kind of acknowledge for you.

though not necessarily the same way

that is the key

simper66 avatar Sep 05 '25 20:09 simper66

I like the idea of trying this first with a custom layout. Could you try it ? If in the end it works well for you, I'd consider adding it to the app, especially if you come up with a good symbol layout.

Julow avatar Sep 06 '25 18:09 Julow

I like the idea of trying this first with a custom layout. Could you try it ? If in the end it works well for you, I'd consider adding it to the app, especially if you come up with a good symbol layout.

I'm not sure I know to or have the time to. The symbol mode key should be disableable for those who don't want it. I would suggest taking a look at the symbol layouts of other keyboard apps.

jwkwshjsjsj avatar Sep 06 '25 22:09 jwkwshjsjsj

and what's exactly a symbol layout? i‌sn't there one already?

https://github.com/Julow/Unexpected-Keyboard/blob/master/res/xml/greekmath.xml

which i miss are develoler layouts, and above all a snippet collection with the literal and macro definitions. As "duplicate line above", "paste to the left", "comment block", sheets for diferent languages, and things like that. Or things for the android key events.

simper66 avatar Sep 07 '25 07:09 simper66

and what's exactly a symbol layout? i‌sn't there one already?

https://github.com/Julow/Unexpected-Keyboard/blob/master/res/xml/greekmath.xml

which i miss are develoler layouts, and above all a snippet collection with the literal and macro definitions. As "duplicate line above", "paste to the left", "comment block", sheets for diferent languages, and things like that. Or things for the android key events.

A symbol layout is what appears when you press the bottom left button in most on-screen keyboards.

jwkwshjsjsj avatar Sep 07 '25 12:09 jwkwshjsjsj

thanks, i see, just this?

Image

So yes. As there is a number layout, why not a symbol one?

The user doesn't have to do tons of swiping to get what they want and they get the best of both worlds is there

Agree. After a while, some fatigue may arise with so much gesture. It is best to mix layouts depending on the task and mood.

at least way faster than reading a different page full of symbols

That's key. Gestures are by far the fastest method. But faster with respect to what? Because:

To type fast is easy. Just type quick|y.

TLDR; TLDR; TLDR;

Actually the aim is: - Maximize the typo-free typing rate.

There are 3 common methods: - Long pressing. - Layer switching. - Gestures.

Which settle 5 variables: -Waiting time until the symbol is available. -How much typo prone it is. -Screen size, which implies: -Symbol Density. And this: -Associated Induced Fatigue.

The user himself defines two: -Experience with that keyb (Muscle memory). -How fast he is typing.

This is a mesh of direct and inversely proportional variables. So i don't think there was a best layout/s.

Create custom layouts and use deeply customizables and not opinionated keyboards. As UK is.

simper66 avatar Sep 08 '25 17:09 simper66

You can do what you want with custom layout.

I can customize the layout easily whatever I want, but sometimes I need something like <fn for="l" n="×" sw="+"/> without to put any character before in the <key c="l" n="some char" sw="some symbol"/>

FinderN avatar Sep 08 '25 22:09 FinderN

but sometimes I need something like for="l" n="×" sw="+"/>

Me too. You end creating an entire layout just to change a pair of things. Cycling between them becomes a problem. As you can't reorder them you end switching XMLs.

<fn for="l" n="×" sw="+"....

It's like a layout but at the key level. A killer idea.You could have like libraries of keys.

simper66 avatar Sep 08 '25 23:09 simper66

which i miss are develoler layouts, and above all a snippet collection with the literal and macro definitions. As "duplicate line above", "paste to the left", "comment block", sheets for diferent languages, and things like that. Or things for the android key events.

For snippets and advanced copypastes and moves check out Acode. This functionality is usually handled by editor/IDE.

TruePe4rl avatar Sep 14 '25 20:09 TruePe4rl

Yes, I meant a place to push snipets, in addition to layous.

This functionality is usually handled by editor/IDE.

Have their utility, but be able to use this all around the device and customize it for crazy things has its point.

simper66 avatar Sep 15 '25 13:09 simper66

Yes, I meant a place to push snipets, in addition to layous.

This functionality is usually handled by editor/IDE.

Have their utility, but be able to use this all around the device and customize it for crazy things has its point.

I get the point, but I have no idea how Android handles input. To be able to do such things you need to be aware of the entire text buffer, move cursor (a lot), jump to correct offsets and have a working support for at least one snippet format.

TruePe4rl avatar Sep 15 '25 23:09 TruePe4rl

move cursor (a lot)

yeah, for example, to swap with the above line

n=" :end,shift,home,copy,delete,delete,up,enter,up,paste"

at the end you have a macro to make macros, so it isn't so bad

the limitation is that you are constrained to the initial caret/line. You can't loose it. ln multicaret textareas it really shines.

A rally great feature would be to send the text selection to another app. Is it named "intent"? To delegate all the thing i mean...

simper66 avatar Sep 16 '25 16:09 simper66

send the text selection to another app. Is it named "intent"?

forget that, it's already done :)

shareText: Emit a share Intent for the selected text. Oddity: This is in CamelCase.

simper66 avatar Sep 17 '25 14:09 simper66

i did my best to reorganize symbols in a logical way : braces, punctuation, arithmetics, accents, lines ...

check this :) it could be the default layout

even cooler if we had 2 colors, one for letters and on for symbols in every theme / even alternating colors for symbols (not getting confused about key boundaries)

Image

UnexpectedKeyboard_layout.xml

ecodix avatar Sep 22 '25 14:09 ecodix

reorganize symbols in a logical way

Me too. I also try to don't print too many symbols to don't saturate the screen and to memorize them faster.

e.g. in your case, i'd test to remove the symbols around L. It prints as a bar "l" and you have all bars around it in a clockwise manner so you coud take rid of them and wouldn't miss them. BTW it's a good idea and i will copy it if you don't mind ;)

To have a symbol without printing it:

nw=" :a"

A trick to gain extra free slots is to start a gesture and then revert it. It will execute the fn/shift associated modmap. This shines with paired keys like

{ } < > ! ¡

So you could save some slots in D W V B if it works for you.

even cooler if we had 2 colors

Indeed, or, to make dev's life easier, test to balance a bit the bold's intensity of the central and the compass labels and to separate subtly these last ones from their adjacent borders.

the problemis is this:

Image

As you can see the symbols don't share an imaginary center. I mean the L's bar isn't under the M's middle bar. I even belive that this cannot be controlled from the app side. Maybe with another font? Is it managed by the textarea behind?

simper66 avatar Sep 24 '25 15:09 simper66

Is it managed by the textarea behind?

thinking it twice, the keyboard itself isn't a textarea, or yes? a text label in a picture? If it was this last one, it would be easier to control the rendering

or does android takes "care" so there is nothing to do?

I will had to read the docs eventually.

simper66 avatar Sep 24 '25 15:09 simper66

thx ! i was not aware of invisible symbols. indeed it will make the keyboard lighter ! check the new layouy !

UnexpectedKeyboard_layout.xml

Image

e.g. this is a french one, however the idea of grouping symbols by categories is strong and nice i think.

by the way, i found a bug: the chatacter ç ( french cedilla under letter c) cannot be made invisible (desparately trying to hide ç)

ecodix avatar Sep 26 '25 01:09 ecodix

need something like fn for="l" n="×" sw="+" without to put any character before in the key c="l" n="some char" sw="some symbol"

Look. i found a tournaround. When you want a symbol in the Fn-layer, whithout an associated main layer one, you can use a real invisible sym from e.g. https://invisible-characters.com/

There are two types, ones that you see as a blank space, and another ones that you don't see at all. Both can be useful.

Works quite well, but if you press the sym by mistake you will actually writte it. Could be a problem or not. So keep it in mind. As a tournaround of this, i will try to make a key which removes itself at the end, but i see difficult to make all working together properly.

simper66 avatar Sep 27 '25 02:09 simper66