Skip to content

ium-team/Awake

Repository files navigation

Awake

Awake는 Mac에서 오래 걸리는 작업이 끝날 때까지 시스템 잠자기를 막아주는 macOS 메뉴바 앱이다. 사용자는 현재 실행 중인 앱이나 윈도우를 선택하고 보호 세션을 시작한다. 선택한 대상이 종료되면 Awake가 자동으로 전원 유지 상태를 해제한다.

대표 시나리오는 터미널/tmux에서 Codex를 돌리거나, 빌드, 업로드, 다운로드, 렌더링처럼 사용자가 자리를 비운 뒤에도 끝까지 진행되어야 하는 작업이다.

중요한 제품 원칙: Awake는 macOS가 제공하는 전원 assertion을 사용해 일반 유휴 잠자기와 디스플레이 잠자기를 제어한다. 사용자가 lid-closed 모드를 켜면 보호 세션 동안 관리자 권한으로 macOS의 sleep disabled 설정을 켜고, 세션 종료 시 정상 sleep 설정으로 복구한다.

문서

개발 문서

핵심 범위

  • 메뉴바 앱으로 실행
  • 단축키 또는 메뉴바에서 보호 대상 선택 화면 열기
  • 현재 실행 중인 앱/윈도우 목록 표시
  • 사용자가 하나 이상의 대상을 선택
  • 선택 즉시 보호 세션 시작
  • 보호 세션 중 macOS 전원 assertion 유지
  • 선택한 대상이 모두 종료되면 자동 해제
  • 사용자가 수동으로 세션 종료 가능
  • 권한 부족 또는 환경 제약을 명확하게 표시
  • 덮개 닫힘 상태에서도 보호 세션을 유지하는 고급 모드
  • 고급 모드 종료 후 macOS sleep 설정 복구

현재 구현 상태

  • SwiftPM 기반 macOS 메뉴바 앱
  • 메뉴바 상태 아이콘
  • command+shift+a 전역 단축키
  • 실행 중 앱 목록과 감지 가능한 윈도우 수 표시
  • 다중 앱 선택
  • IOKit 기반 system idle sleep 방지
  • display sleep 방지 기본 활성화
  • closed-display 환경을 위한 best-effort network active assertion 선택 가능
  • 관리자 권한 기반 lid-closed sleep disabled 모드
  • lid-closed 모드 시작 시 화면보호기 실행
  • 메뉴바에서 macOS sleep 설정 수동 복구
  • lid-closed helper 진단, 설치/복구, 제거 액션
  • lid-closed 세션 시간/배터리 안전 종료 설정
  • 로그인 시 자동 실행 설정
  • 선택한 앱 프로세스가 모두 종료되면 자동 해제
  • 자동 종료 알림
  • .app 번들 생성 스크립트

개발 실행

개발 실행:

swift run Awake

앱 번들 생성:

chmod +x scripts/build-app.sh
scripts/build-app.sh
open build/Awake.app

릴리즈 패키지 생성:

scripts/package-release.sh 0.1.0

GitHub Releases용 고정 다운로드 URL:

https://github.com/ium-team/Awake/releases/latest/download/Awake.zip

기본 단축키:

  • 보호 대상 선택 창 열기: command+shift+a

전원 assertion 확인:

pmset -g assertions

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors