It's the keyboard layout.


Here's a new version of the proposal, taking some of the above comments into account: http://www.keyboard-layout-editor.com/#/layouts/c32ba59bfadaadbab4a69b88ed4881b1

Changes:

  • Moved keyboard Shift and Meta to the right, as suggested by Neelix. Depending on the actual keyboard matrix, they can be brought back to the left. I personally don't really care since I will probably use the shoulder modifiers anyway; people who use the keyboard modifiers will probably want to make them sticky (like Fn on the Pandora: you can release Fn before hitting the next key)
  • Put Compose at Meta+Enter by default, because Shift+Meta for Compose is indeed annoying if you intended to use those as a modifier but changed your mind midway, as pointed out by Grench.
  • Made the two new action buttons Ins and Del, as asked by Grench (and Neelix, and some others in the past)
  • Put F11 and F12 at the very top as Meta keys; made the main function of those two keys Brightness up/down
  • Added « and » at Meta+ZX, since those are used as quotation marks in quite a number of languages and they fit nicely with the < > to their left (not a huge deal, since even e.g. a French keyboard doesn't have those while French uses them, but it's perhaps nice to have, even though word processors will often auto-correct such things, like they can be set to automatically change "this" style of quotes tothis” style)
  • Put £ as Shift+€ as suggested by codifiestes
  • Moved § ° to Meta+W, which is closer to their expected location on keyboards that have them
  • Moved dead bar and dead double-acute to Meta+Q instead of Meta+A, for symmetry (now the diacritics are nicely clustered)
  • Moved Ø to Meta+R, to cluster it with Å and Æ; we could also remove Ø entirely since there is now a bar-diacritic at Meta+Q which theoretically covers Ø, though for the Danish and Norwegians, a direct Ø is probably still preferred.
  • Moved ¡¿ at Meta+B, to cluster it better with ñ
  • Added interpunct (·) to Meta+V (only really used in Catalan, but could also be nice to have for mathematics)

Here is the updated list of languages supported by this layout:

  • PERFECT: All commonly used letters are available as primary keys
  • VERY GOOD: All commonly used letters are available as primary or Meta keys (one 'keystroke' if you use the shoulders as modifiers), all diacritics used in the language are available
  • GOOD: All commonly used letters are available as primary or Meta keys or in two keystrokes using dead diacritics
[above: the language can be typed with the letters as labeled on the keyboard; below: remapping or some memorization is needed]

  • OK: One or two commonly used letters are not available, but could be mapped to some other symbol in a somewhat mnemonical way
  • BAD: Three keystrokes (i.e. a Compose sequence) are needed for one or more commonly used letters
  • VERY BAD: It is not possible at all to input this language


~1200 million people speak English

460 million people speak Spanish

336 million people speak Portuguese

274 million people speak French

over 150 million people speak Swahili

145 million people speak German

75 million people speak Vietnamese (missing: hook above diacritic (Hỏi) and the letters ĂƠ, Ư)

73 million people speak Tagalog (Filipino)

71 million people speak Turkish

64 million people speak Italian

40 million people speak Polish

28 million people speak Dutch

28 million people speak Romanian

~25 million people speak Scandinavian languages (5M Norwegian, 5.5M Danish, 9.2M Swedish, 5.4M Finnish)

19 million people speak Serbo-Croatian languages

~17 million people speak Afrikaans

13 million people speak Hungarian

11 million people speak Czech

~9 million people speak Catalan

~9 million people speak Quechuan languages

5.4 million people speak Albanian

5.2 million people speak Slovak

3.1 million people speak Lithuanian (needs ū)

2.5 million people speak Slovenian

1.75 million people speak Latvian (needs ū)

1.2 million people speak Estonian

~1.2 million people speak Irish

0.7 million people speak Basque

0.5 million people speak Maltese
 
I've added a "hidden default symbol" row in the comparison matrix:

https://docs.google.com/spreadsheets/d/14mVNNzLhmhyA4sCIAPSoDv404xtctfLSiEMTtTlEzfw/edit

This goes to show how Meta(or Fn)+Shift will work for the keyboards.  I've noticed comradekingu is making his own Pyra-default AltGr layer, so that's where that can go, too. 

I've included a hidden section symbol and degree symbol on certain keys, for the Germans, as well as a capital Omega (for whenever you might need to talk about your Ohms) and lowercase mu (for all your micro-measurements):

http://www.keyboard-layout-editor.com/#/layouts/9808194c728816b80c2e760b68e8f661

