Skip to content

Commit 588b8ea

Browse files
committed
Add horizontal keyboard layouts for joycons.
1 parent 9e5ae90 commit 588b8ea

File tree

1 file changed

+84
-53
lines changed

1 file changed

+84
-53
lines changed

SerialPrograms/Source/NintendoSwitch/Controllers/NintendoSwitch_KeyboardMapping.cpp

Lines changed: 84 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -187,27 +187,29 @@ std::vector<std::unique_ptr<EditableTableRow>> ProControllerKeyboardMappingTable
187187
ret.emplace_back(make_mapping("X", Qt::Key::Key_Apostrophe,ProControllerDeltas{.buttons = BUTTON_X}));
188188
ret.emplace_back(make_mapping("X", Qt::Key::Key_QuoteDbl, ProControllerDeltas{.buttons = BUTTON_X}));
189189

190-
ret.emplace_back(make_mapping("L", Qt::Key::Key_Q, ProControllerDeltas{.buttons = BUTTON_L}));
191-
ret.emplace_back(make_mapping("R", Qt::Key::Key_E, ProControllerDeltas{.buttons = BUTTON_R}));
192-
ret.emplace_back(make_mapping("ZL", Qt::Key::Key_R, ProControllerDeltas{.buttons = BUTTON_ZL}));
193-
ret.emplace_back(make_mapping("ZR", Qt::Key::Key_Backslash, ProControllerDeltas{.buttons = BUTTON_ZR}));
194-
ret.emplace_back(make_mapping("ZR", Qt::Key::Key_Bar, ProControllerDeltas{.buttons = BUTTON_ZR}));
190+
ret.emplace_back(make_mapping("L", Qt::Key::Key_Q, ProControllerDeltas{.buttons = BUTTON_L}));
191+
ret.emplace_back(make_mapping("R", Qt::Key::Key_E, ProControllerDeltas{.buttons = BUTTON_R}));
192+
ret.emplace_back(make_mapping("ZL", Qt::Key::Key_R, ProControllerDeltas{.buttons = BUTTON_ZL}));
193+
ret.emplace_back(make_mapping("R", Qt::Key::Key_BraceRight, ProControllerDeltas{.buttons = BUTTON_R}));
194+
ret.emplace_back(make_mapping("R", Qt::Key::Key_BracketRight, ProControllerDeltas{.buttons = BUTTON_R}));
195+
ret.emplace_back(make_mapping("ZR", Qt::Key::Key_Backslash, ProControllerDeltas{.buttons = BUTTON_ZR}));
196+
ret.emplace_back(make_mapping("ZR", Qt::Key::Key_Bar, ProControllerDeltas{.buttons = BUTTON_ZR}));
195197

196-
ret.emplace_back(make_mapping("-", Qt::Key::Key_Minus, ProControllerDeltas{.buttons = BUTTON_MINUS}));
197-
ret.emplace_back(make_mapping("-", Qt::Key::Key_Underscore,ProControllerDeltas{.buttons = BUTTON_MINUS}));
198-
ret.emplace_back(make_mapping("+", Qt::Key::Key_Plus, ProControllerDeltas{.buttons = BUTTON_PLUS}));
199-
ret.emplace_back(make_mapping("+", Qt::Key::Key_Equal, ProControllerDeltas{.buttons = BUTTON_PLUS}));
198+
ret.emplace_back(make_mapping("-", Qt::Key::Key_Minus, ProControllerDeltas{.buttons = BUTTON_MINUS}));
199+
ret.emplace_back(make_mapping("-", Qt::Key::Key_Underscore, ProControllerDeltas{.buttons = BUTTON_MINUS}));
200+
ret.emplace_back(make_mapping("+", Qt::Key::Key_Plus, ProControllerDeltas{.buttons = BUTTON_PLUS}));
201+
ret.emplace_back(make_mapping("+", Qt::Key::Key_Equal, ProControllerDeltas{.buttons = BUTTON_PLUS}));
200202

201-
ret.emplace_back(make_mapping("L-Click", Qt::Key::Key_C, ProControllerDeltas{.buttons = BUTTON_LCLICK}));
202-
ret.emplace_back(make_mapping("R-Click", Qt::Key::Key_0, ProControllerDeltas{.buttons = BUTTON_RCLICK}));
203+
ret.emplace_back(make_mapping("L-Click", Qt::Key::Key_C, ProControllerDeltas{.buttons = BUTTON_LCLICK}));
204+
ret.emplace_back(make_mapping("R-Click", Qt::Key::Key_0, ProControllerDeltas{.buttons = BUTTON_RCLICK}));
203205

