소개
awase는 동시 입력(동시에 여러 키를 누르는 방식)을 지원하는 키보드 리매퍼입니다. 주로 일본어 입력 방식인 NICOLA(니콜라) 엄지 시프트(thumb shift) 입력을 위해 설계되었으며, 그 외에도 다양한 키보드 매핑 요구를 충족할 수 있습니다. Windows 10/11(64비트)에서 실행되며, GitHub에서 오픈소스로 제공됩니다.
상세정보
NICOLA 준수 동시 입력 감지
d1/d2 비교를 기반으로 한 3키 중재 방식과 wait/speculative/two_phase/adaptive_timing/ngram_predictive 등 5가지 확정 모드를 제공합니다. Wikipedia 코퍼스에서 유래한 n-gram 적응 임계값을 통해 정확도를 향상시킵니다.
광범위한 앱 호환성
Win32/UWP/TSF 네이티브 앱(Chrome, VS Code, WezTerm 등)을 자동 식별하여 적절한 출력 방식을 선택합니다. 앱 별 동작을 [app_overrides]로 수동 지정할 수 있습니다.
다중 내결함 설계
후크 상태 모니터링, 슬립/복구 복원, IME 감지 실패 폴백, TSF 콜드 스타트 자동 복구를 포함한 다층 내결함 구조를 갖추고 있습니다. 비동기 메시지 루프 기반 실행 아키텍처로 블로킹 API를 별도 스레드에 격리해 타임아웃을 방지합니다.
설치 및 시작 방법
winget을 통해 설치할 수 있습니다: winget install --id cuzic.awase --exact. 또는 GitHub에서 소스 코드를 받아 cargo build --release --target x86_64-pc-windows-msvc 명령으로 빌드 후 awase.exe를 실행합니다. 실행 시 시스템 트레이에 상주하며, 트레이 아이콘 우클릭 → ‘설정’에서 구성을 변경할 수 있습니다.
기본 키 바인딩
- 엄지 시프트 입력 활성화: Ctrl+Shift+변환
- 로마자 입력으로 전환: Ctrl+Shift+무변환
- IME ON: Ctrl+변환
- IME OFF: Ctrl+무변환
- 앱 별 동작 수동 전환: Ctrl+Shift+F11
활용 예시
NICOLA 엄지 시프트 입력을 활성화한 후 일본어 입력이 필요한 텍스트 필드에서 awase를 사용하면, 스페이스바 옆의 변환/무변환 키와 문자를 동시에 눌러 가나를 직접 입력할 수 있습니다. 예를 들어, 무변환 키와 ‘か’ 키를 동시에 누르면 ‘が’가 입력됩니다. 트레이 메뉴에서 레이아웃을 전환하거나, config.toml에서 엄지 키 매핑을 조정해 다양한 키보드 환경에 맞출 수 있습니다.
지원 환경 및 요구사항
awase는 Windows 10/11(64비트)에서 실행되며, 일본어 입력을 위해 Google 일본어 입력 또는 MS-IME가 필요합니다. 소스 코드로부터 직접 빌드하는 경우 Rust 1.85 이상이 필요합니다. 배포판은 MSI 설치 관리자 형태로 제공됩니다.
제한 사항 및 확인 사항
동시 입력 기능은 일부 키보드나 프로그램에서 호환성 문제가 발생할 수 있습니다. 사용 전 백업 및 테스트를 권장합니다. awase는 NICOLA 입력을 최우선으로 설계되었으므로, 일반적인 키보드 리매퍼로 사용하려면 추가 설정이 필요할 수 있습니다. 동시 입력 오판이 잦은 경우 simultaneous_threshold_ms 값을 80~120ms 범위에서 조정할 수 있습니다. IME 또는 유한상태기계(FSM)가 비정상 상태가 된 경우 트레이 아이콘 우클릭 → ‘내부 상태를 리셋’으로 복구할 수 있습니다.
시스템 요구사항
Windows 10/11(64비트), Google 일본어 입력 또는 MS-IME, 빌드 시 Rust 1.85 이상 필요


