Skip to content

Konkr button profiles - #331

Open
b3n0b1 wants to merge 5 commits into
hhd-dev:masterfrom
b3n0b1:konkr-button-profiles
Open

Konkr button profiles#331
b3n0b1 wants to merge 5 commits into
hhd-dev:masterfrom
b3n0b1:konkr-button-profiles

Conversation

@b3n0b1

@b3n0b1 b3n0b1 commented Jun 21, 2026

Copy link
Copy Markdown

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:

  • right-top and the konkr logo button both emit the same keycode (F23) — right-top just also holds Ctrl — so a plain one-code→one-action map can't tell them apart.
  • The gamepad BTN_MODE and the composite-keyboard F23/Ctrl+F23/Meta+D keys 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:

  • I tried to reuse the action values/labels from overlay/shortcuts.yml rather 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.
  • The right-top/konkr F23 collision is split by a small ChordGamepadEvdev that latches the resolved action on press (so it can't get stuck if Ctrl releases first).
  • Everything is gated behind a face_remap dconf flag, so the AYANEO 3's identical gamepad buttons are never touched.
  • The standard Aya Button Map (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!

@antheas

antheas commented Jun 21, 2026

Copy link
Copy Markdown
Contributor

This will take a bit to review. It is quite large

@b3n0b1

b3n0b1 commented Jun 22, 2026

Copy link
Copy Markdown
Author

@antheas this is a stacked PR on #330
That's a smaller one that's simple and most likely uncontroversial if you want to look at that first. Would make the boyz on discord happy.

This one could probably use some DRYness / cleanup.

b3n0b1 and others added 5 commits August 16, 2026 21:35
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>
@b3n0b1
b3n0b1 force-pushed the konkr-button-profiles branch from 465b480 to 338a595 Compare August 17, 2026 01:36
- Unlike the AYANEO 3 it has **no detachable modules** (no `ayaneo-ec` EC
sysfs interface), so `magic_modules` is off.

## Physical button layout

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

drop the md file

self.mod_code = mod_code
self.plain_code = plain_code
self.mod_btn = mod_btn
self.plain_btn = plain_btn

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

This comment was marked as outdated.

@creasyw creasyw left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants