화면을 정리할 때 ⌘M을 자주 누르는데, 지금 앱의 창만 내려가고 다시 꺼내려면 Dock에서 찾아 눌러야 해서 만들었습니다.
- ⌘M: 앱을 가리지 않고 맨 앞 창부터 하나씩 Dock으로 내립니다.
- ⇧⌘M: 마지막에 내린 창부터 되돌립니다.
- 단축키를 누르고 있으면 이어서 동작하고, 손을 떼면 멈춥니다.
- 두 단축키 모두 바꿀 수 있고, 같은 키를 쓰는 실행 중인 앱이 있으면 알려 줍니다. 특정 앱을 제외하면 그 앱에서는 원래 단축키가 그대로 동작합니다.
구현은 CGWindowListCopyWindowInfo로 맨 앞 창을 찾고 손쉬운 사용(Accessibility) API로 최소화합니다. 만들면서 걸린 점이 두 가지 있었습니다.
- 같은 앱의 창을 연달아 내리면, 최소화 애니메이션이 도는 동안 보낸 요청을 앱이 받지 않았습니다. 그래서 앞 창이 실제로 내려갔다는 알림을 받은 뒤 다음 창으로 넘어갑니다. 같은 앱 창은 0.6초쯤 간격으로 내려갑니다.
- 처음에는 키를 계속 누르고 있는지 CGEventSource.keyState로 확인했는데, 입력 모니터링 권한이 없으면 항상 false가 나와서 배포판에서는 길게 눌러도 창이 하나만 내려갔습니다. 지금은 Carbon 단축키의 놓음 이벤트를 씁니다.
한계: macOS 13 이상에서만 동작하고, 손쉬운 사용 권한이 필요합니다.
무료이고 MIT 라이선스로 공개했습니다. Apple 공증을 받았고 Apple 실리콘과 Intel 모두 지원합니다. 잘 안 되는 앱이나 단축키 충돌이 있으면 알려 주세요.

6 hours ago
3






English (US) ·