Skip to content

Commit f365aa9

Browse files
MacFansControl v1.0.0 — translations, issue tracking, and releases
0 parents  commit f365aa9

15 files changed

Lines changed: 1692 additions & 0 deletions
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
---
2+
name: Bug Report
3+
about: Report a bug in MacFansControl
4+
title: "[Bug] "
5+
labels: bug
6+
---
7+
8+
**MacFansControl version:**
9+
10+
**macOS version:**
11+
12+
**Chip (e.g., M2 Pro, M4 Max):**
13+
14+
**Describe the bug:**
15+
16+
**Steps to reproduce:**
17+
1.
18+
2.
19+
3.
20+
21+
**Expected behavior:**
22+
23+
**Screenshots (if applicable):**
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
name: Feature Request
3+
about: Suggest a feature for MacFansControl
4+
title: "[Feature] "
5+
labels: enhancement
6+
---
7+
8+
**Describe the feature:**
9+
10+
**Why would this be useful?**
11+
12+
**Any examples from other apps?**
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
name: Translation Issue
3+
about: Report a translation error or suggest improvement
4+
title: "[Translation] "
5+
labels: translation
6+
---
7+
8+
**Language:**
9+
10+
**String ID (from XML):**
11+
12+
**Current translation:**
13+
14+
**Suggested translation:**
15+
16+
**Context (where does this string appear in the app?):**

README.md

