Rectangle의 «다음 디스플레이» 단축키가 전체 화면 앱에 막히는 이유

Rectangle의 «다음 디스플레이» 단축키가 전체 화면 앱에 막히는 이유

Rectangle app에서 지금도 유효한 가장 오래된 보고 중 하나(이슈 #51)에 문서화된 특정한 다중 모니터 예외 상황이 있다. 디스플레이 3대 이상을 사용하고 그중 중간에 있는 디스플레이 하나에서 네이티브 전체 화면 앱이 실행 중이라면 영향을 받는다. 다음 디스플레이가 막혀버려서, 전체 화면 앱을 넘어 그 뒤에 있는 디스플레이까지 창을 옮기지 못하는 것이다.

실제로 보고된 정확한 시나리오

수평으로 배치된 디스플레이 3대를 1, 2, 3이라고 하자. 디스플레이 2에는 macOS 네이티브 전체 화면으로 앱이 표시되어 있다. 디스플레이 1에는 전체 화면이 아닌 평범한 창이 있고, 목표는 디스플레이 2를 완전히 건너뛰어 디스플레이 3으로 그 창을 옮기는 것이다.

다음 디스플레이를 누르면 예상대로 창이 디스플레이 1에서 디스플레이 2로 이동한다. 하지만 디스플레이 2는 전체 화면 앱이 차지하고 있기 때문에, 창은 그곳에서 보이게 되는 대신 사실상 그 뒤에 숨겨진 채로 안착한다. 디스플레이 3까지 이어지길 기대하며 다음 디스플레이를 다시 눌러도 아무 일도 일어나지 않는다. 단축키는 남은 디스플레이로 여정을 계속하는 대신 사실상 그 자리에서 멈춰버린다.

이런 일이 일어나는 이유

네이티브 전체 화면 앱은 그 디스플레이 위의 평범한 창으로 존재하는 게 아니라 자신만의 스페이스를 차지한다. 이 구분에 대해서는 이 시리즈의 다른 글에서 더 자세히 다뤘다. Rectangle mac의 관점에서 «디스플레이 2″와 «현재 디스플레이 2에 표시된 전체 화면 앱의 스페이스»는 정확히 같은 대상이 아니며, 보고자 본인의 설명에 따르면 Rectangle app은 이를 자동으로 감지해서 다음 물리적 디스플레이까지 순환을 이어가지 않는다. 반면 원래 보고자의 비교에 따르면, 개발이 중단된 Spectacle 앱은 같은 시나리오에서 이를 해냈던 것으로 보인다.

메인테이너의 답변과 현재 버전에 대한 의미

이슈 자체의 논의에 따르면, 메인테이너는 이 아이디어를 거부하지 않았다. 추가하는 것 자체에는 반대하지 않지만 우선순위가 높지 않았다고 설명했으며, 대상 디스플레이에서 전체 화면 앱이 실행 중인지 감지해서 그럴 경우 다음 디스플레이로 건너뛰는 방식으로 기여자가 비교적 쉽게 구현할 수 있을 거라고 제안했다. 이 특정 이슈가 얼마나 오래됐는지, 그리고 당시에는 실제로 작업 중인 버그라기보다는 열린 개선 요청에 가까웠다는 점을 감안하면, 오늘 사용 중인 어떤 버전에서든 이 동작이 여전히 고쳐지지 않았다고 단정하기보다는 이슈의 현재 상태를 직접 확인하는 게 가장 안전하다. 프로젝트 트래커의 오래된 미해결 이슈는 그 이후로 아무것도 바뀌지 않았다는 영구적인 보장이 아니다.

오늘 이 문제를 만났을 때 우회하는 방법

  1. 먼저 전체 화면 디스플레이의 이웃으로 창을 수동으로 옮긴다. 다음 디스플레이가 자동으로 장애물을 건너뛰길 기대하는 대신, Mission Control이나 수동 드래그로 전체 화면 앱 자체의 위치를 바꾸거나, 일시적으로 전체 화면 모드를 해제해 디스플레이 2라는 장애물을 없애자.
  2. 정기적으로 창을 통과시켜야 하는 디스플레이에서는 네이티브 전체 화면에 대한 의존을 줄인다. 특정 디스플레이에 다음 디스플레이 단축키를 가로막는 전체 화면 앱이 계속 떠 있다면, 그 앱을 네이티브 전체 화면이 아니라 Rectangle app 자체의 최대화로 평범하게 최대화된 창 상태로 유지하는 것이 문제를 완전히 피하는 방법이다. Rectangle app의 다음 디스플레이 동작은 창이 아무리 크더라도 평범한 창에서는 정상적으로 작동하기 때문이다.
  3. 환경이 허락한다면 한 단계씩 순환하는 대신 바로 이동한다. 다음이나 이전으로만 한 단계씩 이동하는 게 아니라 번호로 특정 디스플레이로 창을 옮기는 비교적 최근의 Rectangle 기능은, 중간에 있는 디스플레이를 거치지 않고 목적지 디스플레이를 바로 지정하기 때문에 순차 순환 문제 자체를 완전히 피할 수 있다. 위의 우회책에 의존하기 전에 설치된 버전에 이 기능이 있는지 확인해 보자.

이것이 흔한 불만이 아니라 좁은 예외 상황인 이유

이 특정 상호작용은 세 가지 조건이 동시에 충족되어야 한다. 디스플레이가 3대 이상이어야 하고, 시작점과 목적지 사이에 물리적으로 위치한 디스플레이에 (단순히 최대화된 게 아니라) 전체 화면 앱이 있어야 하며, 번호를 지정한 직접 이동이 아니라 단계별 다음/이전 디스플레이 단축키에 의존하고 있어야 한다. 디스플레이 두 대짜리 다중 모니터 구성이나, «중간» 디스플레이에서 전체 화면 앱을 쓰지 않는 구성이라면 대부분 이 문제를 아예 겪지 않는다. 여기 실은 것은 이게 흔한 문제라서가 아니라, 자신의 구성이 마침 이 정확한 시나리오와 일치할 때 알아둘 가치가 있는 실제 문서화된 동작이기 때문이다.