Devotd Github
새 소식개발 도구

s3onghyun/bulchimbeon — 안 보일 때 메뉴바 스프라이트 정지

macOS 메뉴바 앱 bulchimbeon이 화면 잠금·절전·가림 상태에서 스프라이트 애니메이션을 멈추는 성능 개선을 2026-11-06 커밋으로 반영했다.

저장소 정보s3onghyun/bulchimbeon ↗

macOS 메뉴바 앱 bulchimbeon이 화면 잠금·절전·가림 상태에서 스프라이트 애니메이션을 멈추는 성능 개선을 2026-11-06 커밋으로 반영했다.

GitHub 설명: 🪖 불침번 — Your Mac's night-watch soldier. Keeps your Mac awake only while AI agents work. No hooks, no daemon, macOS 13+.

스타
★ 27
포크
5
언어
Swift
라이선스
MIT
최신 릴리스
v0.7.0
원문 보기 ↗GitHub에서 보기 ↗

s3onghyun/bulchimbeon은 AI 에이전트가 일하는 동안에만 Mac이 잠기지 않게 지키는 macOS 메뉴바 앱이다. 2026-11-06 커밋 f58eedd(PR #69)는 메뉴바 스프라이트 애니메이션이 보이지 않을 때는 아예 멈추도록 바꿨다. 화면 잠금, 디스플레이 절전, status item 창이 완전히 가려진 상태에서 프레임 예약이 초당 2회에서 0회로 내려가고 저전력 모드에서는 초당 0.67프레임으로 낮아진다.

구현은 주기적으로 상태를 물어보지 않고 시스템 알림만 듣는다. NSWorkspace의 스크린 절전·기동 알림, 분산 알림 센터의 com.apple.screenIsLocked·com.apple.screenIsUnlocked, 그리고 NSWindow의 가림 상태 변경 알림으로 status item 창의 가시성을 계산해 상태를 바꾼다. 타이머에는 tolerance가 있고 프레임이 하나뿐인 자세는 아예 타이머를 예약하지 않는다. 판단 로직은 새로 추가된 Sources/BulchimbeonCore/MenuBarAnimationPolicy.swift에 들어갔고 테스트도 함께 늘었다. 변경은 코드와 문서를 합쳐 8개 파일, 189줄 추가와 12줄 삭제다.

다만 macOS는 하나의 NSStatusItem을 화면마다 복제해 그리며, AppKit은 복제본별 status item이나 활성 화면 정보를 알려주지 않는다. 표준 메뉴바 항목을 버리지 않으면 화면마다 다르게 움직일 수 없고, 그래서 보이는 애니메이션은 모든 활성 화면에서 동일하다. 측정값도 신중히 읽어야 한다. 2026-11-06 M5 Pro, AC 전원, 내장 패널과 LG 4K 두 대 조건에서 top 2초 샘플 다섯 번(순찰 모드 켬)을 재서 변경 전 CPU 2.04%·초당 context switch 167회, 변경 후 CPU 1.58%·186회였다. 이 macOS의 top에는 프로세스별 wakeup 수가 없어 context switch를 대리 지표로 썼고, README는 보이는 애니메이션의 속도 향상으로 주장하지 않는다. 이 변경은 CHANGELOG의 다음 버전 항목에만 남아 있고, 그 아래 확정된 릴리스는 0.12.0 — 2026-11-02다.