StackWM이 특정 앱과 호환이 되지 않는 이유 (및 해결 방법)
macOS 접근성 API의 제한을 이해하고 호환되지 않는 애플리케이션에 대한 완벽한 제어를 복원합니다.
완벽한 장면을 설정했습니다. 왼쪽에 Telegram, 오른쪽에 코드 편집기가 있고 모든 것이 완벽하게 정렬되어 있습니다. 그런 다음 다른 장면으로 전환하고 돌아옵니다 — Telegram이 해당 영역으로 돌아오지 않습니다. 무슨 일이 있었나요?
macOS 접근성 API 제한의 세계에 오신 것을 환영합니다. 이것은 StackWM의 버그가 아닙니다. 이러한 앱이 macOS와 통신하는 방식의 제한입니다.
근본 원인: 접근성 API
StackWM은 macOS 접근성 프레임워크에 의존하여 창을 관리합니다. 영역을 생성할 때 StackWM은 macOS에 "어떤 창이 어느 앱에 속합니까?"라고 묻고, macOS는 열려 있는 것을 알려줍니다.
문제는 무엇입니까? 모든 앱이 협력하는 것은 아닙니다.
특히 Telegram, Brave, Obsidian, Arc 등의 일부 애플리케이션은 macOS의 표준 접근성 API를 통해 창을 제대로 노출하지 않습니다. StackWM의 관점에서 이러한 앱은:
- 전혀 창을 보고하지 않음
- 불완전하거나 일반적인 정보로 창을 보고함
- 실제 앱 창을 보조 프로세스 뒤에 숨김
이는 장면을 전환할 때 StackWM이 이러한 창을 찾아 할당된 영역으로 되돌릴 수 없음을 의미합니다.
일부 앱이 이를 하는 이유는?
일반적으로 세 가지 이유가 있습니다:
1. 비표준 창 아키텍처
Telegram과 같은 앱은 macOS AppKit 기본 창 대신 사용자 정의 렌더링 프레임워크(종종 Electron 또는 Qt 기반)를 사용합니다. 이는 크로스 플랫폼 유연성을 제공하지만 macOS 창 관리 API와의 호환성을 깨뜨립니다.
2. 보안 및 샌드박싱 결정
일부 개발자는 보안 조치로 자신의 앱이 접근성 API를 통해 노출하는 것을 의도적으로 제한합니다. 이는 절충점입니다: 더 나은 격리 vs. 시스템 도구와의 더 나쁜 통합.
3. 레거시 코드 또는 아키텍처 부채
일부 앱은 최신 macOS 표준을 충족하도록 창 처리 코드를 업데이트하지 않았습니다. 일상적으로는 잘 작동하지만 외부 창 관리자와는 제대로 작동하지 않습니다.
일반적인 용의자
StackWM과 접근성 API 문제가 있는 것으로 알려진 앱:
| 앱 | 문제 | 심각도 |
|---|---|---|
| Telegram | 창이 접근성 API에 제대로 노출되지 않음 | 높음 |
| Brave Browser | 보조 창이 잘못 보고됨 | 중간 |
| Obsidian | 특정 작업 공간에서 창 감지 문제 | 중간 |
| Arc | Arc 특정 UI 요소에 액세스할 수 없음 | 높음 |
| cmux | 제한된 창 보고 기능을 가진 터미널 멀티플렉서 | 높음 |
| Google Antigravity | 독점 창 처리 | 높음 |
(앱 개발자가 코드를 업데이트하면서 이 목록이 증가하거나 감소합니다. 업데이트는 StackWM 블로그를 정기적으로 확인하세요.)
솔루션: 호환성 목록
좋은 소식은: StackWM에는 "호환성 목록"이라는 내장 해결책이 있습니다.
호환되지 않는 앱을 이 목록에 추가하면 StackWM은 폴백 전략으로 전환합니다:
- 접근성 API에 의존하는 대신 시각적 위치 추적과 프로세스 일치를 사용합니다
- 장면을 전환할 때 StackWM은 이러한 창이 어디에 배치되었는지 기억하고 복원하려고 합니다
- 완벽하지는 않지만(앱이 어느 정도 협력해야 함) 기능의 90%를 복원합니다
호환성 목록에 앱을 추가하는 방법
- StackWM Preferences 열기 → Settings 탭으로 이동
- "App Compatibility" 섹션 찾기
- 더하기 버튼을 클릭하여 앱 추가
- 설치된 애플리케이션 목록에서 앱 선택
- 완료. 앱이 이제 빨간색 확인 표시 ✓를 받고 StackWM이 특별히 처리합니다
목록에서 앱 옆에 호환성 아이콘이 나타나면 앱이 추가된 것을 알 수 있습니다.
빨간색 확인 표시의 의미
앱이 호환성 목록에 있으면:
- StackWM은 해당 앱에 대해 표준 접근성 API를 사용하려고 시도하지 않습니다
- 대신, 창 위치를 추적하고 영역을 기억합니다
- 장면을 전환할 때 가능하면 앱 창을 이전 영역으로 복원합니다
- StackWM이 창을 찾아 이동할 때 약간의 지연(몇 백 밀리초)이 표시될 수 있습니다
중요한 주의: 일부 앱(특히 샌드박스된 환경에서 실행되거나 비표준 창을 사용하는 앱)은 이 해결책을 사용해도 제대로 이동하지 않을 수 있습니다. 그런 경우 일반적으로 할 수 있는 것이 없습니다 — 앱 자체의 제한입니다.
호환성 목록이 도움이 되지 않을 경우 해결책
호환성 목록에 앱을 추가해도 문제가 해결되지 않으면:
1. 지속적인 단일 영역에서 앱 사용
영역 간에 이동하려는 대신 앱을 고정 영역에 유지하고 다른 곳에서 워크플로에 집중합니다.
2. Cmd+Tab으로 별도로 제어
앱 수준 전환의 경우 StackWM의 영역 복원에 의존하지 않고 macOS의 네이티브 Cmd+Tab을 사용하세요. 이는 호환 여부와 상관없이 모든 앱에서 작동합니다.
3. 수동 재정의 준비
앱이 자동으로 올바른 위치로 돌아오지 않으면 단순히 다시 끌어다 놓으세요. 해결책이지만 적어도 잘 동작하는 앱에 대한 영역 관리를 얻을 수 있습니다.
4. 앱 개발자에게 문의
앱이 워크플로에 중요한 경우 GitHub 이슈를 제출하거나 개발자에게 연락하여 접근성 API 지원을 개선하도록 요청하는 것을 고려하세요. 개발자가 더 많은 압력을 받을수록 더 많은 문제를 수정합니다.
우리가 하고 있는 일
StackWM 팀은 적극적으로 모니터링합니다:
- 어떤 앱이 가장 많은 호환성 문제를 가지고 있는지
- 앱 업데이트가 호환성을 개선하거나 손상하는지 여부
- 경계 경우에서 도움이 될 수 있는 해결책
또한 유지 관리하는 업데이트된 호환성 매트릭스는 StackWM의 각 릴리스로 업데이트되는 인기 앱의 알려진 상태를 표시합니다.
더 큰 그림
이 문제는 StackWM에만 해당되는 것이 아닙니다. macOS의 모든 창 관리자(yabai, Magnet, 심지어 Raycast까지)도 같은 앱과 같은 이유로 싸우고 있습니다.
이는 macOS가 창 정보를 노출하는 방식의 근본적인 제한입니다. Apple이 더 강력한 API를 제공하거나 앱 개발자가 접근성 API 지원을 자발적으로 개선할 때까지 이는 계속 과제로 남을 것입니다.
빠른 체크리스트
- ✅ 먼저 호환성 목록에 앱 추가 시도
- ✅ 여전히 작동하지 않으면 더 새로운 버전의 앱이 더 나은 API 지원을 가지고 있는지 확인
- ✅ 폴백으로 앱을 단일 영역에 유지하고 진행
- ✅ 중요한 경우 앱 개발자에게 문제를 제출하여 macOS API 지원 개선을 요청
최종 업데이트: 2026년 3월 3일