Repository navigation
Releases: FnnDK/acerctl
Release list
acerctl 0.1.9
One fix for laptops whose firmware has no Turbo. Everything else is as in 0.1.8.
Fixed
- No Turbo offered where the firmware has none, after an unlucky boot. Right after boot, the firmware can fail the call that lists its thermal profiles (seen on a Nitro ANV15-52, while the Acer kernel modules were loading).
acer-wmi-extrasthen hid the list until the next boot, andacerdfell back to the kernel driver's list, which always includes Turbo: the app andacerctl modeoffered it, and choosing it failed with an input/output error. The module now keeps the list available and asks the firmware on every read, andacerdtries again for up to 2 seconds before falling back.
Installing and upgrading
curl -fLO https://raw.githubusercontent.com/FnnDK/acerctl/main/packaging/install.sh # Debian/Ubuntu: wget -nv -O install.sh <same URL>
sudo sh install.sh --nitro # or --acer, --predator; --no-gui for the CLI onlyOn Silverblue, Kinoite and Bluefin, reboot once afterwards. The README has the commands per product line.
Downloads
- RPMs for Fedora 44 (x86_64) and their SRPMs.
.debpackages for Debian 13 and Ubuntu 24.04/26.04 (amd64).acerctl-0.1.9-linux-x86_64.tar.gz: prebuilt binaries for other distributions, installed with scripts (see itsINSTALL.md).acerctl-0.1.9.tar.gz: the source with vendored Go modules and the built frontend.SHA256SUMS
acerctl 0.1.8
The desktop power mode follows the Acer mode again on package installs, and you can now see whether it does. Everything else is as in 0.1.6. (0.1.7 was tagged but never released: its build failed on a test, fixed here.)
Fixed
- The power mode in the desktop menu follows the mode again. On Fedora,
acerdandtuned-ppd(the service behind the GNOME power mode menu) start in the same instant at boot. Whenacerdlooked for it first, it turned the sync off for the whole session: the Nitro key and the app changed the mode, but the power menu stayed where it was.acerdnow starts aftertuned-ppd, and it also connects to a power-profiles service that shows up later or restarts, moving it to the current mode. - Debian and Ubuntu: the kernel modules build on the first install. Debian 13's
dkmsdoes not pull in the kernel headers, so the modules were silently not built;install.shnow installs the headers for the running kernel and for the kernel metapackages, and the setup screen tells a missing package, missing headers and a failed build apart. - The setup screen is read again each time the app opens, so modules built after
acerdstarted no longer show as missing.
New
acerctl statushas aPPD syncline and the app's About a "Power mode" row: in sync, with the name of the service, or not in sync and why.
Installing and upgrading
curl -fLO https://raw.githubusercontent.com/FnnDK/acerctl/main/packaging/install.sh # Debian/Ubuntu: wget -nv -O install.sh <same URL>
sudo sh install.sh --nitro # or --acer, --predator; --no-gui for the CLI onlyOn Silverblue, Kinoite and Bluefin, reboot once afterwards. The README has the commands per product line.
Downloads
- RPMs for Fedora 44 (x86_64) and their SRPMs.
.debpackages for Debian 13 and Ubuntu 24.04/26.04 (amd64).acerctl-0.1.8-linux-x86_64.tar.gz: prebuilt binaries for other distributions, installed with scripts (see itsINSTALL.md).acerctl-0.1.8.tar.gz: the source with vendored Go modules and the built frontend.SHA256SUMS
acerctl 0.1.7
No downloads: use 0.1.8. This version was tagged, but its release build failed on a test (the transcripts of the known models did not include a new D-Bus property yet), so no packages were made. 0.1.8 carries the same changes, with the test fixed:
- The desktop power mode follows the Acer mode again when
tuned-ppdstarts in the same instant asacerdat boot. acerctl statusand the app's About show whether the power mode is in sync.- Debian and Ubuntu:
install.shinstalls the kernel headers DKMS needs; the setup screen is read again each time the app opens.
acerctl 0.1.6
Battery calibration you can start and leave alone, from what the first full run on the Aspire AG15-71P showed. Everything else is as in 0.1.5.
Fixed
- The laptop stays awake while the battery calibrates. The firmware drains the battery through the running system, so a suspend stalled the calibration (GNOME suspends after 15 minutes idle even on AC), and a shutdown in the middle confused the firmware at the next boot.
acerdnow blocks suspend and the lid switch until the calibration ends, then lets go. - The end of a calibration shows.
acer-wmi-batteryreported the calibration and health modes as they were when it loaded or last changed them, so the app andacerctl batterynever saw the firmware finish. They now follow the firmware. - The 80 % charge limit no longer goes missing after an interrupted calibration. At the next boot the firmware briefly answered that the battery had no modes at all, and the limit disappeared from GNOME and the app until the module was reloaded. The module now retries for a few seconds before taking that answer.
- The app's battery page no longer shows an empty "Care" card when the firmware offers neither the charge limit nor calibration.
Installing and upgrading
curl -fLO https://raw.githubusercontent.com/FnnDK/acerctl/main/packaging/install.sh # Debian/Ubuntu: wget -nv -O install.sh <same URL>
sudo sh install.sh --nitro # or --acer, --predator; --no-gui for the CLI onlyOn Silverblue, Kinoite and Bluefin, reboot once afterwards. The README has the commands per product line.
Downloads
- RPMs for Fedora 44 (x86_64) and their SRPMs.
.debpackages for Debian 13 and Ubuntu 24.04/26.04 (amd64).acerctl-0.1.6-linux-x86_64.tar.gz: prebuilt binaries for other distributions, installed with scripts (see itsINSTALL.md).acerctl-0.1.6.tar.gz: the source with vendored Go modules and the built frontend.SHA256SUMS
acerctl 0.1.5
Installing comes down to one command per product line, the CLI gets the app's setup steps, and uninstalling removes everything. The kernel modules and the app are as in 0.1.4.
New
install.sh: one installer for Fedora 44 (dnf, andrpm-ostreeon Silverblue, Kinoite, Bluefin), Debian 13 and Ubuntu 24.04/26.04 (apt). It downloads this release's packages, checks them againstSHA256SUMSand installs them. Running it again upgrades: on the Atomic desktops in onerpm-ostreetransaction (norpm-ostree uninstallstep), and over an install made with the scripts, which it removes first.--acer,--nitroor--predatorpicks the app (without one, it goes by the laptop's product name),--no-guiinstalls only the daemon, the CLI and the kernel modules, and-nshows what it would do without changing anything.acerctl setup: what the app's setup screen does, in the CLI: theacer_wmioption that modes and fans need on Nitro and Predator models, enrolling the Secure Boot key that signs the kernel modules, and the modules themselves.acerctl setup applymakes the changes with one password and prints the code for the firmware's blue screen;acerctl statussays when something is left.uninstall.shremoves everything, the packages too (dnf,rpm-ostree,apt), for example to try another tool;--purgealso removes the settings.
Installing and upgrading
curl -fLO https://raw.githubusercontent.com/FnnDK/acerctl/main/packaging/install.sh # Debian/Ubuntu: wget -nv -O install.sh <same URL>
sudo sh install.sh --nitro # or --acer, --predatorOn Silverblue, Kinoite and Bluefin, reboot once afterwards. The README has the commands per product line.
Downloads
- RPMs for Fedora 44 (x86_64) and their SRPMs.
.debpackages for Debian 13 and Ubuntu 24.04/26.04 (amd64).acerctl-0.1.5-linux-x86_64.tar.gz: prebuilt binaries for other distributions, installed with scripts (see itsINSTALL.md).acerctl-0.1.5.tar.gz: the source with vendored Go modules and the built frontend.SHA256SUMS
acerctl 0.1.4
A small release for laptops without a keyboard backlight, and for installing the packages over an earlier install made with the scripts. Everything else is as in 0.1.3; 0.1.2 has the full notes.
Fixed
- No keyboard backlight timeout where there is no keyboard backlight. On laptops such as the Aspire AG15-71P the firmware's keyboard call answers as if the setting existed, so
acerctl statusshowed "Keyboard backlight off, timeout 30 s" and the timeout was offered.acer-wmi-extrasnow also reads the firmware's hotkey table (DMI type 170), which lists the keyboard backlight as present or absent, and hides the timeout when it is absent. Laptops with a keyboard backlight keep it (checked on the Nitro ANV15-52). - Packages over an install made with the scripts. Left in place, a script install shadows the packages: its daemon, CLI and app kept running instead of the packaged ones. The README commands now find one and remove it first with
uninstall.sh. When the packages are already installed,uninstall.shno longer unloads their kernel modules (the 80 % charge limit was off until a reboot).
Also
- Hardware reports (
tools/survey.sh): the summary says whether the DMI table lists a keyboard backlight. - Each known model (Nitro ANV15-52, Aspire AG15-71P, Predator PH16-71) is tested on the packages in Fedora 44 and Ubuntu 24.04 on every change.
Installing and upgrading
The README has a block per product line (Acer, Nitro, Predator) for Fedora 44 and for Debian 13 / Ubuntu 24.04 / 26.04, to paste on the host.
- Fedora Workstation, Debian, Ubuntu: run the block again;
dnf/aptupgrade in place and the modules are rebuilt (akmods, DKMS). Then reboot. - Silverblue, Kinoite, Bluefin: run the block again and reboot once. It replaces the installed packages in the same
rpm-ostreetransaction (rpm-ostreecannot upgrade local packages in place); removing them first withrpm-ostree uninstall, as before, also works. - Packages already installed on top of a script install: run
uninstall.shas the README's Uninstalling shows, thensudo systemctl enable --now acerd.
Downloads
- RPMs for Fedora 44 (x86_64) and their SRPMs.
.debpackages for Debian 13 and Ubuntu 24.04/26.04 (amd64).acerctl-0.1.4-linux-x86_64.tar.gz: prebuilt binaries for other distributions, installed with scripts (see itsINSTALL.md).acerctl-0.1.4.tar.gz: the source with vendored Go modules and the built frontend.SHA256SUMS
acerctl 0.1.3
A fix release for the packages: with the 0.1.2 RPMs and .deb packages, the 80 % charge limit was missing because the battery module never loaded. Everything else is as in 0.1.2, which has the full notes (Debian/Ubuntu packages, on-demand daemon, setup screen).
Fixed
acer-wmi-batteryloads by itself. The packages (akmod on Fedora, DKMS on Debian/Ubuntu) let the kernel load it when the battery's WMI device appears, but the module declared that device in lower case and the kernel announces it in upper case, so it never matched. Without the module,acerctl statusshowsacer_wmi_battery: absentand GNOME's Power settings have no "Preserve Battery Health" option. Installs made with the scripts were not affected.
If you are on 0.1.2 and do not want to upgrade yet, load it by hand (and at every boot with the second command):
sudo modprobe acer_wmi_battery && sudo systemctl restart upower acerd
echo acer_wmi_battery | sudo tee /etc/modules-load.d/acer-wmi-battery.confInstalling and upgrading
The README has a block per product line (Acer, Nitro, Predator) for Fedora 44 and for Debian 13 / Ubuntu 24.04 / 26.04, to paste on the host.
- Fedora Workstation, Debian, Ubuntu: run the block again;
dnf/aptupgrade in place and the module is rebuilt (akmods, DKMS). Then reboot. - Silverblue, Kinoite, Bluefin: remove the installed packages first, then run the block and reboot once:
sudo rpm-ostree uninstall acerctl acerctl-tray nitro-control-center akmod-acerctl acerctl-kmod-common # your app's name
Downloads
- RPMs for Fedora 44 (x86_64) and their SRPMs.
.debpackages for Debian 13 and Ubuntu 24.04/26.04 (amd64).acerctl-0.1.3-linux-x86_64.tar.gz: prebuilt binaries for other distributions, installed with scripts (see itsINSTALL.md).acerctl-0.1.3.tar.gz: the source with vendored Go modules and the built frontend.SHA256SUMS
acerctl 0.1.2
This pre-release adds packages for Debian and Ubuntu next to the Fedora 44 RPMs, starts the daemon by itself when it is needed, and adds a setup screen to the app that finishes the system configuration for you.
There is no package repository yet, so the packages are installed from the downloaded files and do not update automatically.
Fixed
- The daemon from the 0.1.1 RPM did not start (
acerdexited with status 127, "undefined symbol" for thenvmlfunctions): Fedora's build links with-z now, which resolves at startup the NVIDIA library symbols that are only loaded later, and only when the driver is present. The RPM build now linksacerdwith lazy binding and checks that it starts. If you installed 0.1.1 from the RPMs, upgrade (see below). The 0.1.1 binary archive was not affected.
What's new
- Debian and Ubuntu packages for Debian 13, Ubuntu 24.04 and Ubuntu 26.04: the daemon and CLI, the tray, the app in each product line's flavor, and
acerctl-dkms, which rebuilds the kernel modules for every new kernel. They were tested in Debian 12/13 and Ubuntu 22.04/24.04/26.04 containers (dependencies, the daemon and CLI, the app's libraries, the DKMS build for each kernel, removal), not yet on a real machine: reports are very welcome. - The daemon starts on demand. D-Bus starts
acerdwhen the app or the tray first needs it, and the packages enable it at install. Thesystemctl enable --now acerdstep is gone. - Setup screen. When the app opens, it lists what the system still needs and applies it with one password and one restart: the
acer_wmioption that 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). It can be reopened from Settings → Laptop → System setup. - Older kernels. The kernel modules build from Linux 5.15 on. The setup screen checks whether the kernel's
acer_wmihas the option it needs (Linux 6.9 and later) and says so when it does not. - Uninstall script for installs made with the scripts, including the ones under the project's earlier names (
nitrod/nitroctl/nitro-tray,nitrosensed):packaging/uninstall.shkeeps your settings,--purgeremoves them too. The install scripts now check that the new binaries exist before removing an older install, and refuse to run inside a toolbox/distrobox container, wheresudodoes not reach the system.
Packages
| Fedora 44 | Debian / Ubuntu | What it installs |
|---|---|---|
acerctl |
acerctl |
acerd (systemd service started on demand, D-Bus and polkit policies, Sense key hwdb entry) and the acerctl CLI |
acerctl-tray |
acerctl-tray |
the tray and Sense key agent |
nitro-control-center, predator-control-center, acer-control-center |
same names | the app with the branding of each product line; install only the one for your laptop |
akmod-acerctl + acerctl-kmod-common |
acerctl-dkms |
acer-wmi-extras and acer-wmi-battery, rebuilt for each kernel and signed with the local key when Secure Boot needs it |
Installing
The README has a block per product line (Acer, Nitro, Predator) for each system, to paste on the host. Nitro shown here; use predator- or acer-control-center for other laptops.
Fedora 44 (on Silverblue, Kinoite and Bluefin the block uses rpm-ostree; reboot afterwards):
v=0.1.2; app=nitro-control-center
mkdir -p acerctl-$v && cd acerctl-$v
for p in acerctl-$v-1.fc44.x86_64 acerctl-tray-$v-1.fc44.x86_64 $app-$v-1.fc44.x86_64 \
akmod-acerctl-$v-1.fc44.x86_64 acerctl-kmod-common-$v-1.fc44.noarch; do
curl -LO https://github.com/FnnDK/acerctl/releases/download/v$v/$p.rpm
done
if [ -e /run/ostree-booted ]; then
sudo rpm-ostree install ./*.rpm && echo "installed: reboot to start using it"
else
sudo dnf install ./*.rpm
fiDebian 13, Ubuntu 24.04 and 26.04:
v=0.1.2; app=nitro-control-center
mkdir -p acerctl-$v && cd acerctl-$v
for p in acerctl_${v}_amd64 acerctl-tray_${v}_amd64 ${app}_${v}_amd64 acerctl-dkms_${v}_all; do
wget -nv -O $p.deb https://github.com/FnnDK/acerctl/releases/download/v$v/$p.deb
done
sudo apt install ./*.debThen open the app: the setup screen shows anything that is left.
What the kernel offers depends on its version: acer_wmi has the operating modes from Linux 6.9 and fan control from 6.19. Fedora 44, Ubuntu 26.04 and Ubuntu 24.04 with the HWE kernel have both; Debian 13 has the modes only; Ubuntu 24.04's original 6.8 kernel has neither (battery, keyboard, sensors and the app still work).
Upgrading from 0.1.1
- Fedora Workstation: run the block above;
dnfupgrades in place. - Silverblue, Kinoite, Bluefin: remove the 0.1.1 packages first, then run the block and reboot once:
sudo rpm-ostree uninstall acerctl acerctl-tray nitro-control-center akmod-acerctl acerctl-kmod-common # your app's name - Script installs (from source or the binary archive): run
sudo sh packaging/uninstall.shon the host before installing the packages; a unit left in/etc/systemd/systemoverrides the packaged one. Your settings in/var/lib/acerdare kept and the packages use them.
Downloads
- RPMs for Fedora 44 (x86_64) and their SRPMs.
.debpackages for Debian 13 and Ubuntu 24.04/26.04 (amd64).acerctl-0.1.2-linux-x86_64.tar.gz: prebuilt binaries for other distributions, installed with scripts (see itsINSTALL.md).acerctl-0.1.2.tar.gz: the source with vendored Go modules and the built frontend.SHA256SUMS
acerctl 0.1.1
This pre-release adds RPM packages for Fedora 44: the daemon, CLI, tray and app installed in the system paths, plus an akmod that rebuilds the kernel modules for every new kernel. The features are the same as in 0.1.0, and the binary and source archives are still here.
There is no package repository yet, so these RPMs are installed from the downloaded files and do not update automatically.
Packages
| Package | What it installs |
|---|---|
acerctl |
acerd (systemd service, D-Bus and polkit policies, Sense key hwdb entry) and the acerctl CLI |
acerctl-tray |
the tray and Sense key agent |
nitro-control-center, predator-control-center, acer-control-center |
the app with the branding of each product line; install only the one for your laptop |
akmod-acerctl |
acer-wmi-extras and acer-wmi-battery, built by akmods for each kernel and signed with the local akmods key when Secure Boot needs it |
acerctl-kmod-common |
loads acer-wmi-extras at boot |
Installing on Fedora 44
Download the RPMs into one directory and pick the app of your product line. Nitro is shown here; use predator- or acer-control-center instead for other laptops:
sudo dnf install ./acerctl-0.1.1-1.fc44.x86_64.rpm ./acerctl-tray-0.1.1-1.fc44.x86_64.rpm \
./nitro-control-center-0.1.1-1.fc44.x86_64.rpm \
./akmod-acerctl-0.1.1-1.fc44.x86_64.rpm ./acerctl-kmod-common-0.1.1-1.fc44.noarch.rpm
sudo systemctl enable --now acerdOn Fedora Silverblue and Kinoite, run rpm-ostree install with the same files, reboot, and then run sudo systemctl enable --now acerd. With Secure Boot, akmods needs an enrolled signing key (kmodgenca and mokutil --import, as in the RPM Fusion Secure Boot guide). On an image-based system, akmods also needs the key in the image, which is what the akmods-keys package is for.
Nitro and Predator models also need acer_wmi loaded with predator_v4 for operating modes and fans (see the README).
Coming from the script install
The scripts installed to /usr/local and /etc, and a unit left in /etc/systemd/system overrides the packaged one. Remove the script install before installing the RPMs. Your settings in /var/lib/acerd are kept and the packages use them.
sudo sh packaging/install-gui.sh uninstall
sudo systemctl disable --now acerd.service acer-wmi-modules.service
sudo rm -f /usr/local/bin/acerd /usr/local/bin/acerctl /etc/systemd/system/acerd.service \
/etc/systemd/system/acer-wmi-modules.service /etc/dbus-1/system.d/io.github.fnndk.Acerd1.conf \
/usr/local/share/polkit-1/actions/io.github.fnndk.acerd.policy /etc/udev/hwdb.d/61-acerctl-keyboard.hwdb
sudo rm -rf /var/lib/acer-wmi-modules
sudo systemctl daemon-reloadOther changes
- The minimum Go version is now 1.26, the one Fedora 44 ships.
packaging/rpm/holds the specs and.copr/Makefileis ready for a COPR repository.
Downloads
- RPMs for Fedora 44 (x86_64) and their SRPMs, listed above.
acerctl-0.1.1-linux-x86_64.tar.gz: prebuilt binaries for other distributions, installed with scripts (see itsINSTALL.md).acerctl-0.1.1.tar.gz: the source with vendored Go modules and the built frontend.SHA256SUMS
acerctl 0.1.0
First release of acerctl: the controls of Acer's NitroSense, PredatorSense and AcerSense on Linux, alongside the in-tree acer_wmi driver. It ships a system daemon (acerd), a CLI (acerctl), a tray agent and an app in three flavors (Nitro, Predator and Acer Control Center). Each feature shows up only when the laptop's firmware offers it.
This is a pre-release: only two laptops have been tested.
Tested hardware
- Acer Nitro ANV15-52 (Fedora Silverblue 44): the kernel modules, daemon and CLI are validated on the hardware. This covers operating modes with AC/battery rules and power-profiles-daemon/tuned sync, fans (auto, max, manual), sensors, keyboard backlight timeout, USB charging while off, the 80 % charge limit and calibration, scenarios with App Sync, and the Sense key.
- Acer Aspire AG15-71P (Bluefin 44): the 80 % charge limit (GNOME "Preserve Battery Health"), the Sense key, the app and the tray. The firmware has no operating modes or fans, so the app does not show them.
- Predator: not tested.
acerd --simulate PHN16-72orPH16-71models these laptops from public reports, including RGB keyboard, light bar and logo lighting. Lighting has no real backend yet.
To help support other models, run sudo sh tools/survey.sh --probes and open the link it prints (see docs/hardware-reports.md).
Downloads
acerctl-0.1.0-linux-x86_64.tar.gz: prebuilt binaries (x86_64, glibc ≥ 2.34, WebKitGTK 4.1 for the app), the install scripts and the kernel modules as source. The steps are in itsINSTALL.md.acerctl-0.1.0.tar.gz: the source with vendored Go modules and the built frontend, which builds without network access.SHA256SUMS
Installing the binary archive
tar xzf acerctl-0.1.0-linux-x86_64.tar.gz && cd acerctl-0.1.0-linux-x86_64
sudo sh packaging/build-sign.sh && sudo sh packaging/install-modules.sh # needs make, gcc and kernel headers
sudo sh packaging/install-daemon.sh install
sudo sh packaging/install-gui.sh
acerctl statusNitro and Predator models also need acer_wmi loaded with predator_v4 for operating modes and fans (see the README).
Known limitations
- Installation is done by scripts into
/usr/local,/etcand/var/lib. There are no rpm, deb or Flatpak packages yet. - The kernel modules must be rebuilt after every kernel update (
sudo sh packaging/build-sign.sh). With Secure Boot, the script signs them with the akmods key on Fedora; on other distributions, sign them with your own enrolled MOK. - Builds are x86_64 only.