Skip to content
FnnDKPublic

Latest commit

 

History

101 Commits

Folders and files

Repository files navigation

    

acerctl

AcerSense, NitroSense and PredatorSense for Linux
One daemon, app and CLI for operating modes, fans, battery, keyboard and sensors, showing only what your laptop's firmware offers.
Independent open-source project, not affiliated with Acer.

CI Release 0.1.9 GPL-3.0 Fedora 44 Debian 13 Ubuntu 24.04 and 26.04

Download Acer Control Center Download Nitro Control Center Download Predator Control Center

Features · Download · Screenshots · Tested models · Compared · GNOME · How it works · Build · License

Nitro Control Center dashboard

Overview

Acer ships a different Windows-only app per product line. The laptops themselves share the same Acer WMI firmware interfaces (the ones the kernel's acer_wmi driver already uses across product lines), so acerctl covers all three with a single stack: each feature shows up only if the machine's firmware reports it, with no per-brand switch and no hard-coded model list. The app comes in three flavors built from the same code, differing only in name and colors; the installer picks one from the product name.

App Instead of Laptops Status
Acer Control Center AcerSense Aspire, Swift, TravelMate, Extensa yes working: Aspire AG15-71P
Nitro Control Center NitroSense Nitro yes working: Nitro ANV15-52, the reference machine
Predator Control Center PredatorSense Predator n/a untested: built from public reports

Tip

Your model is not on the list? Run the read-only hardware report and open a Hardware report issue: that is all we need to start supporting it.

Features

⚡ Operating modes
Eco, Quiet, Balanced, Performance and Turbo, limited to the profiles the firmware supports, with the original app's AC/battery rules and in sync with the desktop's power mode.
🌀 Fans
CPU and GPU fans in auto, max or manual speed.
📊 Monitor
Temperatures, usage, clocks, power, fan speed, RAM and network, without waking the discrete GPU when it is powered off.
🔋 Battery
80 % charge limit (the same switch as GNOME's), calibration, health, cycles, temperature, voltage and current.
⌨️ Keyboard and USB
Backlight auto-off timeout; charge USB devices while the laptop is off.
🎮 Scenarios and App Sync
Mode, fans and keyboard saved together and applied when a game or program starts (Wine/Proton too), then undone when it exits.
🔘 Sense key
The AcerSense/NitroSense/PredatorSense button opens the app or cycles the modes.
🔁 Tray, CLI and restore
State restored at boot and after suspend; a tray icon and the acerctl CLI next to the app.

Download

Latest: 0.1.9 (pre-release), ready-built packages for Fedora 44 (Workstation and the Atomic desktops: Silverblue, Kinoite, Bluefin) and Debian 13, Ubuntu 24.04 and 26.04. Pick your laptop's product line below: each one gets the app with its own name and colors, on top of the same daemon and kernel modules. The kernel modules are rebuilt for every new kernel (akmod on Fedora, DKMS on Debian/Ubuntu) and signed with the local key when Secure Boot needs it; the daemon starts by itself when the app or the tray first needs it.

Important

Run the commands on the host, not inside a toolbox or distrobox: there sudo only reaches the container.

Note

The .deb packages are new and so far tested in containers only. Another distribution? See Building from source.

install.sh downloads the release's packages, checks them against its SHA256SUMS and installs them with dnf, rpm-ostree or apt; --no-gui leaves out the app and the tray (the daemon, the CLI and the kernel modules only), and sh install.sh -n shows what it would do without changing anything. Then see After installing. To upgrade, run the same commands again (on Silverblue, Kinoite and Bluefin, then reboot once): it replaces an earlier version and an install made with the scripts.

 Acer

Aspire, Swift, TravelMate, Extensa and the other non-gaming lines: Acer Control Center. yes Tested on the Aspire AG15-71P (charge limit, Sense key, app and tray).

Fedora 44  Workstation, Silverblue, Kinoite, Bluefin
curl -fLO https://raw.githubusercontent.com/FnnDK/acerctl/main/packaging/install.sh
sudo sh install.sh --acer
Debian 13 Ubuntu 24.04 and 26.04
wget -nv -O install.sh https://raw.githubusercontent.com/FnnDK/acerctl/main/packaging/install.sh
sudo sh install.sh --acer

 Nitro

Nitro Control Center for the Nitro line. yes Tested on the Nitro ANV15-52 (modes, fans, sensors, keyboard, USB charging, battery, scenarios).

Fedora 44  Workstation, Silverblue, Kinoite, Bluefin
curl -fLO https://raw.githubusercontent.com/FnnDK/acerctl/main/packaging/install.sh
sudo sh install.sh --nitro
Debian 13 Ubuntu 24.04 and 26.04
wget -nv -O install.sh https://raw.githubusercontent.com/FnnDK/acerctl/main/packaging/install.sh
sudo sh install.sh --nitro

 Predator

Predator Control Center for the Predator line. n/a Not tested on a Predator yet: the features come from the firmware, and a hardware report from your machine helps a lot.

Fedora 44  Workstation, Silverblue, Kinoite, Bluefin
curl -fLO https://raw.githubusercontent.com/FnnDK/acerctl/main/packaging/install.sh
sudo sh install.sh --predator
Debian 13 Ubuntu 24.04 and 26.04
wget -nv -O install.sh https://raw.githubusercontent.com/FnnDK/acerctl/main/packaging/install.sh
sudo sh install.sh --predator

After installing

Open the app: on its first start it lists what is still missing and applies it with one password and one restart. That is the acer_wmi option Nitro and Predator models need for operating modes and fans, and, with Secure Boot, enrolling the key that signs the kernel modules (akmods on Fedora, DKMS on Debian/Ubuntu). Without the app (install.sh --no-gui), acerctl setup lists the same steps and acerctl setup apply makes them. acerctl status shows what the daemon found and acerctl help lists the commands.

By hand, the acer_wmi option for the Nitro ANV15-52 is (/etc/modprobe.d/acer-wmi.conf, then reboot):

options acer_wmi predator_v4=1 force_caps=0x1C26

Warning

Before enabling platform-profile, check the tuned/power-profiles-daemon profile: Linux's performance mode maps to Acer's Turbo, which not every model has.

The kernel decides part of it: acer_wmi exposes the operating modes from Linux 6.9 and fan control from 6.19. The companion modules build from 5.15 on.

Kernel Operating modes Fan control
Fedora 44, Ubuntu 26.04, Ubuntu 24.04 with the HWE kernel yes yes
Debian 13 (6.12) yes no
Ubuntu 24.04 with its original kernel (6.8) no no

Uninstalling

To remove everything acerctl put on the machine, for example to try another tool: the packages (dnf, rpm-ostree, apt), an install made with the scripts and the ones under the project's earlier names (nitrod/nitroctl/nitro-tray, nitrosensed). Run it on the host, from the repository or downloaded on its own:

curl -LO https://raw.githubusercontent.com/FnnDK/acerctl/main/packaging/uninstall.sh
sudo sh uninstall.sh            # keeps your settings (/var/lib/acerd, ~/.config/acerctl)
sudo sh uninstall.sh --purge    # also removes them, the app data and /etc/modprobe.d/acerctl.conf

dnf and apt ask before removing the packages; on Silverblue, Kinoite and Bluefin they go with the next reboot. Inside a toolbox/distrobox shell sudo only reaches the container, so the script refuses to run there (use distrobox-host-exec sudo sh uninstall.sh). An acer_wmi option you wrote yourself in /etc/modprobe.d is left in place.

Screenshots

The app uses its own dark theme, with an integrated title bar that follows GNOME's button order and icons, and texts in Portuguese and English.

 Nitro Control Center (the dashboard is at the top of the page)
Monitor Fans
Battery Scenarios
Lighting Settings

Daemon in simulated mode (acerd --simulate ANV15-52).

 Acer Control Center

Dashboard

Monitor Battery
Settings

Aspire AG15-71P, real machine with the daemon in read-only mode (acerd --dry-run). Its firmware has no operating modes, fans or keyboard backlight, so those screens and cards do not show up.

 Predator Control Center

Dashboard

Monitor Fans
Battery Scenarios
Lighting Settings

Daemon in simulated mode (acerd --simulate PHN16-72: a Predator with 5 modes, a 4-zone RGB keyboard and an RGB logo, modelled on public reports; no Predator has been tested yet).

Tested models

On the laptops acerctl has been run on: yes works, no the laptop has it but acerctl does not handle it yet, n/a the firmware does not offer it.

Model Modes Fans Kbd timeout 80 % limit Calibration Sensors USB charging off AC/battery rules GUI Boot sound LCD overdrive RGB Scenarios Sense key Overclock
Nitro ANV15‑52
BIOS V1.31 · Fedora Silverblue 44
yes yes yes yes¹ yes² yes yes yes yes n/a n/a n/a yes yes n/a
Aspire AG15‑71P
BIOS V1.13 · Bluefin 44
n/a n/a n/a yes¹ yes² yes³ n/a n/a yes n/a n/a n/a n/a⁴ yes n/a

¹ Also in GNOME's Power settings ("Preserve Battery Health"). ² The firmware offers it and acerctl exposes it; a full calibration cycle has not been run yet. ³ CPU temperature and the battery sensors; this model has no fan readings and no discrete GPU. ⁴ Nothing for a scenario to set without modes, fans or keyboard backlight.

Both, plus a Predator PH16-71 built from public reports, are also checked automatically on every change: the packages installed in Fedora 44 and Ubuntu 24.04 run against a copy of what each laptop exposes (daemon/README.md, "Known models"). A hardware report from another model is how it gets added.

Compared with other tools

Projects with the most features first; features covered by the most projects on the left.

Project Modes Fans Kbd timeout 80 % limit Calibration Sensors USB charging off AC/battery rules GUI Boot sound LCD overdrive RGB Keeps acer_wmi Scenarios Sense key Overclock
Acer NitroSense / PredatorSense
Windows only
yes yes yes¹ yes yes yes yes yes yes yes yes yes¹ n/a yes yes yes¹
acerctl
this project
yes² yes yes yes³ yes yes yes yes yes no no no yes yes yes no
Linuwu-Sense
kernel module
yes yes yes yes yes no yes no no yes yes yes no no no no
predator-sense
CLI + DKMS on Linuwu-Sense
yes yes yes yes yes yes yes no no no no yes no no no no
Div-Acer-Manager-Max
GUI + daemon on Linuwu-Sense
yes yes yes no no yes no yes yes yes yes no no no no no
acer_wmi
in-tree kernel driver
yes⁴ yes⁴ no no no yes no no no no no no yes no no no
acer-wmi-battery
kernel module
no no no yes yes no no no no no no no yes no no no

¹ Where the model has it. ² Only the profiles the firmware reports, synced with power-profiles-daemon/tuned. ³ Shared with GNOME/UPower. ⁴ A fixed list of 5 profiles, without reading the firmware mask; fan control only with the model quirk or force_caps.

Sensors: CPU/GPU temperatures and fan speed. acerctl also has a CLI, a tray, a monitor that does not wake the dGPU and the state restored at boot and after suspend; RGB, boot sound, LCD overdrive and overclocking are not there yet.

Third-party features as listed in each project's README (October 2026).

GNOME integration

acerctl doesn't replace GNOME's own power controls. It stays in sync with them, so you can use either side.

⚡ Power mode

GNOME's power mode menu (quick settings and Settings → Power) talks to power-profiles-daemon or tuned-ppd. acerd keeps that profile in sync with the Acer mode in both directions. The app has 5 modes and GNOME has 3, so the mapping is many-to-one going to GNOME. Coming back, the power source decides the mode. A mode the firmware doesn't report (e.g. Turbo on the ANV15-52) is never picked.

App → GNOME

App mode GNOME power mode
Eco Power Saver
Quiet Power Saver
Balanced Balanced
Performance Performance
Turbo Performance

GNOME → app

GNOME power mode On AC On battery
Power Saver Quiet Eco
Balanced Balanced Balanced
Performance Turbo when allowed (supported, battery ≥ 40 %), otherwise Performance Performance (flagged as extra) when battery ≥ 40 %, otherwise Balanced

When the app changes the mode, it sets the GNOME profile first, waits for tuned to apply it, and then writes the real Acer mode. This avoids loops. Details are in docs/api-dbus.md §11.

🔋 Battery health

acer-wmi-battery exposes the 80 % limit through the standard charge_control_end_threshold attribute (kernel ≥ 6.15). UPower therefore sees it, and GNOME shows its own Settings → Power → Preserve Battery Health switch. That switch and the app's 80 % limit are the same setting:

  • Turning on "Preserve Battery Health" in GNOME sets the 80 % limit, and the app shows it on the next refresh.
  • The app's limit goes through UPower when it's available, so GNOME's switch follows it and UPower doesn't revert it at startup. Without UPower, acerd writes the firmware directly.
  • The limit is either 80 % or off (100 %). The firmware has no other values and no start threshold.

Tested with UPower 1.91.5 on Fedora 44.

How it works

acerctl works by complementing the in-tree acer_wmi driver instead of replacing it: what the kernel lacks comes from small companion modules, a daemon applies the rules, and the app, the tray and the CLI talk to it over D-Bus.

flowchart LR
  FW["Acer firmware<br/>(WMI)"] --> K1["acer_wmi<br/>in-tree driver"]
  FW --> K2["acer-wmi-extras<br/>acer-wmi-battery"]
  K1 --> D["acerd<br/>D-Bus daemon"]
  K2 --> D
  D <--> APP["Acer / Nitro / Predator<br/>Control Center"]
  D <--> TRAY["tray and Sense key"]
  D <--> CLI["acerctl CLI"]
  D <--> GN["GNOME<br/>power mode, UPower"]
Loading
Directory What it is
gui/ Acer / Nitro / Predator Control Center (Go + Wails, WebKitGTK): the graphical app, one code in three flavors. Details in gui/README.md.
daemon/ acerd (Go): D-Bus service io.github.fnndk.Acerd1 on the system bus, with polkit; power, fan, lighting, battery, monitor, scenario and App Sync rules. API in docs/api-dbus.md. Includes the acerctl CLI.
drivers/acer-wmi-extras/ Companion module (GPL): keyboard backlight timeout, USB charging while the laptop is off, the thermal profiles the firmware actually supports, battery sensors.
drivers/acer-wmi-battery/ Charge limit (80 %) and calibration, vendored from Frederik Harwath's project with one fix (UPSTREAM.md).
drivers/acer-wmi-lab/ Research module that calls WMI methods through sysfs; only for mapping firmware.
packaging/ systemd units, D-Bus policy, polkit actions and install scripts.

Mainline layer used: acer_wmi with predator_v4=1 (profiles in platform-profile, fans and temperatures in hwmon) and, until the model's quirk lands upstream, force_caps=0x1C26 to unlock manual fan control.

📚 Documentation

Building from source

For other distributions, or to build from the repository. The scripts install to /usr/local, /etc and /var/lib (writable on Silverblue too); the reference machine is an Acer Nitro ANV15-52 with Fedora Silverblue 44.

Prebuilt binaries for other distributions (glibc ≥ 2.34, x86_64): acerctl-0.1.9-linux-x86_64.tar.gz holds the daemon, CLI, tray and app already built, these scripts and the kernel modules as source; its INSTALL.md has the steps (no Go, Node or Wails needed). The app is picked from the laptop's product name.

From the repository:

# 1. kernel modules (builds; signs with the akmods MOK when Secure Boot/lockdown
#    requires signed modules, otherwise they are used unsigned)
sudo sh packaging/build-sign.sh
sudo sh packaging/install-modules.sh          # or name the modules, e.g. acer-wmi-battery

# 2. acerd daemon + acerctl CLI
sh packaging/install-daemon.sh build          # needs Go
sudo sh packaging/install-daemon.sh install

# 3. the app (Acer, Nitro or Predator Control Center, after the product line)
sh packaging/install-gui.sh build             # needs Go, Node, Wails and libwebkit2gtk-4.1-dev
sudo sh packaging/install-gui.sh              # FLAVOR=nitro|predator|acer overrides; 'uninstall' removes it

# to remove all of it: sudo sh packaging/uninstall.sh (see Uninstalling)

The RPM specs are in packaging/rpm/; acerctl-<version>.tar.gz in each release is the source with vendored Go modules and the built frontend, for building without network.

Building a module by hand

Requires kernel-devel for the running kernel, gcc and make. With Secure Boot, sign with an enrolled MOK (the akmods one on Fedora):

make -C drivers/acer-wmi-extras
sudo /usr/src/kernels/$(uname -r)/scripts/sign-file sha256 \
  /etc/pki/akmods/private/private_key.priv /etc/pki/akmods/certs/public_key.der \
  drivers/acer-wmi-extras/acer-wmi-extras.ko
sudo insmod drivers/acer-wmi-extras/acer-wmi-extras.ko
ls /sys/devices/platform/acer-wmi-extras/

License

acerctl is free and open-source software under the GNU General Public License:

  • Daemon, CLI, tray, GUI and scripts (daemon/, gui/, packaging/): GPL-3.0-or-later.
  • Our kernel modules (drivers/acer-wmi-extras/, drivers/acer-wmi-lab/): GPL-2.0, as required for code that links against the Linux kernel.
  • drivers/acer-wmi-battery/: GPL-2.0-or-later, the license of the upstream project (its LICENSE).

You can use, study, change and redistribute it; modified versions you distribute must stay under the same license and ship their source code.

Note

Independent open-source project, not affiliated with Acer. "Acer", "Aspire", "Nitro", "Predator", "AcerSense", "NitroSense" and "PredatorSense" are trademarks of Acer Inc., mentioned only to identify the hardware.