macOS에서 네이티브 즉시 공간 전환 구현

1 day ago 2
  • MacOS는 공간 전환 애니메이션을 비활성화할 수 없는 구조로, 잦은 전환 시 지연이 체감되는 문제가 있음
  • 기존의 “Reduce motion” 설정이나 yabai 윈도우 매니저 등은 각각 지연 지속 또는 SIP 비활성화 필요 등의 한계를 가짐
  • InstantSpaceSwitcher는 이러한 제약 없이 트랙패드 스와이프를 고속 시뮬레이션하여 즉시 전환을 구현함
  • SIP 비활성화 없이 네이티브 앱 형태로 동작하며, CLI를 통한 공간 번호 이동 기능도 지원함
  • 기존 서드파티 도구의 복잡함을 제거하고, MacOS 기본 환경에서 빠른 공간 전환을 가능하게 하는 실용적 도구

MacOS의 공간 전환 문제와 기존 해결책

  • MacOS는 공간(Space) 전환 시 애니메이션을 끌 수 없는 구조로, 잦은 전환 시 지연감이 누적되는 불편함이 있음
    • Apple은 애니메이션 비활성화 요청을 지속적으로 수용하지 않음
    • 전환 시간이 짧더라도 빈번한 전환에서는 체감 속도 저하가 발생함
  • 일반적으로 제시되는 해결책은 “Reduce motion” 설정이지만, 이는 페이드인(fade-in) 애니메이션으로 대체되어 여전히 지연이 존재함
    • 또한 이 설정은 웹 브라우저의 prefers-reduced-motion 미디어 쿼리를 활성화해 웹 애니메이션 비활성화 부작용을 초래함
  • yabai 타일링 윈도우 매니저의 인스턴트 스위처 기능은 운영체제 바이너리 패치를 요구해 System Integrity Protection(SIP) 을 꺼야 함
    • yabai 사용 시 기본 윈도우 관리자를 대체해야 하며, PaperWM.spoon 등과 호환되지 않음
  • FlashSpace, AeroSpace virtual workspaces 등 서드파티 가상 공간 관리자는 창 숨김·표시 방식으로 전환을 흉내내는 비네이티브 구현
  • BetterTouchTool의 유료 기능인 “Move Right/Left Space (Without Animation)”을 이용하는 방법도 있으나, 유료 라이선스 필요라는 제약이 있음

InstantSpaceSwitcher — 네이티브 즉시 공간 전환 도구

  • GitHub의 jurplel이 개발한 InstantSpaceSwitcher는 위의 모든 한계를 제거하고 즉시 공간 전환을 지원함
    • 메뉴바 애플리케이션형태로 제공되며, SIP 비활성화 없이 동작

      • 트랙패드 스와이프를 고속 시뮬레이션하여 지연 없는 전환을 구현함
      • 공간 번호 직접 이동 기능과 명령줄 인터페이스(CLI) 를 함께 제공함
      • CLI 사용 예시:
      .build/release/ISSCli [left|right|index <n>]
      • 설치 절차는 다음과 같음
      • git clone https://github.com/jurplel/InstantSpaceSwitcher
      • cd InstantSpaceSwitcher
      • ./build.sh
      • 빌드 후 네이티브 애플리케이션으로 실행 가능
      • 현재 GitHub 저장소에는 별 1개(작성자 본인) 만 등록되어 있으며, 더 많은 사용자가 이 도구를 발견하고 활용하기를 기대함

추가 참고

  • instantspaces는 yabai의 인스턴트 스위처를 분리하려는 시도였으나 MacOS Tahoe에서는 작동하지 않음
    • 여러 차례 시도에도 실패했으며, InstantSpaceSwitcher가 더 안정적으로 동작함
    • 다른 사용자가 성공했다면 피드백을 요청함
Read Entire Article