204-
ret.emplace_back(make_mapping("Home", Qt::Key::Key_Home, ProControllerDeltas{.buttons = BUTTON_HOME}));
205-
ret.emplace_back(make_mapping("Home", Qt::Key::Key_Escape, ProControllerDeltas{.buttons = BUTTON_HOME}));
206-
ret.emplace_back(make_mapping("Home", Qt::Key::Key_H, ProControllerDeltas{.buttons = BUTTON_HOME}));
206+
ret.emplace_back(make_mapping("Home", Qt::Key::Key_Home, ProControllerDeltas{.buttons = BUTTON_HOME}));
207+
ret.emplace_back(make_mapping("Home", Qt::Key::Key_Escape, ProControllerDeltas{.buttons = BUTTON_HOME}));
208+
ret.emplace_back(make_mapping("Home", Qt::Key::Key_H, ProControllerDeltas{.buttons = BUTTON_HOME}));
207209

208-
ret.emplace_back(make_mapping("Capture", Qt::Key::Key_Insert, ProControllerDeltas{.buttons = BUTTON_CAPTURE}));
210+
ret.emplace_back(make_mapping("Capture", Qt::Key::Key_Insert, ProControllerDeltas{.buttons = BUTTON_CAPTURE}));
209211

210-
ret.emplace_back(make_mapping("A+R (for CFW)", Qt::Key::Key_Y, ProControllerDeltas{.buttons = BUTTON_A | BUTTON_R}));
212+
ret.emplace_back(make_mapping("A+R (for CFW)", Qt::Key::Key_Y, ProControllerDeltas{.buttons = BUTTON_A | BUTTON_R}));
211213

