Hhd-dev's Projects

hhd-dev/hhd

Handheld Daemon (HHD) Handheld Daemon is a project that aims to provide utilities for managing handheld devices. With features ranging from TDP controls, to controller remappings, and gamescope session management. This will be done through a plugin system and an HTTP(/d-bus?) daemon, which will expose the settings of the plugins in a UI agnostic way. It is the aim of this project to provide generic hid-based emulators for most mainstream controllers (xbox Elite, DS4, PS5, Joycons), so that users of devices can pick the best target for their device and its controls, which may change depending on the game. Current Features (for both ROG Ally and Legion Go): Fully functional DualSense Edge emulation All buttons supported Rumble feedback Touchpad support (Steam Input as well) LED remapping Virtual Input device emulation No weird glyphs Gyro and back button support (outside Steam) Touchpad Emulation Fixes left and right clicks within gamescope when using the Legion Go touchpad. Power Button plugin for Big Picture/Steam Deck Mode Short press makes Steam backup saves and wink before suspend. Long press opens Steam power menu. Hides the original Xbox controller HTTP based Configuration Allows configuring HHD over Electron/React apps. Token-based authentication and limited to localhost. Will allow swapping configuration per game. Built-in updater (soon to become available from Decky). Planned Features (in this order): Steam Deck controller emulation No weird glyphs TDP Plugin Will provide parity with Legion Space/Armory crate, hardware is already reverse engineered for the Legion Go High-end Over/Downclocking Utility for Ryzen processors By hooking into the manufacturer ACPI API of the Ryzen platform, it will expose all TDP related parameters manufacturers have access to when spec'ing laptops. RyzenAdj Successor No memory-relaxed requirement Safer, as it is the method used by manufacturers (provided you stay within limits).
  • Fedora 39 : aarch64, x86_64
  • Fedora 40 : aarch64, x86_64
  • Fedora 41 : aarch64, x86_64
  • Fedora rawhide : aarch64, x86_64