tinywm은 macOS에서 창을 겹치거나 크기를 계속 조정하지 않고, 화면 밖으로 이어지는 띠 형태로 정리하는 창 관리자다. 창을 열면 현재 사용 중인 디스플레이의 기존 창 옆에 배치되며, 다른 창의 크기는 바뀌지 않는다.
새 창은 현재 창 옆에 열리고, 띠를 키 하나나 트랙패드 스와이프로 움직이면 각 창이 있던 위치 그대로 나타난다. tinywm은 리눅스용 스크롤 창 관리자 niri에서 영감을 얻었다. 최신 버전 내려받기
주요 기능
창을 열어도 다른 창의 크기를 줄이지 않으며, 창은 스프링처럼 움직인다. 제작자는 120Hz 화면에서도 부드럽게 작동한다고 설명한다. 오른쪽 ⌘ 키를 누른 채 H J K L 또는 방향키를 사용해 창 사이를 이동할 수 있고, 일반적인 ⌘ 단축키도 계속 사용할 수 있다.
작업공간마다 창 띠를 따로 두고 위아래로 넘겨 전환할 수 있다. 오른쪽 ⌘ + Esc를 누르면 모든 창의 개요가 표시된다. 트랙패드에서는 세 손가락으로 띠를 드래그한다. 디스플레이마다 별도의 띠가 있으며, 키 하나로 창을 다른 모니터로 옮길 수 있다.
계산기를 항상 띄우거나 특정 앱을 무시하고, 알림이 잦은 앱이 포커스를 가져가지 못하게 하는 규칙을 설정할 수 있다. 앱을 지정한 디스플레이나 작업공간에서 열도록 할 수도 있다. 설정은 일반 텍스트 파일로 저장되며, 파일을 저장하면 다시 불러온다.
설치와 첫 실행
tinywm은 Apple silicon이 탑재된 Mac에서 macOS 14 Sonoma 이상을 요구한다. 설치하려면 최신 릴리스에서 tinywm.zip을 내려받아 압축을 푼 뒤, tinywm을 Applications 폴더로 옮기고 실행한다. 애플의 검사와 공증을 거쳐 일반 앱처럼 열 수 있다.
업데이트할 때는 tinywm을 종료하고 앱을 새 버전으로 교체한다. 권한과 설정은 유지된다. 직접 빌드하려면 Xcode 또는 Command Line Tools가 필요하다.
git clone https://github.com/bbodi/tinywm.git
cd tinywm
scripts/bundle-tinywm.sh --install
앱은 ~/Applications에 설치된다.
처음 실행하면 안내 창에서 필요한 권한 설정을 안내한다. 창 이동과 크기 조정에는 손쉬운 사용 권한이 필요하다. 화면 기록 권한은 창이 움직이는 동안 실시간 창 그림을 표시할 때만 선택적으로 사용한다.
안내 창은 트랙패드 제스처, Stage Manager, 화면 가장자리 타일 배치, 바탕화면을 클릭해 데스크톱을 표시하는 설정, 다른 창 관리자, 로그인 시 열기 등 사용을 방해할 수 있는 macOS 설정도 확인한다. 메뉴 막대 아이콘의 ‘Welcome…’에서 안내 창을 다시 열 수 있다.
키 조작과 드래그
오른쪽 ⌘ 키를 누른 채 다음 키를 사용한다.
- H J K L 또는 ← ↓ ↑ →: 창 사이를 이동한다.
- ⇧와 같은 키: 창 자체를 이동한다.
- U / I, ⌥↓ / ⌥↑ 또는 Page Down / Page Up: 아래쪽 또는 위쪽 작업공간으로 이동한다. ⇧를 함께 누르면 창도 따라간다.
- . / ,: 다음 또는 이전 디스플레이로 이동한다. ⇧를 함께 누르면 창도 따라간다.
- W A S D: 위쪽·왼쪽·아래쪽·오른쪽 디스플레이로 이동한다. ⇧를 함께 누르면 창도 따라간다.
- R: 창 너비를 ⅓, ½, ⅔로 순환한다.
- F / C: 창을 화면 너비로 만들거나 가운데에 둔다.
- = / −: 창을 넓히거나 좁힌다.
- [ / ]: 창을 이웃 창과 묶는다. ⇧]를 누르면 묶음에서 분리한다.
- T: 창을 띄우거나 타일 배치한다.
- V: 떠 있는 창에 차례로 포커스를 둔 다음 창 띠로 돌아간다.
- 1–9: 해당 열로 이동한다.
- Esc: 개요를 연다. 방향키나 Tab으로 창을 고르고 Return을 누르며, Esc를 누르면 닫는다.
- Q: 창을 닫는다.
마우스로 창을 끌어 옮길 수도 있다. 메타 키를 누른 채 창 안의 아무 곳이나 드래그하면 다른 창이 자리를 비우고, 창이 놓일 위치가 표시된다. 위치는 두 열 사이, 묶인 창의 위나 아래, 또는 다른 디스플레이일 수 있다. 마우스 버튼을 놓으면 그 위치에 배치되고, Esc를 누르면 취소한다. 떠 있는 창은 드래그한 위치로 단순히 이동한다.
오른쪽 ⌘ 대신 ⌃⌥를 사용하거나 키를 바꾸려면 설정 파일에서 변경할 수 있다.
설정
메뉴 막대 아이콘에서 ‘Edit Config…’를 선택하면 설정을 편집할 수 있다. 예시는 다음과 같다.
default-width = 0.5 # 새 창은 화면의 절반 너비로 열린다 bind focus-left = n # 원하는 키로 재지정 float = com.apple.calculator, System Settings ignore = com.apple.finder no-focus = Slack # 포커스를 가져가지 못하게 한다 send space = cmd+space # meta+Space로 실행기를 연다 run shift+return = open -na Ghostty focus-crosses-displays = on # 마지막 열 다음으로 가면 다음 디스플레이로 이동한다 open-on = Mail -> workspace 2 # 앱을 지정한 디스플레이 또는 작업공간에서 연다
meta = control-option은 ⌃⌥를 메타 키로 지정한다. gap은 창 사이 간격, width-presets는 R 키로 순환할 너비, swipe-fingers = 4는 스와이프에 사용할 손가락 수를 설정한다. unbind로 기본 키를 해제할 수도 있다. tinywm이 만드는 설정 파일에는 각 옵션의 짧은 설명이 들어 있다.
알아둘 점과 제한
tinywm은 창 이동에 손쉬운 사용 권한을, 실시간 창 그림에 화면 기록 권한을 요청한다. 제작자는 어떤 데이터도 Mac 밖으로 나가지 않는다고 설명한다. 기본 설정에서는 창을 움직일 때 실시간 그림을 표시하며, 이를 원하지 않으면 메뉴 막대 아이콘에서 ‘Show Live Window Pictures (Screen Recording)’를 끄면 된다. 그러면 앱 아이콘과 창 제목이 표시된 카드로 창을 나타낸다.
로그인 시 열기는 메뉴 막대 아이콘과 시작 안내 창에서 설정할 수 있지만, 설치된 앱에서만 작동하며 swift run으로 실행할 때는 작동하지 않는다. tinywm을 종료하면 모든 창은 원래 위치로 돌아간다.
tinywm은 창 배치를 기억하고 재시작 후 복원한다. 단, 해당 앱들이 창을 계속 열어 둔 경우에 한한다. 재부팅 뒤에는 앱과 창 제목을 기준으로 다시 열린 창을 가능한 범위에서 일치시킨다. 이 기능은 설정의 restore-layout = off로 끌 수 있다. macOS는 개별 창을 숨길 수 없으므로 다른 작업공간의 창은 화면 바로 바깥에서 대기한다.
떠 있는 창은 meta+T, float 규칙 또는 고정 크기 창으로 만들 수 있으며, 개요에도 표시된다. Meta+V를 누르면 떠 있는 창에 하나씩 포커스를 둔 뒤 창 띠로 돌아간다.
전체 화면 앱(초록색 버튼으로 전환)은 별도의 macOS Space에서 실행되므로 tinywm의 창 띠에 포함되지 않는다. 크기 변경을 거부하는 고정 크기 대화상자와 일부 앱은 tinywm이 떠 있는 창으로 처리한다. Slack처럼 좁은 너비를 거부하는 앱에는 더 넓은 열을 배정한다. tinywm은 앱마다 허용되는 최소 너비를 학습해 기억하며, 창을 더 좁게 드래그하면 그 너비를 다시 낮출 수 있다.
암호 입력란에 입력할 때는 macOS가 다른 앱의 키보드 단축키를 막기 때문에 메타 키가 일시 중지된다. 이때 tinywm을 사용해야 한다면 ⌃⌥를 사용한다. 트랙패드 스와이프는 같은 손가락 수를 사용하는 macOS 제스처와 충돌할 수 있으며, 시작 안내 창과 메뉴 막대 아이콘이 이를 알리고 트랙패드 설정으로 연결한다.
떠 있는 창은 항상 맨 위에 유지되지 않는다. macOS는 활성 앱의 창을 다른 앱보다 위에 두며, 다른 앱의 창을 앞으로 가져오면 그 앱이 키보드 입력을 받을 수 있다. Meta+V로 떠 있는 창에 포커스를 주거나 개요에서 모든 창을 확인할 수 있다. tinywm은 macOS Spaces를 별도로 추적하지 않으므로 자체 작업공간을 사용하고, 디스플레이마다 macOS Space 하나만 사용하는 것이 안내돼 있다.
tinywm은 Apple silicon용으로 제작됐고 macOS 14 이상에서 테스트됐다. Intel Mac에서는 테스트되지 않았다.
개발과 라이선스
구조와 테스트, 앱 빌드 방법은 개발 문서에서 확인할 수 있다. tinywm은 GNU General Public License v3.0에 따른 자유 소프트웨어다. 사용·수정·공유할 수 있으며, 수정한 버전을 배포할 때는 같은 라이선스로 소스 코드도 제공해야 한다. 이 조건이 없는 라이선스는 bodidev@gmail.com으로 문의할 수 있다. 저작권 표기는 Copyright (C) 2026 BB다. 라이선스 전문
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요