nexus-open

module
v0.3.8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 28, 2026 License: MIT

README

Nexus Open

Linux support for the Corsair iCUE Nexus, the 640×48 pixel display strip that sits above your keyboard. Corsair doesn't make a Linux driver; this project reverse-engineered the protocol and built one.

Release AUR CI Go Flutter Platform License

Screenshots

Settings app with layout editor and live hardware preview strip

What you get

Live stats on the display strip: CPU and GPU temperature and load, network throughput, and weather from open-meteo. Swipe left and right to switch between pages. Each zone is independently configurable: pick a plugin, choose a graph style (sparkline, bar, area), and set the colours.

A settings app lets you rearrange the layout and swap plugins without restarting anything. The preview shows the exact image going to the hardware in real time.

The daemon runs quietly as a systemd user service and starts automatically on login. No Corsair software, no Wine, no background cloud process.

Plugins

Plugin What it shows
cpu-temp CPU package temperature
cpu-load Per-core or aggregate CPU utilisation
gpu-temp GPU temperature (AMD, Intel, NVIDIA)
gpu-load GPU utilisation
network Download and upload throughput
weather Current conditions from open-meteo
media Now playing via MPRIS/playerctl
clock Time and date (built in)

You can also write your own. A plugin is a Go binary that implements a three-method interface. Drop it anywhere and reference it in a YAML file. See CONTRIBUTING.md for a walkthrough.

Install

Download from the releases page:

Format Distro
.pkg.tar.zst Arch Linux (or yay -S nexus-open)
.deb Ubuntu 24.04+, Debian 13+
.rpm Fedora 40+, RHEL 9+
.tar.gz Any distro, static binary, no runtime dependencies

After installing, unplug and replug the Nexus. The bundled udev rule grants access without adding your user to any group.

See docs/INSTALLATION.md for details, or DEVICE_SETUP.md if you run into USB permission issues.

Building from source

Requires Go 1.26+ and Flutter 3.24+. No C libraries needed.

git clone https://github.com/mantonx/nexus-open.git
cd nexus-open
make setup   # installs dev tools
make dev     # Go + Flutter with hot-reload

No hardware? NEXUS_MOCK_DEVICE=1 make dev works without the device plugged in.

See DEVELOPMENT.md for the full dev workflow.

Known issues

The display stays black after the daemon stops. The firmware has no command to restore the Corsair boot screen, so unplug and replug to get it back. The settings UI requires XWayland (handled automatically in the packaged binary).

More

License

MIT. See LICENSE.

Directories

Path Synopsis
cmd
nexus-open command
Package main provides the Nexus Open application entry point.
Package main provides the Nexus Open application entry point.
plugin-test command
plugin-test is a utility to test external plugins
plugin-test is a utility to test external plugins
swipe-sim command
swipe-sim drives the /api/debug/swipe endpoint in a loop so you can watch transition smoothness in real time and tune parameters quickly.
swipe-sim drives the /api/debug/swipe endpoint in a loop so you can watch transition smoothness in real time and tune parameters quickly.
tap-mock command
tap-mock generates three 640×48 PNG mock frames showing:
tap-mock generates three 640×48 PNG mock frames showing:
zone-demo command
zone-demo demonstrates the zone rendering system
zone-demo demonstrates the zone rendering system
zone-test command
zone-test demonstrates the complete zone system with live device rendering Includes multi-page navigation, touch input, and live module updates
zone-test demonstrates the complete zone system with live device rendering Includes multi-page navigation, touch input, and live module updates
internal
api
Package api provides the HTTP API server for configuration and image management.
Package api provides the HTTP API server for configuration and image management.
app
Package app provides the main application orchestration and dependency injection.
Package app provides the main application orchestration and dependency injection.
assets
Package assets provides utilities for managing application assets like images.
Package assets provides utilities for managing application assets like images.
device
Package device provides an abstraction layer for USB device communication.
Package device provides an abstraction layer for USB device communication.
plugins/builtin
Package builtin contains built-in modules compiled into the host
Package builtin contains built-in modules compiled into the host
plugins/host
Package host manages the lifecycle of external plugins — plugins that run as separate processes and communicate with the host over net/rpc.
Package host manages the lifecycle of external plugins — plugins that run as separate processes and communicate with the host over net/rpc.
settings
Package config provides configuration management backed by SQLite.
Package config provides configuration management backed by SQLite.
store
Package store provides a SQLite-backed configuration store for Nexus Open.
Package store provides a SQLite-backed configuration store for Nexus Open.
touch
Package touch provides touch input handling and gesture recognition.
Package touch provides touch input handling and gesture recognition.
udev
Package udev handles installation of udev rules for HID device access.
Package udev handles installation of udev rules for HID device access.
zone
Package zone implements the zone-based layout system for the display.
Package zone implements the zone-based layout system for the display.
pkg
plugin
Package plugin defines the interface and types for Nexus Open plugins.
Package plugin defines the interface and types for Nexus Open plugins.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL