Have an Acer laptop running Arch Linux? You're in the right place.
A modular compatibility suite for Acer laptops running Arch Linux and Arch-based distributions. Provides hardware-aware detection, kernel driver installation, a GTK4 control panel with D-Bus IPC and polkit authorization, and targeted fixes for a broad range of Acer laptop issues on Linux.
| Model Family | Fan/RGB (Driver) | Battery Limit | GPU Switching | Touchpad Fix | Audio Fix | WiFi/BT | Power Mgmt | Thermal Profiles |
|---|---|---|---|---|---|---|---|---|
| Nitro | R | R | R | O | O | O | O | O |
| Predator | R | R | R | O | O | O | O | O |
| Helios | R | R | R | O | O | O | O | O |
| Triton | R | R | R | O | O | O | O | O |
| Swift | O | R | - | O | O | O | O | - |
| Aspire | O | R | O | O | O | O | O | - |
| Spin | O | R | - | O | O | O | O | - |
R = Recommended, O = Optional/Available, - = Not applicable
- Arch Linux
- CachyOS (auto-detected kernel headers)
- EndeavourOS
- Manjaro
- Garuda Linux
Archer uses a root daemon with a D-Bus system service for secure hardware control:
Archer GUI (GTK4/Adwaita) ── D-Bus (io.otectus.Archer1) ── Archer Daemon (root)
│ │ │
11 pages polkit auth sysfs / hwmon
system tray session-cached Linuwu-Sense driver
- Daemon (
archer-daemon.service): Runs as root, communicates with hardware via sysfs/hwmon, exposes a D-Bus interface with polkit-protected methods. - D-Bus service (
io.otectus.Archer1): Read-only methods (telemetry, settings) are unprivileged. Mutating methods (fan control, profile switching, display mode) require polkit authorization, cached per session. - GUI: GTK4/Adwaita application with system tray support (close-to-tray via D-Bus StatusNotifierItem). Connects to daemon exclusively through D-Bus.
- Installer: Bash-based modular system with 13 modules, hardware detection, manifest tracking, and interactive menu.
Installs the Linuwu-Sense kernel driver via DKMS for fan speed control, RGB keyboard access, and battery management at the hardware level. Blacklists the default acer_wmi module for exclusive hardware access.
Installs the acer-wmi-battery DKMS module to limit charging to 80%, extending battery lifespan. Persists across reboots via a udev rule. Prefers AUR installation when paru or yay is available.
Installs EnvyControl for NVIDIA Optimus hybrid graphics management. Supports three modes:
- hybrid — Integrated GPU by default, NVIDIA on demand (recommended)
- nvidia — Always use discrete GPU
- integrated — Disable NVIDIA entirely for maximum battery life
Addresses I2C HID touchpad detection failures common on several Acer models. Applies up to three strategies:
- AMD
pinctrl_amdmodule load ordering fix - Systemd service for I2C HID module reload on boot
- GRUB kernel parameters (
i8042.reset i8042.nomux)
Installs SOF firmware and ALSA UCM configuration. Platform-specific fixes:
- AMD: Configures SOF driver, disables legacy ACP PDM conflicts
- Intel: Validates SOF firmware loading, rebuilds initramfs if needed
Chipset-aware diagnostics and fixes:
- MediaTek (MT7921/MT7922/MT7925): Firmware checks, PCIe device reset, compatibility warnings
- Intel (AX200/AX210/AX211/BE200): rfkill unblocking, firmware validation
- Realtek: Guidance for AUR out-of-tree drivers
- Common: Bluetooth service setup, NetworkManager enablement
Installs TLP with an Acer-optimized configuration:
- Performance governor on AC, powersave on battery
- WiFi power management, USB autosuspend
- Runtime PM for PCI devices (NVIDIA GPU power saving)
Enables native acer_wmi thermal profile support on kernel 6.8+. Provides access to Eco, Silent, Balanced, Performance, and Turbo modes via the standard platform_profile sysfs interface and the physical mode button.
Conflict Warning: This module requires
acer_wmito be loaded, which conflicts with the driver module (Linuwu-Sense blacklistsacer_wmi). You cannot use both simultaneously.
GTK4/Adwaita control panel with a root daemon for real-time hardware management. The daemon exposes a D-Bus service (io.otectus.Archer1) with polkit authorization for secure access. Features include:
- Dashboard — CPU/GPU temperatures, usage, fan RPM, battery status with live charts
- Performance — Thermal profile selection, fan control (automatic/manual/custom curves)
- Battery — Charge limit toggle, battery calibration, USB charging levels
- Keyboard — 4-zone RGB color pickers, lighting effects, backlight timeout
- Display — GPU mode switching (integrated/hybrid/nvidia) with reboot gating
- Game Mode — One-click performance optimization (governor, EPP, NVIDIA persistence)
- Audio — Noise suppression toggle for the PipeWire virtual source
- Firmware — BIOS version display, fwupd update status
- System — LCD override, boot sound, system info, driver version
- Internals — Driver parameter forcing, daemon/driver restart controls
- System tray — Close-to-tray via D-Bus StatusNotifierItem, works on Wayland
Note: Requires a display server (X11 or Wayland). Install the driver module first for full hardware control.
Installs GameMode for automatic performance optimization during gaming. Switches CPU governor to performance, adjusts GPU power mode, and applies I/O priority tuning. The Archer daemon also provides a Game Mode toggle for manual activation.
Sets up real-time microphone noise suppression via PipeWire and rnnoise. Creates an "Archer Noise Suppression" virtual audio source that can be selected in any application for clean, noise-free input.
Installs v4l2loopback to create an "Archer Camera" virtual device for background blur and camera effects. Provides the foundation for AI-powered camera processing.
Installs fwupd for firmware update detection. Displays current BIOS version and checks the Linux Vendor Firmware Service (LVFS) for available updates. Advisory only — never performs automatic updates.
Clone the repository and run the installer:
git clone https://github.com/otectus/Archer.git
cd Archer
./install.shThe installer will:
- Detect your hardware (model, GPU, WiFi chipset, battery, kernel, distro)
- Recommend modules based on detected hardware
- Present an interactive menu for module selection (13 modules)
- Install shared dependencies and selected modules
- Verify each installation and report results
# Install all recommended modules
./install.sh --all
# Install specific modules
./install.sh --modules "driver,battery,gpu,gui"
# Skip confirmation prompts
./install.sh --all --no-confirm
# Preview without making changes
./install.sh --dry-run
# Check status of installed modules
./install.sh --verify
# Show help
./install.sh --help| Flag | Description |
|---|---|
--all |
Install all recommended modules (non-interactive) |
--modules LIST |
Comma-separated list of module IDs to install |
--verify |
Check status of previously installed modules |
--no-confirm |
Skip all confirmation prompts |
--dry-run |
Show what would be done without making changes |
--help, -h |
Show help message |
--version, -v |
Show installer version |
After installation, verify the state of installed modules:
# Linuwu-Sense Driver
dkms status # linuwu-sense should show 'installed'
lsmod | grep linuwu_sense # Module should be loaded
# Archer Daemon (D-Bus)
sudo systemctl status archer-daemon # Daemon should be active
busctl introspect io.otectus.Archer1 /io/otectus/Archer1 # D-Bus methods visible
# Archer GUI
archer-gui # Launch the control panel
# Battery
cat /sys/bus/wmi/drivers/acer-wmi-battery/health_mode # Should read '1'
# GPU
envycontrol --query # Should show configured mode
# TLP
sudo tlp-stat -s # Should show TLP active
# Thermal Profiles
cat /sys/firmware/acpi/platform_profile # Should show current profile
# Audio Enhancement
pactl list sources | grep "Archer Noise" # Virtual source should appear
# Firmware
fwupdmgr get-devices # Should list detected devicesThe Archer daemon persists user settings to /etc/archer/settings.json. This file is managed automatically and survives reboots. Settings include:
- Thermal profile selection
- Fan speed and custom curve definitions
- Keyboard RGB colors and effect modes
- Battery charge limit and USB charging level
- Game mode state
- Audio enhancement toggles
- LCD override and boot sound preferences
Settings are restored automatically when the daemon starts.
The uninstaller reads the install manifest to selectively remove only what was installed:
./uninstall.shIf no manifest is found (legacy installation), a fallback removes all known components.
Archer/
install.sh # Main entry point with interactive menu
uninstall.sh # Manifest-aware uninstaller
lib/
utils.sh # Shared logging, error handling, helpers
detect.sh # Hardware detection and recommendation engine
manifest.sh # Install state tracking (JSON manifest)
modules/
driver.sh # Linuwu-Sense kernel driver (DKMS)
battery.sh # acer-wmi-battery charge limiting
gpu.sh # EnvyControl GPU switching
touchpad.sh # I2C HID touchpad fixes
audio.sh # SOF firmware and audio config
wifi.sh # WiFi/Bluetooth troubleshooting
power.sh # TLP power management
thermal.sh # Kernel thermal profiles
gui.sh # Archer GUI + daemon + D-Bus + polkit
gamemode.sh # Game Mode (GameMode + governor switching)
audio-enhance.sh # Audio noise suppression (PipeWire/rnnoise)
camera-enhance.sh # Virtual camera (v4l2loopback)
firmware.sh # Firmware update advisor (fwupd)
gui/
archer_daemon.py # Root daemon (D-Bus, sysfs, fan curves, game mode)
archer_dbus.py # D-Bus service with polkit authorization
archer_gui.py # GTK4 application launcher
io.otectus.Archer1.conf # D-Bus system bus policy
io.otectus.Archer1.policy # Polkit action definitions
archer-daemon.service # Systemd service unit
io.github.archer.desktop # Desktop entry
archer/ # GUI modules (11 pages, client, tray, widgets)
assets/ # Icons (SVG, PNG)
- Secure Boot: If Secure Boot is enabled, you must manually sign DKMS kernel modules (linuwu-sense, acer-wmi-battery) or disable Secure Boot.
- BIOS Configuration: Some Acer laptops ship with RAID storage mode enabled. Switch to AHCI mode in BIOS for Linux compatibility. Disable Fast Startup for dual-boot setups.
- CachyOS: The installer automatically detects CachyOS kernels and installs the correct
-cachyos-headerspackage. Clang/LLVM compiler flags are applied when a Clang-built kernel is detected. - AUR Helpers: Modules that install AUR packages (battery, GPU, audio-enhance) prefer
paruoryayif available, with manual fallback otherwise. The installer never installs an AUR helper for you. - D-Bus / Polkit: The daemon registers as
io.otectus.Archer1on the system bus. Read-only methods are unprivileged. Mutating methods require polkit authorization, cached per session (auth_admin_keep). System-level operations (restart, modprobe) always prompt (auth_admin). - Install Manifest: Stored at
~/.local/share/archer/install-manifest.json. Tracks installed modules, files, DKMS modules, and packages for clean uninstallation. Legacy manifests from previous versions are migrated automatically. - Fan Curve Safety: The fan curve engine includes a watchdog that restores EC automatic control if the daemon crashes or 3 consecutive control ticks fail.
To add a new module, create modules/<id>.sh implementing the module interface:
MODULE_NAME="Display Name"
MODULE_ID="module-id"
MODULE_DESCRIPTION="What this module does"
module_detect() # Return 0 if relevant to current hardware
module_check_installed() # Return 0 if already installed
module_install() # Perform installation
module_uninstall() # Reverse installation
module_verify() # Return 0 if working correctlyThen add the module ID and label to the MODULE_IDS and MODULE_LABELS arrays in install.sh, and update the recommendation logic in lib/detect.sh.
Maintained for the Acer Linux Community.
