Skip to content

feat: add a configurable repeated app-shortcut action #39

Description

@woosublee

User problem

이미 frontmost인 앱에 같은 shortcut을 반복해도 activate만 다시 호출되어 직전 작업으로 빠르게 돌아갈 수 없다. 사용자는 앱 전환 shortcut을 다시 눌렀을 때 현재 앱을 숨겨 직전 앱으로 돌아가길 기대할 수 있지만, 현재 Zap에는 이 반복 입력을 구분하거나 기존 동작을 보존한 채 opt-in할 설정이 없다.

Product value

같은 앱 shortcut을 다시 눌러 앱을 숨기고 직전 작업으로 빠르게 돌아간다. 기존 사용자는 기본 동작을 그대로 유지하고, 원하는 사용자만 Automatic Dock과 Manual shortcut에 공통된 예측 가능한 repeated-action 정책을 선택할 수 있다.

Scope

  • Settings에 When the target app is already frontmost preference를 추가하고 첫 버전의 선택지를 Activate onlyHide app으로 제한한다.
  • target app이 frontmost인지 판정한 뒤 선택된 정책을 Automatic Dock shortcut과 Manual shortcut의 공통 app-launch 경로에서 적용한다.
  • preference가 저장되지 않은 기존 설치와 새 설치 모두 Activate only로 해석해 현재 activation behavior를 보존한다.
  • Finder는 이 preference의 대상에서 제외하고 shortcut이 반복되어도 기존 Finder reopen behavior를 사용한다.

Acceptance criteria

  • When the target app is already frontmost 설정을 제공한다.
  • 첫 버전은 Activate onlyHide app을 지원한다.
  • 기존 설치 기본값은 Activate only다.
  • Automatic Dock과 Manual shortcut에 같은 정책을 적용한다.
  • Finder는 repeated-action 정책에서 제외하고 기존 reopen behavior를 항상 사용한다.
  • Activate only에서 non-Finder target이 이미 frontmost이면 현재와 같이 activate를 다시 수행하며 다른 앱이나 창을 숨기지 않는다.
  • Hide app에서 non-Finder target이 이미 frontmost일 때만 해당 앱을 숨기고, target이 frontmost가 아니면 일반 activation을 수행한다.
  • 저장값이 없거나 지원하지 않는 값이면 안전하게 Activate only로 fallback하며, preference 변경과 재실행 뒤에도 선택이 유지된다.
  • Automatic Dock과 Manual shortcut 각각에서 frontmost/non-frontmost 조합을 검증하고, Finder는 두 shortcut family 모두에서 선택값과 무관하게 숨겨지지 않으며 기존 reopen 결과를 유지한다.

Dependencies

None

External prerequisites

None

Non-goals

  • 같은 앱의 여러 window를 순환하는 Cycle Windows는 R-32의 범위다.
  • Finder를 숨기거나 Finder의 기존 reopen semantics를 repeated-action preference로 변경하지 않는다.
  • 첫 버전에서 app별 또는 shortcut별로 서로 다른 repeated-action policy를 제공하지 않는다.
  • app activation 실패에 대한 전체 error taxonomy나 shortcut registration architecture를 다시 설계하지 않는다.

Evidence

  • 현재 launcher는 저장된 app URL을 resolve한 뒤 NSWorkspace.openApplication으로 activate하며, target이 이미 frontmost인지 또는 반복 입력인지에 따른 분기가 없다: AppLauncher.swift lines 36–49.
  • rcmd의 공식 changelog는 repeated shortcut 동작을 제공하는 인접 제품의 공개 behavior evidence다: rcmd changelog.

Milestone exit-gate impact

  • 앱 shortcut 반복으로 현재 앱을 숨기거나 같은 앱의 원하는 창까지 이동할 수 있다. 이 Issue는 Hide app 절반을 제공하며 window cycling은 R-32가 담당한다.
  • 기존 사용자 동작은 opt-in 전까지 바뀌지 않는다.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:app-launchingDock, Finder, Manual 앱 실행과 전환area:settings-uiSettings와 사용자 설정 흐름enhancementNew feature or requestpriority:P1핵심 사용자 흐름의 정확성, 복구, 높은 가치 작업roadmap승인된 Zap 제품 roadmap 항목status:planned미래 milestone에 계획된 작업

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions