피드로 돌아가기
GeekNewsInfrastructure
원문 읽기
Show GN: 오른쪽 Option / Command 키로 한/영 전환을 할 수 있도록 도와주는 앱을 만들어 봤습니다. (macOS)
HIToolbox API 한계 극복을 위한 윈도우 포커스 시프팅 기반 한/영 전환 구현
AI 요약
Context
macOS HIToolbox의 TISSelectInputSource API가 Carbon API 기반의 레거시 구조로 인해 동작의 일관성이 결여된 상태. 특정 상황에서 한/영 전환이 확률적으로 작동하는 비결정적 동작 문제 발생.
Technical Solution
- TISSelectInputSource API 호출 후 앱 전환 시 입력 언어 전환이 보장되는 런타임 특성 발견
- 1x1 픽셀 크기의 Invisible Window를 생성하여 백그라운드에 상주시키는 구조 설계
- 오른쪽 Command/Option 키 입력 이벤트 발생 시 해당 빈 창으로 Focus를 즉시 이동
- Focus 이동 직후 원래의 Active Application으로 다시 복귀하는 빠른 Context Switching 메커니즘 적용
- API의 불안정성을 윈도우 포커스 전환이라는 OS 레벨의 사이드 이펙트를 이용해 회피한 Workaround 구현
- Vim 사용자를 위한 Escape 키 바인딩 기반 영문 입력 전환 로직 추가
실천 포인트
레거시 API의 비결정적 동작 발견 시, 해당 API가 정상 작동하는 특정 상태(State)나 트리거 조건을 분석하여 시스템 레벨의 우회 경로(Workaround)를 설계할 것