Skip to content
v0.2.0 · alienware-wmi native · GPL-3.0

CryoThe command center Alienware never shipped for Linux

Fan curves, G-Mode, AlienFX, and live thermals for Alienware laptops — a root daemon on the in-kernel driver, a Qt command center, and cryoctl. No acpi_call. No Windows.

Install from source
$ git clone https://github.com/I4cTime/cryo.git && cd cryo && sudo ./packaging/install.sh
GPL-3.0-or-later licensePython 3.12+Qt 6 / PySide6LinuxVersion 0.2.0alienware-wmi kernel driver, no acpi_call
scroll

One machine, done properly

Everything AWCC did — and the parts it didn't

Power Modes
6
Cool → G-Mode → Custom
Lighting Effects
8
Quantum through Off
Lighting Zones
4
raw HID, no AWCC
Hz Telemetry
1
pushed to every client
acpi_call Hacks
0
in-kernel driver only

The honest comparison

Why Cryo instead of echo-ing into sysfs?

Alienware Command Center never shipped for Linux — and even on Windows it has no real fan curves, no game-aware profile switching, and no thermal failsafe. Cryo builds all three on the in-kernel alienware-wmi driver, so there's not a single ACPI hack in the stack.

CapabilityCryoAWCC (Windows)Bare sysfs
Runs on LinuxAWCC is Windows-only; the m18's Linux story is echoing values into sysfs
Power-mode switchingSix modes mapped to kernel platform profiles
True custom fan curvesTemp→boost points, linear interpolation, 3 °C hysteresis
Game-aware auto profilesNVML state machine enters G-Mode, restores your profile after
Thermal failsafeGuard forces 100% boost at CPU ≥ 88 °C / GPU ≥ 85 °C — in any profile
AlienFX keyboard lightingRaw HID — 8 effects, 4 zones, brightness, restored on boot
Live telemetry + tray1 Hz temps, fans, dGPU load, sparklines, session peaks
No fragile ACPI hacksIn-kernel alienware-wmi driver only — no acpi_call, no out-of-tree modules
Free + open source
GPL-3.0

Comparison reflects AWCC as shipped for Windows and a hand-rolled sysfs setup, at Cryo v0.1.0.

What ships in Cryo

The full command center

Everything the daemon does for the m18 — thermals, GameSense, lighting, telemetry. Click any feature to see how it actually works.

Thermals, on your terms

Six power modes

Every mode is a real kernel platform profile applied through the alienware-wmi driver — the same mechanism the firmware respects, not a userspace guess.

Cool

Prioritizes low temperatures — fans lead, clocks follow. For hot rooms and long compile days.

coolcool

Quiet

Keeps the fans as close to inaudible as the silicon allows. The default on battery.

quietquiet

Balanced

The everyday profile — sensible thermals without leaving performance on the table. The default on AC.

balancedbalanced

Performance

Sustained heavy load without going full jet engine.

performancebalanced-performance

G-Mode

Maximum cooling and clocks — what the dedicated G-key toggles. Game detection enters it automatically.

gmodeperformance

Custom

Your fan curves take the wheel — per-fan-group temp→boost curves with hysteresis.

customcustom

The chips show the Cryo mode → kernel platform profile mapping. CPU Turbo is a separate toggle (cryoctl turbo on|off) via intel_pstate, independent of the active mode.

Custom mode

Fan curves with a failsafe

In Custom mode, each fan group follows its own temp→boost curve with linear interpolation between points. Thermal Guard sits above all of it — in every profile.

Default curves · temp °C → fan boost %

Dashed red lines are the Thermal Guard trip points. Curves use a 3 °C hysteresis dead zone so fans never see-saw around a threshold, and boost writes under 5 points are suppressed to spare the EC.

Thermal Guard

Active in every profile
  • Trips when CPU reaches 88 °C or GPU reaches 85 °C — even in Quiet mode, even mid-curve.
  • Forces 100% fan boost on both groups, outranking custom curves and manual boosts.
  • Releases only once both temps drop 10 °C below their trip points, then restores the boosts that were active before.
  • Shows itself as a red GUARD badge in the GUI and tray — you always know why the fans went loud.

GameSense

A state machine, not a utilization guess

Spiking the dGPU with a browser or a compile shouldn't spin the fans to max. Cryo only calls it a game when a process passes every gate — and holds the state through loading screens.

DESKTOP

Enters GAMING when all hold

  • dGPU graphics process (not compute)
  • not on the ignore list
  • ≥ 400 MB VRAM allocated
  • ≥ 50% dGPU load sustained for 10 s
GAMINGauto G-Mode

Exits back when either holds

  • process exits, or
  • ≤ 20% dGPU load sustained for 45 s
RESTORED

On exit

  • your previous profile returns
  • manual picks are never fought

Exact basenames, never substrings. The ignore list matches full lowercase process basenames — so ignoring gnome-shell can never accidentally swallow a game whose name merely contains it.

Degrades gracefully. No NVIDIA driver, no NVML, no problem — game detection simply switches off while profiles, curves, Guard, lighting, and telemetry keep working.

AlienFX, minus Windows

Keyboard lighting, raw HID

Cryo reimplements the AlienFX protocol directly — 33-byte SET_REPORT packets to the 4-zone keyboard controller. 8 effects, brightness control, and your state restored on every boot.

The Quantum effect · 3 s cyan↔violet morph

Quantum is Cryo's signature preset — the same cyan↔violet pair as the brand mark and this site's palette. Set it with cryoctl light quantum.

Brightness is a separate control (cryoctl brightness 80) and persists — the daemon restores effect, color, and brightness on boot.

quantumQuantum

The signature effect — a 3-second morph between brand cyan and violet.

staticStatic

One solid color, any RGB value.

breatheBreathe

A slow fade in and out of your color.

spectrumSpectrum

Cycles the full hue wheel across all zones together.

rainbowRainbow

Each zone takes a different hue, rotating around the wheel.

waveWave

Color sweeps across the four zones left to right.

bounceBounce

A pulse of color ping-pongs across the zones.

offOff

Lights out. The only correct effect at 3 a.m.

Under the hood

Architecture

One root daemon owns the hardware; everything else is a thin client on a Unix socket. Hover any module to see what it does.

cryo-gui (Qt 6)
cryoctl
/run/cryo.sock
cryod (root · systemd)
sysfs · alienware-wmi
NVML (RTX 4080)
HID (AlienFX)
/run/cryo.sock · JSON lines
# any client — group-owned socket, mode 0660
{"op":"set_profile","profile":"gmode"}
{"ok":true,"profile":"gmode"}

# subscribe → the daemon pushes telemetry at 1 Hz
{"op":"subscribe"}
{"cpu_temp":62,"gpu_temp":54,"fans":[2100,2080,1950,1930],...}

Quick Start

Clone, install, done — the installer sets up the venv, the daemon, and the desktop entry.

You'll need

  • alienware-wmi kernel driverAll thermal I/O goes through the in-kernel driver over sysfs — no acpi_call, no out-of-tree modules.
  • NVIDIA proprietary driverGame detection reads dGPU process state via NVML. Without it, Cryo degrades gracefully — everything else keeps working.
  • Python 3.12+The daemon, GUI, and CLI are Python 3.12 on PySide6/Qt 6.
  • uvThe installer provisions an isolated uv venv — no system pip pollution.
Install from source
$ git clone https://github.com/I4cTime/cryo.git && cd cryo && sudo ./packaging/install.sh
  1. 1Clone the repo. git clone https://github.com/I4cTime/cryo.git — the daemon, GUI, and CLI live in one tree.
  2. 2Run the installer. sudo ./packaging/install.sh installs a uv-managed venv, /etc/cryo, the cryod systemd unit, and a desktop entry.
  3. 3Launch. cryod starts under systemd; open the Cryo desktop app or run cryoctl status from any terminal.

Then meet cryoctl — the first five commands worth learning.

~ / terminal
# Snapshot of the daemon state
$ cryoctl status

Developed on the Alienware m18 R2, designed for the alienware-wmi family: the daemon probes what your machine supports and the UI renders only what exists. On other models, run cryoctl doctor, file a model report — and watch your temps on first runs.

Common questions

Frequently asked

Everything you might want to know before handing your thermals to a daemon. Not covered? Open an issue on GitHub and we'll add it.

Still curious? Open a question and we'll add it.

Ready when you are

Your m18 runs Linux.
Now it runs cold.

One installer, one daemon, zero ACPI hacks. Fan curves, G-Mode, AlienFX, and live thermals — everything AWCC should have been, on the OS it never shipped for.

Install from source
$ git clone https://github.com/I4cTime/cryo.git && cd cryo && sudo ./packaging/install.sh

Free under GPL-3.0-or-later. No accounts. No telemetry. One machine, done properly.

More from the studio: i4c.studio · q-ring · ProtonShift · MineUI