Onexplayer superx controls for linux
Find a file
2026-08-03 19:51:27 +03:00
contrib Add Super X tablet and power integration 2026-07-28 16:24:42 +03:00
gnome-extension Add Super X tablet and power integration 2026-07-28 16:24:42 +03:00
local Prepare public OneXPlayer Super X control release 2026-03-29 18:59:25 +03:00
.gitignore Add Super X tablet and power integration 2026-07-28 16:24:42 +03:00
dkms.conf Prepare public OneXPlayer Super X control release 2026-03-29 18:59:25 +03:00
install.sh Harden OXP startup under Secure Boot 2026-08-03 19:51:27 +03:00
LICENSE Prepare public OneXPlayer Super X control release 2026-03-29 18:59:25 +03:00
Makefile Fix dkms target 2022-11-19 13:52:16 -03:00
oxp-battery-ec-probe.c Prepare public OneXPlayer Super X control release 2026-03-29 18:59:25 +03:00
oxp-battery-probe.py Prepare public OneXPlayer Super X control release 2026-03-29 18:59:25 +03:00
oxp-fan-control.conf Prepare public OneXPlayer Super X control release 2026-03-29 18:59:25 +03:00
oxp-fan-control.py Prepare public OneXPlayer Super X control release 2026-03-29 18:59:25 +03:00
oxp-fan-control.service Harden OXP startup under Secure Boot 2026-08-03 19:51:27 +03:00
oxp-fan-profile.py Prepare public OneXPlayer Super X control release 2026-03-29 18:59:25 +03:00
oxp-fan-profile.rules Prepare public OneXPlayer Super X control release 2026-03-29 18:59:25 +03:00
oxp-rgb Prepare public OneXPlayer Super X control release 2026-03-29 18:59:25 +03:00
oxp-rgb-hid.py Prepare public OneXPlayer Super X control release 2026-03-29 18:59:25 +03:00
oxp-rgb-hid.rules Prepare public OneXPlayer Super X control release 2026-03-29 18:59:25 +03:00
oxp-sensors.c Add Super X tablet and power integration 2026-07-28 16:24:42 +03:00
oxp-tdp Prepare public OneXPlayer Super X control release 2026-03-29 18:59:25 +03:00
README.md Harden OXP startup under Secure Boot 2026-08-03 19:51:27 +03:00
uninstall.sh Add Super X tablet and power integration 2026-07-28 16:24:42 +03:00

onexplayer-superxcontrol

Linux control stack for OneXPlayer Super X with:

  • DKMS kernel module
  • fan control service
  • GNOME Shell extension
  • RGB control
  • TDP control
  • automatic tablet-mode reporting and display rotation calibration
  • selectable CPU power policies
  • battery charge-limit backend

If you are searching for OneXPlayer Super X Linux fan control, OneXPlayer Super X RGB control, OneXPlayer Super X TDP control, or a GNOME extension for OneXPlayer Super X, this repository is intended for that use case.

WARNING

THIS SOFTWARE CAN CHANGE LOW-LEVEL HARDWARE BEHAVIOR. IT MAY CAUSE SYSTEM INSTABILITY, OVERHEATING, DATA LOSS, OR PERMANENT HARDWARE DAMAGE.

YOU USE THIS PROJECT ENTIRELY AT YOUR OWN RISK. I ACCEPT NO RESPONSIBILITY OR LIABILITY FOR ANY DAMAGE, FAILURE, OR LOSS CAUSED BY ITS USE, MISUSE, OR MODIFICATION.

ANYTHING ABOVE 75W TDP IS STRICTLY AT YOUR OWN RISK AND SHOULD ONLY BE USED WITH ADEQUATE THERMAL HEADROOM AND, IN PRACTICE, A WATER COOLER.

Public repository scope:

  • DKMS kernel module for the oxp-sensors platform driver
  • fan-control daemon and profile manager
  • GNOME Shell extension
  • client helpers for RGB, TDP, and battery controls used by the extension

Local reverse-engineering artifacts, dumps, and experimental tools are kept under local/ and are excluded from Git.

Features

  • oxp-sensors DKMS module for fan and EC-backed controls
  • systemd fan-control daemon with switchable profiles
  • GNOME Shell top-bar plugin for daily use
  • RGB preset and color control helpers
  • TDP presets through ryzenadj
  • Turbo-button TDP synchronization
  • Adaptive and Ultra Saver CPU power modes
  • detachable-keyboard tablet-mode reporting
  • accelerometer mounting calibration for automatic rotation
  • battery status and charge-limit backend used by the plugin

Compatibility

This repository is focused on OneXPlayer Super X.

Other OneXPlayer, AOKZOE, AYANEO, mini, or older board variants are not the target of this public tree.

Upstream Base

This project is based on the original oxp-sensors work:

Included Components

  • oxp-sensors.c: kernel driver
  • oxp-fan-control.py: fan-control daemon
  • oxp-fan-profile.py: profile CLI used by the daemon and the plugin
  • gnome-extension/: GNOME Shell top-bar plugin
  • oxp-rgb, oxp-rgb-hid.py: RGB control helpers
  • oxp-tdp: TDP helper based on ryzenadj
  • contrib/power/: CPU policy, Turbo-button TDP, and idle-power helpers
  • contrib/sensors/: Super X accelerometer hardware database entry
  • oxp-battery-probe.py, oxp-battery-ec-probe.c: battery status / charge-limit backend for the plugin

Build DKMS Module

To build the kernel module for the running kernel:

make

To install through DKMS:

make dkms

Secure Boot

DKMS signs oxp-sensors, but Secure Boot will reject it until the DKMS Machine Owner Key is enrolled. On Fedora, check the key after make dkms with:

sudo mokutil --test-key /var/lib/dkms/mok.pub

If it is not enrolled, queue it with sudo mokutil --import /var/lib/dkms/mok.pub, reboot, and choose Enroll MOK in the firmware screen. The one-time password entered at the mokutil prompt is required there. The OXP services limit their retries if the key is missing, so this condition does not create a boot-time restart storm.

Install On Linux

Install the client tools, fan-control service, and GNOME extension:

./install.sh

The TDP helpers require ryzenadj to be installed and available in PATH. The CPU power menu requires power-profiles-daemon and powerprofilesctl.

Uninstall

Remove the installed userland components with:

./uninstall.sh

Full removal including /etc/oxp-fan-control.conf and user plugin state:

./uninstall.sh --purge

Fan Control Profiles

The fan daemon uses /etc/oxp-fan-control.conf and supports named profiles. Stock profiles are:

  • silent
  • balanced
  • watercool
  • aggressive

Useful commands:

/usr/local/bin/oxp-fan-profile list
/usr/local/bin/oxp-fan-profile current
sudo /usr/local/bin/oxp-fan-profile set balanced

GNOME Shell Extension

The GNOME Shell extension adds a top-bar menu for:

  • fan profile switching
  • CPU power modes
  • RGB presets and custom color
  • TDP presets
  • battery charge-limit / bypass controls when the backend is available

Enable it after install:

gnome-extensions enable oxp-fan-profiles@ps1x

RGB And TDP Commands

Examples:

/usr/local/bin/oxp-rgb rainbow
/usr/local/bin/oxp-rgb red
sudo /usr/local/bin/oxp-tdp 15
sudo /usr/local/bin/oxp-tdp 20

License

This repository is distributed under GPL-2.0-or-later. See LICENSE.