Skip to content

Repository files navigation

Java NitroSense Logo

Java NitroSense

A modern, lightweight replacement for Acer's NitroSense frontend.

Java 25PlatformsJavaFX

What is Java NitroSense?

  • Java NitroSense is an application designed to replace the official Acer NitroSense application frontend.
  • While the original application functions well, it has a slow startup time and an unresizable window.
  • This project resolves those issues by providing a responsive, modern interface built with AtlantaFX, and a fast native build with GraalVM.

Compatibility and Requirements

  • This application was built and tested exclusively on the Acer Nitro 5 AN515-54. Compatibility with other models is not guaranteed.
  • The application requires NitroSense version 3.01.3016. It is not compatible with the latest release.

How it works

  • Instead of directly manipulating hardware, the application acts as a client to Acer's native service, PSVC.exe (located in C:\Program Files\Acer\NitroSense Service).
  • It establishes a connection using the predatorsense_service_namedpipe named pipe. (Note: PSVC.exe must be running in the background for NitroSense features to function).
  • The app uses JNA Platform to create named pipes and read values from the Windows registry.
  • The app updates the registries (HKEY_LOCAL_MACHINE\SOFTWARE\OEM\NitroSense\) using PSVC.exe, so it does not require elevated permissions, and it also stays in sync with the original app.
  • The app uses OSHI to monitor CPU, GPU, and memory information.
  • If nvidia-smi is available the app uses it to get information about the gpu, otherwise it falls back to OSHI

Features

  • NitroSense:

    • Fan control:
      • Select different fan modes:
        • Auto
        • CoolBoost (does the same as selecting Auto mode and toggling CoolBoost on in the original app)
        • Max
        • Custom
      • See current fan speeds
    • System: Enable or disable LCD overdrive, keyboard backlight timeout, and the Windows/Menu keys.
  • Hardware Monitoring

    • CPU: Real-time monitoring of fan speed, utilization, and clock speed.
    • GPU: Real-time monitoring of fan speed, utilization, power consumption, and VRAM usage.
    • Memory: Current system RAM utilization.
  • User Interface

    • Supports both Celsius and Fahrenheit temperature formats.
    • Includes Dark and Light mode themes.
    • Adjustable font scaling for UI resizing.

Tools used in development

  • NamedPipeMaster was used to analyze how the original app communicates through the named pipe.
  • The app uses AtlantaFX for a modern look and feel.
  • Icons are from Lucide
  • Custom icons, such as the fan mode icons, were created in Blender

Showcase

DashboardDashboard

System settingsSystem settings

App settingsApp settings

CPU chartCPU chart hovering

Development

Prerequisites

  • JDK 25

Run the App

git clone https://github.com/robothaver/Java-NitroSense.git
cd Java-NitroSense
.\gradlew.bat run

Building the project

Build with Jlink

  1. Run jpackageImage gradle task
.\gradlew.bat jpackageImage
  1. The finished build can be found in build/jpackage/NitroSense

Native build with GraalVM

  1. Install GraalVM for Windows.
  2. Run application with the tracing agent enabled:
.\gradlew.bat -Pagent run
  1. Copy the configuration files into the project’s /META-INF/native-image directory using the metadataCopy task:
.\gradlew.bat metadataCopy --task run --dir src/main/resources/META-INF/native-image
  1. Download JavaFX SDK
  2. Rename extracted sdk to javafx_sdk and put in to the project root
  3. Open x64 Native Tools Command Prompt for VS and navigate to project root
  4. Build native image
.\gradlew.bat nativeCompile
  1. The finished build can be found in build/native/nativeCompile

About

A modern, lightweight replacement for Acer's NitroSense frontend.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages