liquidgui is a Python/Tk fan-control GUI for Linux that auto-detects:
- NZXT Kraken AIO controls through
liquidctl - readable
hwmontemperature sensors - writable motherboard
hwmonPWM fan headers
Each detected control gets its own saved Bezier curve. The GUI can drive AIO pump and fan channels alongside motherboard fan headers from the same editor.
- auto-detects available sensors and writable controls at runtime
- supports per-control Bezier curves with automatic point propagation on the Y axis
- saves curves in
~/.config/liquidgui_curves.json - migrates older
~/.config/liquidctl_curves.jsonfan and pump curves - uses
sudofor control writes at the moment, which keeps development simple on local machines
Run the GUI:
./liquidguiRun with auto-reload for development:
./liquidgui --devPrint detected sensors and controls without opening the GUI:
./liquidgui --dump-detectCompile a single-file binary with PyInstaller:
Prerequisite: PyInstaller install with arch yay -S pyinstaller
make binaryThat produces dist/liquidgui.
Install the source launcher and monitor.py into /usr/local/bin:
sudo make installInstall the compiled single-file binary into /usr/local/bin:
sudo make install-binaryAccess to Kraken control usually requires either a working udev rule or root.
A sample liquidctl udev rule is provided in etc/udev/rules.d/60-liquidctl.rules.
Install the udev rule with:
sudo make udev-install
sudo udevadm control --reload-rules
sudo udevadm triggerAdd your user to the access group used by the rule:
make user-installTo add a different user:
make user-install INSTALL_USER=someuserTo install both the rule and the user/group access in one step:
make permissions-install
sudo udevadm control --reload-rules
sudo udevadm triggerEquivalent manual reload commands:
sudo udevadm control --reload-rules
sudo udevadm triggerOn Arch Linux, adjust the group in the rule if you do not use plugdev, or override it during setup:
make user-install ACCESS_GROUP=uucpMotherboard fan control depends on the kernel exposing writable PWM nodes under
/sys/class/hwmon. If AIO controls appear but motherboard headers do not, you
may need a board-specific driver.
This build has been tested on:
- Manufacturer:
Micro-Star International Co., Ltd. - Product Name:
MPG Z790 CARBON WIFI (MS-7D89)
For Nuvoton NCT6687/NCT6687D based boards, see:
https://github.com/akadata/nct6687d- this is the documentation source used for this project
- the Akadata tree was forked from
https://github.com/Fred78290/nct6687d
Once the driver is loaded and writable pwmN files appear in hwmon,
liquidgui will pick them up automatically as Motherboard fan 1, fan 2,
and so on.
Testing on other motherboards is welcome. If your board exposes working
hwmon PWM controls, please report the model and driver details so support can
be documented more broadly.
Useful checks:
python3 -m py_compile liquidgui monitor.pyThe launcher script is liquidgui, and the application logic lives in
monitor.py.
Visit:
https://articles.akadata.ltdhttps://www.akadata.ltd/https://www.breatechtechnology.co.uk/