|
1 | 1 | # LiquidctlGUI |
2 | | -LiquidctlGUI is attempt of creating simple interface for liquidctl (https://github.com/liquidctl/liquidctl) using AI |
3 | | -because i am not coder and your cat might be set on fire if you run this code so no any promises😉 |
4 | 2 |
|
| 3 | +<img width="1916" height="1034" alt="Screenshot_20250808_011612" src="https://github.com/user-attachments/assets/4b7d3ca1-bc3b-4a39-b2e2-302390824e9f" /> |
5 | 4 |
|
6 | 5 |
|
7 | | -You have to have liquidctl installed search it trough your package manager or install it via terminal using pip |
| 6 | +A simple GUI for [liquidctl](https://github.com/liquidctl/liquidctl) to control **fans** and **pump** on devices such as the Corsair Commander Core. |
| 7 | +I am not a programmer – this was **built with AI assistance** – use at your own risk. If your cat catches fire, it’s on you. 😉 |
8 | 8 |
|
| 9 | +--- |
9 | 10 |
|
10 | | -sudo apt update / sudo yum update / sudo dnfupdate |
| 11 | +## 📌 Features |
11 | 12 |
|
| 13 | +- **List devices** detected by `liquidctl` |
| 14 | +- **Status**: fan RPM, pump RPM, number of connected fans, water temperature |
| 15 | +- **Speed control**: per-fan control and separate pump control |
| 16 | +- **Profiles**: create, edit, delete + **Save Current Profile** (stores the current slider positions) |
| 17 | +- **Clean UI**: one line per fan → **Name | RPM | % | Slider** |
| 18 | +- **System Info**: OS/distro, CPU model, GPU model, RAM and disk (root) usage |
12 | 19 |
|
13 | | -sudo apt or yum or dnf install python3 python3-pip |
14 | 20 |
|
| 21 | + How It Works |
| 22 | + -------------------------------------------------------------------------------------------- |
15 | 23 |
|
16 | | -pip3 install liquidctl |
| 24 | + GUI built in PyQt6 |
17 | 25 |
|
| 26 | + All status/set commands are executed via liquidctl CLI (subprocess) |
18 | 27 |
|
19 | | -pip3 install pyqt6 |
| 28 | + CPU model is read from lscpu (with LC_ALL=C), fallback /proc/cpuinfo |
20 | 29 |
|
21 | | -<img width="804" height="526" alt="1" src="https://github.com/user-attachments/assets/813ab3e3-97fa-4a2e-8c29-0fb380bff942" /> |
22 | | -<img width="799" height="516" alt="Screenshot_20250717_232045" src="https://github.com/user-attachments/assets/cc34e465-027c-4783-a83d-39fd44eb69e6" /> |
| 30 | + GPU: first tries nvidia-smi, then falls back to lspci | grep VGA |
23 | 31 |
|
| 32 | + Temperatures: read from lm-sensors and optionally nvidia-smi |
24 | 33 |
|
25 | | -So what works and what not(atleast on my system) |
26 | | ----------------------------------------------------------------------------------- |
| 34 | + Profiles are saved in: ~/.LIquidctl_settings.json |
27 | 35 |
|
28 | | --list devices --it lists devices installed in your pc supported by liquidctl |
| 36 | + 🖱 Usage |
29 | 37 |
|
30 | | --get status --fan speeds,pump speeds,number of fans and water temp |
| 38 | + Sliders: moving a slider instantly updates the % and estimated RPM in the UI; actual RPM is confirmed on the next refresh |
31 | 39 |
|
32 | | --setting fan speed --sets all fan speed to a given slider position |
| 40 | + Save Current Profile: store the current fan/pump % values as a new profile |
33 | 41 |
|
34 | | --setting pump speed --sets pump speed to a given slider position |
| 42 | + Profiles: select, load, and manage profiles from the dropdown menu |
35 | 43 |
|
36 | | --profiles work partialy i need to change to save them into some config in home folder |
37 | 44 |
|
38 | 45 |
|
| 46 | +--- |
39 | 47 |
|
40 | | -What it doesnt work or it is bugged |
41 | | ---------------------------------------------------------------------------------- |
| 48 | +## ⚠ Current Limitations |
42 | 49 |
|
43 | | --rgb control is curently unsupported on my system using crosair H170 water cooling it has broken status on liquidctl |
44 | | -(rgb lights sometimes blink when setting fan and pump speed,why idk) |
| 50 | +- **RGB control**: currently **not working** (on my H170 the RGB status is broken in liquidctl; lights may blink when adjusting speeds) |
| 51 | +- Fan/Pump speeds update on a **refresh interval**; physical RPM may take a few seconds to stabilize – normal controller behavior |
| 52 | +- Supported devices depend entirely on what `liquidctl` supports |
45 | 53 |
|
| 54 | +--- |
46 | 55 |
|
47 | | -What i would like to add |
48 | | --------------------------------------- |
49 | | --program icon |
| 56 | +## 📦 Requirements |
50 | 57 |
|
51 | | --actuall working rgb control |
| 58 | +- Linux, Python 3.8+ |
| 59 | +- `liquidctl`, `pyqt6` |
| 60 | +- For temperatures and system info: |
| 61 | + - `lm-sensors` + `sensors-detect` |
| 62 | + - `pciutils` (for `lspci`) |
| 63 | + - (optional) NVIDIA `nvidia-smi` for nicer GPU names |
52 | 64 |
|
53 | | --language support curently everything is mixed betwen croatian and englsih |
| 65 | +--- |
54 | 66 |
|
55 | | --settings to save or load saved user settings |
| 67 | +## 🔧 Installation |
56 | 68 |
|
| 69 | +Ubuntu / Debian |
| 70 | +------------------------------------------------------------- |
| 71 | + |
| 72 | +sudo apt update |
| 73 | +sudo apt install -y python3 python3-pip pciutils lm-sensors |
| 74 | +pip3 install --user liquidctl pyqt6 |
| 75 | +sudo sensors-detect --auto |
| 76 | + |
| 77 | +Fedora |
| 78 | +---------------------------------------------------------------- |
| 79 | +sudo dnf -y update |
| 80 | +sudo dnf install -y python3 python3-pip pciutils lm_sensors |
| 81 | +pip3 install --user liquidctl pyqt6 |
| 82 | +sudo sensors-detect --auto |
| 83 | + |
| 84 | +I use Arch btw people |
| 85 | +----------------------------------------------------------------------------- |
| 86 | +sudo pacman -Syu --noconfirm |
| 87 | +sudo pacman -S --noconfirm python python-pip pciutils lm_sensors |
| 88 | +pip3 install --user liquidctl pyqt6 |
| 89 | +sudo sensors-detect --auto Running Without sudo (udev Rule) |
| 90 | + |
| 91 | + |
| 92 | + |
| 93 | +If liquidctl gives “Permission denied”, add a udev rule. |
| 94 | +Example (Corsair Commander Core – vendor 1b1c, product 0c0a; check with lsusb): |
| 95 | + |
| 96 | + |
| 97 | + |
| 98 | +cat << 'EOF' | sudo tee /etc/udev/rules.d/99-liquidctl.rules |
| 99 | +SUBSYSTEM=="usb", ATTR{idVendor}=="1b1c", ATTR{idProduct}=="0c0a", MODE="0666", GROUP="plugdev" |
| 100 | +EOF |
| 101 | + |
| 102 | + |
| 103 | +sudo udevadm control --reload-rules |
| 104 | +sudo udevadm trigger |
| 105 | + |
| 106 | + |
| 107 | +▶ Running the App |
| 108 | + |
| 109 | +git clone https://github.com/<your-user>/<your-repo>.git |
| 110 | +cd <your-repo> |
| 111 | +python3 LiquidctlGUI.py |
57 | 112 |
|
58 | 113 |
|
59 | 114 |
|
0 commit comments