Trying to get keybinds to work with Stream Deck + on Fedora
I'm trying to set some keybinds in OpenDeck. I can't seem to get them to work properly. I want to use the F13-F20 keys if possible. I think the issue I'm running into is that OpenDeck is not forwarding my InputSimulation config to the deck
177 Replies
I have to get to the end, press enter, press backspace, and then it functions
Is there anything in the logs? Is one of the other F keys working? What exactly did you put in the Field?
For me F13-F20 are working but not every game for example supports these.
No thing in the logs. I can't actually get any keybinds to work. I tried the enter->backspace combo, but it didn't work
what exactly are you writing in the field?
[k(F20,p)]
I'm on v2.4.4 if that helps
oh and I'm using Fedora with KDE Plasma
How did you install OpenDeck? With the RPM or via FlatPak?
FlatPak
Is the run command Action working?
yes. It worked immediately even
The result of pressing any configuration for input simulation is just 0
wdym 0?
I think what's happening is that the press of the button the stream deck is being registered not the command associated, but I could be wrong

This is what happens if I press the button in Discord's keybinder
I should note however, that is not a standard 0. I can't just press 0 and activate the keybind. I have to press the button (any button) on my Stream Deck Plus.
My main goal here is just to set up keybinds to manage discord without the use of a plugin due to the app authorization not consistently working.
I think the 0 might be discord's default for detecting a keypress but not knowing what it was.
I tried to use ydotool to simulate the key presses, but that didn't work either.
this is what xev gives me if it helps. I pressed 'o' manually for reference and then pressed two different keys on the deck

I don't have any other streamdeck software running
my current setup is the Stream Deck Plus with XLR dock
Did you put it in key down or key up?
I tried both
Down mostly. Sometimes both, never just up
Well maybe just up once 🤔
Because thats something I observed in some video games where I need to put it in the key up field.
hmmm, Discord definitely recognizes it on KeyUp and not down 🤔
and by recognizes i mean it sets '0' on KeyUp and not KeyDown
It sets 0 when you try F13 or up?
If yes, does Discord support F13 and up keys?
Any key I try sets 0
please try a Xorg session
Ok, I'll get back to you guys once I try that
I've switched to EndeavorOS from Fedora, I got F10 to work

