Skip to content

cleyton1986/predator-sense

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

164 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Predator Sense for Linux

๐Ÿ‡ง๐Ÿ‡ท Leia em Portuguรชs

Predator Sense Logo

Unofficial Linux kernel module and GUI for Acer Gaming laptop hardware control
RGB Keyboard Backlighting โ€ข Turbo Mode โ€ข Temperature Monitoring โ€ข Performance Profiles

Rust GTK4 100% Rust userspace License Linux

Created and maintained by Cleyton Alves


Disclaimer

Warning Use at your own risk! This is an unofficial project. Acer was not involved in its development. The kernel module was developed through reverse engineering of the official PredatorSense Windows application. This driver interacts with low-level WMI/ACPI methods that have not been tested on all laptop series. The authors are not responsible for any damage to your hardware.

Note All trademarks, product names, and logos mentioned (Acer, Predator, PredatorSense, Helios, Nitro, AeroBlade, CoolBoost) are the property of their respective owners (Acer Inc.). This project is not affiliated with, endorsed by, or sponsored by Acer Inc. in any way.

Product images The laptop photos under predator-sense-gui/resources/models/ depict official Acer Predator/Nitro products and are used solely to let the app visually identify the model detected on the user's own machine (matched against the product_name reported by the system's DMI/BIOS). These images are not licensed under this project's GPLv3 license โ€” copyright in the underlying product photography belongs to Acer Inc. and/or its original creators. They are included here on a good-faith, non-commercial, purely informational basis (nominative/product-identification use), with no claim of ownership by this project. If you are the rights holder and would like an image removed, please open an issue and it will be taken down promptly.

This application was created for personal use, to get the most out of an Acer gaming laptop on Linux โ€” since Acer does not provide official Linux support for PredatorSense. It is shared freely for anyone who wants the same.


Screenshots

Dashboard โ€” Laptop photo and full system specs at a glance: CPU, GPU, RAM, storage, network and OS.

Dashboard

Temperatures โ€” Live gauges for CPU, GPU, system, NVMe drives, WiFi and RAM, all in one screen.

Temperatures

Usage โ€” CPU, GPU, memory and storage with top processes, animated bars and click-to-expand details (with a CSS-style fire animation on the temperature gauge).

Usage

Network โ€” Real-time download/upload graphs with peak tracking and automatic interface detection (Wi-Fi or Ethernet).

Network

Lighting โ€” Static per-zone (4 sections) and dynamic RGB keyboard effects (Breathing, Neon, Wave, Shifting, Zoom).

Lighting

Modes โ€” Performance profiles: Quiet, Balanced, Performance and Turbo (CPU governor + Intel EPP + GPU power limit).

Modes

Fan Control โ€” Live RPM with animated spinning fans, CoolBoost toggle and Auto/Max modes.

Fan Control

Battery โ€” Charge percentage, voltage, current, power, cycles, health, manufacturer and 80% charge limit for longevity.

Battery

GPU โ€” NVIDIA dashboard with live graphs, clocks, utilization, VRAM, power draw and PCIe info.

GPU

Graphs โ€” Detailed CPU and GPU history charts with min/max tracking.

Graphs

AI Assistant (beta) โ€” Local AI assistant powered by Ollama: chat, model manager (list installed models, download new ones, pick which one runs), live VRAM/GPU resource usage while it's thinking, and a persistent action log.

AI Assistant

Settings โ€” Minimize to tray, start on boot, auto-apply profile on start, language preferences, and per-model supported-features list.

Settings

Cover logo lighting โ€” Independent RGB control for the logo on the back of the display, on models with a color-capable cover logo (Static/Breathing/Neon). Runtime-detected: the control only appears if the hardware responds to a capability probe, so it stays safely hidden on models without it.

Cover logo lighting

Cover logo lit up green on a Predator PHN16-73

Feature contributed by @jlucaso1, tested on their own Predator PHN16-73. This laptop's cover logo isn't color-capable, so the feature was verified using their hardware.


About

Unofficial Linux kernel module for Acer Gaming laptop RGB keyboard backlighting and Turbo mode (Acer Predator, Acer Helios, Acer Nitro).

Inspired by and based on the acer-predator-turbo-and-rgb-keyboard-linux-module project by JafarAkhondali and contributors. This project extends the existing Linux Acer-WMI kernel module to support Acer gaming functions, and adds a full GUI desktop application built with Rust and GTK4.


Features

Feature Description
Dashboard Laptop photo + complete system specs (CPU, GPU, RAM, storage, network, OS)
Temperatures Live gauges for CPU, GPU, system, NVMe, WiFi and RAM
Usage 4-tab view: CPU / GPU / Memory / Storage with top processes, click-to-expand details and CSS-style fire animation on the temperature gauges
Network Real-time download/upload graphs with peak tracking and auto interface detection
RGB Keyboard Control Static per-zone (4 zones) and dynamic effects (Breathing, Neon, Wave, Shifting, Zoom). On hardware without the kernel module (I2C-HID controller only), static color, brightness, backlight-off and the Breathing/Neon effects work natively over HID too โ€” see Compatibility
RGB Cover Logo Independent power, solid-color, brightness, Breathing and Neon controls for the emblem on the back of the display, with a live vector preview. Exposed only after runtime HID capability detection
Performance Profiles Quiet / Balanced / Performance / Turbo modes (CPU governor + Intel EPP + GPU power limit)
Fan Control Live RPM with animated spinning fans, CoolBoost toggle, Auto/Max modes, plus experimental per-fan PWM control & auto temperature curve (where supported)
Battery Charge stats, cycles, health, manufacturer info and 80% charge limit for longevity
GPU Dashboard NVIDIA metrics: temperature, utilization, VRAM, clocks, power draw, PCIe info with live graphs, plus a power limit (TGP) slider
Graphs Detailed CPU and GPU history charts with min/max tracking
AI Assistant ๐Ÿงช Local, opt-in AI assistant powered by Ollama โ€” reads live hardware state and suggests or applies changes through a fixed, already-validated set of actions (thermal profile, fan mode, CoolBoost, RGB, GPU power limit, battery). Chat, model manager (download/select), live resource/VRAM monitor and a persistent action log. Auto-apply or always-confirm, your choice. Requires Ollama installed separately โ€” see AI Assistant below
Auto capability detection Detects what each model supports and adapts the UI โ€” unsupported features are shown as "not available on this model" instead of erroring. Supported features are listed in Settings
Temperature alerts Desktop notification when CPU/GPU exceed 90ยฐC (works in the tray)
Auto power profile Switches profile automatically on AC/battery change โ€” target profile for each state is configurable in Settings (default: Performance on AC, Balanced on battery)
Debug logging Optional toggle in Settings โ€” logs daemon and app events to ~/.local/share/predator-sense/ (rotated, 5MBร—3) for remote troubleshooting. Off by default
System Tray Minimize to tray with the Predator icon โ€” app stays alive in background
PredatorSense Key Hardware key mapping โ€” the key next to NumLock opens the app
DKMS Kernel modules rebuild automatically across kernel upgrades
Internationalization Automatic English / Portuguese based on system locale
Gaming UI Dark theme with pulsing cyan neon bars, dashed circular gauges, polygon panel borders

Compatibility

Will this work on my laptop?

Legend: โœ… tested & working ยท ๐ŸŸก implemented, not tested (needs a tester) ยท ๐Ÿงช experimental (needs a tester) ยท โŒ not working ยท - not applicable

