Skip to content

bug: OSK Deadkeys Fail to Track State on Apple Silicon macOS #16150

Description

@thohahente

Describe the bug

On Apple Silicon Mac systems, clicking a deadkey on the On-Screen Keyboard (OSK) followed by a base character fails to process the state match. The OSK drops the deadkey state and outputs the default base character. This works perfectly when typing via the physical keyboard, and works fine via the OSK on Windows 11 and Intel-based Macs.

Reproduce the bug

Using a keyboard with the following rule logic:

  • [K_QUOTE] > dk(stress)
    dk(stress) + [K_O] > 'ά'
  • [K_O] > 'α'
  1. Open the Keyman On-Screen Keyboard (OSK).
  2. Click the QUOTE key on the OSK.
  3. Click the O key on the OSK.

Expected behavior

The OSK outputs ά.

Actual behavior

The OSK outputs α.

Related issues

No response

Keyman apps

  • Keyman for Android
  • Keyman for iPhone and iPad
  • Keyman for Linux
  • Keyman for macOS
  • Keyman for Windows
  • Keyman Developer
  • KeymanWeb
  • Other - give details at bottom of form

Keyman version

18.0.248

Operating system

MacOS Tahoe

Device

Mac Mini M4

Target application

All applications (system-wide issue with Keyman OSK)

Browser

N/A (Not browser-specific)

Keyboard name

Custom keyboard layout

Keyboard version

3.1

Language name

Catawba

Additional context

The issue appears to be an architecture-specific state-tracking bug inside Keyman's macOS input method framework, as the exact same .kmn code and OSK interaction works correctly on Windows 11 and Intel-based Macs.

Metadata

Metadata

Assignees

No one assigned

    Type

    No fields configured for Bug.

    Projects

    Status
    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions