# corsair-lcd-control Electron app to control Corsair LCD displays. Monitors system stats (CPU temp, RAM, GPU temp), detects USB devices, and manages preferences. ## Prerequisites - [Node.js](https://nodejs.org/) >= 18 - npm >= 9 - **Linux**: `libusb-1.0-0-dev`, `build-essential`, `python3` - **macOS**: Xcode Command Line Tools (`xcode-select --install`) - **Windows**: Build Tools for Visual Studio ## Setup ```bash git clone cd corsair-lcd-control npm install ``` `postinstall` automatically rebuilds native modules for Electron using `@electron/rebuild`. ## Development ```bash npm start ``` ## Build ```bash npm run build ``` Produces platform-specific packages: | Platform | Format | |----------|--------| | Linux | `.AppImage`, `.deb` | | macOS | `.dmg` | | Windows | `.exe` (NSIS) | ## Rebuild Native Modules If native modules fail to load after a Node.js or Electron upgrade: ```bash npm run rebuild ``` ## Capabilities - **USB** — `usb` module enumerates and connects to devices - **System Tray** — background process with context menu (Show/Hide/Quit) - **Preferences** — persisted via `electron-store` (JSON) - **File Pickers** — native OS dialogs via Electron's `dialog` API - **CPU Temperature** — `systeminformation.cpuTemperature()` - **RAM Usage** — `systeminformation.mem()` - **GPU Temperature** — `systeminformation.graphics()`