https://github.com/eondcom/mac-fan-control
Intel MacBook 팬 소음·전원 관리 GUI (macOS Sequoia)
https://github.com/eondcom/mac-fan-control
Last synced: 7 days ago
JSON representation
Intel MacBook 팬 소음·전원 관리 GUI (macOS Sequoia)
- Host: GitHub
- URL: https://github.com/eondcom/mac-fan-control
- Owner: eondcom
- Created: 2026-06-03T23:50:10.000Z (17 days ago)
- Default Branch: main
- Last Pushed: 2026-06-04T03:07:53.000Z (17 days ago)
- Last Synced: 2026-06-04T03:11:54.771Z (17 days ago)
- Language: Python
- Size: 239 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# MacFanControl
Intel MacBook용 팬 소음·전원 관리 SwiftUI 앱. macOS 13(Ventura)+ 지원.



> v2.0부터 Swift+SwiftUI로 재작성. 이전 Python+tkinter 버전은 [`v1.5.2-python`](../../tree/v1.5.2-python) 태그.
## 기능
| 기능 | 설명 |
|------|------|
| **메뉴바 상주** | CPU 온도·팬 RPM 실시간 표시 |
| **전원 모드** | 절전 / 기본 전환 (`pmset lowpowermode`) |
| **팬 제어** | 1,200–6,000 rpm 슬라이더 + 저속/일반/고성능 프리셋 |
| **자동 모드 복구** | macOS 기본 팬 제어로 즉시 복귀 |
| **배터리 정보** | 충전 횟수, 건강도, 잔여 시간, 상태 |
| **SMC 직접 접근** | IOKit으로 직접 통신 — 외부 바이너리 의존성 없음 |
## 설치 (배포판)
[Releases](../../releases) 페이지에서 DMG 다운로드 후 설치.
> **처음 실행 시**: 우클릭 → **열기** (Apple 미서명 앱 Gatekeeper 우회)
## 소스에서 빌드
### 요구사항
- macOS 13.0 (Ventura) 이상
- Xcode 15 이상
- [XcodeGen](https://github.com/yonaskolb/XcodeGen) — `brew install xcodegen`
### 빌드
```bash
git clone https://github.com/eondcom/mac-fan-control.git
cd mac-fan-control
xcodegen generate
open MacFanControl.xcodeproj
```
Xcode에서 ⌘R로 실행.
### 코드 서명 (배포용)
`project.yml`의 `DEVELOPMENT_TEAM` 필드에 Apple Developer Team ID 입력 후 `xcodegen generate`.
## 디렉터리 구조
```
App/
├── MacFanControlApp.swift # @main, MenuBarExtra
├── AppState.swift # 중앙 ObservableObject
├── Views/ # SwiftUI 화면
│ ├── MenuBarView.swift # 메뉴바 팝오버 패널
│ ├── ContentView.swift # 대시보드 TabView
│ ├── DashboardView.swift
│ ├── FanControlView.swift
│ ├── BatteryView.swift
│ └── SettingsView.swift
├── SMC/ # IOKit + SMC key 읽기/쓰기
│ ├── SMC.swift
│ └── SMCKeys.swift
├── System/ # 시스템 정보 래퍼
│ ├── Thermal.swift
│ ├── PowerMode.swift
│ └── Battery.swift
├── Updater/
│ └── ReleaseChecker.swift # GitHub Releases API
└── Resources/
├── Info.plist
└── Assets.xcassets/
```
## SMC 접근 안내
이 앱은 [SMCKit](https://github.com/beltex/SMCKit) 패턴을 참고해 IOKit으로 SMC에 직접 접근합니다.
외부 `smc` 바이너리(`smcFanControl` 등) 설치가 **불필요**합니다.
팬 제어 동작:
- 읽기: `F0Ac`(현재 RPM), `F0Mn`/`F0Mx`(최소/최대), `F0Md`(0=자동, 1=수동)
- 쓰기: `F0Md = 1` + `F0Tg = 목표 RPM` (FLT 형식 우선, 실패 시 FPE2)
- 자동 복귀: `F0Md = 0`
## 라이선스
MIT.