since the 0 here is any key on the streamdeck I suppose I could set any key I wanted as the keybind 🤔
I wasn't able to use multiple keys at once though
actually I can't seem to get any keys to work besides the F keys F1-F12, but my particular issue is fixed
Are you on a wayland or X11 session?
I'm not sure. I'll investigate
I'm using wayland
Are you able to try with X11? It probably is a Wayland issue.
how would I go about that. I'll do some research later, but I'm short on time atm
what distro did you said you have installed?
endeavour
I swapped to endeavor which is arch based
I think you should be able to choose at the login screen.
It does the same thing in X11. I used [k(a,p)] as the command
Which Desktop environment did you choose?
I was using X11 and Wayland
Thats not the Desktop environment. DE is like Gnome, KDE, and so on.
KDE
ok. Will try that after work when I have time how it plays out in my vm.
I'll do some testing of the new Wayland/libei support in the library at some point and decide whether it's ready to include in the starter pack
Thanks for your hard work 💪
but it should work in X11
could you try
[t("hello")]
I did, I think, I'm pretty sure I got [t("m")] to work
so it's just the Function keys that don't work?
Actually only the Function keys were working once I got the k function to work
hm
The exact setup I'm using currently is EndeavorOS, Stream Deack Plus w/ XLR Dock, Wayland (just switched back from X11). I'm not sure I can be of any help except to provide the results of what happens when I press buttons under certain settings. If make a list of things you want me to test let me know. I'll keep an eye on this thread.
I'm currently using the Generic Keyboard driver, but I don't really expect that to be helpful information
The starter pack logs would be good
I'll get them to you fairly late today, I might forget since it's a busy day.
Where can I find them? Do you want me to do anything to generate logs so you have lots of examples?
<log folder>/plugins/com.amansprojects.starterpack.sdPlugin.log
you can open the log folder from the settings page
just running a variety of commands should be good, especially the ones that dont work
did you say that text (i.e. [t("m")]
) works, but keys (i.e. [k(...)]
) don't?Yes
I see, ok @Drɘw this is the same issue then
this means it isn't a wayland/x11 specific issue
also, i can repro
so maybe don't bother with sending logs
👍
Good luck with development
unfortunately neither the Wayland nor libei features seem to fix it
wayland feature just says "no available protocols" or something, libei panics
I've got exams this week so I won't be able to do much more work unfortunately
What do you need in order to reproduce the bug?
nothing really, all I did was try using
[k(...)]
and it doesnt work
text input works thoughWell I hope you can figure it out. I know how frustrating development work can be :JustaSip:
Good luck with your exams
Interesting. I just checked and the Key I set up on Sunday (worked on Sunday) doesn't work anymore today.
Did you try setting a function key to see if that works?
You mean like F1 for example?
Lol yes F1
F1 seems to work and opens the discord help
I use F6-F10
the one I tried to use which didn't work is Numpad0
:agony:
is F1 opening the help for you?
Don't know, didn't try it
I'm actually at work currently. I can let you know later
Yeah, would be nice if you could try it when at home. No rush.
I don't expect it would though. It might, when discord registers the keybind it looks like 0 + F10
Well 0 + F1 in your case
does it paste 0 in text fields if you press the button?
No
ok. Because I think 0 is als the default key the utils detect when an unrecognized key is pressed.
I think discord registers the the button on the Stream deck is pressed, but doesn't know what value it should have
Yes
and since key down and key up are their own events, both are recognized
Right
I just think it's extra weird that F keys work, but the others don't
Btw if I use something like F20 I get 0 + 0. So the default key being 0 makes sense
F20 should be recognized by most utils tho
Not sure, not my wheelhouse
thats true
I'm kinda curious to look into it though. Could be a good learning experience :Major_Armstrong:
Yes probably
thanks, I have NOT revised enough lol
Real
yes it does
chiming in on this thread because I get similar behaviour
anything I bind in discord is just '0' (no 0+F1, etc.), which is key 248 if I look at
wev
regardless of which I bind the streamdeck button to
What did you put in OpenDeck? ex. [k(F1,p)]
[k(F__,p)]
tried 4 keys
[k(uni('m'))] will sometimes input letters but doesn't do anything if
m
is a keybind or shortcut in various programsRight
Just making sure you're adding the ,p to your keybinds. I'm not sure what other types of key presses there are but p is what I use
sorry, yes
edited
No worries
was adding ,p to keydown field and ,r to keyup, not sure if that's right
I only did ,p
I did ,p in keydown and keyup. There was something earlier about only keyup getting registered. You can try doing ,p in keyup as well to see what happens
Just did some digging in the logs and found this Error:

And tested some of these which are working as expected
Interesting 🤔
Have you tried doing multiple at the same time?
That was the other issue I ran into
not yet. I only tried one at the time so far. But let me try something
ok. Now not even F1 is working anymore. I don't know why...
Now I get this error:

🤔
hmm, this is a parsing error, so you haven't inputted the command correctly
What's the standard delimiter for the commands? "," or ", " or something else?
Its the same that worked. Copied it even from my backup to make sure.
🤔 based on this I'd guess it's ", " which isn't what the example in OpenDeck demonstrates. I can't know that for sure without checking the source code
the example in opendeck atleast for me shows ,
or what do you mean exactly
Is that ", " or ","
without space. But none of it works for me
I'm trying to exhaust the simple options before considering something more complicated. Just making sure that the delimiter between commands is accurate currently. ron may be expecting something different, or there may be custom code involved to parse before it reaches ron. Again, I'm not familiar with the code so I can only make guesses.
I'll take a look at the code later probably. Who knows, a fresh set of eyes might help find the issue
no, I don't think whitespace matters
I also thought I sent that already but apparently discord is bugging out
Ok, no worries
but what is the command
...?
thats really strange, because this shouldn't be a new bug, I haven't updated the starter pack in a while
or at least this part of it
so maybe KDE updated?
It's me lol, my bad luck with tech is transferring over :DignityLaugh:
Thats the one that worked before: [k(F1,p)]
I'm very confused at the moment. I just got multiple keybind to work and I was able to press letter keys like m
granted I've been doing letters wrong this whole time, but still
[k(F20,p),k(uni('t'))]
anything above F12 does seem to be coming through as BACKSPACE, so that's a little odd, but still this is progress
My foray into the source code didn't really help, but did confirm it wasn't a parsing issue. Taking a journey into crates is always a wild ride
this does return 0 + BACKSPACE + T
congrats on good looking, well organized code btw
Ok, I don't see a way to send a Scancode or Numpad0 directly. I could be wrong because I don't understand the full capabilities of several of these options. Also, I do have a list of these currently unused keycodes: [8, 93, 97, 103, 120, 132, 149, 154, 168, 178, 183, 184, 197, 202, 217, 219, 222, 230, 248].
Anyway, I think this partiular issue is resolved with me.
[k(F20,p),k(uni('t'))] seems to be doing reasonably well and I can manage enough combinations now that I understand what's going on. I could have sworn I tried that before though.

