MrBlakeandClaude Opus 5.5 cc4fdb9cd0 Add built-in updater, bump to 1.2.0
- predatord checks the Gitea releases every 6 hours, downloads the
  newest pacman package, verifies its SHA-256 from the release notes
  and installs it with `pacman -U` in a separate systemd unit
- Update notice and install button on the System page, in the sidebar
  and in the panel widget; `predatorctl update [--check] [--yes]`
- Optional API token for private repositories
- packaging/release.py builds and publishes releases in the format
  the updater expects

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 17:42:02 +02:00
2026-10-07 17:42:02 +02:00
2026-10-07 17:42:02 +02:00

Predator Control

An open-source PredatorSense replacement for Linux, built for the Acer Predator Helios 16 (PH16-71) and tested on CachyOS with KDE Plasma 6.

It gives you everything the Windows control center does – performance modes, fan control, per-key keyboard RGB, the rear lightbar and battery health – as a desktop app, a Plasma panel widget, and a command line tool.

Dashboard

Features

Area What you get
Performance Eco / Quiet / Balanced / Performance / Turbo (ACPI platform profiles), separate profiles for AC and battery with automatic switching when you plug in or unplug
Fans Auto, Max (cooler boost), manual speed per fan, or a custom temperature curve for CPU and GPU with drag-and-drop editor
Keyboard RGB 12 hardware effects (static, breathing, rainbow wave, ripple, neon, rain, explosion, pulse, stars, meteor, aura, …), colour, brightness, hidden effect variants, presets
RGB Studio Paint individual keys with the mouse, live preview on the keyboard, quick fills (WASD, arrows, F-row, numpad …), German ISO and US ANSI layouts
Lightbar All rear lightbar effects with colour, brightness and speed – or let it follow the keyboard
Battery live charging indicator in watts with power graph and time until full / remaining, 80 % charge limit, calibration, health and cycles
Firmware options Boot animation & sound, LCD overdrive, keyboard backlight timeout, USB charging while off
Monitoring CPU/GPU temperatures, fan RPM, CPU load and clock, memory – without waking the dGPU
Panel widget Click the icon in the Plasma panel to change everything quickly; buttons open the full app directly on the right page (e.g. RGB Studio). Middle-click cycles the performance mode
Persistence All settings are restored at boot and after suspend/resume

RGB Studio Fan curves

Supported hardware

Model Keyboard MCU Status
Acer Predator Helios 16 PH16-71 Chicony 04F2:011A / 04F2:0117 primary target

Other Predator/Helios models with the same keyboard controller and WMI interfaces will likely work. Reports are welcome – please include the output of predatorctl status, lsusb | grep 04f2 and cat /sys/class/dmi/id/product_name.

Installation

Download predator-control-<version>-any.pkg.tar.zst from the releases page and install it:

sudo pacman -S --needed linux-cachyos-headers clang lld llvm   # headers for your kernel (stock Arch: linux-headers)
sudo pacman -U predator-control-*-any.pkg.tar.zst

The service starts automatically and the kernel module is built by DKMS for every installed kernel. To build the package yourself: cd packaging/arch && makepkg -f.

Switching from install.sh to the package? Run sudo ./uninstall.sh first (your settings are kept).

Install script (any distribution)

Requirements: a kernel with acer-wmi (any recent kernel), Python 3, PySide6, DKMS and kernel headers. On Arch / CachyOS / Manjaro the installer pulls in everything.

git clone https://git.mrblake.cc/MrBlake/Cachy-Predator-Keyboard.git
cd Cachy-Predator-Keyboard
sudo ./install.sh

Then:

  • App: start Predator Control from the application menu, or run predator-control
  • Panel widget: right-click the panel → Add or Manage Widgets… → search for Predator Control and drag it into the panel – or enable it under System Tray Settings → Entries. If it does not show up yet, log out and back in.
  • CLI: predatorctl status

On other distributions install the dependencies yourself and run sudo ./install.sh --no-deps.

Secure Boot: the kernel module is unsigned. With Secure Boot enforcing module signatures you have to sign predator_wmi yourself (e.g. with sbctl or a MOK key). Keyboard RGB and performance profiles work without the module.

Uninstall with sudo pacman -R predator-control (package) or sudo ./uninstall.sh (add --purge to also delete your settings).

Updates

