macOS 14 이상
창 관리를 Vim 스타일로
Vimdow는 키보드로 조작하는 macOS 윈도 매니저입니다. 단축키 하나로 명령 모드에 들어간 뒤 h, j, k, l, 숫자 반복, 실행 취소로 창을 옮기고, 크기를 바꾸고, 정렬하고, 전환합니다. 마우스는 제자리에 둡니다. 앱을 이름으로 열거나, 지금 쓰는 창만 남기고 나머지를 어둡게 할 수도 있습니다.
Homebrew로 간편하게 설치
brew install rath/tap/vimdow데모에서 보여주는 것
- Control–Option–A로 명령 모드에 들어갑니다.
- l을 누를 때마다 창이 한 걸음씩 오른쪽으로 움직입니다.
- 12j는 아래로 열두 걸음을 한 번에 옮깁니다.
- Option–l은 왼쪽 위 모서리를 고정한 채 창을 넓힙니다.
- zz는 창을 디스플레이 가운데에 둡니다.
- u는 마지막 변경을 되돌립니다.
- Control–W 다음 H는 왼쪽 절반을 채웁니다.
- Q를 누르면 창마다 번호가 붙고, 2를 누르면 두 번째 창으로 넘어가며 명령 모드가 끝납니다.
- 다시 명령 모드에서 Control–W 다음 L을 누르면 오른쪽 절반을 채웁니다.
- Escape로 일반 모드로 돌아갑니다.
왜 Vimdow인가
Vimdow는 1998년부터 Vim을 써 왔고 마우스에 손을 뻗는 일을 되도록 피하는 사람이 만들었습니다. Mac의 대부분은 키보드로 다룰 수 있지만 창 관리는 그렇지 않았습니다. 창을 몇 포인트 옮기거나 다른 디스플레이로 보내려면 늘 홈 로우에서 손을 떼야 했습니다.
2013년의 첫 버전은 바로 그 문제를, 단 한 명의 사용자를 위해 해결한 작은 Objective-C 앱이었습니다. 새 단축키를 외우게 하는 대신 창 조작을 Vim의 어휘에 얹었습니다. hjkl로 이동, 숫자로 반복, 0과 $로 가장자리, gg와 G로 위아래, zz로 가운데, u로 실행 취소, /로 검색. 2026년에는 테스트를 갖춘 명령 엔진과 함께 Swift 6로 다시 작성했습니다.
Vimdow는 Vim처럼 모드가 있는 도구입니다. 타일링 윈도 매니저가 아니며 창을 대신 배치해 주지 않습니다. 직접 배치하는 일을 빠르게 만들어 줄 뿐입니다. 한 사람의 취향을 담은 도구이지만, 손에 같은 습관이 든 누구에게든 열려 있습니다.
동작 방식
명령 모드 진입
⌃⌥A를 누르고 손을 뗍니다. 모드를 나가기 전까지 키 입력은 맨 앞 앱이 아니라 Vimdow로 갑니다.
이동과 크기 조절
h j k l은 초점이 있는 창을 설정한 간격만큼 옮깁니다. 숫자를 먼저 입력하면 반복하고, 키를 누르고 있으면 부드럽게 이어서 움직이며, Option이나 Shift를 더하면 크기를 바꿉니다.
나가기
esc 또는 .을 누르면 일반 모드로 돌아가고, 키 입력은 다시 앱으로 갑니다.
할 수 있는 것
숫자 반복으로 이동과 크기 조절
간격을 설정할 수 있고, 키를 누르고 있으면 반복되며, 모든 변경은 부드럽게 제자리를 찾습니다. 12j는 열두 걸음을 옮기고, Option과 Shift는 서로 반대 모서리를 기준으로 크기를 바꿉니다.
정렬과 타일링
0, $, gg, G, zz는 크기를 유지한 채 창을 가장자리나 가운데에 둡니다. Control–W 다음 H, J, K, L, O는 절반 또는 디스플레이 전체를 채웁니다.
창마다 따로 실행 취소와 다시 실행
u와 Control–R은 이동, 크기 조절, 정렬, 디스플레이 이동을 창별 기록을 따라 오갑니다. 손으로 드래그한 뒤에도 그대로 동작합니다.
기억하는 디스플레이
Control–Option–K와 L은 창을 다음 디스플레이로 보냅니다. 돌아오면 그 디스플레이에서 쓰던 위치와 크기를 복원합니다.
자주 쓰는 창끼리 빠르게 전환
명령 모드에서 M으로 창을 표시하고, Control–Option–[는 이전 창으로, Control–Option–]는 다음 창으로 전환합니다. 등록 순서대로 이동하며 처음과 끝에서 반대편으로 이어집니다. 이동한 창은 0.18초씩 두 번 반짝입니다. 표시는 앱을 종료할 때까지 유지되며, 숨긴 창은 다시 보이면 전환 대상에 합류합니다. tmux pane 번호 표시가 필요하면 설정에서 켤 수 있습니다. 기본값은 꺼짐입니다.
헤매지 않는 전환
Q를 누르면 창 중앙에 반투명 검정 배경과 큰 흰색 번호가 표시됩니다. 겹치는 번호는 분산되고, 키 입력 없이 3초가 지나면 선택이 취소됩니다. 숫자로 창을 고르거나, /로 앱 이름을 검색하고 n과 N으로 결과를 이동하세요.
Spotlight 없이 앱 실행
앱 이름이나 시스템 설정 항목 이름을 입력하고 Return을 누르면 열립니다. /Applications와 시스템 앱 폴더, 시스템 설정 패널을 찾으며 Google Chrome의 gc처럼 머리글자도 인식합니다. 선택한 항목을 기억해 같은 검색어에서는 먼저 보여 줍니다. 단축키는 기본적으로 비어 있으니 설정에서 Option–Command–Space 등을 지정하세요.
나머지 창은 어둡게
Control–Option–D를 누르면 HazeOver처럼 지금 쓰는 창만 남기고 모든 디스플레이의 나머지 창 위에 반투명한 검은 막이 덮입니다. 창을 클릭하거나 앱을 전환하면 밝은 창도 따라 바뀝니다. 어두운 정도는 설정의 General → Dimming에서 조절하세요. 전체 화면 Space는 어둡게 하지 않습니다.
취향대로 조정
이동과 크기 조절의 간격을 따로 정하고, 화면 경계에서 멈출지, 애니메이션을 사용할지 선택할 수 있습니다. 전역 단축키 9개를 변경하거나 로그인 시 Vimdow가 자동으로 실행되게 설정할 수도 있습니다. Command–W로 설정 창을 닫습니다.
명령 모드 한눈에 보기
기본값 Control–Option–A로 들어갑니다. 명령 앞에 숫자를 입력하면 그만큼 반복합니다. 함께 표시된 두 키는 차례로 누릅니다.
| 키 | 동작 |
|---|---|
| hjkl | 왼쪽, 아래, 위, 오른쪽으로 한 걸음 이동 |
| ⌥hjkl | 왼쪽 위 모서리를 고정하고 크기 조절 |
| ⇧hjkl | 오른쪽 아래 모서리를 고정하고 크기 조절 |
| 12j | 반복: 12j는 아래로 열두 걸음 이동 |
| u/⌃r | 초점이 있는 창의 마지막 변경을 실행 취소 / 다시 실행 |
| 0/$ | 디스플레이의 왼쪽 / 오른쪽 가장자리로 이동 |
| gg/G | 위 / 아래 가장자리로 이동 |
| zz | 디스플레이 가운데로 이동 |
| ⌃wHJKL | 왼쪽 / 아래 / 위 / 오른쪽 절반 채우기 |
| ⌃wo | 디스플레이 전체 채우기 |
| q1–9 | 번호로 창 선택; Q로 다음 페이지; 3초간 입력 없으면 취소 |
| m | 현재 창을 표시 / 해제하고 명령 모드 종료 |
| ⌃⌥[/⌃⌥] | 표시한 창끼리 전환 — 일반 모드에서도 사용 가능 |
| ⌃⌥d | 포커스된 창만 남기고 모두 어둡게 — 일반 모드에서도 사용 가능 |
| //n/N | 앱 이름으로 검색. 다음 / 이전 결과 |
| ⌃⌥k/⌃⌥l | 다음 디스플레이로 이동 |
| , | 설정 열기 |
| esc/. | 명령 모드 나가기 |
키는 물리적인 ANSI 자판 위치를 따르므로 한국어, JIS 등 다른 배열에서도 같은 자리에 있습니다.
자주 묻는 질문
Rectangle이나 타일링 윈도 매니저와 무엇이 다른가요?
Rectangle 같은 앱은 레이아웃마다 전역 단축키를 하나씩 두고, yabai나 AeroSpace 같은 타일링 윈도 매니저는 창을 알아서 배치합니다. Vimdow는 둘 다 아닙니다. 단축키 하나로 명령 모드에 들어가 몇 가지 Vim 키로 창을 옮기고, 크기를 바꾸고, 정렬하고, 되돌립니다. 직접 조작하기 전에는 어떤 창도 움직이지 않습니다.
Vim을 몰라도 쓸 수 있나요?
네. h, j, k, l 네 키만 알면 대부분 해결됩니다. 각각 창을 왼쪽, 아래, 위, 오른쪽으로 옮깁니다. 숫자 반복이나 gg, zz 같은 명령은 필요할 때 익히면 되고, 모든 키는 위의 표에 정리되어 있습니다.
한글 입력 상태에서도 쓸 수 있나요?
네. 명령 모드의 키는 입력되는 글자가 아니라 키의 물리적 위치로 정해져 있어서, 한글 입력 상태에서도 h, j, k, l이 그대로 동작합니다. 앱 이름 검색에는 한글도 입력할 수 있습니다.
단축키를 바꿀 수 있나요?
네. 명령 모드 진입용 Control–Option–A와 표시한 이전·다음 창 전환용 Control–Option–[ 및 Control–Option–] 등 전역 단축키 9개를 설정에서 변경하거나 지울 수 있습니다. 명령 모드 안의 키는 고정되어 있습니다.
모든 앱에서 동작하나요?
macOS가 다른 앱의 창 이동을 허용하는 앱이라면 동작하고, 거의 모든 앱이 여기에 해당합니다. 크기가 고정된 창처럼 앱이 이동이나 크기 조절을 거부하면, Vimdow는 억지로 바꾸지 않고 경고음만 냅니다.
지금 쓰는 창만 남기고 나머지를 어둡게 할 수 있나요?
네. Control–Option–D를 누르면 HazeOver처럼 모든 디스플레이의 나머지 창 위에 반투명한 검은 막이 덮이고, 창을 클릭하거나 앱을 전환하면 밝은 창도 따라 바뀝니다. 어둡기는 설정의 General → Dimming에서 정하고, 단축키를 다시 누르면 꺼집니다.
로그인할 때 Vimdow가 자동으로 실행되게 할 수 있나요?
네. 설정의 General → Startup에서 Open Vimdow at login을 켜세요. 기본값은 꺼짐입니다. macOS가 시스템 설정 → 일반 → 로그인 항목에서 관리하는 설정이며, Restore Defaults로 초기화해도 바뀌지 않습니다.
업데이트는 어떻게 하나요?
Vimdow를 종료한 뒤 최신 Vimdow.zip을 받아 응용 프로그램 폴더의 앱을 교체하세요. Homebrew로 설치했다면 brew update와 brew upgrade --cask vimdow를 실행하면 됩니다. 설정은 유지되고, 창 표시는 재시작 시 초기화됩니다. 앱 자체는 업데이트를 확인하지 않습니다.
Vimdow 받기
Vimdow 1.3.1은 macOS 14 이상에서 Apple Silicon과 Intel Mac을 모두 지원합니다. Developer ID로 서명하고 Apple 공증을 받았습니다.
내려받은 zip에서 Vimdow.app을 꺼내 응용 프로그램 폴더로 옮깁니다.
앱을 실행한 뒤 시스템 설정 → 개인정보 보호 및 보안 → 손쉬운 사용에서 허용합니다.
⌃⌥A를 눌러 명령 모드로 들어갑니다.
Homebrew로도 설치할 수 있습니다. 설치 후 앱을 열고 손쉬운 사용 권한을 허용하세요:
brew install rath/tap/vimdow
손쉬운 사용 권한에 대해
macOS는 다른 앱의 창을 움직이는 모든 앱에 이 권한을 요구합니다. Vimdow는 그 용도로만 사용합니다. 네트워크 접근도, 분석 도구도 없으며, 어떤 것도 Mac 밖으로 나가지 않습니다.