winlego 매뉴얼
winlego 는 메뉴바에 격자 아이콘으로 있습니다. 채워진 아이콘은 켜져 있고 권한도 있는 상태, 비어 있으면 꺼져 있거나 아직 권한을 기다리는 상태입니다.
권한
winlego 는 다른 앱의 창을 보고 옮기기 위해 손쉬운 사용 권한이 필요합니다. 첫 실행 때 안내 창이 뜨고, 버튼을 누르면 시스템 설정 › 개인정보 보호 및 보안 › 손쉬운 사용(macOS 27 에서는 기기 제어 및 데이터 접근)이 열립니다. winlego 옆 스위치를 켜면 1초 안에 인식합니다.
다른 권한은 필요 없습니다. 입력 모니터링도, 화면 기록도 아닙니다. 키 입력을 읽지 않고 네트워크 코드도 없습니다.
레이아웃
디스플레이마다 레이아웃(영역 묶음)이 하나씩 있습니다. 메뉴바 Layouts 또는 설정 › Layouts 에서 고릅니다. 설정 쪽에는 모양 미리보기가 있습니다. 가로 디스플레이는 Wide Left (⅔ + ⅓), 세로 디스플레이는 Top + Bottom 으로 시작합니다.
기본 레이아웃:
| 레이아웃 | 영역 |
|---|---|
| Full Screen | 영역 하나, 화면 전체. 작은 디스플레이용. |
| Halves | 왼쪽, 오른쪽 |
| Wide Left (⅔ + ⅓) | 왼쪽 ⅔, 오른쪽 ⅓ |
| Wide Right (⅓ + ⅔) | 왼쪽 ⅓, 오른쪽 ⅔ |
| Thirds | 왼쪽, 가운데, 오른쪽 |
| Grid 2×2 | 좌상, 우상, 좌하, 우하 |
| Left + Right Stack | 왼쪽(60%), 우상, 우하 |
| Center Column | 왼쪽(15%), 가운데(70%), 오른쪽(15%) |
| Top + Bottom | 위, 아래 |
| Three Rows | 위, 가운데, 아래 |
| Tall Top (⅔ + ⅓) | 위 ⅔, 아래 ⅓ |
영역은 메뉴바와 Dock 을 침범하지 않습니다. 설정 › Layouts › Spacing 으로 영역 사이에 간격을 둘 수 있습니다.
직접 그리거나 화면에서 조절한 레이아웃은 My layouts 로 기본 레이아웃 위에 나옵니다.
창 넣기
winlego 가 창을 영역에 넣으면 그 창은 배정된 상태입니다. 방법은 네 가지:

⇧드래그. 창의 제목 표시줄을 끌면서⇧를 누르면(드래그 도중에 눌러도 됨) 모든 디스플레이에 영역이 표시됩니다. 커서 아래 영역이 강조되고, 놓으면 거기에 들어갑니다. 설정 › 일반에서 트리거를⌥로 바꾸거나 항상(모든 드래그에 표시)으로 바꿀 수 있습니다.- 영역 합치기:
⌃추가. 끌기가 시작되어 영역이 보이는 동안⌃까지 누르고 한 디스플레이 안에서 이웃한 영역들로 커서를 옮기면 지나간 영역이 차례로 선택에 더해집니다.⌃는 창을 잡은 뒤에 누르세요. 먼저 누른 채 클릭하면 우클릭이 되어 드래그가 시작되지 않습니다. (⌥는 macOS 가 자체 타일링 안내를 띄워서 쓰지 않습니다.) 놓으면 창이 그 영역들을 모두 채웁니다. 레이아웃은 바뀌지 않고 그 창만 여러 영역에 걸칩니다. 걸친 창 안쪽의 경계는 양쪽을 같은 창이 덮고 있어 끌어도 아무 일이 없습니다. - 단축키. 기본값으로
⌃⌥←/⌃⌥→는 현재 창을 같은 디스플레이의 이전/다음 영역으로 옮깁니다(끝에서 순환). 아직 배정되지 않은 창은 가장 많이 겹치는 영역에서 출발합니다.⌃⌥↑/⌃⌥↓는 이전/다음 디스플레이(왼쪽→오른쪽, 위→아래 순)의 같은 번호 영역으로 옮깁니다. - 메뉴바 › Move Window to. 디스플레이와 영역 목록.
- 규칙. 아래 참고.
winlego 는 일반 창만 다룹니다. 시트, 패널, 대화상자, 최소화된 창, 자체 전체 화면 Space 에 있는 창은 건드리지 않습니다. 최소 크기가 있는 앱은 영역에 최대한 가깝게 맞춥니다.
자리 유지
한 번 배정된 창은 계속 배정 상태입니다.
- 앱이 스스로 창을 옮기거나 크기를 바꾸면(저장된 위치 복원 등) 잠시 뒤 되돌립니다.
- 디스플레이를 연결·분리·재배치하거나 Mac 이 절전에서 깨어나면, 시스템이 안정될 때까지 잠깐 기다렸다가 배정된 창을 전부 제자리로 돌립니다.
- 디스플레이의 레이아웃을 바꾸면 창들이 새 영역에 다시 배치됩니다. 영역 번호가 더 이상 없는 창은 마지막 영역으로 갑니다.
사용자의 행동이 우선입니다.
- 배정된 창을
⇧없이 직접 끌어 다른 곳에 놓으면 배정이 풀립니다. 다시 배정할 때까지 자유로운 창입니다. ⌃⌥⌫또는 Release This Window 는 옮기지 않고 풀기만 합니다.- 창을 계속 되돌려 놓는 앱, 영역에 맞출 수 없는 창은 싸우는 대신 풀어 줍니다.
배정은 창이 닫히거나 winlego 가 종료될 때까지 기억합니다. 재시작 뒤에도 자동으로 배치되게 하려면 규칙을 쓰세요.
규칙
규칙은 이 앱의 창은 이 디스플레이의 이 영역으로 입니다.
가장 빠른 방법: 창을 원하는 곳에 넣고 메뉴바에서 Remember This Window Here. 이제 그 앱의 창은 거기서 열리고, Arrange All by Rules(⌃⌥↩)는 규칙 있는 창을 전부 제자리로 보냅니다.
설정 › Rules 에서 편집합니다.
- Title contains 는 제목에 그 글자가 든 창으로 규칙을 한정합니다. 제목 필터가 있는 규칙이 같은 앱의 앱 전체 규칙보다 우선하므로, 특정 프로젝트 창만 다른 곳으로 보낼 수 있습니다.
- Display 기본값은 메인 디스플레이입니다. 고른 디스플레이가 연결돼 있지 않으면 메인 디스플레이를 씁니다.
- Add Rule for App… 은 지금 실행 중인 앱을 보여 줍니다.
설정 › General › Ignored apps 의 앱은 규칙이 건드리지 않습니다.
화면에서 영역 크기 조절
배정된 창 두 개가 이웃한 영역에 있으면, 그 사이 경계를 타일링 창 관리자의 분할선처럼 끌 수 있습니다.

