InputSwitcher — 단축키 하나로 한·영·일 입력을 바로 전환하는 맥 메뉴바 앱을 만들었습니다

입력소스별 전용 단축키로 즉시 전환하는 macOS 메뉴바 앱입니다. 단축키는 자유롭게 설정할 수 있고, macOS의 악명 높은 CJK 입력소스 전환 버그(전환해도 실제 타이핑은 이전 언어로 들어가는 문제)를 우회합니다.

InputSwitcher — 단축키 하나로 한·영·일 입력을 바로 전환하는 맥 메뉴바 앱을 만들었습니다

[업데이트 정보 v 1.0.0]

v1.0.0 업데이트 되었습니다.
기존0.1.0 사용자 분은github releases에서 최신버전을1.0.0 버전을 다운로드 받으시고 덮으시면 적용됩니다.

앞으로 새로운버전 확인은 "업데이트 확인" 버튼으로 가능합니다.
(단 자동다운로드 적용은 안됩니다.)

PS. 자동 업데이트를 생각했습니다만, Sparkle 같은 프레임워크 + 서명된 appcast 인프라가 필요해서 "의존성 0" 원칙과 배포 복잡도를 벗어나기 때문에, (맥 스토어에 업로드 하려했지만 이또한 심사등 부가적으로 해야할것이 많아서 제외) 

어떤 앱인가

입력소스별 전용 단축키로 즉시 전환하는 macOS 메뉴바 앱입니다. 단축키는 자유롭게 설정할 수 있고, macOS의 악명 높은 CJK 입력소스 전환 버그(전환해도 실제 타이핑은 이전 언어로 들어가는 문제)를 우회합니다. Spotlight나 Raycast 같은 런처 패널이 열려 있어도 패널을 닫지 않고 전환됩니다. 그리고 외부 의존성이 0입니다 — Karabiner도, macism도 필요 없이 앱 하나로 끝납니다.

작동 원리

TISSelectInputSource는 백그라운드 앱에서 한·중·일 입력소스로 전환할 때 메뉴바 아이콘만 바꾸고 실제 IME는 바꾸지 않는 버그가 있습니다. macOS 26에서도 여전히 존재합니다. InputSwitcher는 select 후 포커스 커밋 — 앱이 잠깐 key가 됐다가 이전 앱으로 복귀하는 사이클(macism과 같은 방식) — 으로 전환을 실제로 적용시킵니다.

CJK 전환 시 화면 우하단에 아주 작은 창이 잠깐(기본 150ms) 나타났다 사라지는데, 이것은 버그 우회를 위한 정상 동작입니다. 접근성 권한은 폴백 경로에서만 요청하며, 기본 동작에는 아무 권한도 필요 없습니다.

설치

다운로드(권장) — Releases에서 최신 zip을 받아 압축 해제 후 InputSwitcher.app을 응용 프로그램 폴더로 옮기면 끝입니다. Developer ID 서명과 Apple 공증(notarized)이 완료된 상태라 Gatekeeper 경고 없이 실행됩니다. macOS 14(Sonoma) 이상, Apple Silicon·Intel 모두 지원하며 macOS 26(Tahoe)에서 개발·테스트했습니다.

소스 빌드 — Xcode Command Line Tools만 있으면 됩니다.

git clone https://github.com/flutterkage2k/mac_inputswitcher_260721.git
cd mac_inputswitcher_260721
./scripts/bundle.sh
cp -Rf build/InputSwitcher.app /Applications/
open /Applications/InputSwitcher.app

사용법

  1. 메뉴바의 키보드 아이콘 클릭
  2. 각 입력소스 옆 단축키설정 → 원하는 단축키 입력 (⌘/⌥/⌃/⇧ 수식키 필수)
  3. 어느 앱에서든 단축키로 즉시 전환. "로그인 시 시작"을 켜면 부팅 후 자동 실행

진단 로그는 ~/Library/Logs/InputSwitcher.log(1MB 상한)에 남습니다. 써 보시고 전환이 씹히거나 이상한 환경(macOS 버전·입력소스 조합)이 있으면 이슈로 알려주세요. 로그와 함께 주시면 더 빨리 잡을 수 있습니다. (링크 issues)

개인 프로젝트로, 어떠한 보증 없이 "있는 그대로" 제공됩니다. 사용으로 인한 문제(입력소스 설정 변경, 데이터 입력 오류 등)에 대해서는 책임지지 않습니다. MIT 라이선스입니다.

Releases (다운로드)

Releases · flutterkage2k/mac_inputswitcher_260721
Contribute to flutterkage2k/mac_inputswitcher_260721 development by creating an account on GitHub.