keymanapp / keyman

Keyman cross platform input methods system running on Android, iOS, Linux, macOS, Windows and mobile and desktop web
https://keyman.com/
Other
398 stars 112 forks source link

bug(mac): OSK modifiers not functioning #6578

Closed MakaraSok closed 3 weeks ago

MakaraSok commented 2 years ago

Describe the bug

On macOS, the OSK doesn't output the expected characters when pressing directly on the OSK keys.

key press physical keyboard OSK
s ស​
Shifts ស​
AltGrs - ស​
AltGrShifts ស​

To Reproduce

  1. install Keyman 15.0.241-beta
  2. In Notes, try and press key s with each modified keys indicated above using OSK
  3. Compare the outputs with those of a physical keyboard
  4. See error

Expected behavior

The OSK and the physical keyboard should output the same expected characters.

Screenshots

https://user-images.githubusercontent.com/28331388/165871671-feb8ddf4-2c1a-4a8a-9f95-19fd64e6f3dd.mov


Keyman for Windows/macOS/Linux:


Keyboard

Additional context

Probably related: https://github.com/keymanapp/keyman/issues/6576

mcdurdin commented 1 year ago

Is this related to #7476?

MakaraSok commented 1 year ago

Yes, but they are for different versions of macOS. Monterey here and Big Sur there.

MakaraSok commented 1 year ago

Now, on Ventura (13.0.1)

key press physical keyboard OSK expected char.
s ស​
Shifts
AltGrs ß ß -
AltGrShifts Í Í

Khmer Angkor is now not fully usable on 16.0.106-beta.

MakaraSok commented 1 year ago

With the latest beta version (16.0.109) the same version of Ventura, it's working as expected on physical keyboard, but not on the OSK.

key press physical keyboard OSK expected char.
s ស​
Shifts
AltGrs - -
AltGrShifts
MakaraSok commented 1 year ago

@sgschantz FYI

sgschantz commented 1 month ago

I can reproduce the issue with clicking the shift-S in the OSK not producing the correct Khmer character, but it's not clear how I would click AltGr from the OSK. There is no key labeled AltGr in the Mac OSK. @mcdurdin, is a key on the Mac OSK supposed to generate an AltGr and how is a Keyman user aware of this mapping?

I'm confused about what the OSK represents because it does not match the Mac keyboard layout or the Windows keyboard layout. I expect it to be used as a guide so that users will know which physical keys on their Mac keyboard generate certain characters, but if that were the case, then the OSK would include option keys instead of alt keys.​ On the lower left of the OSK I only see the modifiers: CtrlAlt But on the lower left of my Mac keyboard, I see: fncontroloptioncommand

mcdurdin commented 1 month ago

AltGr == right alt, roughly equivalent to Option on mac.

sgschantz commented 1 month ago

AltGr == right alt, roughly equivalent to Option on mac.

So to be consistent with the just-completed #12458, the left and right alt keys on the OSK should always generate the same thing as pressing the left or right option keys on the physical Mac keyboard.

I guess this issue title and description is confusing because they reference AltGr which doesn't actually exist on the OSK. Plus, the shift key (which looks like an up arrow key on the OSK) does not work according to this issue. So maybe a better name for this issue would be 'OSK modifiers do not generate expected characters'

mcdurdin commented 1 month ago

I guess this issue title and description is confusing because they reference AltGr which doesn't actually exist on the OSK. Plus, the shift key (which looks like an up arrow key on the OSK) does not work according to this issue. So maybe a better name for this issue would be 'OSK modifiers do not generate expected characters'

Yeah. Coming from a cross-platform perspective, we do need to clarify the usage on mac vs all the other platforms (which use Ctrl/Shift/Alt nomenclature). We should make some updates to the docs for users.