Dukweeno / Duckuino

Simple DuckyScript to Arduino C converter.
https://dukweeno.github.io/Duckuino/
MIT License
353 stars 117 forks source link

Backslashes need double key presses in Fr-Ca keyboard #77

Open Build-0-Matic opened 6 years ago

Build-0-Matic commented 6 years ago

Hi! I have just figures out the problem with the Fr-Ca keyboard layout, but the solution eludes me. It seems that the backslash needs to be double pressed in order to print properly. It's like the first one was escaping the second... I tried just doubling them up but this makes the script not always compile, especially when there are only 2. Is there a way to modify the keyboard.cpp to "double press" the backslash key?

lowlevl commented 5 years ago

Hello @Build-0-Matic, this seems that this is a system-dependent issue, on what OS are you running ? Thanks !

Build-0-Matic commented 5 years ago

I'm running Windows 10 Home Fall creator update 64 bit.

lowlevl commented 5 years ago

And when you type the \ by hand do you need to type it twice ?

Build-0-Matic commented 5 years ago

No, when I type by hand it's just AltCar+\

lowlevl commented 5 years ago

Hello again @Build-0-Matic, this is weird, but I had the same issue in the French layout, and I didn't found any workaround, just maybe type the \ twice ?

Build-0-Matic commented 5 years ago

That's what I have to do. I find it quite annoying but I have the feeling that to fix it it would need a full re-write of the code. I did recently check out how the Hak5 Bash Bunny works. They use the same language files for the USB Rubber Ducky's new HTML encoder. They have a JSON file to which the script passes the keystrokes. The JSON simply says this letter needs to be that key. And they have special combo keys listed separately as these don't change from one keyboard to the next. In the end it looks like this "\"":"02,00,1f", Where the first key is the modifier, 02 being SHIFT The second is left empty, hence the 00 The third is the key to press on the keyboard in hex, 1f being the first key of the top row before the 1.

This system doesn't need the double keypress.

lowlevl commented 5 years ago

Hmm, quite cool, the problem is not in Duckuino tho, it's in the Arduino HID core, because when we say to press \ it doesn't. But I think there could be a workaround, like I did for the Alt Gr keys.

Build-0-Matic commented 5 years ago

While working on the rubber ducky keymaps, I did notice that ALT-GR is the same as CTRL+ALT Maybe there's part of the solution there. Or maybe get it to type that key as double everytime... but I can't remember if it needed to be pressed 3 or 4 times if you ask for a \ \