Installed via the pacman package, Predator Control updates itself: the service checks for new releases every 6 hours, and a notice with an Install button appears on the System page, in the sidebar and in the panel widget. Downloads are verified with the SHA-256 from the release notes and installed with pacman -U. From the terminal: predatorctl update (or --check). Automatic checks can be turned off on the System page.

If you installed with install.sh, update with git pull && sudo ./install.sh.

Usage

Panel widget

Action Result
Left click Opens the quick-settings popup
Middle click Cycles to the next performance mode
RGB Studio… Opens the app on the RGB page
Manual / Curve (fans) Switches mode and opens the fan page

Command line

predatorctl status                        # overview
predatorctl profile performance           # low-power | quiet | balanced | balanced-performance | performance
predatorctl profile-cycle
predatorctl fans auto | max | curve
predatorctl fans custom 60 80             # CPU 60 %, GPU 80 %
predatorctl kbd static ff0000 -b 255      # effect, colour, brightness (0-255)
predatorctl kbd off | on
predatorctl kbd-brightness +25
predatorctl lightbar wave --color 00d4ff --speed 7
predatorctl lightbar --sync on            # lightbar follows the keyboard
predatorctl battery-limit on
predatorctl update                        # check for and install updates
predatorctl open rgb                      # open the app on a page

Tip: bind predatorctl profile-cycle or predatorctl kbd-brightness +25 to a keyboard shortcut in System Settings → Shortcuts.

How it works

 Plasma widget ──┐                       ┌── /sys/firmware/acpi/platform_profile   (profiles)
 Qt app ─────────┼── Unix socket ──► predatord (root) ──┼── /dev/hidrawN  (keyboard MCU, USB HID)
 predatorctl ────┘   state.json ◄──┘     └── predator_wmi kernel module ── ACPI WMI
                                                              (fans, lightbar, battery, firmware options)
  • predatord – a small Python daemon running as root. It owns all hardware access, stores settings in /etc/predator-control/config.json, writes a live state snapshot to /run/predator-control/state.json, restores everything at boot/resume, switches profiles on AC changes and runs the fan curve. Only root and members of the wheel group may send commands (checked via SO_PEERCRED; configurable via allowed_group).
  • predator_wmi – a ~200 line kernel module that binds to Acer's gaming, battery and APGE WMI interfaces and exposes a single root-only sysfs attribute to call WMI methods. All protocol knowledge stays in user space.
  • Keyboard – talks directly to the keyboard MCU through hidraw (8-byte feature reports plus a 512-byte per-key frame) – no kernel driver needed.
  • Temperatures and fan RPM come from the mainline acer-wmi hwmon and coretemp.

Correcting the key map

The LED matrix positions of a few keys (ISO # and <) are best guesses. If a key lights up in the wrong place in the RGB Studio, create ~/.config/predator-control/layout.json with {"<key label>": <cell number>} entries (cell = column × 6 + row, row 0 = bottom row).

Troubleshooting

Problem Fix
"predatord is not running" sudo systemctl enable --now predatord, then journalctl -u predatord
"permission denied" add yourself to wheel: sudo usermod -aG wheel $USER, log in again
Fans / lightbar / battery greyed out the module is not loaded: sudo modprobe predator_wmi, check dmesg
Keyboard does not react check predatorctl status and that lsusb shows 04f2:011a or 04f2:0117
Profile changes back on its own another tool also manages platform_profile (e.g. power-profiles-daemon or tuned); disable automatic switching in either tool
Widget missing after install log out and back in, or run plasmashell --replace &

Credits

The hardware protocols were reverse-engineered by others – this project would not exist without them:

  • Venator – PH16-71 keyboard MCU protocol, lightbar, key map (GPL-2.0)
  • Linuwu-Sense – fan control, battery health and firmware option WMI calls (GPL-2.0)
  • The mainline Linux acer-wmi driver – platform profiles and sensors

Disclaimer

This is an independent community project. It is not affiliated with, endorsed by or supported by Acer Inc. "Predator", "Helios" and "PredatorSense" are trademarks of Acer Inc. The software talks directly to firmware interfaces – use it at your own risk, especially custom fan curves: keep an eye on temperatures.

License

GPL-2.0-only

S
Description
No description provided
Readme GPL-2.0
786 KiB
2026-10-07 17:59:42 +02:00
Languages
Python 80.9%
QML 10.2%
Shell 5.7%
C 3%
Makefile 0.2%