Skip to content

feat: Add sequential Hangul input with number row and custom layouts#1275

Open
codeg-dev wants to merge 6 commits into
Julow:masterfrom
codeg-dev:feat/korean-custom-layout
Open

feat: Add sequential Hangul input with number row and custom layouts#1275
codeg-dev wants to merge 6 commits into
Julow:masterfrom
codeg-dev:feat/korean-custom-layout

Conversation

@codeg-dev
Copy link
Copy Markdown

Summary

This PR adds proper Korean (Hangul) support to Unexpected Keyboard with the following features:

Korean Input

  • Sequential Hangul input: Type "ㄱㅏㄴㅏㄷㅏ" and get "가나다" immediately (no composing text, no underlining)
  • Removed FLAG_LATCH from Hangul keys to enable immediate key_up processing
  • NFC precomposed syllables: Each keystroke builds the syllable in real-time

UI Improvements

  • Number row: Added a dedicated 1-0 row at the top of keyboard layouts
  • CandidatesView: Auto-hides when only 'No dictionary installed' message would be shown, freeing up vertical space
  • ISO-style punctuation: Punctuation keys arranged following ISO standards

New Layouts

  • 두벌식 Custom (hang_dubeolsik_custom.xml): Korean layout with number row and optimized swipe keys
  • QWERTY Custom (latn_qwerty_custom.xml): English layout matching the Korean structure

Changes

  • KeyEventHandler.java: Complete rewrite of Hangul handling logic
  • KeyValue.java: Hangul keys no longer use FLAG_LATCH
  • KeyModifier.java: Removed Hangul combine logic
  • CandidatesView.java: Added update_visibility() for auto-hiding
  • New layout files in srcs/layouts/

codeg-dev added 3 commits May 5, 2026 12:35
- Replace composing text with immediate NFC syllable output

- Remove FLAG_LATCH from Hangul keys to enable direct key_up

- Add CandidatesView auto-hide when 'No dictionary installed'

- Add number row to Korean layout with ISO punctuation placement

- Add custom Korean (Dubeolsik+) and English (QWERTY Custom) layouts
@codeg-dev codeg-dev force-pushed the feat/korean-custom-layout branch from 72768af to d2d9f4e Compare May 5, 2026 03:37
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.

2 participants