How jackockzuo/omen-rs works
omen-rs is a Linux Rust CLI and daemon for controlling HP OMEN BIOS/EC features. Users issue omen commands directly or, for supported read-only queries, through omend over a Unix socket. The daemon also periodically reapplies power profiles and controls fan speed from CPU temperature and a curve or manual mode. Feature commands use capability checks and hardware access layers; the README documents additional command capabilities whose individual implementations were not sampled, so those links are shown at the feature-module level.
Main entry points: omend.rs omend daemon · mod.rs Command registry · transport.rs ACPI transport · main.rs omen CLI
Components 24
User interfaces
- omen CLI
src/main.rs - Socket client
src/client.rs
Daemon services
- omend daemon
src/bin/omend.rs - Fan mode file
- Fan curve
src/fan_curve.rs
OMEN controls
- Command registry
src/commands/mod.rs - Capability gate
src/capability.rs - Power profiles
src/commands/power_profile.rs - Fan control
src/commands/fan.rs - Sensors
src/commands/sensors.rs - GPU power
src/commands/gpu.rs - Battery care
src/commands/battery.rs - Other controls
src/commands
Hardware access
- ACPI transport
src/transport.rs - EC access
src/ec.rs
Protocol
- WMAA protocol
src/protocol - SECU encoding
src/protocol/secu.rs - Response decoding
src/protocol/decode.rs
Other components
- User
- Noctalia plugin
extra-noctalia-plugin/omen/service.luau - ACPI call interface
- EC debugfs
- Platform profile
- CPU hwmon
Connections 28
- User → omen CLI: runs commands
- Noctalia plugin → Fan mode file: selects mode
- omen CLI → Command registry: dispatches controls
- omen CLI → Socket client: routes read queries
- Socket client → omend daemon: sends socket requests
- omend daemon → Command registry: dispatches read commands
- omend daemon → Power profiles: reapplies profile
- omend daemon → Fan mode file: reads mode
- omend daemon → Sensors: reads CPU temperature
- omend daemon → Fan curve: evaluates temperature
- omend daemon → Fan control: sets fan speed
- Command registry → Capability gate: checks capabilities
- Capability gate → ACPI transport: queries hardware
- Command registry → Fan control: dispatches fan operations
- Command registry → GPU power: dispatches GPU operations
- Command registry → Battery care: dispatches battery operations
- Command registry → Other controls: dispatches other features
- Fan control → ACPI transport: issues WMAA calls
- GPU power → ACPI transport: issues WMAA calls
- Sensors → ACPI transport: reads WMAA sensors
- Sensors → CPU hwmon: reads CPU temperatures
- Power profiles → EC access: reads and writes EC
- Power profiles → Platform profile: reads and writes profile
- EC access → EC debugfs: accesses registers
- ACPI transport → WMAA protocol: formats and decodes
- WMAA protocol → SECU encoding: builds ACPI payloads
- WMAA protocol → Response decoding: decodes responses
- ACPI transport → ACPI call interface: calls firmware