{"id":47015387,"url":"https://github.com/alexzk1/msifancontrol","last_synced_at":"2026-03-11T21:47:15.848Z","repository":{"id":214096420,"uuid":"735671923","full_name":"alexzk1/MsiFanControl","owner":"alexzk1","description":"Linux solution to control fans on MSI laptops.","archived":false,"fork":false,"pushed_at":"2025-11-17T11:37:29.000Z","size":800,"stargazers_count":4,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-11-17T13:17:35.814Z","etag":null,"topics":["control","cooler","dragon","fan","gaming","laptop","linux","msi","throttling"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alexzk1.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"alexzk1"}},"created_at":"2023-12-25T19:06:56.000Z","updated_at":"2025-11-17T11:37:32.000Z","dependencies_parsed_at":"2025-05-18T11:36:14.505Z","dependency_job_id":"227c0959-f8c7-421d-b2ad-d8150651c31d","html_url":"https://github.com/alexzk1/MsiFanControl","commit_stats":{"total_commits":17,"total_committers":1,"mean_commits":17.0,"dds":0.0,"last_synced_commit":"188c01203c43aed1db3e51810492dbac912a0851"},"previous_names":["alexzk1/msifancontrol"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/alexzk1/MsiFanControl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexzk1%2FMsiFanControl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexzk1%2FMsiFanControl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexzk1%2FMsiFanControl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexzk1%2FMsiFanControl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alexzk1","download_url":"https://codeload.github.com/alexzk1/MsiFanControl/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexzk1%2FMsiFanControl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30402363,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-11T21:02:20.017Z","status":"ssl_error","status_checked_at":"2026-03-11T20:59:32.667Z","response_time":84,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["control","cooler","dragon","fan","gaming","laptop","linux","msi","throttling"],"created_at":"2026-03-11T21:47:15.415Z","updated_at":"2026-03-11T21:47:15.843Z","avatar_url":"https://github.com/alexzk1.png","language":"C++","funding_links":["https://github.com/sponsors/alexzk1"],"categories":[],"sub_categories":[],"readme":"# MsiFanControl\nLinux solution to control fans on MSI laptops.\n\n\nMore to read, to try:\n\nhttps://github.com/YoyPa/isw/blob/master/wiki/msi%20ec.png\n(and the whole repo there)\n\nhttps://github.com/BeardOverflow/msi-ec\n\nhttps://github.com/dmitry-s93/MControlCenter\n\nNote all that mentioned software may conflict with this program.\n\n# Why this one ?\n\n\"Selling point\" is - GUI aplication part controls fan's boost by algorithm which gives perfect gaming experience. Also quering ACPI for details like temperatures is done in smart way, so it does not distrub CPU too much. It gets down to 34 C if left alone, while other apps will keep it at 40-50 C.\n\nImplemented self-restriction via `libseccomp` so this one is much safer to run as `root` than anything else. Restriction is enabled if `--restrict` command line parameter is given. Note, it may add some heat to your CPU.\n\nBattery charging level change works without additional software.\n\nEverthing else (present into other solutions) does not look too much important for me.\n\n# How to run\n\n## Manual installation\nCompile.\nInstall daemon using systemd (edit supplied .service). You need to allow debug EC access. How to do you can check here:\nhttps://github.com/YoyPa/isw\n\nReboot, so everything will apply. On 1st run after reboot daemon will make the backup of settings. If you'll stop daemon it will restore from backup any changes.\n\nRun GUI application, tick checkbox \"Game Mode Automatic Boost Control\", minimize it to the tray (gui program must run), go play your games. It will take care of the fans.\n\n## Arch Linux\nYou can download all files from `linux` subfolder and run `makepkg -is`. Restriction is enabled by default in file `linux/msifancontrol.service`.\n\nAdditional manual configuration is not expected.\n\n# Stress test \"smart logic\" of the \"game mode\"\nInstall `stress-ng` (https://www.tecmint.com/linux-cpu-load-stress-test-with-stress-ng-tool/).\n\nRun `sudo stress-ng --cpu 8 --timeout 90`.\n\n# Dependencies\n\nYou will need installed system wide: g++ (latest), cmake, boost 1.8+, cereal (C++ headers only serialization library), libcpuid, qt5 widgets (for GUI), libseccomp.\n\n# Warning\nUse at your own risk, no liability for me. This program is based on researchings of the other peoples (see the links). It must be used ONLY on MSI laptops with Intel CPUs. Daemon will try to check if proper CPU and laptop are used.\n\nAdditionaly, acpi irq must be enabled, i.e. booting kernel with `acpi=off` or `acpi=noirq`, or masking/disabling separated irqs will make this program broken.\n\n# Things to note\nIt appears that checking temperature (reading values over debug interface) raises electricty usage and temperature itself. So this app was redesigned in the such way, so lower your current temp is, bigger time between 2 updates will be. So on the cold cpu program will update values 1-2-3 times per minute. On the hot cpu it can be once per 2 seconds.\n\n# TODO:\n1. ~~Automate what I wrote above by installer.~~ Done for ArchLinux.\n2. Implement more functions, like fan's curves in GUI.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexzk1%2Fmsifancontrol","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falexzk1%2Fmsifancontrol","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexzk1%2Fmsifancontrol/lists"}