curl -fsSL https://raw.githubusercontent.com/Batuhan4/victus-control/main/bootstrap.sh | bashThe bootstrap script downloads the current main branch into a temporary directory and runs install.sh.
Do not pipe it into sudo; install.sh elevates itself and preserves the desktop user for GNOME extension setup.
Fan control and keyboard lighting for HP Victus / Omen laptops on Linux. Stock firmware keeps both fans near 2000 RPM in AUTO even while the CPU cooks. victus-control adds a real Better Auto curve, manual RPM control, a privileged backend, a GTK4 desktop app, and a GNOME Shell extension.
Warning
Validated primarily on HP Victus 16-s00xxxx and contributor-tested on Fedora/Arch variants listed in PRs and issues. Other models may work but are not guaranteed. Monitor thermals carefully. On HP Victus 15 fa0xxx, manual fan speeds appear unsupported; only MAX, AUTO, and Better Auto are known to behave.
- Better Auto mode (selectable from the GTK UI or CLI) samples CPU/GPU temps & utilisation every ~2 s, clamps to each fan’s hardware max, and reapplies targets every 90 s with the firmware-required 10 s stagger. Result: fans climb smoothly with load instead of idling at 2000 RPM like HP’s AUTO.
- Manual mode exposes eight RPM steps (~2000 ➜ 5800/6100 RPM) with per-fan precision and watchdog refreshes that keep settings alive through firmware quirks.
- Keyboard lighting supports single-zone RGB colour and brightness on compatible hardware.
- GNOME Shell integration exposes fan and keyboard controls from the top panel.
- Main installer: Arch-based distros and Fedora.
- Desktop app: GTK4 app installed by the main project installer.
- GNOME Shell extension: supported on GNOME Shell 45+ and auto-installed by
install.shwhen GNOME is present. - Ubuntu GNOME: the extension should work on GNOME-based Ubuntu setups if
victus-backend.serviceis already installed and reachable, but the project does not currently ship a full Ubuntu installer.
- 64-bit Linux with
systemd. - Supported installer targets:
- Arch-based distros via
pacman - Fedora via
dnf
- Arch-based distros via
- GNOME Shell 45+ if you want the panel extension.
- Root privileges for installing the DKMS module, sudoers rules, and systemd units.
curl -fsSL https://raw.githubusercontent.com/Batuhan4/victus-control/main/bootstrap.sh | bashUse this if you want a temporary checkout and the shortest install path.
git clone https://github.com/Batuhan4/victus-control.git
cd victus-control
sudo ./install.shThe wrapper routes to arch-install.sh or fedora-install.sh based on your OS.
On GNOME systems, it also installs the panel extension for the desktop user automatically.
- Validated by contributors on
HP Victus 16-S0046NTwith Fedora 43. - The Fedora installer now verifies that the patched
hp_wmimodule is actually active before starting the backend. - If you recently updated the kernel, reboot first so the running kernel matches the installed
kernel-develpackage.
The installer handles dependency install, user/group creation, DKMS module registration, build + install, and restarts victus-backend.service. Log out/in afterwards so your user joins the victus group.
victus-healthcheck.serviceruns during boot to ensure the patchedhp-wmiDKMS module is built for the current kernel and thathp_wmiis loaded before the backend starts.victus-backend.servicelaunches automatically at boot, stays active 24/7, and keeps Better Auto applied even when no UI client is connected—so fan tweaks persist without needing to open the app.
- Launch the GTK app (
victus-control) or use the CLI client (test_backend.py). - Mode dropdown offers
AUTO,Better Auto,MANUAL,MAX:- Better Auto is enforced by the background service on each boot, keeps fans in manual PWM, and dynamically adjusts RPMs based on temps/utilisation—ideal for gaming or heavy workloads.
- Manual maps slider positions to calibrated RPM steps; fan 2 honours the 10 s offset automatically.
- Keyboard tab exposes RGB colour + brightness controls.
- Backend status:
systemctl status victus-backend.service(logs viajournalctl -u victus-backend).
A GNOME Shell extension is available for quick access to fan and keyboard controls from the top panel.
- 🌀 Fan Mode Control: Switch between AUTO, Better Auto, MANUAL, and MAX
- 📊 Manual Fan Speed: Per-fan sliders with 8 RPM steps (visible in MANUAL mode)
- ⌨️ Keyboard RGB: 10 color presets and brightness slider
- 🌡️ Live Status: Real-time CPU temperature and fan RPM display
sudo ./install.sh
gnome-extensions enable victus-control@victusinstall.sh installs the extension automatically on GNOME systems. You only need the manual gnome-extensions enable ... step after install or after logging back in.
If you want to install the extension by itself:
cd gnome-extension
bash ./install.sh
gnome-extensions enable victus-control@victus- GNOME Shell 45 or later
victus-backend.servicemust be running- On Ubuntu GNOME and other GNOME desktops, the extension can be installed separately as long as the backend socket is available.
See gnome-extension/README.md for detailed documentation.
meson setup build --prefix=/usr
meson compile -C build
sudo meson install -C build- Smoke test (requires backend running):
python test_backend.py. - The installer fetches
hp-wmi-fan-and-backlight-control; it’s git-ignored to keep the repo lean.
- Fans ignore commands: ensure the DKMS module is loaded (
dkms status | grep hp-wmi-fan-and-backlight-control,modprobe --show-depends hp_wmi | tail -n1should point at/extra/hp-wmi.ko.xz). - Permission errors: confirm
victusgroup membership (groups $USER), then re-run the installer orsudo usermod -aG victus $USER. - Socket missing:
sudo systemd-tmpfiles --create;sudo systemctl restart victus-backend.service. - GNOME extension missing after install: log out/in once, then run
gnome-extensions enable victus-control@victus. - Uninstall:
sudo systemctl disable --now victus-backendandsudo dkms remove hp-wmi-fan-and-backlight-control/0.0.2 --all.
See AGENTS.md for coding style, testing, and PR expectations. Hardware validation notes are welcome in PR descriptions.
GPLv3. See LICENSE for the full text.