Skip to content
This repository has been archived by the owner on Apr 21, 2023. It is now read-only.
/ fancy Public archive

Control your laptop fans with a fancy ( ͡° ͜ʖ ͡°) software (compatible with NBFC).

License

Notifications You must be signed in to change notification settings

musikid/fancy

Repository files navigation

Fancy

Logo

Control your laptop fans with a fancy ( ͡° ͜ʖ ͡°) software.


Tests license Copr build status Release codecov


Fancy is a set of software which allows you to control your laptop fans. It includes a service daemon to allow accessing to the EC and controlling it through D-Bus, a CLI to send commands and a GUI (WIP). It works only on Linux and Windows support is not planned1.

Warning

This project is deprecated in favor of the more stable and complete nbfc-linux. I originally created this project beacuse of the flaws of the original NBFC on Linux, but since then nbfc-linux has filled the missing gaps. Please check it out instead if you need a fan controller.

Compatibility

You can check if your computer model is supported by checking if a configuration exists in nbfc_configs (or maybe a similar model).

Installation

NOTE: If you have Secure Boot enabled, you have to install acpi_ec or disable it.

Arch Linux (thanks to @BachoSeven!)

yay -S fancy

Debian

For now, you can find the .deb in the Releases.

Fedora

sudo dnf copr enable musikid/Fancy
sudo dnf install fancy

For other distros

git clone https://github.com/MusiKid/fancy.git
cd fancy
make && sudo make install

Then, enable the service

sudo systemctl enable --now fancy fancy-sleep

The service should now be running. However, it's not active since there isn't any config loaded. You can see the recommended configurations for your computer:

fancy list --recommended

Apply a config

fancy set -c "YOUR_COMPUTER_MODEL"

Check if the config was correctly set:

fancy get config

You can then set the fan speed. For example, to make it silent:

fancy set -f 0

Or if you have more fans:

fancy set -f 0 0

Back again to automatic:

fancy set -a

Back again to manual:

fancy set -m

Documentation

You can take a look at the book. For the CLI, the available commands are detailed in the fancy(1) man file (man fancy).

FAQ

Why? NBFC can also do it

NBFC is a great software (also one of the cleanest codebase I ever seen). However, it's written in C#, which means that it depends on mono runtime on Linux. mono is a pretty huge dependency, especiallly when NBFC is the only thing which needs it, and uses a lot of RAM. That's the reason why I started to write fancy (and also because I wanted to test my Rust (kind of) "skills").

Linux ONLY?

Well, NBFC is already well integrated with the Windows "ecosystem", since C# is more common on Windows. It works very well, so go check it. If you want to provide Windows support, you are also welcome.

License

The project is licensed under MPL-2.0. You implicitly accept it when you send a pull request.

WARNING: The configurations are from NBFC, which is under GPLv3 license.

Contributing

Please see CONTRIBUTING.md. You can also take a look at the book for details on the internal working.

Credits

Thanks to @hirschmann for creating NBFC, where I shamelessly stolen some pieces of code (open source ¯\(ツ)/¯), and all the contributors who created the configurations.

Warning

I'm not responsible if your computer start to smell fried chicken, if your house is being assaulted by the SWAT because your laptop is becoming a nuclear power plant, if your head blow up because you saw a portion of the source code, and blabla...