TL;DR

  • macOS에서 Logitech의 레거시 키보드와 마우스를 함께 전환하는 로컬 도구로, Logi Options+의 두 기기 Easy-Switch 동작이 두 기기를 노출하는 경우 한 번의 동작으로 같은 호스트에 전환함.
  • 호스트별 앱 세 개가 포함되며, 검증된 조합은 MX Keys S2015년형 1세대 MX Master임.
  • macOS 12 이상, Logi Options+와 Plugin Service 실행, 정확히 두 기기 노출, 양쪽 기기의 호스트 슬롯 일치가 요구됨.
  • 로컬 Plugin Service에 고정된 동작을 요청하며 네트워크 연결·텔레메트리·데몬 설치·펌웨어 수정은 없음.
  • 명령은 순차 실행되므로 실패 시 한 기기만 전환될 수 있으며, 자동 재시도는 수행되지 않음.

The Mouse Is Coming Too

  • macOS에서 레거시 Logitech Easy-Switch 키보드와 마우스를 함께 전환하는 도구임.
  • 한 번의 동작으로 지원되는 두 기기를 같은 Easy-Switch 호스트로 전환함.
  • Logitech의 기본 Enhanced Easy-Switch를 사용할 수 없는 구성에 적합한 소규모 로컬 대안임. 검증된 조합에는 MX Keys S와 2015년형 오리지널 MX Master가 포함됨.
  • Logitech과 제휴·후원 관계가 없으며 Logitech의 보증을 받지 않음.

다운로드

  • GitHub Releases에서 최신 macOS ZIP과 SHA256SUMS를 내려받을 수 있음.
  • 압축 파일에는 Switch to Host 1.app, Switch to Host 2.app, Switch to Host 3.app이 포함됨.
  • 각 앱에 전환 코드가 각각 포함됨.
  • 체크섬 확인, Gatekeeper, 최초 실행 안내는 INSTALL.md에 있음.

해결하는 문제

  • 많은 Logitech 키보드와 마우스는 각각 여러 컴퓨터를 기억할 수 있지만, 보통 두 기기의 전환 버튼을 따로 눌러야 함.
  • 포함된 앱은 Logi Options+에 이미 설치된 두 기기 Easy-Switch 동작을 호출함. 호스트를 한 번 선택하면 키보드와 마우스가 함께 전환됨.
  • 관련 검색어는 Logitech 주변기기의 다중 기기 전환, MX 키보드와 MX Master 동시 전환, Bolt 및 Unifying Receiver 기기의 Easy-Switch, 키보드와 마우스의 동기화된 호스트 전환임.

호환성

  • 요구 사항은 다음과 같음.
  • macOS 12 이상
  • Logi Options+ 설치 및 Plugin Service 실행
  • /usr/bin/python3 설치. 여러 macOS 설치 환경과 Apple 명령줄 도구에 포함됨.
  • Options+의 Easy-Switch 2 Devices 동작에 정확히 두 기기가 노출됨.
  • 두 기기의 호스트 슬롯 할당이 일치함.
  • 종단 간 검증 항목은 다음과 같음.
  • MX Keys S와 1세대 MX Master
  • 두 기기 모두 Bluetooth 연결
  • Logi Options+ 2.7.970334 및 Plugin Service 6.4.1.3246
  • Bolt, Bluetooth, 레거시 Unifying Receiver 구성은 Options+가 두 기기를 해당 동작에 노출하는 경우 작동할 수 있지만, 리시버 종류만으로 호환성이 보장되지는 않음.
  • 오리지널 MX Master는 레거시 기기로 검증됐지만, 해당 기기의 Unifying 연결 경로는 아직 테스트되지 않음.
  • 변경을 가하지 않는 호환성 확인 명령은 /usr/bin/python3 ./switch_pair.py status임.
  • 의도한 기기 두 대가 정확히 표시되면 실행기 앱이 자동으로 기기를 선택할 수 있음. 명령줄 클라이언트는 명시적 선택자도 지원함.

설치 및 할당

  • 앱 세 개를 /Applications에 복사함.
  • Logi Options+에서 사용자 지정 가능한 버튼이나 키에 Open Application을 할당한 다음 필요한 호스트에 해당하는 앱을 선택함.
  • 앱을 열면 창을 표시하지 않고 즉시 전환을 요청함.
  • 양방향 전환을 사용하려면 각 Mac에 실행기 앱을 설치함.
  • 초기 테스트 중에는 물리적 Easy-Switch 제어부, 내장 트랙패드 또는 여분의 입력 장치를 사용할 수 있도록 둠.

명령줄

  • 호환 가능한 선택지를 확인하는 명령은 /usr/bin/python3 ./switch_pair.py status임.
  • 물리적 호스트 슬롯 2로 전환을 미리 확인한 뒤 실행하려면 /usr/bin/python3 ./switch_pair.py switch 2로 미리 보고, /usr/bin/python3 ./switch_pair.py switch 2 --execute로 실행함.
  • Options+가 두 개를 초과하는 선택지를 노출하는 경우 기기 쌍을 명시적으로 지정할 수 있음. 명령 형식은 /usr/bin/python3 ./switch_pair.py switch 2 --first "DEVICE NAME" --second "OTHER DEVICE" --execute임.

작동 방식

  • 클라이언트는 Options+가 설치한 로컬 Plugin Service에만 연결함.
  • 두 기기 Easy-Switch 동작의 선택지를 찾고, 호스트 슬롯을 지정해 고정된 동작을 호출함.
  • Options+ 패치, 펌웨어 수정, 디버거 활성화, UI 자동화, 데몬 설치, 네트워크 연결은 수행하지 않음.
  • 서비스 이벤트를 통해 두 명령이 모두 전송됐음을 확인함.
  • 명령은 원자적이지 않고 순차적으로 실행되므로 실패하면 한 기기만 전환될 수 있음. 클라이언트는 실행 결과가 불확실할 때 자동 재시도하지 않음.

개인정보 보호 및 보안

  • 일반 클라이언트의 특성은 다음과 같음.
  • 네트워크 연결이나 수신 대기 기능 없음
  • 텔레메트리 없음
  • 기기·계정·사용 데이터 수집 없음
  • 관리자, 손쉬운 사용, 자동화, 디버그 권한 불필요
  • 기기 표시 이름과 모델 식별자를 메모리에서만 읽음
  • Logitech 파일, 데이터베이스, 펌웨어, 소켓 권한을 수정하지 않음

빌드 및 테스트

  • make test, make audit, make dist 명령으로 테스트·감사·배포 파일을 생성함.
  • make dist는 자체 완결형 앱 번들 세 개를 만들고, 신원 정보가 없는 임시 서명을 적용하며, dist/ 아래에 ZIP과 SHA-256 체크섬을 기록함.

제한 사항

  • 로컬 Plugin Service 프로토콜은 문서화되지 않았으며 변경될 수 있음.
  • 내려받은 앱은 임시 서명 상태이며 Developer ID 서명이나 공증을 거치지 않음.
  • 앱에는 동작과 호환되는 기기가 정확히 두 대 필요함.
  • 동일한 모델 두 대는 해당 동작을 통해 서로 구별되지 않을 수 있음.
  • 서비스 응답으로 기기 재연결 여부를 확인할 수 없음.
  • 이번 릴리스는 macOS만 지원함.

라이선스 및 상표

  • MIT 라이선스가 적용됨. 자세한 내용은 LICENSE에 있음.