fan-control
## Features
- Display sensors data on real time
- Control fans based on custom behaviors
- Save configuration
- Multiplatform (Linux/Windows)
![screenshot of fan-control](https://media.githubusercontent.com/media/wiiznokes/fan-control/master/res/screenshots/app.png)
## Usage
- You can add items with the buttons on the right of the app.
- To save a configuration, write a name in the "Configuration name" field, and click on the `+`.
- To modify the value of a fan, you must select it in a `Control` item (the left column), select a `Behavior`, and activate the switch.
## Installation
### Windows
1. Install fan-control from [the release section](https://github.com/wiiznokes/fan-control/releases/latest)
_The configuration files will be in [`C:\Users\wiiz\AppData\Roaming\wiiznokes\fan-control\config`](file:///C:\Users\wiiz\AppData\Roaming\wiiznokes\fan-control\config)._
### Flatpak (Linux)
1. [Install the required udev rules](./res/linux/udev_rules.md)
2. Install fan-control from [Flathub](https://flathub.org/apps/io.github.wiiznokes.fan-control)
_The configuration files will be in [`~/.var/app/io.github.wiiznokes.fan-control/config/fan-control/`](file://~/.var/app/io.github.wiiznokes.fan-control/config/fan-control/)._
To ensure the application detects the maximum number of sensors, follow these steps
1. Install `lm-sensors`
For Debian-based systems, run: `sudo apt install lm-sensors`
For Fedora-based systems, run: `sudo dnf install lm_sensors`
2. Run `sudo sensors-detect` to detect available sensors
## Repo structure
- [hardware](./hardware/README.md): define an abstraction around the hardware.
- [data](./data/README.md): define structures used in the app (Node, Config), and there logic. Depend on [hardware](./hardware/README.md)
- [ui](./ui/README.md): implement the UI. Depend on [data](./data/README.md) and [hardware](./hardware/README.md)
- the app: integrate all this crates in one executable
## Build
See instructions [here](./BUILD.md).
## Contributing
See [CONTRIBUTING.md](./CONTRIBUTING.md)