MacBook을 iMac의 블루투스 키보드·트랙패드로 만드는 macOS 메뉴바 앱
翻译准备中
正在加载完整 README。 以下为已保存的摘录。
MacBook을 iMac의 블루투스 키보드·트랙패드로 만드는 macOS 메뉴바 앱입니다. iMac에는 아무것도 설치하지 않습니다. 관리자 권한이 없는 관리형 iMac에서도 블루투스 페어링만으로 동작합니다.查看完整 README ↗
MacBook을 iMac의 블루투스 키보드·트랙패드로 만드는 macOS 메뉴바 앱입니다. iMac에는 아무것도 설치하지 않습니다. 관리자 권한이 없는 관리형 iMac에서도 블루투스 페어링만으로 동작합니다.
⌥⌘K로 MacBook 입력과 iMac 입력을 오갑니다. iMac 입력 중에는 메뉴바 아래에 주황색 상자가 떠 있고, MacBook 포인터는 제자리에 숨겨집니다.요구 사항: macOS 13 Ventura 이상(Apple 실리콘 Mac), 블루투스. iMac 쪽은 macOS 10.x 이상 어느 버전이든 됩니다.
BTSKey-<버전>.dmg를 내려받습니다.⌥⌘K. 같은 키로 돌아옵니다. 화면 잠금·잠자기·연결 끊김 때는 자동으로 MacBook 입력으로 돌아옵니다.메뉴 항목과 설정은 docs/usage.md에 자세히 있습니다. 문제가 생기면 메뉴 → 도움말 → 진단 로그 내보내기로 만든 파일을 첨부해 이슈를 남겨 주세요.
MacBook이 Bluetooth Classic HID(키보드+마우스 조합 장치)를 흉내 냅니다. IOBluetooth로 SDP 레코드를 게시하고, 결합된 iMac에 L2CAP 제어·인터럽트 채널을 엽니다. iMac이 먼저 링크를 올리면(잠자기 복귀 등) 그 신호를 받아 앱이 몇 초 안에 연결합니다. 키 입력은 CGEvent 탭으로 가로채 USB HID 리포트로 바꿔 인터럽트 채널로 보냅니다. 왜 이 설계인지, 무엇을 시험해 봤는지는 docs/analysis-and-design.md와 docs/connection-audit.md에 있습니다.
swift build && swift test # 라이브러리 빌드와 단위 테스트
./scripts/build-app.sh # build/BTSKey.app (ad-hoc 서명)
./scripts/build-dmg.sh # build/BTSKey-<버전>.dmg + SHA-256
Sources/HIDCore — 리포트 디스크립터, 키보드·마우스 리포트 인코딩, 키코드 매핑, 세션 상태 머신, 연결 이력. 순수 Swift라 단위 테스트가 여기에 몰려 있습니다.Sources/ClassicHIDTransport — IOBluetooth 기반 Bluetooth Classic HID 장치 에뮬레이션.Sources/InputCapture — CGEvent 탭, Caps Lock 모니터, 커서 잠금, 단축키.Sources/BTSKeyApp — 메뉴바 앱, 첫 실행 안내, 절전, 지원 기능.배포 절차(서명·공증 포함)는 docs/distribution.md에 있습니다. Windows용은 아직 없으며, 지금 빌드되는 부분과 만드는 경로는 docs/windows-build.md에, 파일·클립보드 전달 방법 조사는 docs/data-transfer-research.md에 있습니다.
| 날짜 | 내용 |
|---|---|
| 2026-09-23 | 요구 분석·설계. 기존 제품(KeyPad) 분석으로 Classic HID 경로 확정. HIDCore·전송·입력 캡처·메뉴바 앱 첫 구현. |
| 2026-09-23 | 연결 과정 1차 감사: SDP 재게시 실패, 고정 간격 재시도, 인바운드 미수락 수정. |
| 2026-09-26 | 2·3차 감사: 자리 이동 시 새 iMac 자동 채택, IOBluetooth 메인 스레드 정지 해결, 끊김 즉시 감지. Caps Lock 한/영, 포인터 고정·숨김, 상시 상태 상자, 절전, 단축키 ⌥⌘K. 🌐 키 지원. |
| 2026-09-26 | 4차 감사: iMac이 먼저 여는 연결의 요청 응답 누락 수정, 낡은 링크 초기화, SDP 게시 재시도, 잠자기 복귀 시 iMac 입력 자동 복귀. |
| 2026-09-27 | 배포 패키징(아이콘·DMG·서명/공증 훅·로그인 시 자동 실행), 첫 실행 안내, About/도움말/지원 메뉴, 기기 목록. |
| 2026-09-27 | 연결 시도 중 앱이 멈추면 MacBook 전체 입력이 멈추던 문제 수정(이벤트 탭을 전용 스레드로 분리), 채널 열기 전 링크 상태 대기, 자동 재시도 5회 제한. |
| 2026-09-27 | 다른 iMac으로 옮기는 표준 절차(새 페어링 자동 감지·채택, 해제된 페어링 즉시 중단), 자동 재시도 3회 후 '지금 다시 연결', 기기 이름 표시 개선, 메뉴 활성화 오류 수정. GitHub Pages 사이트. |
| 2026-09-27 | 새 iMac 연결 실패 수정. IOBluetooth 연결 알림 등록이 연결을 망가뜨리는 것을 확인해 제거하고, 링크는 항상 MacBook이 열며 iMac이 먼저 링크를 올리면 4초 뒤 앱이 연결하도록 변경. |
| 2026-09-29 | v0.1.4: 7차 감사. 시스템 설정에는 "연결됨"인데 앱은 연결하지 못하던 문제 수정(페어링 목록을 보조 프로세스에서 읽고, 링크 연결 1.5초 뒤 채널을 엶). 자동 재시도 1회, iMac이 해제하면 재시도 없음. 페어링 이력으로 새 iMac과 이전 iMac 구분. iMac이 시작하는 연결 감지 방식 변경. Caps Lock은 그대로 보내고 iMac의 보조 키에서 설정, 안내 추가. HUD 새 디자인. 진단 파일과 실행 파일에서 불필요한 정보 제거. Apple 실리콘 전용. |
MIT