Skip to content

Commit 04d3e8f

Browse files
committed
Fixed next-is-shift; added ctrl+numbers
1 parent 1296032 commit 04d3e8f

File tree

2 files changed

+31
-2
lines changed

2 files changed

+31
-2
lines changed

keyboardv1/keyboardv1.ino

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,10 @@ void sendChar(byte key) {
150150
nextIsAlt = translated == KEY_F13;
151151
nextIsCtrl = (translated & CTRL_MOD) == CTRL_MOD;
152152
nextIsShift = (translated & SHIFT_MOD) == SHIFT_MOD;
153+
// if next is shift, but neither of the others, it's alt+shift.
154+
if (nextIsShift && !nextIsAlt && !nextIsCtrl) {
155+
nextIsAlt = true;
156+
}
153157
if (useSerialLibrary) {
154158
Serial.print("F13: nextIsAlt. nextIsCtrl: "); Serial.print(nextIsCtrl);
155159
Serial.print(". nextIsShift: "); Serial.println(nextIsShift);
@@ -177,8 +181,8 @@ void pressKey(int translated, byte key) {
177181
if ((translated & SHIFT_MOD) == SHIFT_MOD) {
178182
Serial.print("shift+");
179183
}
180-
if (rawCode >= ' ' && rawCode <= '~') {
181-
Serial.print((char) rawCode); Serial.print(" ; was: "); Serial.println((char) key);
184+
if (key >= ' ' && key <= '~') {
185+
Serial.print((char) rawCode); Serial.print(" ; was: "); Serial.println(key);
182186
} else {
183187
Serial.print((int) rawCode); Serial.print(" decimal; was decimal: "); Serial.println(key);
184188
}

keyboardv1/setup.ino

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,15 @@ void setupTable() {
6868
translationTable[VG_NP_DASH] = '-';
6969
translationTable[VG_NP_DOT] = KEY_DELETE;
7070

71+
translationTable[VG_NP_1 + VG_CTRL] = CTRL_MOD + KEY_END;
72+
translationTable[VG_NP_2 + VG_CTRL] = CTRL_MOD + KEY_DOWN_ARROW;
73+
translationTable[VG_NP_3 + VG_CTRL] = CTRL_MOD + KEY_PAGE_DOWN;
74+
translationTable[VG_NP_4 + VG_CTRL] = CTRL_MOD + KEY_LEFT_ARROW;
75+
translationTable[VG_NP_6 + VG_CTRL] = CTRL_MOD + KEY_RIGHT_ARROW;
76+
translationTable[VG_NP_7 + VG_CTRL] = CTRL_MOD + KEY_HOME;
77+
translationTable[VG_NP_8 + VG_CTRL] = CTRL_MOD + KEY_UP_ARROW;
78+
translationTable[VG_NP_9 + VG_CTRL] = CTRL_MOD + KEY_PAGE_UP;
79+
7180
translationTable[VG_NP_0 + VG_SHIFT] = '0';
7281
translationTable[VG_NP_1 + VG_SHIFT] = '1';
7382
translationTable[VG_NP_2 + VG_SHIFT] = '2';
@@ -87,6 +96,11 @@ void setupTable() {
8796
}
8897

8998
// Numlock overrides:
99+
100+
// Not sure why I needed these...
101+
numLockTable[VG_NP_ENTER] = KEY_RETURN;
102+
numLockTable[VG_NP_ENTER + VG_SHIFT] = KEY_RETURN;
103+
90104
numLockTable[VG_NP_0] = '0';
91105
numLockTable[VG_NP_1] = '1';
92106
numLockTable[VG_NP_2] = '2';
@@ -99,6 +113,17 @@ void setupTable() {
99113
numLockTable[VG_NP_9] = '9';
100114
numLockTable[VG_NP_DOT] = '.';
101115

116+
numLockTable[VG_NP_0 + VG_CTRL] = CTRL_MOD + '0';
117+
numLockTable[VG_NP_1 + VG_CTRL] = CTRL_MOD + '1';
118+
numLockTable[VG_NP_2 + VG_CTRL] = CTRL_MOD + '2';
119+
numLockTable[VG_NP_3 + VG_CTRL] = CTRL_MOD + '3';
120+
numLockTable[VG_NP_4 + VG_CTRL] = CTRL_MOD + '4';
121+
numLockTable[VG_NP_5 + VG_CTRL] = CTRL_MOD + '5';
122+
numLockTable[VG_NP_6 + VG_CTRL] = CTRL_MOD + '6';
123+
numLockTable[VG_NP_7 + VG_CTRL] = CTRL_MOD + '7';
124+
numLockTable[VG_NP_8 + VG_CTRL] = CTRL_MOD + '8';
125+
numLockTable[VG_NP_9 + VG_CTRL] = CTRL_MOD + '9';
126+
102127
numLockTable[VG_NP_0 + VG_SHIFT] = KEY_INSERT;
103128
numLockTable[VG_NP_1 + VG_SHIFT] = KEY_END;
104129
numLockTable[VG_NP_2 + VG_SHIFT] = KEY_DOWN_ARROW;

0 commit comments

Comments
 (0)