Lines changed: 185 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,185 @@
1+
<p align="center">
2+
<img src="images/banner.png" alt="MacFansControl" width="100%">
3+
</p>
4+
5+
<p align="center">
6+
<strong>Native macOS fan control for Apple Silicon and Intel</strong><br>
7+
Monitor every temperature sensor. Set precise fan speeds. Reduce noise during light work, maximize cooling under heavy loads.
8+
</p>
9+
10+
<p align="center">
11+
<a href="https://github.com/beyondthecode-bc/MacFansControl/releases/latest"><img src="https://img.shields.io/github/v/release/beyondthecode-bc/MacFansControl?style=flat-square&label=Download&color=blue" alt="Latest Release"></a>
12+
<img src="https://img.shields.io/badge/platform-macOS%2014%2B-lightgrey?style=flat-square" alt="Platform">
13+
<img src="https://img.shields.io/badge/chip-Apple%20Silicon%20%2B%20Intel-orange?style=flat-square" alt="Apple Silicon + Intel">
14+
<img src="https://img.shields.io/badge/languages-8-green?style=flat-square" alt="Languages">
15+
<a href="https://github.com/beyondthecode-bc/MacFansControl/stargazers"><img src="https://img.shields.io/github/stars/beyondthecode-bc/MacFansControl?style=flat-square" alt="Stars"></a>
16+
</p>
17+
18+
<p align="center">
19+
<a href="https://github.com/sponsors/beyondthecode-bc"><img src="https://img.shields.io/badge/Sponsor-%E2%9D%A4-pink?style=flat-square&logo=github" alt="GitHub Sponsors"></a>
20+
</p>
21+
22+
<p align="center">
23+
Built with Swift and SwiftUI. No Electron, no web views, no bloat.
24+
</p>
25+
26+
---
27+
28+
## Download
29+
30+
Download the latest version from [**Releases**](https://github.com/beyondthecode-bc/MacFansControl/releases/latest). Unzip, move `MacFansControl.app` to Applications, and launch.
31+
32+
The app includes built-in auto-updates via [Sparkle](https://sparkle-project.org) — you'll be notified when new versions are available.
33+
34+
## Features
35+
36+
**Temperature Monitoring**
37+
- Full sensor suite: CPU cores, GPU, SSD, battery, power regulators, ambient
38+
- Real-time readings in the menubar with customizable display format
39+
- Pin favorite sensors or category averages to the menubar
40+
41+
**Fan Control**
42+
- Set exact RPM for any fan via slider
43+
- Link fans to temperature sensors with custom curves (min/max temp-to-RPM mapping)
44+
- Visual multi-point fan curve editor
45+
- One-click return to automatic (system-controlled) mode
46+
47+
**Safety**
48+
- Watchdog process returns fans to safe speeds if the app crashes or is force-quit
49+
- Sleep/wake restoration re-applies your settings automatically
50+
- Fans always return to automatic on clean quit
51+
52+
**Presets**
53+
- Save and switch between named fan configurations
54+
- Set a default preset that auto-applies on launch
55+
56+
**Preferences**
57+
- Tabbed settings window: General, Sensors, Fans, Presets, Menu Bar, About, Disclaimer
58+
- Drag-reorder favorites, hide sensors, copy Markdown snapshots
59+
- Favorite category averages (CPU avg, GPU avg) for cleaner monitoring
60+
- Launch at login, dock icon toggle, temperature unit (C/F)
61+
- Per-app language override
62+
63+
**Localization**
64+
- 8 languages: English, French, German, Spanish, Japanese, Korean, Portuguese (Brazilian), Chinese (Simplified)
65+
- Community translations welcome via pull requests
66+
67+
## Supported Chips
68+
69+
| Generation | Variants |
70+
|---|---|
71+
| **M1** | M1, M1 Pro, M1 Max, M1 Ultra |
72+
| **M2** | M2, M2 Pro, M2 Max, M2 Ultra |
73+
| **M3** | M3, M3 Pro, M3 Max, M3 Ultra |
74+
| **M4** | M4, M4 Pro, M4 Max, M4 Ultra |
75+
| **M5** | M5, M5 Pro, M5 Max, M5 Ultra |
76+
| **Intel** | Coffee Lake, Whiskey Lake, Ice Lake (Mac mini, iMac, and generic Intel Macs) |
77+
78+
## Requirements
79+
80+
| | Requirement |
81+
|---|---|
82+
| **OS** | macOS 14.0 (Sonoma) or later |
83+
| **Chip** | Any Apple Silicon or supported Intel Mac |
84+
85+
## Getting Started
86+
87+
### 1. Install the app
88+
89+
Download and move `MacFansControl.app` to your Applications folder.
90+
91+
### 2. Install the Background Helper
92+
93+
On first launch, open **Preferences > General** and click **Install Helper**.
94+
95+
The background helper allows MacFansControl to change fan speeds without asking for your password every time. Since the app is not yet signed with an Apple Developer certificate (coming soon), macOS will prompt for your administrator password during installation. This is a one-time setup — once installed, fan control works silently in the background.
96+
97+
> **Why is this needed?** Changing fan speeds requires elevated (root) privileges. The helper runs as a small background service that handles these privileged operations securely via XPC, so the main app never needs root access itself.
98+
99+
### 3. Use the menubar
100+
101+
MacFansControl lives in your menubar. Click the temperature readout to see sensors, fans, presets, and quick access to preferences.
102+
103+
## Translations
104+
105+
This repository hosts the translation files for MacFansControl. You can help translate the app into your language or improve existing translations.
106+
107+
### How to contribute
108+
109+
1. Fork this repository
110+
2. Edit an existing file in the [`languages/`](languages/) folder, or create a new one by copying `English.xml`
111+
3. Translate the string values (the text between `<string>` tags) — **do not** change the `id` attributes
112+
4. Keep any `%1`, `%2`, `%@`, `%d` placeholders in place — the app needs them
113+
5. Submit a pull request
114+
115+
### Current languages
116+
117+
| Language | File | Status |
118+
|---|---|---|
119+
| English | [`English.xml`](languages/English.xml) | Complete |
120+
| French | [`French.xml`](languages/French.xml) | Complete |
121+
| German | [`German.xml`](languages/German.xml) | Complete |
122+
| Spanish | [`Spanish.xml`](languages/Spanish.xml) | Complete |
123+
| Japanese | [`Japanese.xml`](languages/Japanese.xml) | Complete |
124+
| Korean | [`Korean.xml`](languages/Korean.xml) | Complete |
125+
| Portuguese (BR) | [`Portuguese_Brazilian.xml`](languages/Portuguese_Brazilian.xml) | Complete |
126+
| Chinese (Simplified) | [`Chinese_Simplified.xml`](languages/Chinese_Simplified.xml) | Complete |
127+
128+
Want to add a new language? Copy `English.xml`, rename it to your language name, translate the values, and submit a PR.
129+
130+
## Bug Reports & Feature Requests
131+
132+
Please use [Issues](../../issues) to report bugs or request features.
133+
134+
## Support the Project
135+
136+
If MacFansControl saves you from fan noise or thermal throttling, consider supporting development:
137+
138+
<p align="center">
139+
<a href="https://github.com/sponsors/beyondthecode-bc">
140+
<img src="https://img.shields.io/badge/Sponsor_on_GitHub-%E2%9D%A4-pink?style=for-the-badge&logo=github" alt="GitHub Sponsors" height="40">
141+
</a>
142+
&nbsp;&nbsp;&nbsp;
143+
<a href="https://www.buymeacoffee.com/BEYONDTHECODE">
144+
<img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" height="50">
145+
</a>
146+
</p>
147+
148+
---
149+
150+
## Troubleshooting
151+
152+
### "MacFansControl" Not Opened — Gatekeeper warning
153+
154+
MacFansControl is not yet notarized with Apple (Apple Developer certificate coming soon). On first launch you may see this dialog:
155+
156+
<p align="center">
157+
<img src="images/gatekeeper-not-opened.png" alt="MacFansControl Not Opened dialog" width="220">
158+
</p>
159+
160+
**To fix this:**
161+
162+
1. Click **Done** to dismiss the dialog
163+
2. Open **System Settings > Privacy & Security**
164+
3. Scroll down — you'll see a message that MacFansControl was blocked
165+
4. Click **Open Anyway**
166+
167+
<p align="center">
168+
<img src="images/gatekeeper-blocked.png" alt="Open Anyway in Privacy and Security" width="420">
169+
</p>
170+
171+
This only needs to be done once. After that, the app will open normally.
172+
173+
### Password prompt every time I change fan speed
174+
175+
You need to install the background helper. Go to **Preferences > General** and click **Install Helper**. The helper runs as a privileged background service so you won't be asked for your password on every fan speed change.
176+
177+
Since the app doesn't have an Apple Developer certificate yet, macOS will ask for your administrator password once during helper installation. This is expected and safe — the helper is a small daemon that only handles fan speed writes via the SMC interface.
178+
179+
### The app doesn't appear after launching
180+
181+
MacFansControl is a **menubar app** — it doesn't open a window on launch. Look for the temperature readout in your menubar (top-right area of the screen). If you don't see it, it may be hidden behind the notch on newer MacBooks — try closing other menubar apps to make room.
182+
183+
### Fans show 0 RPM
184+
185+
This usually means the background helper isn't installed or isn't running. Go to **Preferences > General** — if the helper status shows "not installed", click **Install Helper**. If it shows installed but fans still read 0 RPM, try clicking **Reinstall Helper**.

images/banner.png

547 KB
Loading

images/gatekeeper-blocked.png

18.3 KB
Loading

images/gatekeeper-not-opened.png

55.5 KB
Loading

0 commit comments

Comments
 (0)