Rectangle v0.97~v0.99: 최신 업데이트의 모든 변경 사항

v0.95와 v0.96에서 다룬 변경 사항에 이어, 여기서는 그 이후 세 번의 릴리스에서 실제로 반영된 내용을 기억에 의존한 요약이 아니라 프로젝트 자체의 릴리스 노트를 직접 기준으로 확인한다. 오래된 빌드를 쓰고 있다면, 이것이 놓치고 있는 내용이다.

v0.97

  • screensOrderedByX의 정렬 방식 조정. 이제 계산에 디스플레이의 수평 중점(midX)을 사용한다 — 이 시리즈의 다른 글에서 다룬 멀티 모니터 디스플레이 순서 로직을 다듬은 것으로, 단순하지 않은 모니터 배치에서 다음/이전 디스플레이 동작을 더 예측 가능하게 만드는 것을 목표로 한다.
  • Smaller/Larger 명령의 스냅 해제 복원을 비활성화하는 기본 설정 토글. 스냅된 창에서 Make Smaller나 Make Larger를 사용했을 때 Restore와 유사한 동작이 자동으로 발동되는지 여부를 제어할 수 있게 되었다.
  • 설정 화면에 직접 추가된 «Skip gap on top screen edge» 체크박스. 화면 상단에서 여백 설정이 일관되지 않게 동작한다는 구체적인 불만에 대응한 것으로, 픽셀 정밀도 관련 불만을 다룬 전용 글에서 다룬 상단 가장자리 여백 문제와 관련은 있지만 반드시 같은 근본 원인은 아니다.
  • 절반 분할 비율이 모서리 액션과 스냅 영역에 일관되게 적용되도록 함. 단순한 절반 화면 액션과 모서리 또는 스냅 영역 액션이, 본래 동일해야 할 경계에 대해 이전에는 약간 다른 분할 지점을 계산할 수 있었던 문제를 수정했다.
  • 틈을 남기는 대신 clamped 창을 스냅 가장자리에 고정하고, clamped 창을 기본적으로 스냅 가장자리에 정렬하도록 함. 이는 최소 창 크기를 강제하는 Discord나 Spotify 같은 앱을 다룬 글에서 더 자세히 설명한 수정으로, 계산된 전체 크기에 도달할 수 없는 창이 가장자리에 딱 붙는 대신 원치 않는 틈을 남긴 채 떠 있던 문제에 대응한다.
  • «Cooperative Window Resizer» 기능이 clamped 창 관련 수정과 함께 기여되었다.
  • 창 ID를 사용할 수 없을 때도 창 액션을 실행하도록 함. Rectangle app이 일반적인 경로로 창의 ID를 확인할 수 없을 때 이전에는 액션이 아무 일도 하지 않았던 특정 내부 실패 상황에 대한 견고성 수정이다.
  • Snap Area 환경설정 탭이 느리게 로드되던 문제에 대한 성능 수정.

v0.98

좁고 단일 목적의 릴리스다 — 사이드 액션(왼쪽/오른쪽/위/아래 절반)의 분할 비율이 v0.97 이전처럼 정확히 1/2에서 시작하지 않게 되었던 회귀(regression)를 수정한다. 이는 테스트가 잘 이루어진 오픈소스 프로젝트조차 어떤 릴리스에서 반영한 수정이 다음 릴리스에서 후속 수정을 필요로 할 때가 있다는 유용한 교훈이다 — v0.97의 분할 비율 일관성 작업이 정확히 이 회귀를 유발했고, v0.98은 그것을 바로잡기 위해서만 존재한다.

v0.99

