Elgato Stream Deck Pedal Inputs

Hey folks. I created a fresh Endeavour OS installation. The process was smooth, only took like 10 minutes to get up and running. This isn’t my first Arch-based distro as I previously ran Arch on my laptop in college, and ran it recently on my desktop as well. I asked on those forums and didn’t get any responses, so I tried Endeavour to see if I could fix this particular issue… but it’s not too surprising that it’s present here as well since functionally the two are very similar.

For full(-ish) context, my setup is configured as follows:

  • 1TB NVMe SSD with unencrypted boot partition and encrypted BTRFS partition.
  • Other hardware is AMD 5800X3D CPU, AMD 7900XTX GPU, 64GiB memory if that matters at all.
  • I’m running KDE Plasma/Wayland.
  • All appropriate udev rules loaded for device causing the issue.

I use an Elgato Stream Deck Pedal for push-to-talk in Discord. I wrote a really simple program for binding the different buttons to different keys and generating those keypresses via a virtual input which then gets routed to Discord through KDE’s Xwayland support. I noticed that when using the pedal on Endeavour that each button generates “UNK248” (or keycode 248) when not running my own program, which appears to be KEY_MICMUTE. When running my program, it is KEY_MICMUTE + whatever else I have bound. I cannot for the life of me figure out where that extra key is coming from. Is there any way to determine if a separate program is generating those presses or if it’s somehow coming from just the pedal itself? It feels like it’s some kind of default binding but I’m not able to trace where it’s coming from.

One additional thing to mention: I currently am using Fedora as my daily driver (until I can get this issue figured out). I updated the firmware for the pedal via a Windows VM. When I then went to use it on my Fedora machine, it was also sending key code 248. This happened because my systemd service for sending the key codes I want crashed when the firmware updated (somewhat expected). When I restarted the service it began sending the correct key codes. It seems like on Endeavour that it is still sending the default key code and the mapped key code no matter what, and that’s what I cannot figure out.

Any help is appreciated!