무엇을 해주나요
외부 모니터를 다시 연결하면 macOS Tahoe (26.x) 가 그 모니터의 Mission Control 데스크탑을 내장 화면으로 합쳐버립니다. Restow 는 디스플레이별로 원하던 데스크탑 개수를 저장해뒀다가, 메뉴바의 Apply Layout 한 번으로 원래대로 되돌려줘요.
- 한 클릭 복원 모니터를 다시 꽂은 뒤 메뉴바에서 Apply Layout 한 번. 디스플레이 간 데스크탑 이동까지 자동 처리.
- 디스플레이별 프리셋 각 모니터(시리얼 기반 안정 키)마다 원하는 개수를 저장. 이름도 자유롭게 편집 — "회사 4K", "거실 TV" 등.
- 핫플러그 자동 감지 Settings 창이 모니터 연결/분리 즉시 갱신. 종료/재시작 필요 없음.
- 권한 상태 표시 손쉬운 사용 권한이 없으면 메뉴바 아이콘이 ⚠ 글리프로 바뀌고, 시스템 설정 deep-link 제공.
모습
Connected Displays
Saved Presets (not currently connected)
General
설치
현재 ad-hoc 빌드 단계라 본인 / 가족 머신 용도입니다. Apple Developer 사이닝 + 노타리제이션 후엔 직접 다운로드 가능해질 예정.
현재: 소스 빌드
필요 환경: macOS 14.0+, Xcode 16+, xcodegen.
git clone https://github.com/jungdev24/restow.git
cd restow
brew install xcodegen
bash scripts/install.sh
스크립트가 Release 빌드 → 기존 Restow 종료 → /Applications/Restow.app 교체 → 자동 실행까지 합니다.
곧: 직접 다운로드
Developer ID 사이닝 + 노타리제이션이 끝나면 GitHub Releases 의 서명된 .dmg 또는 .zip 으로 단순 설치 가능.
첫 실행
- 실행 직후 시스템이 "Restow가 사용자 컴퓨터를 제어하도록 허용하시겠습니까?" 다이얼로그를 띄웁니다 → 시스템 설정 열기 클릭.
- 개인정보 및 보안 → 손쉬운 사용 → Restow 토글 ON. 메뉴바 아이콘이 ⚠ 에서 정상 글리프로 5초 안에 바뀝니다.
- 메뉴바 → Settings… → 디스플레이별 데스크탑 개수 설정 → Save. 이후 모니터를 다시 꽂는 상황이 오면 메뉴바 → Apply Layout.
자주 묻는 문제
권한을 줬는데도 메뉴바 아이콘이 ⚠ 그대로예요
ad-hoc 사이닝의 알려진 제약입니다. 빌드를 다시 할 때마다 바이너리 해시(CDHash)가 달라져 macOS 가 옛 권한을 무효화해요.
빠른 해결:
tccutil reset Accessibility com.seunghun.Restow
pkill -f "Restow.app/Contents/MacOS/Restow"
open /Applications/Restow.app
새 권한 prompt 가 다시 떠서 시스템 설정에서 토글 ON 해주면 됩니다. 영구 해결은 Developer ID 사이닝 후.
Apply Layout 눌러도 아무 반응이 없어요
현재 디스플레이 상태가 이미 저장된 프리셋과 같으면 silent success — 할 일이 없어서 아무것도 안 함이 정상입니다. Settings 에서 디스플레이별 데스크탑 개수를 다른 값으로 바꾸고 다시 시도해보세요.
"현재 보고 있는 데스크탑이 변경 대상" 경고가 떠요
macOS 가 사용자가 보고 있는 Space 는 옮기거나 지우지 못하게 막아둔 정책이에요. 데스크탑 1번 (또는 변경 범위 밖) 으로 이동한 뒤 Apply 를 다시 누르세요.
호환성
- macOS
- 14.0 이상
- 아키텍처
- Apple Silicon (현 ad-hoc 빌드). Intel 지원은 Developer ID 사이닝 후 universal binary 로 재도입 예정.
- 의존성
- 없음 (Dock 프로세스의 Accessibility 트리만 사용). 키보드 입력은 캡처하지 않습니다.