diff --git a/arduino/kbd/kbd.ino b/arduino/kbd/kbd.ino index db93ab7..326cf60 100644 --- a/arduino/kbd/kbd.ino +++ b/arduino/kbd/kbd.ino @@ -119,6 +119,22 @@ void sendShiftCode(int code) { sendCode(42 | 0x80); } +void sendCtrlAltDel() { + sendCode(0x1d); // ctrl + sendCode(0x38); // alt + sendCode(0x53); // del + sendCode(0x53 | 0x80); + sendCode(0x38 | 0x80); + sendCode(0x1d | 0x80); +} + +void sendCtrlBreak() { + sendCode(0x1d); // ctrl + sendCode(0x46); // break + sendCode(0x46 | 0x80); + sendCode(0x1d | 0x80); +} + void sendAsciiChar(int c) { if (c >= 'a' && c <= 'z') { return sendNormalCode(kLetterCodes[c - 'a']); @@ -160,6 +176,9 @@ void sendAsciiChar(int c) { case '<': return sendShiftCode(51); case '>': return sendShiftCode(52); case '?': return sendShiftCode(53); + + case 0: return sendCtrlAltDel(); + case 27: return sendCtrlBreak(); // escape } }