Product Name Turbo (Impl.) Turbo (Tested) RGB (Impl.) RGB (Tested) Fan RPM read Fan profiles Fan PWM %
AN515-45 - - โœ… โœ… โŒ - โŒ
AN515-55 - - โœ… โœ… โŒ - โŒ
AN515-56 - - โœ… โœ… โŒ - โŒ
AN515-57 - - โœ… โœ… โŒ - โŒ
AN515-58 โœ… ๐ŸŸก โœ… โœ… ๐ŸŸก ๐ŸŸก ๐Ÿงช
AN517-41 - - โœ… โœ… โŒ - โŒ
PH16-71 โœ… ๐ŸŸก โœ… ๐ŸŸก ๐ŸŸก - โŒ
PH315-52 โœ… โœ… โœ… โœ… ๐ŸŸก - โŒ
PH315-53 โœ… โœ… โœ… โœ… ๐ŸŸก - โŒ
PH315-54 โœ… โœ… โœ… โœ… โœ… โœ… โŒ
PH315-55 โœ… ๐ŸŸก โœ… โŒ ๐ŸŸก - โŒ
PH317-53 โœ… โœ… โœ… โœ… ๐ŸŸก - โŒ
PH317-54 โœ… ๐ŸŸก โœ… ๐ŸŸก ๐ŸŸก - โŒ
PH317-55 - - โœ… ๐ŸŸก โŒ - โŒ
PH517-51 โœ… ๐ŸŸก โœ… ๐ŸŸก ๐ŸŸก - โŒ
PH517-52 โœ… ๐ŸŸก โœ… ๐ŸŸก ๐ŸŸก - โŒ
PH517-61 โœ… ๐ŸŸก โœ… โœ… ๐ŸŸก - โŒ
PHN16-71 โœ… ๐ŸŸก โœ… ๐ŸŸก ๐ŸŸก - โŒ
PHN16S-71 โœ… โœ… โœ… ๐ŸŸก โœ… - โŒ
PHN16-72 โœ… ๐ŸŸก โœ… ๐ŸŸก ๐ŸŸก ๐ŸŸก ๐Ÿงช
PHN16-73 โœ… ๐ŸŸก โœ… ๐ŸŸก ๐ŸŸก ๐ŸŸก ๐Ÿงช
PHN18-71 โœ… โœ… โœ… โœ… ๐ŸŸก - โŒ
PT314-51 โŒ โŒ โœ… โœ… ๐ŸŸก - โŒ
PT314-52s โœ… โœ… โœ… ๐ŸŸก ๐ŸŸก - โŒ
PT315-51 โœ… โœ… โœ… โœ… ๐ŸŸก - โŒ
PT316-51 โœ… โœ… โœ… โœ… ๐ŸŸก - โŒ
PT515-51 โœ… โœ… โœ… โœ… ๐ŸŸก - โŒ
PT516-52s โœ… ๐ŸŸก โœ… โœ… ๐ŸŸก - โŒ
PT917-71 โœ… ๐ŸŸก โœ… ๐ŸŸก ๐ŸŸก - โŒ

If your model is not listed, it may still work โ€” the kernel module detects compatible WMI interfaces automatically. If it worked (or didn't) for you, please open an issue mentioning your model so we can update this table.

Fan control โ€” three levels

Level What it does Availability
Fan RPM read Read CPU/GPU fan speed (fan1_input, fan2_input) Most gaming models (auto-detected)
Fan profiles Quiet / Balanced / Performance / Turbo via platform_profile predator_v4 models
Fan PWM % ๐Ÿงช Per-fan speed control (pwm1/pwm2 0โ€“100%) ported from mainline acer-wmi via WMI โ€” kernel โ‰ฅ 6.14 only Subset of models with ACER_CAP_PWM (AN515-58, PHN16-72/73, โ€ฆ)

๐Ÿงช PWM fan control is experimental. It is ported from the upstream Linux kernel acer-wmi driver and uses safe WMI methods (no raw EC writes), but it has not been verified on real hardware by the maintainer (who owns a PH315-54, which has no PWM). If you have a supported model, testing reports are very welcome. Use at your own risk โ€” see the disclaimer at the top.

RGB without the kernel module (I2C-HID hardware only)

Some models (confirmed: PHN16S-71, PHN16-73) route the keyboard's RGB controller through a separate I2C-HID chip (ENEK5130) instead of the facer.ko WMI interface โ€” the app talks to it directly via /dev/hidrawN, so these work even if the kernel module isn't loaded at all:

Feature Status
Static per-zone color, brightness, backlight-off โœ… confirmed working (PHN16S-71)
Dynamic effects โ€” Breathing, Neon ๐Ÿงช Native, single HID write, hardware loops the pattern on its own โ€” awaiting confirmation on real hardware
Dynamic effects โ€” Wave, Shifting, Zoom On-screen preview only (no hardware writes) โ€” the effect codes for these were found to mean different things across hardware generations, so they're not wired up yet
RGB cover logo โ€” off, solid color, brightness, Breathing, Neon โœ… confirmed working (PHN16-73)

Cover-logo support is not enabled from a model-name allow-list. The controller must advertise target 0x83 in its A1 target report and return matching, non-empty A3 capabilities before the UI is exposed; the app repeats that check immediately before every write. The hotkey daemon restores only a setting that the app previously applied successfully after login and resume, and skips the logo entirely when there is no saved setting or the target is absent.

Already running Linuwu-Sense or DAMX?

Linuwu-Sense (and DAMX, which is built on it) is a separate, unrelated project that also drives Acer Predator/Nitro hardware on Linux. It's not a dependency of this project and none of its code is used here โ€” but its kernel module binds the same WMI GUIDs facer needs, and the kernel won't let two drivers claim the same device at once.

If the installer detects linuwu_sense already loaded or DKMS-installed, it automatically leaves your existing setup alone โ€” it won't blacklist acer_wmi or force-load facer, so it won't fight (or break) a Linuwu-Sense/DAMX install that already works. Keyboard RGB still works through this app over the HID path (see above) regardless of which platform driver is active; fan/thermal control in that case stays with whichever tool you already had managing it.


Installation

Prebuilt Installer (Fastest)

Download the release installer directly and run it:

curl --fail --location https://github.com/cleyton1986/predator-sense/releases/latest/download/predator-sense-installer --output predator-sense-installer
chmod +x predator-sense-installer
sudo ./predator-sense-installer --install

The installer, privileged helper, hotkey listener, and tray service are all provided by the same Rust multicall binary. The installer downloads and configures everything without a shell-script bootstrap.

Interactive Installer (prebuilt binary, no Rust toolchain needed)

Download the predator-sense-installer binary from the Releases page. It's a standalone Rust binary, not a bundle โ€” it still needs internet access to fetch the app's source (for the kernel module) and the matching prebuilt release binary, but it skips installing Rust and compiling the GTK4 app on your machine entirely:

chmod +x predator-sense-installer
sudo ./predator-sense-installer

Select option 1 (Full Installation). The installer will automatically:

  1. Detect your distribution (Debian/Ubuntu/Mint, Fedora, Arch)
  2. Install system dependencies (GTK4, libadwaita, build tools, kernel headers)
  3. Download the matching release's source + prebuilt binary
  4. Compile and load the facer kernel module (this part always compiles locally โ€” kernel modules can't be shipped prebuilt across different kernel versions)
  5. Create desktop menu entry with icon
  6. Map the PredatorSense hardware key (auto-start on login)
  7. Set up system tray support

The prebuilt path doesn't need Rust/cargo on the target machine. The installer is also copied to /opt/predator-sense/ as a standalone management tool for status checks, kernel-module reloads, upgrades, and uninstalling (see Installer Options).

After installation, open the app by:

  • Pressing the PredatorSense key (next to NumLock)
  • Searching "Predator Sense" in your application menu
  • Running /opt/predator-sense/predator-sense in a terminal

Manual Install (Build from source)

Prerequisites

Debian / Ubuntu / Linux Mint
sudo apt install libgtk-4-dev libadwaita-1-dev pkg-config build-essential \
    gcc make dkms curl tar linux-headers-$(uname -r)
Fedora
sudo dnf install gtk4-devel libadwaita-devel pkg-config gcc make \
    dkms curl tar kernel-devel-$(uname -r)
Arch Linux
sudo pacman -S gtk4 libadwaita pkgconf gcc make dkms curl tar linux-headers

Rust (if not installed):

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source ~/.cargo/env

Build & Install

# Clone the repository
git clone https://github.com/cleyton1986/predator-sense.git
cd predator-sense/predator-sense-gui

# Build the GUI and the Rust installer/services
cargo build --release
cargo build --release --manifest-path installer/Cargo.toml

# Install the local build and register the existing C kernel sources with DKMS
sudo installer/target/release/predator-sense-installer --install

# Run
/opt/predator-sense/predator-sense

Usage

Keyboard RGB

  1. Go to Lighting in the sidebar
  2. Choose Static (per-zone colors) or Dynamic (effects)
  3. Static mode: adjust R/G/B sliders for each of the 4 keyboard sections
  4. Dynamic mode: select an effect (Breathing, Neon, Wave, Shifting, Zoom) and adjust speed
  5. Click Apply

On I2C-HID-only hardware without the kernel module (see Compatibility), Breathing and Neon animate for real; Wave/Shifting/Zoom show an on-screen preview only, clearly labeled as such โ€” the physical keyboard doesn't change for those yet.

RGB Cover Logo

  1. Go to Lighting and select Cover logo (the selector appears only when the compatible HID target is detected)
  2. Use Lighting to turn the emblem on or off
  3. Choose Static, Breathing or Neon, then adjust the available color, brightness and speed controls while checking the live preview
  4. Click Apply to logo

The last successfully applied state is restored when the user hotkey service starts and after suspend/hibernate. Animated-effect colors are firmware-controlled, so the preview represents their behavior rather than offering a color picker for those modes.

The firmware owns the lighting animation shown before Linux starts the user service. A saved โ€œoffโ€ state is restored after login, but this app cannot suppress the earlier BIOS/boot animation.

Performance Profiles

On active Intel P-State + HWP systems, the CPU side resolves as follows:

Profile HWP policy Intel EPP Min. performance GPU Power Fan Use Case
Quiet powersave power 10% 40Wยณ Auto Silent work
Balanced powersave balance_performance 17% 80Wยณ Auto General use
Performance powersaveยน performance 50% 100Wยณ Max Gaming
Turbo performanceยฒ 0 (kernel-forced) 100% 110Wยณ Max Maximum performance

Selecting any profile also applies its fan mode - no separate step needed. Picking Performance or Turbo pushes the fan to Max (same as the physical Turbo key); Quiet and Balanced leave it on Auto.

ยน Intel P-State's HWP powersave policy is a dynamic scaling algorithm, not the generic minimum-frequency governor. It keeps the model-specific named EPP writable, making Performance a dynamic 50%-to-maximum tier.

ยฒ The HWP performance policy itself forces EPP 0 and restricts the available P-state range to its upper boundary. Predator Sense relies on that kernel behavior rather than requiring numeric EPP writes. The backend is detected from every cpufreq policy, without a CPU model allowlist. Other drivers retain the existing performance + named performance mapping, and systems without EPP skip only that optional control.

ยณ Best-effort via nvidia-smi -pl, same as the GPU Dashboard's power limit slider below - silently skipped if nvidia-smi isn't present, and on some laptops the vBIOS never exposes NVML's power-limit control at all (nvidia-smi -q reports Power Management Object: N/A, every -pl value is rejected regardless of what's requested). That's a firmware-level limit, not something this app - or any Linux software - can change; raising it means flashing a different vBIOS with a Windows-only tool like nvflash, a real risk of bricking the GPU and squarely the owner's own call.

Perfil automรกtico por energia / Power-source auto-profile

When enabled in Settings (on by default for new installs), this isn't just a reaction to plugging/unplugging - it's continuously enforced:

  • On AC: always Performance or Turbo. If one of those two is already active, it's left alone - the auto-switcher never fights a manual choice between them.
  • On battery: always Balanced or Quiet, never Performance/Turbo. Below 15% battery, Quiet is forced regardless of the configured target.

GPU Dashboard

Real-time NVIDIA GPU monitoring:

  • Temperature, utilization, VRAM usage, power draw (circular gauges)
  • Live temperature and utilization history graphs (2 min window)
  • Core clock, memory clock, P-State, PCIe link info, VBIOS version

AI Assistant (beta)

An opt-in local AI assistant, powered by Ollama running entirely on your machine โ€” nothing is sent anywhere.

  1. Install Ollama separately by following its official Linux instructions
  2. Go to AI in the sidebar and download a model from the built-in model manager (smollm2:1.7b or larger โ€” smaller models don't reliably support tool-calling)
  3. Enable the assistant in Settings and choose Auto-apply (applies suggestions immediately) or Always confirm (default โ€” every suggested change waits for your approval)

The assistant reads live hardware state (temperature, fan, thermal profile, battery) and can suggest or apply changes through a fixed, already-validated set of actions โ€” it never touches raw hardware/EC access directly, and every action maps 1:1 to a function this app already used before the AI feature existed. The model loads only to run an analysis, then unloads โ€” it doesn't sit idle in memory. All AI activity is recorded in a persistent, reviewable action log on the same page.


Installer Options

The Rust installer provides an interactive TUI:

sudo ./predator-sense-installer              # Interactive menu
sudo ./predator-sense-installer --install    # Direct full install
sudo ./predator-sense-installer --uninstall  # Remove everything
sudo ./predator-sense-installer --reload-module # Rebuild/reload the kernel module
sudo ./predator-sense-installer --status     # Show component status

Uninstall

sudo ./predator-sense-installer  # Select option 2

Or manually:

pkill -f "/opt/predator-sense/predator-sense"
sudo rm -rf /opt/predator-sense
sudo rm -f /usr/share/applications/predator-sense.desktop
sudo rm -f /usr/share/icons/hicolor/128x128/apps/predator-sense.png
rm -f ~/.config/systemd/user/predator-sense-hotkey.service
rm -f ~/.config/autostart/predator-sense-hotkey.desktop
sudo rmmod facer  # Optional: unload kernel module

Troubleshooting

Keyboard RGB not changing / stuck on one effect

The kernel module state may be stuck. Reload it:

sudo rmmod facer
sudo insmod /path/to/kernel/facer.ko
# Or use the installer: sudo ./predator-sense-installer โ†’ Option 4
Module not loading
# Check WMI device exists
ls /sys/bus/wmi/devices/7A4DDFE7-5B5D-40B4-8595-4408E0CC7F56/

# Check kernel logs
sudo dmesg | grep -i facer

# Ensure headers match your kernel
sudo apt install linux-headers-$(uname -r)
PredatorSense key not working
# Check the Rust hotkey service
systemctl --user status predator-sense-hotkey.service
pgrep -af predator-sense-hotkey

# Ensure user is in 'input' group (logout required after adding)
groups | grep input
sudo usermod -aG input $USER
NVIDIA GPU page shows no data
# Verify nvidia-smi works
nvidia-smi
# If not, install NVIDIA proprietary drivers
My model has no matching quirk (missing profiles/fan-read/PWM)

If your exact model isn't in the compatibility list yet, try forcing every optional predator_v4-family feature on and see what actually works on your hardware:

sudo modprobe facer enable_all=1
# persistent across reboots:
echo "options facer enable_all=1" | sudo tee /etc/modprobe.d/facer-options.conf

This is WMI-only (no raw EC writes), so on hardware that doesn't implement a given feature it's a safe no-op, not a bad write. Please open an issue with your model and what worked/didn't โ€” that's how new quirks get added.


Project Structure

predator-sense-gui/
โ”œโ”€โ”€ kernel/                      # Linux kernel modules (DKMS-managed)
โ”‚   โ”œโ”€โ”€ facer.c                  # ACPI/WMI interface to Acer hardware
โ”‚   โ”œโ”€โ”€ acer-wmi-battery.c       # Battery charge limit support
โ”‚   โ”œโ”€โ”€ acpi_ec.c                # Raw EC access via /dev/ec (from MusiKid/acpi_ec)
โ”‚   โ”œโ”€โ”€ Makefile
โ”‚   โ””โ”€โ”€ dkms.conf                # DKMS auto-rebuild config
โ”œโ”€โ”€ installer/                   # Rust multicall installer and services
โ”‚   โ”œโ”€โ”€ Cargo.toml
โ”‚   โ””โ”€โ”€ src/
โ”‚       โ”œโ”€โ”€ main.rs              # Typed dispatch by installed executable name
โ”‚       โ”œโ”€โ”€ constants.rs         # Central paths, protocol values and hardware constants
โ”‚       โ”œโ”€โ”€ install.rs           # Installer + DKMS registration
โ”‚       โ”œโ”€โ”€ helper.rs            # Validated privileged hardware operations
โ”‚       โ”œโ”€โ”€ hotkey.rs            # Linux input-event listener
โ”‚       โ”œโ”€โ”€ tray.rs              # StatusNotifierItem service
โ”‚       โ””โ”€โ”€ i18n.rs              # Typed EN/PT messages
โ”œโ”€โ”€ protocol/                    # Shared typed GUI/helper contract
โ”‚   โ”œโ”€โ”€ Cargo.toml
โ”‚   โ””โ”€โ”€ src/lib.rs               # Actions, paths, limits and binary names
โ”œโ”€โ”€ src/                         # Rust GTK4 application
โ”‚   โ”œโ”€โ”€ main.rs
โ”‚   โ”œโ”€โ”€ app_state.rs             # Global window-visibility flag (gates timers)
โ”‚   โ”œโ”€โ”€ i18n.rs                  # EN/PT internationalization
โ”‚   โ”œโ”€โ”€ config.rs                # User preferences (JSON)
โ”‚   โ”œโ”€โ”€ tray.rs                  # Rust tray-service lifecycle
โ”‚   โ”œโ”€โ”€ hardware/
โ”‚   โ”‚   โ”œโ”€โ”€ helper.rs            # Typed privileged-helper client
โ”‚   โ”‚   โ”œโ”€โ”€ rgb.rs               # RGB via /dev/acer-gkbbl-*
โ”‚   โ”‚   โ”œโ”€โ”€ hwmon.rs             # /sys/class/hwmon index (cached OnceLock)
โ”‚   โ”‚   โ”œโ”€โ”€ sensors.rs           # Temps, fans, RAM, network
โ”‚   โ”‚   โ”œโ”€โ”€ gpu.rs               # nvidia-smi parser with TTL cache
โ”‚   โ”‚   โ”œโ”€โ”€ procs.rs             # /proc sampler (CPU per-core, memory, process list)
โ”‚   โ”‚   โ”œโ”€โ”€ storage.rs           # Disk usage via df
โ”‚   โ”‚   โ”œโ”€โ”€ sysinfo.rs           # DMI + CPU + GPU + OS specs
โ”‚   โ”‚   โ”œโ”€โ”€ fan.rs               # Fan mode + CoolBoost
โ”‚   โ”‚   โ”œโ”€โ”€ extras.rs            # Battery limit, LCD overdrive, USB charging, boot anim
โ”‚   โ”‚   โ”œโ”€โ”€ profile.rs           # CPU governor + EPP + GPU power
โ”‚   โ”‚   โ”œโ”€โ”€ ai_assistant.rs      # Ollama tool-calling: fixed allow-list mapped to existing hardware:: setters
โ”‚   โ”‚   โ”œโ”€โ”€ ai_snapshot.rs       # Ephemeral hardware-state snapshot fed to the AI, cleared after each read
โ”‚   โ”‚   โ”œโ”€โ”€ ai_actionlog.rs      # Persistent, reviewable log of everything the AI suggested/applied
โ”‚   โ”‚   โ””โ”€โ”€ setup.rs             # Kernel module management
โ”‚   โ””โ”€โ”€ ui/                      # GTK4 pages (Cairo custom widgets)
โ”‚       โ”œโ”€โ”€ window.rs            # Main window, sidebar, neon bars, hide-to-tray
โ”‚       โ”œโ”€โ”€ dashboard_page.rs    # Hero + system specs
โ”‚       โ”œโ”€โ”€ temperatures_page.rs # All temperature gauges
โ”‚       โ”œโ”€โ”€ usage_page.rs        # CPU/GPU/Mem/Storage with top processes
โ”‚       โ”œโ”€โ”€ network_page.rs      # Download/upload with peak tracking
โ”‚       โ”œโ”€โ”€ rgb_page.rs          # Keyboard RGB with visual zones
โ”‚       โ”œโ”€โ”€ fan_control_page.rs  # Animated fans + CoolBoost
โ”‚       โ”œโ”€โ”€ fan_page.rs          # Performance profiles
โ”‚       โ”œโ”€โ”€ battery_page.rs      # Battery stats + charge limit
โ”‚       โ”œโ”€โ”€ gpu_page.rs          # NVIDIA GPU dashboard
โ”‚       โ”œโ”€โ”€ monitor_page.rs      # Detailed CPU/GPU history graphs
โ”‚       โ”œโ”€โ”€ ai_page.rs           # AI Assistant: chat, model manager, resource monitor, action log
โ”‚       โ”œโ”€โ”€ setup_page.rs        # Kernel module setup wizard
โ”‚       โ””โ”€โ”€ gauge_widget.rs      # Dashed circular gauge widget
โ””โ”€โ”€ resources/
    โ”œโ”€โ”€ style.css                # Gaming dark theme
    โ””โ”€โ”€ predator-icon.svg        # System tray icon

Credits & Acknowledgments

Forking or reusing this project

This project is licensed under GPL-3.0, so you're free to fork, modify and redistribute it under the same license. If you do โ€” especially if you build a derivative app or reuse significant parts of the GUI/kernel module โ€” please keep a visible credit to the original author (a mention of Cleyton Alves / this repo in your README, About screen, or credits section is all that's needed). It's a small ask that goes a long way for an independent, unpaid side project.

Support the Project

If this project was useful to you and you'd like to support its development, consider buying me a coffee:

Donate via PayPal

PIX (Brazil): cleyton1986@gmail.com

Any contribution is voluntary and greatly appreciated! It helps keep the project alive and motivates new features.


License

This project is licensed under the GNU General Public License v3.0 โ€” see the LICENSE file for details.

This is free software: you can redistribute it and/or modify it under the terms of the GNU GPL as published by the Free Software Foundation.

Exception โ€” product images: the GPLv3 license above covers this project's source code only. The Acer Predator/Nitro laptop photos under predator-sense-gui/resources/models/ are third-party product images (see Disclaimer above) and are not covered by the GPLv3 grant; all rights in those images remain with Acer Inc. and/or the original photographers.

This software is provided "as is", without warranty of any kind. The authors are not responsible for any damage that may occur from using this software. By installing and using this software, you acknowledge that you do so at your own risk.

About

๐ŸŽฎ Predator Sense for Linux โ€” Unofficial hardware control for Acer Predator/Helios/Nitro gaming laptops. RGB keyboard, GPU monitoring, performance profiles, fan control. Built with Rust + GTK4.

Topics

Resources

License

Stars

14 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors