Konkr button profiles - #331
Conversation
|
This will take a bit to review. It is quite large |
The AYANEO Konkr Fit reports DMI product_name 'KONKR FIT' (vendor 'KONKR') and uses the same controller hardware as the AYANEO 3 (1c4f:0002 composite + 045e:028e gamepad), so it is not autodetected. Add a CONFS entry. It has no detachable modules (no ayaneo-ec EC interface) and two back paddles, so magic_modules is omitted and extra_buttons is set to dual. The paddles emit KEY_L/KEY_R, which the existing driver already maps to extra_l1/extra_r1. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The Konkr Fit has four extra buttons (two rear paddles emitting KEY_L/KEY_R -> extra_l1/r1, plus LC/RC emitting KEY_F21/F22 -> extra_l2/r2), so use extra_buttons=quad. Its main system button is the gamepad BTN_MODE; map it to the guide/Steam button (mode) instead of the QAM/overlay (share) via a new mode_is_guide dconf flag, leaving the AYANEO 3 behaviour unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Adds a "Konkr Button Map" section with a dropdown per system/face button (Steam/Guide, QAM, Select, Start, Disabled). Right-top (Ctrl+F23) and konkr (F23) share a keycode, so split them with a new ChordGamepadEvdev that latches the resolved action on press. Gated behind a face_remap dconf flag so the AYANEO 3's identical gamepad buttons are untouched. Documents the hardware layout and evdev codes in KONKR.md. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Adds two direct-emit actions to the Konkr Button Map dropdowns: HHD Overlay (open_expanded) and HHD Side Menu (open_qam). They are sentinel codes the multiplexer turns into the matching special event immediately, bypassing the multi-tap QAM state machine so the binds are deterministic. Replaces the ambiguous "share" option; right-bottom-right now defaults to HHD Side Menu. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Align the Konkr Button Map dropdowns with HHD's official shortcut vocabulary from overlay/shortcuts.yml: Steam Side Menu (steam_qam), Steam Overlay (steam_expanded), HHD Side Menu (hhd_qam), HHD Overlay (hhd_expanded). Fixes the previously invented value hhd_overlay -> hhd_expanded and label "HHD QAM" -> "HHD Side Menu". Adds Steam's own QAM/overlay as options. Hide the standard Aya Button Map (swap_guide) on the Konkr since the per-button map supersedes it; base.py falls back to swap_guide=oem (no swap). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
465b480 to
338a595
Compare
| - Unlike the AYANEO 3 it has **no detachable modules** (no `ayaneo-ec` EC | ||
| sysfs interface), so `magic_modules` is off. | ||
|
|
||
| ## Physical button layout |
| self.mod_code = mod_code | ||
| self.plain_code = plain_code | ||
| self.mod_btn = mod_btn | ||
| self.plain_btn = plain_btn |
There was a problem hiding this comment.
This belongs on the ayaneo file. Avoid modifying this file
| self.emit({"type": "special", "event": "overlay"}) | ||
|
|
||
| if ev["code"] in ("hhd_qam", "hhd_expanded"): | ||
| # Direct binds for the HHD side menu (QAM) and the |
There was a problem hiding this comment.
we need to figure out how to do shortcuts for extra extra buttons in a unified way. The legion go 2 needs this as well
| default: mode | ||
|
|
||
| btn_left_select: | ||
| type: multiple |
There was a problem hiding this comment.
we should only add shortcut binds for the buttons that we have nothing to do for. I count one extra button as it stands. hhd can handle xbox, qam, and hhd as the three buttons and konkr seems to have 4. So there is only one additional button. By convention it is the squares button on the top left
HHD button is usually top right
creasyw
left a comment
There was a problem hiding this comment.
Thank you for updating the HHD to support the Konkr Fit! I tested it locally. The newly supported LC/RC, rear paddles, and right-front buttons work correctly, but I found one shortcut regression: Select+B no longer opened the Steam side menu.
The cause appears to be that HHD hides the physical Xbox controller after taking ownership of it, while the overlay shortcut watcher intentionally ignores HHD-created virtual controllers. As a result, configurable Guide/Select+ABXY shortcuts no longer see the chord.
Heads-up: this one's fairly Konkr-Fit-specific 🙏
Fair warning — this PR is admittedly pretty specific to the AYANEO Konkr Fit, so I completely understand if it's more than you'd want upstream. Posting it in case it's useful, and very open to feedback / reworking it however you'd prefer.
The Konkr has six system/face buttons around the screen, and a couple are awkward to map:
F23) — right-top just also holdsCtrl— so a plain one-code→one-action map can't tell them apart.BTN_MODEand the composite-keyboardF23/Ctrl+F23/Meta+Dkeys don't line up with any existing fixed mapping.So instead of hardcoding a layout, this adds a per-button "Konkr Button Map" with a dropdown for each of the six buttons:
overlay/shortcuts.ymlrather than invent my own (hhd_qam,hhd_expanded,steam_qam, etc.) — but I'm not sure I picked the right ones in every case, so please correct me on naming.F23collision is split by a smallChordGamepadEvdevthat latches the resolved action on press (so it can't get stuck ifCtrlreleases first).face_remapdconf flag, so the AYANEO 3's identical gamepad buttons are never touched.swap_guide) dropdown is hidden on the Konkr since the per-button map supersedes it.Totally understand if the scope or approach isn't what you'd want — happy to adjust, or to keep this downstream-only. Thanks for taking a look either way!