피드로 돌아가기
Show GN: 오른쪽 Option / Command 키로 한/영 전환을 할 수 있도록 도와주는 앱을 만들어 봤습니다. (macOS)
GeekNewsGeekNews
Infrastructure

Show GN: 오른쪽 Option / Command 키로 한/영 전환을 할 수 있도록 도와주는 앱을 만들어 봤습니다. (macOS)

HIToolbox API 한계 극복을 위한 윈도우 포커스 시프팅 기반 한/영 전환 구현

unstabler2026년 6월 1일1intermediate

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)를 설계할 것

원문 읽기