- 커서를 경계에 올립니다. 경계 위에 색 막대와 손잡이가 나타납니다. 경계가 보일 때만 나타납니다. 다른 창이 경계 위를 덮고 있으면 나오지 않습니다.
- 끕니다. 양쪽 창(그리고 영향 받는 영역의 다른 창)이 실시간으로 따라옵니다.
- 놓습니다. 작은 창이 이 레이아웃을 <디스플레이> 에 저장할까요? 라고 묻습니다.
- Save 는 새 비율을 그 디스플레이의 레이아웃으로 저장합니다. 기본 레이아웃을 쓰고 있었다면 Wide Left (⅔ + ⅓) · LG HDR 4K 같은 이름의 사본이 My layouts 에 생기고, 이후엔 그 사본이 제자리에서 수정됩니다.
- 나중에(또는 카운트다운이 끝나도록 두기. 시간은 설정 › 일반에서 바꾸거나 자동 닫힘을 끌 수 있음)는 창은 그대로 두고 저장된 레이아웃은 바꾸지 않습니다. 그 디스플레이의 새 배치는 레이아웃을 다시 고르거나 재시작할 때까지 끌어 놓은 비율을 씁니다.
경계는 양쪽에 배정된 창이 있을 때만 잡힙니다.
레이아웃 에디터
설정 › Layouts › New Layout… 은 전체 화면 영역 하나로 에디터를 엽니다. My layouts 옆의 Edit… 은 그 레이아웃을 엽니다.
- 영역을 클릭해 선택합니다.
- Split Left | Right, Split Top / Bottom 은 선택한 영역을 반으로 가릅니다. 계속 갈라서 격자, 쌓기, 사이드바를 만듭니다.
- 경계의 손잡이를 끌어 비율을 바꿉니다.
- Remove Zone 은 그 공간을 갈라져 나온 이웃에게 돌려줍니다.
- 오른쪽 입력란에서 선택한 영역의 이름을 정합니다. 이름 없는 영역은 읽는 순서대로 Zone 1, Zone 2… 입니다.
- Landscape / Portrait 는 미리보기 모양만 바꿉니다.
- Save 는 위의 이름으로 저장합니다. 모든 디스플레이에서 고를 수 있습니다.
My layouts 에서 레이아웃을 지우면 그걸 쓰던 디스플레이는 기본값으로 돌아갑니다.
설정
메뉴바 › Settings…(⌘,).
- Rules: 위 참고.
- Layouts: 내 레이아웃, 디스플레이별 레이아웃, 간격.
- 일반: 드래그 트리거, 단축키, 무시할 앱, 로그인 시 열기, 권한 상태.
단축키 바꾸기
설정 › 일반 › 단축키에 모든 동작과 키가 있습니다. 키를 클릭하고 새 조합을 누르면 끝입니다. Esc 는 취소. 화살표 버튼은 기본값 복원, X 는 단축키 없애기. 기능키는 단독으로 쓸 수 있고, 다른 키는 평소 타이핑을 삼키지 않도록 ⌃, ⌥, ⌘ 중 하나가 필요합니다. 경고 삼각형은 다른 앱이 그 조합을 이미 쓰고 있다는 뜻입니다.
언어
winlego 는 시스템 언어를 따릅니다. macOS 가 한국어면 한국어, 아니면 영어입니다. 레이아웃과 영역 이름도 번역되며, 직접 입력한 이름은 그대로 둡니다.
모든 설정은 ~/Library/Application Support/winlego/config.json 에 있습니다. 처음부터 다시 하려면 이 파일을 지우세요.
문제 해결
아무 일도 안 일어남. 아이콘을 보세요. 비어 있으면 꺼져 있거나(Keep Windows in Zones 토글) 권한이 없는 것입니다. 업데이트 뒤 macOS 가 권한을 떨어뜨리기도 합니다. 손쉬운 사용 목록에서 winlego 를 지우고 다시 추가하세요.
macOS 자체 타일링이 끼어듦. macOS 15 부터 창을 화면 가장자리로 끌면 타일링을 제안하는데, 영역에 닿기 전에 먼저 걸릴 수 있습니다. 시스템 설정 › 데스크탑 및 Dock › 화면 가장자리로 드래그하여 타일링 을 끄세요.
경계에서 리사이즈 커서가 안 보임. 알려진 제한입니다. macOS 는 백그라운드 앱이 커서를 바꾸는 것을 허용하지 않습니다. 강조 막대가 경계를 표시하고, 드래그는 그대로 됩니다.
창 크기가 이상함. 최소 크기나 고정 비율을 강제하는 앱이 있습니다. winlego 는 그런 창을 영역의 왼쪽 위에 맞춥니다. Chromium·Electron 앱은 손쉬운 사용의 "향상된 사용자 인터페이스" 모드가 켜져 있으면 가끔 크기가 틀어지는데, winlego 는 옮기는 동안 그 모드를 끕니다.
창이 계속 왔다 갔다 함. winlego 는 몇 번 시도하면 포기하고 창을 풀어 줍니다. 자주 그러는 앱은 Ignored apps 에 넣으세요.
단축키가 안 됨. 다른 앱이 그 조합을 쓰고 있을 수 있습니다. winlego 는 시스템 핫키 서비스에 등록하는데 이미 쓰는 조합은 거부되고, 설정 › 일반에서 그 줄에 경고가 표시됩니다. 거기서 다른 조합을 고르세요.
로그. winlego 는 통합 로그에 씁니다.
/usr/bin/log show --last 5m --info --predicate 'subsystem == "io.github.esteban-eg-kim.winlego"'
(전체 경로로 쓰세요. zsh 에는 내장 log 명령이 있어서 조용히 아무것도 안 합니다.)