{"id":17700616,"url":"https://github.com/cdown/zcfan","last_synced_at":"2025-04-05T20:08:26.229Z","repository":{"id":48663849,"uuid":"472822144","full_name":"cdown/zcfan","owner":"cdown","description":"A zero-configuration fan daemon for ThinkPads.","archived":false,"fork":false,"pushed_at":"2025-03-19T23:04:28.000Z","size":60,"stargazers_count":115,"open_issues_count":2,"forks_count":10,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-29T19:07:11.977Z","etag":null,"topics":["c","c-lang","command-line","command-line-tool","fan","fan-control","linux","thermal","thinkpad","thinkpad-fan","thinkpad-fan-control"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cdown.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2022-03-22T15:11:05.000Z","updated_at":"2025-03-26T01:23:18.000Z","dependencies_parsed_at":"2024-01-26T02:29:42.948Z","dependency_job_id":"65b54d61-8117-4ee2-aab3-b408d9bdc0ee","html_url":"https://github.com/cdown/zcfan","commit_stats":{"total_commits":101,"total_committers":5,"mean_commits":20.2,"dds":0.04950495049504955,"last_synced_commit":"751f1f7a47fab1c9b1fdb50272d6be8df6a1b988"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdown%2Fzcfan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdown%2Fzcfan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdown%2Fzcfan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdown%2Fzcfan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cdown","download_url":"https://codeload.github.com/cdown/zcfan/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247393570,"owners_count":20931813,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["c","c-lang","command-line","command-line-tool","fan","fan-control","linux","thermal","thinkpad","thinkpad-fan","thinkpad-fan-control"],"created_at":"2024-10-24T17:42:39.781Z","updated_at":"2025-04-05T20:08:26.213Z","avatar_url":"https://github.com/cdown.png","language":"C","readme":"# zcfan | [![Tests](https://img.shields.io/github/actions/workflow/status/cdown/zcfan/ci.yml?branch=master)](https://github.com/cdown/zcfan/actions?query=branch%3Amaster)\n\nZero-configuration fan control daemon for ThinkPads.\n\n## Features\n\n- Extremely small (~250 lines), simple, and easy to understand code\n- Sensible out of the box, configuration is optional (see \"usage\" below)\n- Strong focus on stopping the fan as soon as safe to do so, without inducing\n  throttling\n- Automatic temperature- and time-based hysteresis: no bouncing between fan\n  levels\n- Watchdog support\n- Minimal resource usage\n- No dependencies\n\n## Usage\n\nzcfan has the following default fan states:\n\n| Config name | thinkpad_acpi fan level           | Default trip temperature (C) |\n|-------------|-----------------------------------|------------------------------|\n| max_temp    | full-speed (or 7 if unsupported)  | 90                           |\n| med_temp    | 4                                 | 80                           |\n| low_temp    | 1                                 | 70                           |\n\nIf no trip temperature is reached, the fan will be turned off.\n\nThe fan will also only be reduced once the temperature is now at least 10C\nbelow the trip temperature for the current fan state. This can be tuned with\nthe config parameter `temp_hysteresis`.\n\nTo override these defaults, you can place a file at `/etc/zcfan.conf` with\nupdated trip temperatures in degrees celsius and/or fan levels. As an example:\n\n    max_temp 85\n    med_temp 70\n    low_temp 55\n    temp_hysteresis 20\n\n    max_level full-speed\n    med_level 4\n    low_level 1\n\n### Hysteresis\n\nWe will only reduce the fan level again once:\n\n1. The temperature is now at least `temp_hysteresis` Celsius (default 10C)\n   below the trip point, and\n2. At least 3 seconds have elapsed since the initial trip.\n\nThis avoids unnecessary fluctuations in fan speed.\n\n## Comparison with thinkfan\n\nI wrote zcfan because I found thinkfan's configuration and code complexity too\nmuch for my tastes. Use whichever suits your needs.\n\n## Compilation\n\nRun `make`.\n\n## Installation\n\n1. Compile zcfan or install from the [AUR\n   package](https://aur.archlinux.org/packages/zcfan)\n2. Load your thinkpad_acpi module with `fan_control=1`\n    - At runtime: `rmmod thinkpad_acpi \u0026\u0026 modprobe thinkpad_acpi fan_control=1`\n    - By default: `echo options thinkpad_acpi fan_control=1 \u003e /etc/modprobe.d/99-fancontrol.conf`\n3. Run `zcfan` as root (or use the `zcfan` systemd service provided)\n\n## Disclaimer\n\nWhile the author uses this on their own machine, obviously there is no warranty\nwhatsoever.\n","funding_links":[],"categories":["Power Management and Thermal"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcdown%2Fzcfan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcdown%2Fzcfan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcdown%2Fzcfan/lists"}