셋 중 가장 규모가 크며, 여러 명의 첫 기여자가 참여했다.

  • 최대화된 창을 다른 디스플레이로 이동할 때 창 크기를 유지하는 설정 토글. 이전에는 다음/이전 디스플레이를 통해 최대화된 창을 다른 디스플레이로 옮기면 아마도 그 디스플레이의 전체 크기로 리사이즈되었을 것이다. 이 설정은 그 대신 원래 크기를 유지할 수 있게 해준다.
  • 겹친 창을 위한 호버 배지와 전환기. v0.96의 오버랩 오프셋 기능을 직접 계승한 것으로, 그 기능을 다룬 전용 글에서 자세히 설명한다. 이는 이전 오버랩 오프셋 PR을 병합할 때 관리자가 언급했던 «호버 카운트 배지» 아이디어가 실제로 구현된 것이다.
  • 사용자 세션 전환 후 단축키 복원. Mac이 다른 사용자 세션으로 전환되었다가 돌아왔을 때 단축키가 유지되지 않던 문제에 대한 수정이다.
  • 단축키 녹화 중 Todo 단축키가 발동하는 것을 방지. 새로운 커스텀 단축키를 녹화하려는 시도가 실수로 Todo Mode 액션을 대신 발동시키던 의도치 않은 상호작용을 막는다.
  • ActiveEventMonitor.stop()에서 이벤트 탭 CFMachPort를 무효화. Rectangle mac이 시스템 이벤트를 어떻게 감지하는지와 관련된 더 낮은 수준의 기술적 수정으로, 사용자에게 보이는 동작 변화라기보다 특정 종류의 리소스 처리 문제를 방지하는 것을 목표로 한다.
  • 0을 지정해 최소 창 크기 제한을 비활성화할 수 있도록 허용. 개별 앱 자체가 강제하는 최소 크기(다른 글에서 다룬 Discord/Spotify식 제약으로, Rectangle app이 여전히 무시할 수 없는 것)와는 별개로, Rectangle app 자신의 최소 크기 적용에 대해 더 직접적인 제어권을 준다.
  • 설정을 가져올 때 누락된 단축키를 지우고, 현재 기본값을 복원할 때 단축키를 다시 적용. 저장된 설정을 가져오거나 기본값으로 재설정할 때, 새 설정에 없는 단축키를 처리하는 방식에 관한 두 가지 관련 수정으로, 이전 설정에서 남은 단축키 할당이 예기치 않게 남아 있지 않도록 한다.
  • «smaller»로 세로로 최대화된 창의 높이를 줄일 수 있도록 허용. Make Smaller 액션을 확장해, 특히 높이 방향으로 최대화된 창을 올바르게 처리하도록 했다.
  • 다른 디스플레이로 이동할 때 창의 상대적 위치를 보존. 크기가 다른 디스플레이 사이를 이동할 때 새 디스플레이의 기본 위치로 재설정되는 대신, 창의 비례적인 배치를 일관되게 유지한다.
  • JSONDefault 키에 대한 defaults write 커스터마이징을 존중. 터미널 기반 커스터마이징이 Rectangle app 자체의 JSON 기본값에 내장된 값에 의해 조용히 덮어써지지 않도록 보장하는 수정이다.
  • 높이가 4로 나누어떨어지지 않는 디스플레이에서 세로 방향 8분할 스냅 틈을 제거. 세로 방향 모니터에서 디스플레이 높이와 8분할 그리드 사이의 특정 상호작용에 대한 좁지만 구체적인 픽셀 정밀도 수정이다.
  • 오버랩 오프셋 스캔 범위를 제한하고 최대화된 창에도 오프셋을 적용. v0.96의 오버랩 오프셋 기능(자체 전용 글에서 다룬다)을 확장해 최대화된 창에도 적용되도록 했으며, 감지 스캔이 불필요하게 넓은 범위로 실행되는 것을 막는 제한이 추가되었다.
  • 작은 인터페이스 변경 사항: General 탭의 점 세 개(…) 버튼에 이제 «Extras»라는 라벨이 붙었다 — 이전에는 라벨이 없었다.

이 업데이트 속도가 말해주는 것

비교적 짧은 간격으로 이어진 세 번의 릴리스, 그중 여러 건에 처음 참여하는 외부 기여자가 있었다는 점은, 오래된 코드베이스에 안주하는 프로젝트가 아니라 활발히 관리되고 있는 프로젝트라는 합리적인 신호다. 특정 픽셀 정밀도나 멀티 모니터 문제를 트러블슈팅하다가 1년 이상 된, 해결되지 않은 것처럼 보이는 오래된 보고를 발견했다면, 그 동작이 영구적이라고 단정하기 전에 위에서 언급한 구체적인 수정 사항들 — 절반 분할 비율의 일관성, clamped 창 고정, 디스플레이 간 상대적 위치 보존 — 중 하나가 이미 그것을 해결했는지 확인해볼 가치가 있다.

자신의 버전을 이 목록과 비교해 확인하는 방법

Rectangle의 메뉴 막대 아이콘을 열고 About(Option을 누르지 않은 상태)에서 현재 버전 번호를 확인한 다음, GitHub Releases 페이지와 비교해 여기서 설명한 수정 사항 중 자신에게 빠진 것이 있는지, 그리고 이 글이 작성된 이후 무엇이 새로 반영되었는지 확인해보자.