A native, lightweight GTK3 graphical interface for managing Acer battery settings (Health Mode and Calibration) via the RKKDR Linux kernel module.
- State-Aware Toggles: Automatically reads your current battery settings from hardware upon launch, ensuring you never misdiagnose your battery's state.
- Health Mode: Toggle the 80% charge limit to preserve battery lifespan.
- Calibration Mode: Toggle the battery calibration state.
- Live Temperature: Real-time polling of your battery's temperature directly from the hardware.
To compile and run this application, you must have the following installed on your system:
- GTK3 Development Libraries (
libgtk-3-devorgtk3-develdepending on your distro) - Make and GCC
- Polkit (
pkexec): Used to safely prompt for root permissions without hardcoding passwords.
- Clone the project:
git clone https://github.com/ItsMe-RiiK/AcerBattery.git cd AcerBattery - Run the installation script:
This script will automatically initialize the
./install.sh
RKKDRsubmodule if needed, compile the GUI application, and install theRKKDRkernel driver via DKMS so it persists across kernel updates.
You can launch the GUI directly from the provided launcher script:
./launcher.shWhat the launcher does:
- Checks if the
RKKDRkernel module is loaded in your system. - If it isn't, it will automatically find the source code from your local
RKKDRsubmodule (or fall back to a developer workspace) to compile and load the driver on-the-fly. - Grants local root X11 access.
- Uses
pkexecto prompt you for your password visually, and then runs the GUI with the necessary permissions to write to sysfs.
To add this application to your desktop menu:
- Copy the
.desktopfile (or create one using the template below) to~/.local/share/applications/acerbattery.desktop. - Run
update-desktop-database ~/.local/share/applications/.
This project keeps a reference to the upstream RKKDR kernel module using a git submodule, but is intentionally designed to not clone the duplicate files to your hard drive, keeping your workspace clean.
If you ever need to update the submodule commit reference to match upstream changes, just run the provided script:
./update_submodule.shThis script will fetch the latest commits, update your submodule reference, commit the change, and immediately clean up the copied files again.
This project is licensed under the GPL-3.0 LICENSE