212214
return ret;
213215
}
@@ -322,62 +324,91 @@ std::unique_ptr<EditableTableRow> JoyconKeyboardMappingTable::make_mapping(
322324
std::vector<std::unique_ptr<EditableTableRow>> JoyconKeyboardMappingTable::make_defaults(bool left){
323325
std::vector<std::unique_ptr<EditableTableRow>> ret;
324326

325-
ret.emplace_back(make_mapping("Joystick Up", Qt::Key::Key_W, JoyconDeltas{.joystick_x = 0, .joystick_y = -1}));
326-
ret.emplace_back(make_mapping("Joystick Right", Qt::Key::Key_D, JoyconDeltas{.joystick_x = +1, .joystick_y = 0}));
327-
ret.emplace_back(make_mapping("Joystick Down", Qt::Key::Key_S, JoyconDeltas{.joystick_x = 0, .joystick_y = +1}));
328-
ret.emplace_back(make_mapping("Joystick Left", Qt::Key::Key_A, JoyconDeltas{.joystick_x = -1, .joystick_y = 0}));
329-
330327
if (left){
331-
ret.emplace_back(make_mapping("Left", Qt::Key::Key_Slash, JoyconDeltas{.buttons = BUTTON_LEFT}));
332-
ret.emplace_back(make_mapping("Left", Qt::Key::Key_Question, JoyconDeltas{.buttons = BUTTON_LEFT}));
333-
334-
ret.emplace_back(make_mapping("Down", Qt::Key::Key_Shift, JoyconDeltas{.buttons = BUTTON_DOWN}));
335-
ret.emplace_back(make_mapping("Down", Qt::Key::Key_Control, JoyconDeltas{.buttons = BUTTON_DOWN}));
336-
337-
ret.emplace_back(make_mapping("Right", Qt::Key::Key_Enter, JoyconDeltas{.buttons = BUTTON_RIGHT}));
338-
ret.emplace_back(make_mapping("Right", Qt::Key::Key_Return, JoyconDeltas{.buttons = BUTTON_RIGHT}));
339-
340-
ret.emplace_back(make_mapping("Up", Qt::Key::Key_Apostrophe,JoyconDeltas{.buttons = BUTTON_UP}));
341-
ret.emplace_back(make_mapping("Up", Qt::Key::Key_QuoteDbl, JoyconDeltas{.buttons = BUTTON_UP}));
342-
343-
ret.emplace_back(make_mapping("L", Qt::Key::Key_Q, JoyconDeltas{.buttons = BUTTON_L}));
344-
ret.emplace_back(make_mapping("ZL", Qt::Key::Key_R, JoyconDeltas{.buttons = BUTTON_ZL}));
345-
328+
ret.emplace_back(make_mapping("Vertical: JS Up", Qt::Key::Key_W, JoyconDeltas{.joystick_x = 0, .joystick_y = -1}));
329+
ret.emplace_back(make_mapping("Vertical: JS Right", Qt::Key::Key_D, JoyconDeltas{.joystick_x = +1, .joystick_y = 0}));
330+
ret.emplace_back(make_mapping("Vertical: JS Down", Qt::Key::Key_S, JoyconDeltas{.joystick_x = 0, .joystick_y = +1}));
331+
ret.emplace_back(make_mapping("Vertical: JS Left", Qt::Key::Key_A, JoyconDeltas{.joystick_x = -1, .joystick_y = 0}));
332+
333+
ret.emplace_back(make_mapping("Vertical: Up", Qt::Key::Key_Up, JoyconDeltas{.buttons = BUTTON_UP}));
334+
ret.emplace_back(make_mapping("Vertical: Right", Qt::Key::Key_Right, JoyconDeltas{.buttons = BUTTON_RIGHT}));
335+
ret.emplace_back(make_mapping("Vertical: Down", Qt::Key::Key_Down, JoyconDeltas{.buttons = BUTTON_DOWN}));
336+
ret.emplace_back(make_mapping("Vertical: Left", Qt::Key::Key_Left, JoyconDeltas{.buttons = BUTTON_LEFT}));
337+
338+
ret.emplace_back(make_mapping("Vertical: L", Qt::Key::Key_Q, JoyconDeltas{.buttons = BUTTON_L}));
339+
ret.emplace_back(make_mapping("Vertical: ZL", Qt::Key::Key_E, JoyconDeltas{.buttons = BUTTON_ZL}));
340+
ret.emplace_back(make_mapping("Vertical: JS-Click", Qt::Key::Key_C, JoyconDeltas{.buttons = BUTTON_LCLICK}));
341+
342+
ret.emplace_back(make_mapping("Sideways: JS Up", Qt::Key::Key_T, JoyconDeltas{.joystick_x = +1, .joystick_y = 0}));
343+
ret.emplace_back(make_mapping("Sideways: JS Right", Qt::Key::Key_H, JoyconDeltas{.joystick_x = 0, .joystick_y = +1}));
344+
ret.emplace_back(make_mapping("Sideways: JS Down", Qt::Key::Key_G, JoyconDeltas{.joystick_x = -1, .joystick_y = 0}));
345+
ret.emplace_back(make_mapping("Sideways: JS Left", Qt::Key::Key_F, JoyconDeltas{.joystick_x = 0, .joystick_y = -1}));
346+
347+
ret.emplace_back(make_mapping("Sideways: Up", Qt::Key::Key_Apostrophe,JoyconDeltas{.buttons = BUTTON_RIGHT}));
348+
ret.emplace_back(make_mapping("Sideways: Up", Qt::Key::Key_QuoteDbl, JoyconDeltas{.buttons = BUTTON_RIGHT}));
349+
ret.emplace_back(make_mapping("Sideways: Right", Qt::Key::Key_Enter, JoyconDeltas{.buttons = BUTTON_DOWN}));
350+
ret.emplace_back(make_mapping("Sideways: Right", Qt::Key::Key_Return, JoyconDeltas{.buttons = BUTTON_DOWN}));
351+
ret.emplace_back(make_mapping("Sideways: Down", Qt::Key::Key_Shift, JoyconDeltas{.buttons = BUTTON_LEFT}));
352+
ret.emplace_back(make_mapping("Sideways: Down", Qt::Key::Key_Control, JoyconDeltas{.buttons = BUTTON_LEFT}));
353+
ret.emplace_back(make_mapping("Sideways: Left", Qt::Key::Key_Slash, JoyconDeltas{.buttons = BUTTON_UP}));
354+
ret.emplace_back(make_mapping("Sideways: Left", Qt::Key::Key_Question, JoyconDeltas{.buttons = BUTTON_UP}));
355+
356+
ret.emplace_back(make_mapping("Sideways: L", Qt::Key::Key_R, JoyconDeltas{.buttons = BUTTON_L}));
357+
ret.emplace_back(make_mapping("Sideways: ZL", Qt::Key::Key_Y, JoyconDeltas{.buttons = BUTTON_ZL}));
358+
ret.emplace_back(make_mapping("Sideways: JS-Click", Qt::Key::Key_N, JoyconDeltas{.buttons = BUTTON_LCLICK}));
359+
360+
// Other
346361
ret.emplace_back(make_mapping("-", Qt::Key::Key_Minus, JoyconDeltas{.buttons = BUTTON_MINUS}));
347362
ret.emplace_back(make_mapping("-", Qt::Key::Key_Underscore,JoyconDeltas{.buttons = BUTTON_MINUS}));
348-
ret.emplace_back(make_mapping("JS-Click", Qt::Key::Key_C, JoyconDeltas{.buttons = BUTTON_LCLICK}));
349363

350364
ret.emplace_back(make_mapping("Capture", Qt::Key::Key_Home, JoyconDeltas{.buttons = BUTTON_CAPTURE}));
351365
ret.emplace_back(make_mapping("Capture", Qt::Key::Key_Escape, JoyconDeltas{.buttons = BUTTON_CAPTURE}));
352-
ret.emplace_back(make_mapping("Capture", Qt::Key::Key_H, JoyconDeltas{.buttons = BUTTON_CAPTURE}));
353366
ret.emplace_back(make_mapping("Capture", Qt::Key::Key_Insert, JoyconDeltas{.buttons = BUTTON_CAPTURE}));
354367

355-
ret.emplace_back(make_mapping("SL", Qt::Key::Key_T, JoyconDeltas{.buttons = BUTTON_LEFT_SL}));
356-
ret.emplace_back(make_mapping("SR", Qt::Key::Key_U, JoyconDeltas{.buttons = BUTTON_LEFT_SR}));
368+
ret.emplace_back(make_mapping("SL", Qt::Key::Key_F1, JoyconDeltas{.buttons = BUTTON_LEFT_SL}));
369+
ret.emplace_back(make_mapping("SR", Qt::Key::Key_F3, JoyconDeltas{.buttons = BUTTON_LEFT_SR}));
357370
}else{
358-
ret.emplace_back(make_mapping("Y", Qt::Key::Key_Slash, JoyconDeltas{.buttons = BUTTON_Y}));
359-
ret.emplace_back(make_mapping("Y", Qt::Key::Key_Question, JoyconDeltas{.buttons = BUTTON_Y}));
371+
ret.emplace_back(make_mapping("Vertical: JS Up", Qt::Key::Key_W, JoyconDeltas{.joystick_x = 0, .joystick_y = -1}));
372+
ret.emplace_back(make_mapping("Vertical: JS Right", Qt::Key::Key_D, JoyconDeltas{.joystick_x = +1, .joystick_y = 0}));
373+
ret.emplace_back(make_mapping("Vertical: JS Down", Qt::Key::Key_S, JoyconDeltas{.joystick_x = 0, .joystick_y = +1}));
374+
ret.emplace_back(make_mapping("Vertical: JS Left", Qt::Key::Key_A, JoyconDeltas{.joystick_x = -1, .joystick_y = 0}));
375+
376+
ret.emplace_back(make_mapping("Vertical: X", Qt::Key::Key_Apostrophe,JoyconDeltas{.buttons = BUTTON_X}));
377+
ret.emplace_back(make_mapping("Vertical: X", Qt::Key::Key_QuoteDbl, JoyconDeltas{.buttons = BUTTON_X}));
378+
379+
ret.emplace_back(make_mapping("Vertical: A", Qt::Key::Key_Enter, JoyconDeltas{.buttons = BUTTON_A}));
380+
ret.emplace_back(make_mapping("Vertical: A", Qt::Key::Key_Return, JoyconDeltas{.buttons = BUTTON_A}));
381+
382+
ret.emplace_back(make_mapping("Vertical: B", Qt::Key::Key_Shift, JoyconDeltas{.buttons = BUTTON_B}));
383+
ret.emplace_back(make_mapping("Vertical: B", Qt::Key::Key_Control, JoyconDeltas{.buttons = BUTTON_B}));
384+
385+
ret.emplace_back(make_mapping("Vertical: Y", Qt::Key::Key_Slash, JoyconDeltas{.buttons = BUTTON_Y}));
386+
ret.emplace_back(make_mapping("Vertical: Y", Qt::Key::Key_Question, JoyconDeltas{.buttons = BUTTON_Y}));
360387

361-
ret.emplace_back(make_mapping("B", Qt::Key::Key_Shift, JoyconDeltas{.buttons = BUTTON_B}));
362-
ret.emplace_back(make_mapping("B", Qt::Key::Key_Control, JoyconDeltas{.buttons = BUTTON_B}));
388+
ret.emplace_back(make_mapping("Vertical: R", Qt::Key::Key_Q, JoyconDeltas{.buttons = BUTTON_R}));
389+
ret.emplace_back(make_mapping("Vertical: ZR", Qt::Key::Key_E, JoyconDeltas{.buttons = BUTTON_ZR}));
390+
ret.emplace_back(make_mapping("Vertical: JS-Click", Qt::Key::Key_C, JoyconDeltas{.buttons = BUTTON_RCLICK}));
363391

364-
ret.emplace_back(make_mapping("A", Qt::Key::Key_Enter, JoyconDeltas{.buttons = BUTTON_A}));
365-
ret.emplace_back(make_mapping("A", Qt::Key::Key_Return, JoyconDeltas{.buttons = BUTTON_A}));
392+
ret.emplace_back(make_mapping("Sideways: JS Up", Qt::Key::Key_T, JoyconDeltas{.joystick_x = -1, .joystick_y = 0}));
393+
ret.emplace_back(make_mapping("Sideways: JS Right", Qt::Key::Key_H, JoyconDeltas{.joystick_x = 0, .joystick_y = -1}));
394+
ret.emplace_back(make_mapping("Sideways: JS Down", Qt::Key::Key_G, JoyconDeltas{.joystick_x = +1, .joystick_y = 0}));
395+
ret.emplace_back(make_mapping("Sideways: JS Left", Qt::Key::Key_F, JoyconDeltas{.joystick_x = 0, .joystick_y = +1}));
366396

367-
ret.emplace_back(make_mapping("X", Qt::Key::Key_Apostrophe,JoyconDeltas{.buttons = BUTTON_X}));
368-
ret.emplace_back(make_mapping("X", Qt::Key::Key_QuoteDbl, JoyconDeltas{.buttons = BUTTON_X}));
397+
ret.emplace_back(make_mapping("Sideways: X", Qt::Key::Key_Up, JoyconDeltas{.buttons = BUTTON_Y}));
398+
ret.emplace_back(make_mapping("Sideways: A", Qt::Key::Key_Right, JoyconDeltas{.buttons = BUTTON_X}));
399+
ret.emplace_back(make_mapping("Sideways: B", Qt::Key::Key_Down, JoyconDeltas{.buttons = BUTTON_A}));
400+
ret.emplace_back(make_mapping("Sideways: Y", Qt::Key::Key_Left, JoyconDeltas{.buttons = BUTTON_B}));
369401

370-
ret.emplace_back(make_mapping("R", Qt::Key::Key_E, JoyconDeltas{.buttons = BUTTON_R}));
371-
ret.emplace_back(make_mapping("ZR", Qt::Key::Key_Backslash, JoyconDeltas{.buttons = BUTTON_ZR}));
372-
ret.emplace_back(make_mapping("ZR", Qt::Key::Key_Bar, JoyconDeltas{.buttons = BUTTON_ZR}));
402+
ret.emplace_back(make_mapping("Sideways: R", Qt::Key::Key_R, JoyconDeltas{.buttons = BUTTON_R}));
403+
ret.emplace_back(make_mapping("Sideways: ZR", Qt::Key::Key_Y, JoyconDeltas{.buttons = BUTTON_ZR}));
404+
ret.emplace_back(make_mapping("Sideways: JS-Click", Qt::Key::Key_N, JoyconDeltas{.buttons = BUTTON_RCLICK}));
373405

406+
// Other
374407
ret.emplace_back(make_mapping("+", Qt::Key::Key_Plus, JoyconDeltas{.buttons = BUTTON_PLUS}));
375408
ret.emplace_back(make_mapping("+", Qt::Key::Key_Equal, JoyconDeltas{.buttons = BUTTON_PLUS}));
376-
ret.emplace_back(make_mapping("JS-Click", Qt::Key::Key_C, JoyconDeltas{.buttons = BUTTON_RCLICK}));
377409

378410
ret.emplace_back(make_mapping("Home", Qt::Key::Key_Home, JoyconDeltas{.buttons = BUTTON_HOME}));
379411
ret.emplace_back(make_mapping("Home", Qt::Key::Key_Escape, JoyconDeltas{.buttons = BUTTON_HOME}));
380-
ret.emplace_back(make_mapping("Home", Qt::Key::Key_H, JoyconDeltas{.buttons = BUTTON_HOME}));
381412
ret.emplace_back(make_mapping("Home", Qt::Key::Key_Insert, JoyconDeltas{.buttons = BUTTON_HOME}));
382413

383414
ret.emplace_back(make_mapping("SL", Qt::Key::Key_T, JoyconDeltas{.buttons = BUTTON_RIGHT_SL}));

0 commit comments

Comments
 (0)