macOS용 한글 입력기 — 하나의 입력 소스로 한글과 영문을 모두 처리합니다.
macOS 기본 한글 입력기는 한/영 전환 시 입력 소스를 전환합니다. 이 과정에서 InputMethodKit의 세션 간섭 버그로 인해 글자가 씹히거나 지연이 발생할 수 있습니다.
Ongeul은 단일 입력 소스 안에서 한글과 영문을 모두 처리하여 이 문제를 근본적으로 해결합니다.
| macOS 기본 입력기 | Ongeul | |
|---|---|---|
| 영문 입력 | 시스템에 위임 (ABC 전환) | 엔진이 직접 입력 |
| 한/영에 사용하는 입력 소스 | 2개 (한글 + ABC) | 1개 (Ongeul) |
| 한/영 전환 | macOS 입력 소스 전환 | 내부 모드 전환 |
| 세션 간섭 | 발생 가능 | 원천 차단 |
- 키보드 레이아웃 — 두벌식 표준, 세벌식 390, 세벌식 최종
- 한/영 전환 — 오른쪽 Command (기본값), 오른쪽 Option, 왼쪽 Shift, 오른쪽 Shift, Shift + Space, CapsLock 중 선택
- 앱별 모드 기억 — 앱마다 마지막 입력 모드 자동 복원
- 영문 잠금 — 특정 앱을 영문 전용으로 고정. Microsoft Remote Desktop 등 원격 접속 앱에서 한/영 전환 키를 가로채지 않고 원격 환경으로 그대로 전달하여, 원격지의 한/영 전환이 정상 동작하도록 도와줍니다.
- 입력기 고정 — 다른 입력 소스로의 자동 전환 방지
- Vim 모드 — ESC / Ctrl+[ 키로 영문 전환
- CapsLock — 한/영 전환 키로 사용 가능. 한글 모드에서는 CapsLock 상태를 무시하여 대소문자 영향 없음
각 기능의 상세 설명은 문서 사이트를 참고하세요.
Rust 엔진 + Swift 프론트엔드 하이브리드 구조. UniFFI를 통한 FFI 바인딩으로 연결됩니다.
- ongeul-automata (Rust): 한글 조합의 모든 로직을 담당. Swift 쪽에는 한글 처리 로직이 전혀 없음.
- OngeulApp (Swift): 키 이벤트 수신 → Rust 엔진에 위임 → 결과 적용의 얇은 셸 역할.
- macOS 14.0 (Sonoma) 이상
- Rust toolchain (
aarch64-apple-darwin) - Xcode / Swift toolchain
- (선택) Intel 빌드:
rustup target add x86_64-apple-darwin
# 빌드만
./scripts/build.sh
# 빌드 + ~/Library/Input Methods에 설치
./scripts/install.sh
# universal .pkg 생성
./scripts/package.sh # Info.plist 버전 사용
./scripts/package.sh 0.1.0-rc3 # 지정 버전 사용- 로그아웃/로그인 (최초 설치 시 필요)
- 시스템 설정 → 키보드 → 입력 소스 → 편집 → + → Ongeul 추가
- 기존 한글 입력기 제거 권장 (Ongeul이 한글과 영문을 모두 처리). ABC는 macOS 기본 입력기로 삭제할 수 없으나 남겨둬도 무방
cargo test -p ongeul-automatalog stream --predicate 'subsystem == "io.github.hiking90.inputmethod.Ongeul"'Ongeul은 현재 ad-hoc 서명으로 배포되고 있어, 설치 시 macOS Gatekeeper 경고가 발생합니다. Apple Developer Program에 등록하면 공식 Developer ID 서명을 적용하여 경고 없이 설치할 수 있습니다.
연간 등록비(USD 99)를 후원금으로 충당하고자 합니다. 후원해 주시면 더 나은 설치 경험을 제공하는 데 직접적으로 기여하게 됩니다.