
Frost는 자주 쓰지 않는 메뉴 막대 아이콘을 숨겼다가 한 번의 클릭으로 다시 보여준다. macOS 26과 27에서 쓸 수 있는 오픈소스 앱이다.
Frost를 공개한 제작자는 메뉴 막대 아이콘을 정리하려는 맥 사용자를 위해 앱을 만들었다. 화면 위쪽에 아이콘이 많거나 노치 때문에 아이콘이 가려지는 경우, Frost Bar에서 숨긴 아이콘을 다시 열 수 있다.
Frost는 어떤 앱인가?
Frost는 메뉴 막대 아이콘을 표시하거나 숨기는 macOS용 앱이다. 아이콘을 서랍에 넣어 두었다가 필요할 때 꺼내는 방식이라고 생각하면 쉽다. 실제로는 아이콘을 메뉴 막대에서 숨기고, Frost Bar라는 유리 효과 패널에 모아 한 번의 클릭으로 메뉴를 연다.
아이콘은 어떻게 정리하나?
아이콘은 Visible, Hidden, Always Hidden 세 구역으로 나뉜다. 눈송이 버튼을 클릭하면 Hidden 아이콘을 표시하고, Option 키를 누른 채 클릭하면 Always Hidden 아이콘도 표시한다. 설정하면 일정 시간이 지난 뒤 다시 숨길 수 있다. macOS 27에서는 이 구역이 Layout에서 지정한 배치를 따른다.
Frost Bar는 아이콘을 격자 형태로 보여준다. 아이콘을 클릭하면 해당 메뉴가 열린다. macOS 26에서는 패널이 열려 있는 동안 이미지가 갱신되며, 마우스 오른쪽 클릭과 Control-click, Option-click도 지원한다. macOS 27에서는 기본 클릭으로 숨긴 아이콘을 눈송이 옆에 잠시 옮긴다. 메뉴를 닫고 포인터가 아이콘에서 벗어나면 아이콘을 원래 위치로 돌려놓는다.
Layout 편집기에서는 아이콘을 구역 사이로 드래그하거나 순서를 바꿀 수 있다. 아이콘을 놓으면 실제 메뉴 막대 아이콘도 이동한다. 화면 기록 권한을 선택적으로 허용하면 두 macOS 버전에서 아이콘의 실제 이미지를 표시할 수 있다.
macOS 26에서는 새 앱의 아이콘을 Hidden에 넣고, 앱을 다시 실행한 뒤 macOS가 아이콘을 다른 곳에 두면 Frost가 원래 구역으로 옮긴다. macOS 27에서는 Layout에서 지정한 구역을 기억한다. 표시 방식은 노치가 있는 디스플레이에서 Frost Bar를 쓰고 그 외에는 메뉴 막대를 쓰는 Automatic, In Menu Bar, Frost Bar 가운데 고를 수 있다. 여러 디스플레이와 로그인 시 자동 실행도 지원하며, 자동 업데이트 알림은 팝업 대신 작은 점으로 표시한다.
권한과 설치 방법은?
아이콘을 숨기고 표시하는 기능에는 권한이 필요 없다. Frost Bar와 Layout 편집기에는 손쉬운 사용 권한이 필요하다. 화면 기록 권한은 선택 사항이며, 실제 아이콘 이미지를 보여주는 데 쓰인다.
macOS 26 Tahoe 또는 macOS 27이 필요하며, Apple silicon과 Intel을 모두 지원한다. 두 버전은 Frost Bar와 설정 인터페이스를 공유하지만 macOS 27에는 아래에 적은 차이와 제약이 있다.
- 최신 릴리스에서
Frost-<version>.dmg를 내려받는다. - 디스크 이미지를 열고 Finder에서 Frost를 Applications 폴더로 드래그한다.
- Frost를 연다. 앱은 Developer ID로 서명되고 애플 공증을 받아 일반 앱처럼 실행된다. 처음 설정할 때 손쉬운 사용 권한과 선택 사항인 화면 기록 권한을 요청한다.
Finder에서 드래그해 설치해야 한다. 다른 방법으로 복사하면(예: 디스크 이미지에서 cp로 복사) 앱이 임시 읽기 전용 위치에서 실행되어 자체 업데이트를 할 수 없다.
0.1.x에서 업그레이드하면 macOS가 손쉬운 사용 및 화면 기록 권한을 다시 요청한다. 0.2.0이 Developer ID로 서명된 첫 릴리스이기 때문이다. 시스템 설정의 개인정보 보호 및 보안에서 스위치가 켜져 있는데도 Frost가 권한을 다시 요청한다면 기존 Frost 항목을 삭제하고 권한을 다시 부여한다. 이후 업데이트에서는 권한을 유지한다.
손쉬운 사용 권한은 아이콘을 식별하고 Layout에서 이동하며 Frost Bar에서 여는 데 쓰인다. macOS 26에서는 앱을 다시 실행한 뒤 아이콘을 원래 구역으로 되돌리는 데도 쓰인다. 권한이 없어도 숨기기와 표시 기능은 작동하지만, 숨긴 아이콘이 메뉴 막대 안에 펼쳐진다.
화면 기록 권한이 있으면 Frost Bar와 Layout에 실제 아이콘 이미지를 표시한다. macOS 26에서는 Frost Bar가 열려 있는 동안 이미지가 갱신되고, macOS 27에서는 패널을 열거나 편집하는 동안 갱신된다. 캡처할 수 없는 아이콘은 앱 아이콘으로 표시된다. 이 권한이 없어도 기능은 작동하며, 아이콘은 앱 아이콘이나 시스템 기호로 표시되고 구분을 돕는 짧은 레이블이 붙을 수 있다.
처음 실행할 때 권한 설정 화면이 열린다. 설정 → About에서 권한 상태를 확인할 수 있으며, Grant Access를 누르면 권한을 바로 요청한다. 시스템 권한 요청 창이 뜨지 않으면 시스템 설정으로 이동한다. 화면 기록 권한을 주지 않은 상태에서는 Frost Bar와 Layout 편집기에 닫을 수 있는 안내가 표시된다. 권한을 허용한 뒤에는 Frost를 다시 실행해야 한다. 권한을 부여한 위치에 Open System Settings 버튼과 함께 Relaunch 버튼이 나타나며, 다시 열 때 사용 중이던 창을 복원한다.
무엇이 제한되는지 확인할 것
Frost는 하루 한 번 Sparkle을 통해 업데이트를 확인한다. 업데이트는 사용자의 동의 없이 설치되지 않는다. 업데이트가 있으면 눈송이 아이콘에 점이 나타나고, 마우스 오른쪽 클릭 메뉴에 Update Available…가 표시된다. 설정 → About에서 수동으로 확인하거나 자동 확인을 끌 수 있으며, 마지막 확인 시각도 볼 수 있다. 업데이트는 EdDSA 서명으로 검증한다.
업데이트 확인은 Frost의 유일한 네트워크 접속이다. 저장소의 GitHub Releases에서 appcast.xml을 내려받고, 사용자가 동의하면 업데이트 파일도 받는다. 분석 데이터 전송과 계정은 없다. 메뉴 막대 아이콘 이미지는 표시용으로만 쓰며 ~/Library/Caches/dev.frost.Frost/items/에 캐시한다. 30일 동안 사용되지 않은 항목은 삭제되며, 이 폴더는 언제든 직접 지울 수 있다.
macOS 27에서는 Layout에서 설정한 구역을 기억하지만, 현재 macOS가 실제로 그리는 아이콘의 위치를 확인하지는 않는다. Frost Bar는 설정된 Hidden 항목을 표시하며 Option-click을 하면 Always Hidden 항목도 표시한다. 숨긴 항목의 개수는 표시하지 않는다. 아이콘을 잠시 이동할 때 메뉴 막대가 잠깐 드러난다. 이 버전은 기본 클릭만 전달하며 마우스 오른쪽 클릭, Control-click, Option-click 전달은 지원하지 않는다. 패널이 열린 동안 계속 이미지를 갱신하지 않고, 패널을 열거나 Layout을 편집할 때 갱신한다. 캡처할 수 없는 아이콘은 앱 아이콘으로 남는다. 앱을 다시 실행해도 설정한 구역으로 아이콘을 자동 이동하지 않는다. 숨기기와 아이콘 전달은 노치가 없는 디스플레이 하나에서 확인했으며, 이 방식에서 노치가 있는 기기와 여러 디스플레이는 아직 검증이 필요하다.
macOS 28 이상에서는 메뉴 막대를 건드리지 않고 지원하지 않는 버전이라는 안내를 표시한다. 디스플레이가 여러 대면 마지막으로 클릭한 메뉴 막대를 관리하고, 다른 디스플레이에는 macOS가 복제한 메뉴 막대를 보여준다.
macOS 26에서는 macOS가 노치 뒤쪽 아이콘을 그리지 않는다. Frost는 화면 기록 권한이 있을 때 짧은 백그라운드 캡처로 이미지를 얻는다. 사용자가 메뉴 막대를 사용하지 않는 동안 아이콘 하나를 눈송이 옆으로 옮기고, 정지 이미지가 된 메뉴 막대 아래에서 캡처한 다음 아이콘을 즉시 되돌린다. 그 전까지는 앱 아이콘으로 표시된다. 타이머나 온도처럼 이미지가 바뀌는 아이콘은 가끔 갱신된다. Layout 편집기에서 이런 아이콘을 옮길 때 메뉴 막대가 잠시 접힐 수도 있다.
전역 단축키, 마우스 오버나 스크롤을 이용한 작동, 메뉴 막대 스타일 변경, 아이콘 검색은 지원하지 않는다.
직접 빌드하려면 무엇이 필요한가?
소스에서 빌드하려면 Xcode 27(Swift 6.4), XcodeGen, OpenSSL 3이 필요하다. XcodeGen과 OpenSSL은 다음 명령으로 설치한다.
brew install xcodegen openssl
저장소에는 서명 인증서 생성, 빌드, 테스트, 설치, CI 빌드 명령이 제공된다.
./scripts/create-signing-cert.sh # once: a self-signed "Frost Local Signing" identity for Debug builds
make build # Debug build: build/DerivedData/Build/Products/Debug/Frost.app
make test-core # unit tests (Swift Testing)
make install # Release build (Developer ID if you have one), installed to /Applications
make ci-build # unsigned universal Release build, as run by CI
안정적인 서명 인증서를 쓰면 매번 다시 빌드할 때 macOS가 권한을 재요청하지 않는다. codesign에서 인증서를 신뢰하지 않는다고 나오면 키체인 접근에서 “Frost Local Signing”을 열고 Trust → Code Signing을 Always Trust로 설정한다.
Frost는 실제 메뉴 막대 아이콘을 이동하고 클릭하므로 GUI 테스트는 macOS 가상 머신에서 진행한다. 가상 머신 테스트 안내, 릴리스 안내, 기여자 안내를 참고할 수 있다. 버그는 이슈 등록 페이지에서 알릴 수 있다.
Frost의 아이콘을 화면 밖으로 밀어내는 방식은 오픈소스 프로젝트 Ice를 따른다. 업데이트에는 Sparkle을 사용하며, 라이선스는 MIT다. 원문은 macOS 27에서 노치가 있는 기기와 여러 디스플레이의 동작이 아직 검증되지 않았다고 밝히며, macOS 28 이상 지원도 제공하지 않는다.
부록: 원문 예시
](https://github.com/frostbar/frost/blob/main/docs/releasing.md); contributor notes are in [
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요