diff --git a/src/hhd/device/ayaneo/base.py b/src/hhd/device/ayaneo/base.py index 42b60ab4..c7a618b2 100644 --- a/src/hhd/device/ayaneo/base.py +++ b/src/hhd/device/ayaneo/base.py @@ -509,13 +509,19 @@ def controller_loop( d_timer = HrtimerTrigger(conf["imu_hz"].to(int), [HrtimerTrigger.IMU_NAMES]) # Inputs + # By default the gamepad's BTN_MODE is repurposed as the QAM/overlay + # button (share). On devices where it is the main "guide" button (e.g. + # Konkr Fit), keep it as the XBOX default (mode) so it opens Steam. + xinput_btn_map = {**XBOX_BUTTON_MAP} + if not dconf.get("mode_is_guide", False): + xinput_btn_map[EC("BTN_MODE")] = "share" d_xinput = GenericGamepadEvdev( vid=[GAMEPAD_VID], pid=[GAMEPAD_PID], capabilities={EC("EV_KEY"): [EC("BTN_A")]}, required=True, hide=True, - btn_map={**XBOX_BUTTON_MAP, EC("BTN_MODE"): "share"}, + btn_map=xinput_btn_map, ) d_kbd_1 = GenericGamepadEvdev( diff --git a/src/hhd/device/ayaneo/const.py b/src/hhd/device/ayaneo/const.py index 6db6fdd4..51b71411 100644 --- a/src/hhd/device/ayaneo/const.py +++ b/src/hhd/device/ayaneo/const.py @@ -27,6 +27,18 @@ "rgb": True, **AYA_DEFAULT_CONF, }, + # Konkr (Ayaneo sub-brand). Same controller hw as AYANEO 3 + # (1c4f:0002 composite + 045e:028e gamepad) but no detachable + # modules (no ayaneo-ec EC interface). Four extra buttons (two rear + # paddles + LC/RC) and BTN_MODE is the main button, so it acts as the + # guide/Steam button rather than the QAM/overlay button. + "KONKR FIT": { + "name": "KONKR FIT", + "extra_buttons": "quad", + "mode_is_guide": True, + "rgb": True, + **AYA_DEFAULT_CONF, + }, } AYA3_INIT = [