From 9326945cbb6d43c7157cb9ad78bde924c12927ee Mon Sep 17 00:00:00 2001 From: danyi Date: Mon, 31 Aug 2026 15:43:32 +0800 Subject: [PATCH 1/2] feat(input): add AYANEO Pocket S Mini support Add a device-tree matched profile for the AYANEO Pocket S Mini. Normalize its Nintendo-labeled face buttons to positional outputs, map the DirectInput triggers, and expose the two GPIO system buttons. Support both the AYANEO DirectInput and internal XInput controller modes. AI assistance: OpenAI Codex (GPT-5) compared the downstream ROCKNIX profile with current upstream patterns, drafted the YAML changes, and ran validation checks. I reviewed the complete diff against the captured device data and the merged downstream configuration. --- .../capability_maps/ayaneo_type10.yaml | 81 +++++++++++++++++++ .../devices/50-ayaneo_pocket_s_mini.yaml | 44 ++++++++++ 2 files changed, 125 insertions(+) create mode 100644 rootfs/usr/share/inputplumber/capability_maps/ayaneo_type10.yaml create mode 100644 rootfs/usr/share/inputplumber/devices/50-ayaneo_pocket_s_mini.yaml diff --git a/rootfs/usr/share/inputplumber/capability_maps/ayaneo_type10.yaml b/rootfs/usr/share/inputplumber/capability_maps/ayaneo_type10.yaml new file mode 100644 index 00000000..cea14097 --- /dev/null +++ b/rootfs/usr/share/inputplumber/capability_maps/ayaneo_type10.yaml @@ -0,0 +1,81 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/ShadowBlip/InputPlumber/main/rootfs/usr/share/inputplumber/schema/capability_map_v2.json +version: 2 +kind: CapabilityMap +name: AYANEO Type 10 +id: aya10 + +mapping: + - name: South Button + source_events: + - evdev: + event_type: KEY + event_code: BTN_EAST + value_type: button + target_event: + gamepad: + button: South + - name: East Button + source_events: + - evdev: + event_type: KEY + event_code: BTN_SOUTH + value_type: button + target_event: + gamepad: + button: East + - name: West Button + source_events: + - evdev: + event_type: KEY + event_code: BTN_NORTH + value_type: button + target_event: + gamepad: + button: West + - name: North Button + source_events: + - evdev: + event_type: KEY + event_code: BTN_WEST + value_type: button + target_event: + gamepad: + button: North + - name: Left Trigger + source_events: + - evdev: + event_type: ABS + event_code: ABS_BRAKE + value_type: trigger + target_event: + gamepad: + trigger: + name: LeftTrigger + - name: Right Trigger + source_events: + - evdev: + event_type: ABS + event_code: ABS_GAS + value_type: trigger + target_event: + gamepad: + trigger: + name: RightTrigger + - name: AYANEO Button + source_events: + - evdev: + event_type: KEY + event_code: KEY_A + value_type: button + target_event: + gamepad: + button: Guide + - name: Quick Access Button + source_events: + - evdev: + event_type: KEY + event_code: KEY_EQUAL + value_type: button + target_event: + gamepad: + button: QuickAccess diff --git a/rootfs/usr/share/inputplumber/devices/50-ayaneo_pocket_s_mini.yaml b/rootfs/usr/share/inputplumber/devices/50-ayaneo_pocket_s_mini.yaml new file mode 100644 index 00000000..03d85ac6 --- /dev/null +++ b/rootfs/usr/share/inputplumber/devices/50-ayaneo_pocket_s_mini.yaml @@ -0,0 +1,44 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/ShadowBlip/InputPlumber/main/rootfs/usr/share/inputplumber/schema/composite_device_v1.json +version: 1 +kind: CompositeDevice +name: AYANEO Pocket S Mini + +maximum_sources: 0 +options: + auto_manage: true + +matches: + - udev: + sys_path: /sys/firmware/devicetree/base + attributes: + - name: compatible + value: ayaneo,pocket-s-mini + +source_devices: + # AYANEO/DirectInput mode + - group: gamepad + capability_map_id: aya10 + evdev: + name: AYANEO Controller + vendor_id: "4001" + product_id: "0428" + handler: event* + # XInput mode + - group: gamepad + capability_map_id: aya10 + evdev: + phys_path: usb-0001:01:00.0-1/input0 + vendor_id: "045e" + product_id: "028e" + handler: event* + # Dedicated AYANEO and quick-access GPIO buttons + - group: keyboard + capability_map_id: aya10 + evdev: + name: gpio-keys-pocket-s-mini + handler: event* + +target_devices: + - xbox-elite + - keyboard + - mouse From 5fc034d11df995135a349c704ff4be42d2854d43 Mon Sep 17 00:00:00 2001 From: danyi Date: Mon, 31 Aug 2026 16:02:05 +0800 Subject: [PATCH 2/2] fix(input): clarify Pocket S Mini button names Use the physical A, B, X, Y, AYANEO, and Home control names so each mapping can be identified without relying on its virtual output. AI assistance: OpenAI Codex (GPT-5) compared these descriptions with the naming convention established in InputPlumber#670. I reviewed the complete five-line naming-only diff. --- .../inputplumber/capability_maps/ayaneo_type10.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/rootfs/usr/share/inputplumber/capability_maps/ayaneo_type10.yaml b/rootfs/usr/share/inputplumber/capability_maps/ayaneo_type10.yaml index cea14097..992c2fbd 100644 --- a/rootfs/usr/share/inputplumber/capability_maps/ayaneo_type10.yaml +++ b/rootfs/usr/share/inputplumber/capability_maps/ayaneo_type10.yaml @@ -5,7 +5,7 @@ name: AYANEO Type 10 id: aya10 mapping: - - name: South Button + - name: A Button source_events: - evdev: event_type: KEY @@ -14,7 +14,7 @@ mapping: target_event: gamepad: button: South - - name: East Button + - name: B Button source_events: - evdev: event_type: KEY @@ -23,7 +23,7 @@ mapping: target_event: gamepad: button: East - - name: West Button + - name: X Button source_events: - evdev: event_type: KEY @@ -32,7 +32,7 @@ mapping: target_event: gamepad: button: West - - name: North Button + - name: Y Button source_events: - evdev: event_type: KEY @@ -70,7 +70,7 @@ mapping: target_event: gamepad: button: Guide - - name: Quick Access Button + - name: Home Button source_events: - evdev: event_type: KEY