The thing is, Numpad0 worked last sunday for me without problems.
:Lamentation:
well, it's not in the list anymore, so either the list is static or it got removed at some point
the thing is, in enigo its still there. I can't say where this list comes from.
and for a friend of mine in linux mint, it still works.
May I ask how you installed Opendeck? Flatpak or something else? @heresy @Drɘw
your AUR package hehe
Ok. Just wanting to confirm or deny two theories i had during the night.
One is, if it maybe has something to do with flatpak or not.
The AUR
But it had the same issues as the FlatPak if I remember
Ok. Thanks. I have found a way to fix the porblem I think.
:JustaSip:
@nekename If you remember, I have made a custom version of the plugin with an different delay for Neo. I just asked him for his Opendeck folder, and as soon as I replaced my com.amansprojects.starterpack.sdPlugin folder with his, everything started to work again. According to the time stamp on the plugin, I made this on 4th February 2025. And according to Opendeck its also Version 1.4.1.
I need to go now and won't be at home until Sunday, but I am available for anything if needed.
what the heck?
i changed nothing lol
Thats just what i dsicovered. Because I talked with neo yesterday and it still worked. Then he sent me his plugin folder and I tried, and it worked without problems.
the only change between 1.4.0 and 1.4.1 was adding the documentation to the input simulation settings section
Chabged back, problem still occurs.
And that was a while ago and since then it still worked until a few days ago.
Coding be like: :CatSHAKE:
yeah exactly, if this is a new problem then its not an OpenDeck/starter pack problem
must be a KDE/other update
But why is it working with the "old" plugin executable?
not an Arch problem as I have it too
oh yeah, true
GitHub
Releases · nekename/opendeck-starterpack
This repository contains an OpenAction plugin that provides basic actions for use in OpenDeck. - nekename/opendeck-starterpack
it's missing 1.4.0 but the only change in 1.4.1 was docs
I can try it on Sunday since I am not at home to press the buttons.
actually, scratch that, stuff is working?
F1 opens discord help
even F12 seems to work, testing in the vscode terminal, it prints
~
and it does that when i manually press F12
even the "End" key seems to workYeah. Everything from the above list is working. Nothing else.
This one
I don't think that one is supposed to

looks like Windows only
so, either you were on windows, or you're imagining things? but if it works in Neo's version...
Still on linux. And you need to check further down. There it is for linux
Unless my Arch Linux pc magically turned into windows.
How unfortunate
I am hapoy thats not the case as far as I can tell.
really? I can't see it
💀
OK, I can see them in the latest
main
source
but in the 0.3.0 source, which is used by the starter pack 1.4.1, it is locked to Windows
Sorry. Only on the phone right now
yeah ^
so maybe you pointed Cargo.toml to the git version when you built it for Neo
I think that resolves the issues then, the next starter pack release, if enigo releases a new version before then, will have numpad keys, as well as the
wayland
feature enabled
I've marked this as resolved :):JustaSip:
Thanks for your hard work
Nope. Needed the local delay changes sind helldivers is not able to detect the keystrokes else

the support is unreleased
so you must have built using git enigo
Wtf. Why did it then work last week with the default one?
When was this released?
january 29th

