Skip to content

feat(Hardware Support): Add AYANEO NEXT 2 device and capability map - #658

Open
EightQuarterBit wants to merge 1 commit into
ShadowBlip:mainfrom
EightQuarterBit:AYANEO-NEXT-2
Open

feat(Hardware Support): Add AYANEO NEXT 2 device and capability map#658
EightQuarterBit wants to merge 1 commit into
ShadowBlip:mainfrom
EightQuarterBit:AYANEO-NEXT-2

Conversation

@EightQuarterBit

@EightQuarterBit EightQuarterBit commented Aug 23, 2026

Copy link
Copy Markdown

This PR implements support for the AYANEO NEXT 2, according to the issue opened here. After looking through the repo it seemed simple enough to implement myself, though I did hand off the legwork of writing the YAML files to Claude Sonnet 5, as well as having it verify I wasn't missing a file that needed to be modified.

The exact prompt I gave to Claude was:

If I wanted to add support for my AYANEO NEXT 2 according to this issue: #654 what modifications would I need to perform to the files in the repo?

That spat out the device and capability map, mostly cribbed from existing Ayaneo config. I went back and forth with Claude to see if there were better options than an Xbox Elite controller for this device, and to check up on LC/RC button functions, but in the end the only change I made to the generated config was renaming the "Ayaneo Button" from "Logo". I named it "Logo" in the issue, but it's labeled "Ayaneo Button" in existing capability maps, so that seemed like the better convention.

Tested on Bazzite Deck 44 by installing to /etc/inputplumber/devices.d/ and /etc/inputplumber/capability_maps.d/. After restarting InputPlumber, the built-in controller appeared as an Xbox Elite controller as expected. Back buttons were visible and successfully mapped/tested in Steam. The "Ayaneo Button" also correctly summons Quick Access. "T" button is mapped to QuickAccess2, which seems to take a screenshot in-game at the moment.

A second, "ghost" Xbox Elite 2 controller also appeared on the system, though I've read reports of other users encountering the same behavior, so I'm assuming that's not a misconfiguration with these files. Claude seems to think it's InputPlumber generating a child Xbox Elite controller from my remapped physical controller. Surfacing it just in case that's not expected.

The "=" button was left emitting its default key combo since there didn't seem to be a better unopinionated option.

The LC and RC buttons, of course, weren't visible in Steam for mapping, since they aren't present on an Xbox Elite controller.

I haven't yet found a completely satisfactory way to test the gyro/accelerometer orientation, since that's not implemented on the Xbox Elite controller. There's no kernel-level mount matrix for this under /sys/bus/iio/devices/iio:device0/in_mount_matrix, but watching the raw accelerometer output with watch -n 0.2 'for f in /sys/bus/iio/devices/iio:device0/in_accel_x_raw; do echo "$f: $(cat $f)"; done' (repeat for Y and Z) it seemed to generate sensible values.

Likewise I could not test setting the controller LED rings via InputPlumber in any way I or Claude could determine.

Happy to test further on either of those features if a more thorough test regimen can be recommended.

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.

2 participants