Simple Fan Daemon for T2 Macs, rewritten from the original Python version.
cargo build --release
- Copy the
target/release/t2fanrdexecutable to wherever your distro wants executables to be run by root. - Setup the executable to be run automatically at startup, like via a systemd service.
Add this repo to your flake inputs, and the module <name-of-input>.nixosModule.t2fanrd to your imports.
Initial configuration will be done automatically.
For manual config, the config file can be found at /etc/t2fand.conf.
There's four options for each fan.
| Key | Value |
|---|---|
| low_temp | Temperature that will trigger higher fan speed |
| high_temp | Temperature that will trigger max fan speed |
| speed_curve | Three options present. Will be explained in table below. |
| always_full_speed | if set "true", the fan will be at max speed no matter what. |
For speed_curve, there's three options.
| Key | Value |
|---|---|
| linear | Fan speed will be scaled linearly. |
| exponential | Fan speed will be scaled exponentially. |
| logarithmic | Fan speed will be scaled logarithmically. |
Here's an image to better explain this. (Red: linear, blue: exponential, green: logarithmic)

Find out how many fans you have (using lm_sensors for example, as in: $ nix-shell -p lm_sensors --run "sensors | grep fan").
Configure each fan with services.t2fanrd.config.<name-of-fan> using the options from the Standard configuration above. See the example declared with the option in the flake.
Start the systemd service with services.t2fanrd.enable = true;.