Ok. That would explain why it workd with neos version. But why did it work last week atleast for me?
I think you must either have had Neo's version installed, or are imagining it 😭
ok i actually have to write my essay now, see you all later
I didn't have the version of neo until today at noon.
Bye. Good luck
maybe you had it by mistake, since you made it right?
otherwise i don't know
I haven't installed it on my device. Else it would have worked in HD2
@nekename I don't know why that is, but when I now build the OpenDeck Starterpack with the from me modified enigo lib (just change the delay), neither the new Brightness Action shows up nor is the Numpad in Input simulation working. I saw that the Starterpack moved from its own git repo to the whole OpenDeck one so I cloned the whole OpenDeck Repo and modified the Cargo Toml to use the local Enigo Lib there again.
yes that's right, the brightness action was added in a commit to the OpenDeck repo, the separate one is scheduled for removal
Yeah. But shouldn't it then show up if I build it out of the OpenDeck Repo? Because its not showing for me.
have you made sure to delete the plugin from the plugin directory first?
it only auto-updates the plugin if the versions are different (I haven't bumped the plugin version yet)
I have stopped opendeck, deleted the plugin and added the newly build one freshly pulled from github
try installing the one I sent?
Will try. Give me a moment
still nothing
🤨
it just doesn't show up in the list?
did you install with the "Install from file" button or manually?
manually. I think I found the Problem. Opendeck wasn't completely Up2Date since I have problems with my ISP and now all git commands are likely to time out at the moment. It shows up now with my and your version.
Now I need to figure out why Numpad is again not working with my version.
Ok. It seems like Opendeck is modifying the selfbuild Plugin at startup since everytime I start Opendeck after changing the executable in the plugins folder the timestamp changes to the current time.
and also the checksum changes
it would do that if there was a mismatch with the version of the one in the OpenDeck source when you built it, and the one installed
but if the local build one and the opendeck installed from git are both pulled within the last 2h the version should match shouldn't it?
yes
just check the manifest files to be sure
Both manifests (the one from the src folder I built from and the one in the Plugin folder) are showing 1.4.1
Any idea @nekename ?
maybe also check the version of the plugin in /usr/lib/opendeck/plugins
Will do that First thing tomorrow. Just saw the time and need to go to bed.
lol, good night
Thanks
Good Morning,
This one also states 1.4.1
not to hijack this, but I am on EndevourOS (Arch based) as well and it seems keyboard input does not work at all. The plugin log states that its doing something, but the input never comes to the apps.
I use Gnome/Wayland and noticed that the log talks about X11 🙂
15:54:12 [DEBUG] (1) enigo::platform::x11: xtest_fake_input with keycode 67, deviceid 3, delay 0
15:54:12 [DEBUG] (1) enigo::platform::keymap: added the key 67 to the held keycodes
15:54:12 [DEBUG] (1) enigo::platform: entered the key via x11
15:54:12 [DEBUG] (1) enigo::platform: added the key F1 to the held keys
15:54:12 [DEBUG] (1) enigo::platform: entered the key
15:54:12 [DEBUG] (1) enigo::platform: [93mkey(key: F1, direction: Release)[0m
15:54:12 [DEBUG] (1) enigo::platform::x11: xtest_fake_input with keycode 67, deviceid 3, delay 0
15:54:12 [DEBUG] (1) enigo::platform::keymap: removed the key 67 from the held keycodes
15:54:12 [DEBUG] (1) enigo::platform: entered the key via x11
15:54:12 [DEBUG] (1) enigo::platform: removed the key F1 from the held keys
15:54:12 [DEBUG] (1) enigo::platform: entered the key
15:54:12 [DEBUG] (1) enigo::platform: released all held keys and held keycodes
15:54:12 [DEBUG] (1) enigo::platform::x11: x11rb connection was dropped
input was [k(F1,p)]
Yeah for now it should work in XWayland apps but not native Wayland ones.
In a future release I'll enable enigo's Wayland support
thanks a lot
btw I found a great workaround for now. ydotool: https://github.com/ReimuNotMoe/ydotool
you need to add your user to the group "input" and create a user service for ydotoold
once the service is running, use Run Command in OpenDeck and use
ydotool key 44:1 44:0
for example to input the key "y"GitHub
GitHub - ReimuNotMoe/ydotool: Generic command-line automation tool ...
Generic command-line automation tool (no X!). Contribute to ReimuNotMoe/ydotool development by creating an account on GitHub.
cool
I've got another issue to add to the pile.
I haven't checked every possible key, but it seems I am unable to use alphanumeric keys unless they're unicode. This isn't a huge problem currently.
But a bigger issue is that livesplit-core appears to use a different key mapping making it difficult to control. I'm not sure if there's anything that can be done about the incompatibility.
https://github.com/LiveSplit/livesplit-core/blob/master/crates/livesplit-hotkey/src/key_code.rs
GitHub
livesplit-core/crates/livesplit-hotkey/src/key_code.rs at master ·...
livesplit-core is a library that provides a lot of functionality for creating a speedrun timer. - LiveSplit/livesplit-core
For the alphanumeric keys, a quick look at the library source shows that there are no dedicated keycodes for numbers on any platform, and only on Windows there are some for the letters.
So yeah, stick to unicode for those.
For that software, it shouldn't matter what the keys are called in their code, as long as you press the right keys in OpenDeck.
Ok. That makes sense. Strange then that it's not picking up the input. I set F12 to start in the keybinding and it works there, but sending it via input simulation nothing happens.