"DosBox" compatibility:  Usually I pair up shifts, so that [] goes to {}, but where there is no default (what does shift+{} go to?), well, I chose something else.  The astute reader will notice that - does not go to _, but this is because I am using the numpad - which has no default shift.  Using that trick, we could also switch the shift+/ to be something else.

Reminder:  add in your preferences in the Matrix, for those who are interested:

https://docs.google....EMTtTlEzfw/edit

Add in your weights in column AV, AW, or AX, for the properties listed in each row.  You end up grading each layout on a curve:  "Normalized overall scores" (one row from 108 to 110, depending on which column you use).  Adjust your weights so that you actually like the top three high scores.
 
Is there a technical reason f11/12 cant be with the other like backspace/return ?

Are the square brackets or curly braces under meta shift?

I'd have thought curly braces more used than square ?

While email/letter writing is possibly more popular than coding, having all those coding symbols on the same keys doesn't look ideal, but it remains to be seen how easy or not chording meta/shift is on a Pyra keyboard...
 
Is there a technical reason f11/12 cant be with the other like backspace/return ?
Possibly... but we have no way of knowing for sure unless Nikolaus provides the information about the keyboard matrix.

Are the square brackets or curly braces under meta shift?
Square brackets on Meta, curly on Meta+Shift

I'd have thought curly braces more used than square ?
That would depend on the context. For programming in some languages they probably would be. For entering posts in forums probably not. I'm not sure it matters in any case. There's a good reason to do it that way, it's another one of those US Standard keyboard symbol pairings. (for DosBox and Qemu compatibility)

While email/letter writing is possibly more popular than coding, having all those coding symbols on the same keys doesn't look ideal, but it remains to be seen how easy or not chording meta/shift is on a Pyra keyboard...
Given that in both of the last two iterations meta and shift could both be pressed with a single finger I wouldn't expect that to be an issue.


- Neelix
 
Last edited by a moderator:
Here is another version: http://www.keyboard-layout-editor.com/#/layouts/e6d10b1072458a3f7d568bd437478d5b

