-
-
Notifications
You must be signed in to change notification settings - Fork 39.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Bug] Inconsistent results when using send_unicode_string #17022
Comments
Hm, the more I look into this, the less sure I am about the issue being QMK... if I kill ibus, I can run the macro without any issues whatsoever... Problem is that it stops working in Telegram f.ex.... |
Okay...after a lot of fiddling around I have come to the conclusion that send_unicode_string is too fast for some reason. If I send a unicode string like this, I get one or two characters right, the rest will give me garbage output:
If I do this, it works just fine:
Is there a way to have a user definable wait-period between each character in send_unicode_string? |
Let's look at the basics first.
If yes to all above then you can try setting the Input Modes to your platform, see: https://docs.qmk.fm/#/feature_unicode?id=input-modes (actually have a good read of that whole page as there is some info on toggling multiple input modes etc.) |
Yes, yes and yes :) The problem isn't getting unicode to work, the problem seems to be the ibus daemon getting confused when the macro is being typed too fast. If you look at the two code examples, they do the exact same thing, but the second one does it about one third of a second slower |
umm... code does have delays in it: https://github.com/qmk/qmk_firmware/blob/master/quantum/process_keycode/process_unicode_common.c
not sure of why the wait is in there ... but try this as an experiment ... remove the |
Also #15061 states that on Windows a wait needs to be inserted... but that PR addresses a single character |
Oh, no, Linux Interesting...never knew about the UNICODE_TYPE_DELAY setting though... |
Okay...tried a few different versions... Removed the Same with adding |
I had the same issue. Increasing UNICODE_TYPE_DELAY didn't help, but introducing two additional delays right before and after finishing the input of a Unicode character did fix the issue for me. See this commit: 9f62e26 |
I suggest another, less invasive, fix by adding the delay to
case UNICODE_MODE_LINUX:
wait_ms(UNICODE_TYPE_DELAY); // additional delay
tap_code16(UNICODE_KEY_LNX);
break; Then eventually increase the delay in |
And so the circle is complete! It took me a day to debug, then find this post and to realize that i already replied once 🤦!
Relates to PR #22353 |
Describe the Bug
I've been using an idobai id80 ISO for little more than a year without any issues at all. Recently I recompiled the keyboard firmware with the latest QMK, last compile was several months ago.
I have a few unicode-macros set up, that are no longer working properly.
One of them is supposed to output "(╯°□°)╯︵ ┻━┻"
If I hit the macro key ten times, I get this output:
As you can see, it's not consistent. There are some unicode characters that are entered correctly sometimes, and Ctrl+Shift+U and then manually entering the code works just fine.
This is how I have built the macro:
I have then bound JAP_SHRUG to a keyboard key.
System Information
Keyboard: Idobao id80 ISO
Revision (if applicable): v1
Operating system: Arch Linux
qmk doctor
output:Any keyboard related software installed?
Additional Context
The text was updated successfully, but these errors were encountered: