창 관리를 Vim의 어휘로.
Vimdow는 키보드로 조작하는 macOS 윈도 매니저입니다. 단축키 하나로 명령 모드에 들어간 뒤 h, j, k, l, 숫자 반복, 실행 취소로 창을 옮기고, 크기를 바꾸고, 정렬하고, 전환합니다. 마우스는 제자리에 둡니다.
데모에서 보여주는 것
- Control–Option–A로 명령 모드에 들어갑니다.
- l을 누를 때마다 창이 한 걸음씩 오른쪽으로 움직입니다.
- 12j는 아래로 열두 걸음 옮깁니다.
- Option–l은 왼쪽 위 모서리를 고정한 채 창을 넓힙니다.
- zz는 창을 디스플레이 가운데에 둡니다.
- Control–W 다음 H는 왼쪽 절반을 채웁니다.
- u는 마지막 변경을 되돌립니다.
- 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은 창을 다음 디스플레이로 보냅니다. 돌아오면 그 디스플레이에서 쓰던 위치와 크기를 복원합니다.
헤매지 않는 전환
Q는 최대 아홉 개의 창에 번호를 붙여 보여 주고, 숫자를 누르면 그 창에 초점이 갑니다. /는 앱 이름으로 검색하고 n과 N은 결과를 차례로 오갑니다.
취향대로 조정
이동과 크기 조절 간격을 따로 정하고, 크기 조절이 디스플레이 가장자리에서 멈출지 고르고, 애니메이션을 끄고, 다섯 개의 전역 단축키를 바꿀 수 있습니다.
명령 모드 한눈에 보기
기본값 Control–Option–A로 들어갑니다. 명령 앞에 숫자를 입력하면 그만큼 반복합니다. 함께 표시된 두 키는 차례로 누릅니다.
| 키 | 동작 |
|---|---|
| hjkl | 왼쪽, 아래, 위, 오른쪽으로 한 걸음 이동 |
| ⌥hjkl | 왼쪽 위 모서리를 고정하고 크기 조절 |
| ⇧hjkl | 오른쪽 아래 모서리를 고정하고 크기 조절 |
| 12j | 반복: 12j는 아래로 열두 걸음 이동 |
| u/⌃r | 초점이 있는 창의 마지막 변경을 실행 취소 / 다시 실행 |
| 0/$ | 디스플레이의 왼쪽 / 오른쪽 가장자리로 이동 |
| gg/G | 위 / 아래 가장자리로 이동 |
| zz | 디스플레이 가운데로 이동 |
| ⌃wHJKL | 왼쪽 / 아래 / 위 / 오른쪽 절반 채우기 |
| ⌃wo | 디스플레이 전체 채우기 |
| q1–9 | 번호가 붙은 창으로 전환. Q를 다시 누르면 다음 아홉 개 |
| //n/N | 앱 이름으로 검색. 다음 / 이전 결과 |
| ⌃⌥k/⌃⌥l | 이전 / 다음 디스플레이로 이동 |
| , | 설정 열기 |
| esc/. | 명령 모드 나가기 |
키는 Vim처럼 물리적인 ANSI 자판 위치를 따르므로 한국어, JIS 등 다른 배열에서도 같은 자리에 있습니다.
Vimdow 받기
macOS 14 이상과 손쉬운 사용(Accessibility) 권한이 필요합니다.
아직 바이너리 다운로드는 없습니다. Vimdow는 Xcode 27과 XcodeGen으로 소스에서 빌드합니다. README에 설정, 빌드, 그리고 다시 빌드해도 손쉬운 사용 권한이 유지되도록 서명하는 방법이 정리되어 있습니다.
손쉬운 사용 권한에 대해
macOS는 다른 앱의 창을 움직이는 모든 앱에 이 권한을 요구합니다. Vimdow는 그 용도로만 사용합니다. 네트워크 접근도, 분석 도구도 없으며, 어떤 것도 Mac 밖으로 나가지 않습니다.