Skip to content

Add opt-in Windows Korean hardware keyboard support - #102

Draft
zeberity123 wants to merge 2 commits into
hugeBlack:mainfrom
zeberity123:upstream/korean-keyboard
Draft

zeberity123 wants to merge 2 commits into
hugeBlack:mainfrom
zeberity123:upstream/korean-keyboard

Conversation

@zeberity123

Copy link
Copy Markdown

An SDIC Korea LTBK21 connected to an iPad did not reliably toggle the Windows host's Korean IME. Translating the language shortcut to Right Alt enabled switching, but keeping its accompanying Ctrl held until the keyboard's delayed key-up could affect subsequent typing.

This adds Windows Korean Keyboard, off by default, under Settings > Interactivity. When enabled, it uses GameController physical keyboard events with a UIKit fallback and translates Hangul/LANG1, Right Alt, Ctrl+Space, and Shift+Space into a single Right Alt tap. Hardware language shortcuts release accompanying modifiers immediately. Consumed modifiers remain released until physical key-up, and stale UIKit flags cannot turn the next ordinary Space into another language toggle.

It also provides a touch 한/영 button and an optional backtick mapping, off by default. Users should select Korean Microsoft IME with Korean keyboard (101-key) Type 1 on Windows. Korean mode repurposes Right Alt and overrides Option-as-Command; disabling it preserves the existing input path.

Validation:

  • Keyboard regression tests passed, covering delayed modifier releases, stale UIKit flags, repeat suppression, ordinary shortcuts, and reset/cancellation.
  • The existing Xcode archive and IPA packaging workflow passed.
  • Device testing on iPad Pro 11-inch (3rd generation), iPadOS 18.7.8, LTBK21, and Windows 11 confirmed language switching, immediate typing after 한/영, normal Ctrl+C/V, and mixed hardware/on-screen keyboard use. This was tested in the personal build sharing the same routing implementation; the additional UIKit stale-flag fix is covered by automated regression tests.

The existing release workflow, bundle identifier, and download links are unchanged. The Caps Lock Esc/F-key mapping is kept in a separate follow-up.

The UIKit text-duplication guard uses a 150 ms window after physical keyboard events. The reported mixed-keyboard test passed, but this is not a claim of compatibility with every keyboard or iPadOS input source.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant