Closed awilkins closed 3 years ago
Wow, this is one of the best bug reports I have ever seen. So in theory the mini BLE should be aware of dead keys. In the case of the ^, it will type a space to get rid of the modifier (which leads to some issues on Linux systems were the compose key isn't set, see #263 where you already contributed). I'm guessing in your case it isn't enabled? Looking at the extended layout in https://en.wikipedia.org/wiki/File:KB_United_Kingdom_Ext.png, it seems to me that both altgr and shift combinations are OK (not sure though, I'm typing on a different layout right now).
Our algorithm at https://github.com/mooltipass/minible/blob/master/scripts/keyboards/cldr_parser.py#L184 is detecting dead keys by detecting that (for example) ^ +
I'm wondering if that's quite a tough one to implement without creating all sort of collateral damages on other layouts :/
On the description above it should work, but what I'm getting is
test ^
test
Second line you can watch the MiniBLE type the dead key and then "eat" it with the 0x0d
(see xev
log above), so the space isn't happening.
Curiously Shift+AltGr Shift+6 Space works for either layout, but this seems to be the compose feature, even though my settings claim I have compose off ; the compose char appears in the editor.
Just to be sure it's not trimming ..
Actual cred ^ prefix
, all MiniBLE typing after this line set to UK Extended
test ¾ prefix # UK Std. input method
test ^prefix # UK Extended input method
Change cred to ^WIBBLE
test ¾WIBBLE # Std.
test ŴIBBLE # Ext.
Change cred to ŴIBBLE
test ¾WIBBLE # Std
test ŴIBBLE # Ext
I think I'm getting close to a conclusion:
However that doesn't explain the second line of your first test.... but anyway we can just add that transform="no" check to our cldr parser and test that way :)
does that mean it is impossible to type ê with a uk standard layout
Not in an ISO Standard way I think...
On Windows you can do the trick where you hold Alt and type out a number on the numpad (my new keyboard is a TKL, but hey, all the keys on the Mooltipass are pretend ones). e.g. e-circumflex would be Alt+0234
On Linux I think Shift+AltGr e ^ will work, as would Ctr+Shift+u 0 0 e a Enter - as to whether these work reliably as inputs to e.g. passwd
or an ecryptfs password prompt, don't know.
@awilkins did you update to bundle 3 and verified that things are now working? :)
I've been busy! Happy to try it, but the bundle issuer has given me a 0_to_3 bundle, and I'm already on bundle 2 from the knock detection issue - can't apply it, just getting an error.
@awilkins did I give you the right upload password? if no, send me a private message :)
I'm closing this issue as it's converging similar to https://github.com/mooltipass/minible/issues/263 . I therefore suggest we move our discussion over there :)
Expected behavior
MiniBLE types circumflex (U+005E) correctly in UK Extended layout, as Shift + 6
Actual behavior
MiniBLE types circumflex modifier AltGr + 6
¾
Should produce the desired result (a
^
) regardless of whether you have UK Standard or UK Extended selected as input method on target machine.Step by step guide to reproduce the problem
^
in itMoolticute Version - If Involved
( You could call this a UX bug as well - all the UK layouts are bunched together except the standard one. )
This makes it likely that people will pick "UK Extended" when they don't need it.
Firmware Version
AUX MCU version: 0.62
Main MCU version: 0.73
Bundle : 2
Operating System
Ubuntu 20.04
Correct use example of this key combo
Ŵ
should translate to AltGr + 6 Shift + W^
xev
window with MiniBLE HIDLog below.
What is required for this keymap is keycode 50, or 60 (Shift_L or Shift_R), not keycode 92 (ISO_Level3_Shift or AltGr).