I brought back the dedicated tab, removed the dead bar and double-acute, put `~ at Meta+Q, dead grave/tilde at Meta+AZ. Hungarians could have an unlabeled double acute at Shift+Meta+A; I added an explicit Ł for the Polish and Đ for those who need it.

This is how it would look if you wouldn't label the "foreign" stuff:

http://www.keyboard-layout-editor.com/#/layouts/3bb4ef1b3e07d0a798edb5da46ef2dd6

In my opinion, having those dozen or so extra letters labeled does not really hurt -- it's a bit of a visual distraction, but as long as those labels are less prominent than those for the ASCII symbols, it's OK for me. And having them labeled really helps a lot for people who need those symbols, because it means they can use the keyboard out-of-the-box without having to remap and/or remember anything.

Is there a technical reason f11/12 cant be with the other like backspace/return ?

Are the square brackets or curly braces under meta shift?

I'd have thought curly braces more used than square ?

While email/letter writing is possibly more popular than coding, having all those coding symbols on the same keys doesn't look ideal, but it remains to be seen how easy or not chording meta/shift is on a Pyra keyboard...
No, F11/F12 could be on Backspace/Enter. I do think it's nice to keep those keys free of Meta labels, because 1) it looks nicer, and 2) I can imagine applications or games where you want to use the shoulder buttons and Tab and/or Enter, and then you might get weird interferences.

The curly brackets are under Meta+Shift, just like { } are Shift+[ ] on a regular US-QWERTY keyboard. Which ones are more used depends heavily on what type of text you are inputting. For programming (especially in e.g. Java or C), { } are more common; for most other uses, [ ] are more common. See also: http://mdickens.me/typing/theory-of-letter-frequency.html

I've added a "hidden default symbol" row in the comparison matrix:

https://docs.google.com/spreadsheets/d/14mVNNzLhmhyA4sCIAPSoDv404xtctfLSiEMTtTlEzfw/edit

This goes to show how Meta(or Fn)+Shift will work for the keyboards.  I've noticed comradekingu is making his own Pyra-default AltGr layer, so that's where that can go, too. 

I've included a hidden section symbol and degree symbol on certain keys, for the Germans, as well as a capital Omega (for whenever you might need to talk about your Ohms) and lowercase mu (for all your micro-measurements):

http://www.keyboard-layout-editor.com/#/layouts/9808194c728816b80c2e760b68e8f661

"DosBox" compatibility:  Usually I pair up shifts, so that [] goes to {}, but where there is no default (what does shift+{} go to?), well, I chose something else.  The astute reader will notice that - does not go to _, but this is because I am using the numpad - which has no default shift.  Using that trick, we could also switch the shift+/ to be something else.
I don't really like the idea of hidden symbols, especially not if they're in quasi-random, hard to remember places. E.g. ç and ñ hidden on Meta+C and Meta+N makes sense, and so does ¿ on Shift+? (but where is ¡ then?), but how do you expect people to know or remember that Ω is at Shift+~ and ° § are at Shift+{ } ?

If those extra symbols are not labeled, chances are that people will just assume that those symbols cannot be typed (a rather reasonable assumption, I would say), and use some other method to input them (e.g. Compose or "Insert special symbol"). They might accidentally type those symbols, and then they will probably say to themselves "hey, how did I end up typing a ¶ here? there must be some weird bug in this program!".

So I rather have such non-ASCII symbols either unlabeled and not in the default keymap, or labeled and in the default keymap, but not unlabeled and in the default keymap, because that contributes more confusion than utility imo.

I may be contradicting myself (from a few days or weeks ago) in this respect ;)
 
  • Like
Reactions: szr
I would agree with you for symbols that people will commonly use.  That's why I only put rare symbols on the hidden layer...

I don't like putting hidden symbols on things, unless they have a nice mnemonic.  Shift+tilde = Omega is not the mnemonic, but instead Shift+Meta+W = Omega.  (Omega is capital meta W.)  Shift+meta+M = mu is a little worse in that respect (since capital mu is M), but it's still fairly memorable.  Putting ° on Meta+Shift+D is for "Degrees", as in degrees celsius (°C) or fahrenheit (°F), which it has close proximity to as well (bonus!).  Meta+Y = Yen is also pretty easy.  Meta+Shift+P = paragraph sign, sure.  Meta+Shift+F = Section sign is the most atrocious of all my hidden characters, without much rhyme or reason.  But it's there in a fairly unobtrusive place, close to the degree symbol, for the Germans who want it.  (Oh, and « being at Shift+< seems pretty nice, at least for my <> on Meta+,. layout.)

The idea behind hidden symbols is that you can change them at your whim, without having to stare at a keymat that has symbols you don't want ;) .  Just time travel back a week to hear the arguments from yourself :D
 
Last edited by a moderator:
I don't think there's any harm in having some unlabelled symbols, (eg the "foreign" letters as shown in _wb_'s post above) as long as there is a key available.

This could be as simple as an image file linked from the desktop by default.

Of course I still think it would be a nice idea to include a userspace program that could be toggled via the configbutton that displays a keyboard map of whatever symbols are available through meta+ combos on an framebuffer overlay layer whenever Meta is pressed.    This would be especially useful if it dynamically generates the map based on the xkb data so that it always shows the correct layout even if the user remaps it. Once the users learn where their most commonly used keys are I expect they'd  keep it switched off most of the time.

- Neelix
 
I would agree with you for symbols that people will commonly use.  That's why I only put rare symbols on the hidden layer...

I don't like putting hidden symbols on things, unless they have a nice mnemonic.  Shift+tilde = Omega is not the mnemonic, but instead Shift+Meta+W = Omega.  (Omega is capital meta W.)  Shift+meta+M = mu is a little worse in that respect (since capital mu is M), but it's still fairly memorable.  Putting ° on Meta+Shift+D is for "Degrees", as in degrees celsius (°C) or fahrenheit (°F), which it has close proximity to as well (bonus!).  Meta+Y = Yen is also pretty easy.  Meta+Shift+P = paragraph sign, sure.  Meta+Shift+F = Section sign is the most atrocious of all my hidden characters, without much rhyme or reason.  But it's there in a fairly unobtrusive place, close to the degree symbol, for the Germans who want it.

The idea behind hidden symbols is that you can change them at your whim, without having to stare at a keymat that has symbols you don't want ;) .  Just time travel back a week to hear the arguments from yourself :D
Yeah, I changed my mind though ;)

How is Omega capital W? It's a long O, or as it's the last letter of the Greek alphabet, it reminds me a bit of Z, but W? Is that because lowercase omega looks a bit like a round w ?

Anyway, no matter how great the mnemonic, people will just not know about those hidden symbols, or they will forget. I have encountered Pandora users who didn't know that PgUp/PgDn is on their action buttons, or that Shift/Ctrl are on the shoulder buttons. If it's not labeled, it does not really exist.
 
If they forget (or don't know), that's fine.  They will find another way to input their symbols.  For people who care, though, or who like to tinker, it's there not to be intrusive.

If you use the "Symbol" font, W is Omega.  Also, in Mathematica Esc+W+Esc = Omega.
 
Im one of those users, because PageUp PageDn Home End really has nothing to do with buttoncluster. Why in the world would I even try that?

Its a good idea, and it works for advanced users, who are the ones in need of it, but put in a manual somewhere.

There is a very big difference between having it not visual, and activly trying to hide it.

Edit: So the international users want dedicated buttons, and the english users dont want to see foreign letters. Ed doesnt want to see foreign diactrics-symbols.

Any amount of junk math, bogus symbols, and overall thinking, isnt going to change that visual symbols everywhere, no dedicated letters, and even less

dead diactrics, isnt good for anyone.

Trust me, the second you actually show any layout to a novice users, you forget the idea of "very good" very fast.

If you actually listened to community at large or the people who actually speak the languages you claim to be working we would actually get somewhere, and produce

things that hold up over time, rather than things that are incompatible one week to the next.

Can we stop doing pic related:

51tcyiEZ0SL._SY355_.jpg


They learnt from their mistakes, why do we have to re-implement what made it broken?

Edit: And no, colour doesnt change a thing.
 
Last edited by a moderator:
I'm one of those types who won't even want a compose button because I would probably accidentally trigger it and end up with garbage, and be annoyed.  (I'd like to be able to turn it off, at least.)

By comparison, triggering a hidden symbol by accident is not nearly as bad, because it doesn't put your keyboard into a different mode.

As for upside down !, well the Spanish will use AltGr+Shift+1, which will probably be their default keymapping.  This is only possible, of course, if ED doesn't use AltGr for the modifier which we are calling Meta or Fn.

[edit -- thanks to comradekingu for correcting my spanish difficulties]
 
Last edited by a moderator:
Of course I still think it would be a nice idea to include a userspace program that could be toggled via the configbutton that displays a keyboard map of whatever symbols are available through meta+ combos on an framebuffer overlay layer whenever Meta is pressed.    This would be especially useful if it dynamically generates the map based on the xkb data so that it always shows the correct layout even if the user remaps it. Once the users learn where their most commonly used keys are I expect they'd  keep it switched off most of the time.
That is a good idea indeed. It could be something like gkbd-keyboard-display. It would indeed be pretty useful for remappers and also to show hidden symbols, if we end up doing that.

What is the reason why people are opposed to having non-English letters labeled? Is it because it looks ugly, or is it because it means you have symbols on the keymat that you're not using? Or some other reason?

I like this Tab-as-meta-on-space so much I went to the matrix table and gave the "dedicated tab key" a negative value.
Wait, what?

How can Tab as a Meta key ever be better than a dedicated Tab? On the Pandora, I mapped Alt-Tab and Shift-Alt-Tab to Ctrl+Up/Down just to avoid having to do the Fn+Space mashing all the time.

If you don't really need Tab very often, Meta+Space is good enough I guess, but if you're doing lots of tab completion and indentation, having a dedicated Tab key is really nice. I could see how you would give "dedicated tab key" a weight of zero (e.g. if you don't care about Tab at all), but giving it a negative weight is just weird if you ask me.
 
The reason I don't like having all the international symbols on there is because:

To be complete [i.e. not miss some vowels/consonants], you need to fill the entire keyboard with Meta symbols.  And even then each language will only use a small fraction of what you put on the keyboard.  You end up cluttering the whole keyboard with symbols when no single person will use all of them.  And even then you still won't get everything.  

Also, each language probably has some good defaults under AltGr somewhere, which are probably already standard.  (So as long as ED doesn't use AltGr for the modifier, they are ok.)  Hackers can use the tool Neelix is promising to develop to set their own mappings with Meta if they are not happy with the AltGr possibilities.

[edit]

German gets a pass because ED is cool.
 
Last edited by a moderator:
You can get complete coverage of interlingual things, German, Italian, French if you have FN available as a modifier on all buttons and AltGr in addition to that.

The problem is the French use numbers as dedicated buttons for diactrics, which is a prime position for fkeys (FN+)

Not considering French, there are zero hacks, because you can do it all with AltGr+hidden. Even with the tradable keys already included, so that you are free to swap in extra letters there.
 
Last edited by a moderator:
I like this Tab-as-meta-on-space so much I went to the matrix table and gave the "dedicated tab key" a negative value.
Wait, what?

How can Tab as a Meta key ever be better than a dedicated Tab? On the Pandora, I mapped Alt-Tab and Shift-Alt-Tab to Ctrl+Up/Down just to avoid having to do the Fn+Space mashing all the time.

If you don't really need Tab very often, Meta+Space is good enough I guess, but if you're doing lots of tab completion and indentation, having a dedicated Tab key is really nice. I could see how you would give "dedicated tab key" a weight of zero (e.g. if you don't care about Tab at all), but giving it a negative weight is just weird if you ask me.
Its no big deal for me to use meta as long its on a shoulder button, since I want to get a good workflow with using them instead of the modifiers on the primary keyboard. I think putting Tab there will make it easier to reduce the clutter since we have one additional key more.

But well I changed it to zero since its no problem to have it dedicated tho, still prefering the meta variant.
 
What is the reason why people are opposed to having non-English letters labeled? Is it because it looks ugly, or is it because it means you have symbols on the keymat that you're not using? Or some other reason?
It does give the keyboard a cleaner look,  for sure, and that's obviously important to some.  I don't see that as critical myself, though to be honest I can see the value of having the commonly used symbols  and the diacritics on the meta layer stand out because they aren't lost in a sea of other symbols that I don't care about.

My main argument is that it allows greater freedom to remap those keys to ones own preferences without getting confused by conflicting symbols on the keys.  While this default layout gives good general coverage of a number of languages it isn't necessarily optimal for any given language, (except English) so it makes sense that some users would want to remap these keys to something that works better for them when inputting their own language.

Hackers can use the tool Neelix is promising to develop to set their own mappings with Meta if they are not happy with the AltGr possibilities
I'm afraid I lack the skill to develop it myself. :(   The best I can do at this point is put the idea out there and hope someone will like it well enough to want to pick it up.

- Neelix
 
You cant physically move the key either, for AZERTY keymap, without having the same confusion you get for normal remapping.

If you look at just english, which is half the audience, most of them are monolingual, the added visual noise is just bad for that reason alone.

This is the list of input, obviously where its used, its preferred.

1. Dedicated keys

1.1 things you can combo-press because its next to shift

2. AltGr+

2.1 things you can combo-press because its next to AltGr

3. ^ key or other dedicated 2 combos OR

4. Shift+AltGr+

5. 3 combo compose OR

6. Special tricks with AltGr+

So we can have all the interlinguals at nr 2, even if you trade dedicated keys at 1, which is the only option, and you still have those

keys at 2.

For spanish you need 4, which is no different from what spanish is used to.

---------------------------------------------------------------------------------------------

Above this line English, German, Italian and Spanish are covered in the most standard way possible.

3 has the problem of not being possible by default with the amount of keys, if you don't want to disturb 1

Yet 3 is as possible as 1 is, you get three things to do either with, four if you give up keyboardshift.

With 5 covering everything, we can inadvertently implement a whole lot of things we don't have the manpower to take into consideration.

With 6 you can get even more diactrics, and do some special things. This is however very much for the smallest and least latin-script nations.

And most most importantly, by hiding the AltGr layer on buttons, it looks less like a toy keyboard, and we don't put our eggs in the basket.

Hidden layer can be changed if a flaw is discovered, with printed stuff everywhere, that isnt possible without hardware efforts.
 
Last edited by a moderator:
I'm a co-developer of X-tile - amongst other things

Its a python applet to tile windows, I ended up doing a lot of low-level X11 C library calls, so it ended up teaching me a lot (more that I maybe wanted!) about X11 at such a low level.

Changing keymaps "on the fly" is certainly possible, and even the option of just changing a few keys in a map...

However what is really needed more than anything else is a clear vision of just what such a custom keyboard tool should do and for that matter what it shouldn't do

These requirements would probably be better discussed on another thread - however discussions here are likely to be rather germane to the design of such a tool.
 
@Neelix:  sorry for throwing you under the bus, I'm actually happy to work on such a keyboard program myself (though I may not be the one to get it out the door first).  I will probably try out my layout (ible 3) regardless of what gets put on the keymat, so I'd like to have a nice gui program to help change things.

I'm enjoying looking at various keyboards.

It makes me think that a nice way to put mu on the keyboard would be to put it at AltGr+M, and things like ² should go on AltGr+2.  I suppose in the case of the former it doesn't hurt to also have it at Meta+Shift+M.
 
Last edited by a moderator:
Back
Top