{"id":50840568,"url":"https://github.com/eondcom/mac-fan-control","last_synced_at":"2026-06-14T06:32:20.140Z","repository":{"id":362389412,"uuid":"1258800691","full_name":"eondcom/mac-fan-control","owner":"eondcom","description":"Intel MacBook 팬 소음·전원 관리 GUI (macOS Sequoia)","archived":false,"fork":false,"pushed_at":"2026-06-04T03:07:53.000Z","size":245,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-04T03:11:54.771Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eondcom.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-03T23:50:10.000Z","updated_at":"2026-06-04T03:07:57.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/eondcom/mac-fan-control","commit_stats":null,"previous_names":["eondcom/mac-fan-control"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/eondcom/mac-fan-control","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eondcom%2Fmac-fan-control","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eondcom%2Fmac-fan-control/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eondcom%2Fmac-fan-control/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eondcom%2Fmac-fan-control/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eondcom","download_url":"https://codeload.github.com/eondcom/mac-fan-control/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eondcom%2Fmac-fan-control/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34312071,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-14T02:00:07.365Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-14T06:32:19.545Z","updated_at":"2026-06-14T06:32:20.135Z","avatar_url":"https://github.com/eondcom.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MacFanControl\n\nIntel MacBook용 팬 소음·전원 관리 SwiftUI 앱. macOS 13(Ventura)+ 지원.\n\n![Swift](https://img.shields.io/badge/Swift-5.9-orange)\n![Platform](https://img.shields.io/badge/platform-macOS%2013%2B-lightgrey)\n![License](https://img.shields.io/badge/license-MIT-green)\n\n\u003e v2.0부터 Swift+SwiftUI로 재작성. 이전 Python+tkinter 버전은 [`v1.5.2-python`](../../tree/v1.5.2-python) 태그.\n\n## 기능\n\n| 기능 | 설명 |\n|------|------|\n| **메뉴바 상주** | CPU 온도·팬 RPM 실시간 표시 |\n| **전원 모드** | 절전 / 기본 전환 (`pmset lowpowermode`) |\n| **팬 제어** | 1,200–6,000 rpm 슬라이더 + 저속/일반/고성능 프리셋 |\n| **자동 모드 복구** | macOS 기본 팬 제어로 즉시 복귀 |\n| **배터리 정보** | 충전 횟수, 건강도, 잔여 시간, 상태 |\n| **SMC 직접 접근** | IOKit으로 직접 통신 — 외부 바이너리 의존성 없음 |\n\n## 설치 (배포판)\n\n[Releases](../../releases) 페이지에서 DMG 다운로드 후 설치.\n\n\u003e **처음 실행 시**: 우클릭 → **열기** (Apple 미서명 앱 Gatekeeper 우회)\n\n## 소스에서 빌드\n\n### 요구사항\n- macOS 13.0 (Ventura) 이상\n- Xcode 15 이상\n- [XcodeGen](https://github.com/yonaskolb/XcodeGen) — `brew install xcodegen`\n\n### 빌드\n\n```bash\ngit clone https://github.com/eondcom/mac-fan-control.git\ncd mac-fan-control\nxcodegen generate\nopen MacFanControl.xcodeproj\n```\n\nXcode에서 ⌘R로 실행.\n\n### 코드 서명 (배포용)\n`project.yml`의 `DEVELOPMENT_TEAM` 필드에 Apple Developer Team ID 입력 후 `xcodegen generate`.\n\n## 디렉터리 구조\n\n```\nApp/\n├── MacFanControlApp.swift   # @main, MenuBarExtra\n├── AppState.swift           # 중앙 ObservableObject\n├── Views/                   # SwiftUI 화면\n│   ├── MenuBarView.swift    # 메뉴바 팝오버 패널\n│   ├── ContentView.swift    # 대시보드 TabView\n│   ├── DashboardView.swift\n│   ├── FanControlView.swift\n│   ├── BatteryView.swift\n│   └── SettingsView.swift\n├── SMC/                     # IOKit + SMC key 읽기/쓰기\n│   ├── SMC.swift\n│   └── SMCKeys.swift\n├── System/                  # 시스템 정보 래퍼\n│   ├── Thermal.swift\n│   ├── PowerMode.swift\n│   └── Battery.swift\n├── Updater/\n│   └── ReleaseChecker.swift # GitHub Releases API\n└── Resources/\n    ├── Info.plist\n    └── Assets.xcassets/\n```\n\n## SMC 접근 안내\n\n이 앱은 [SMCKit](https://github.com/beltex/SMCKit) 패턴을 참고해 IOKit으로 SMC에 직접 접근합니다.\n외부 `smc` 바이너리(`smcFanControl` 등) 설치가 **불필요**합니다.\n\n팬 제어 동작:\n- 읽기: `F0Ac`(현재 RPM), `F0Mn`/`F0Mx`(최소/최대), `F0Md`(0=자동, 1=수동)\n- 쓰기: `F0Md = 1` + `F0Tg = 목표 RPM` (FLT 형식 우선, 실패 시 FPE2)\n- 자동 복귀: `F0Md = 0`\n\n## 라이선스\n\nMIT.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feondcom%2Fmac-fan-control","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feondcom%2Fmac-fan-control","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feondcom%2Fmac-fan-control/lists"}