lemp9: Added ISO keyboard layouts (#117)

* LAYOUT_ISO: Conversion of physical ISO layout to keyboard matrix

* fixing interchanged backslash and enter

* default_iso layout added for Clevo L141CU

* fabian layout (ISO, colemak, fn<->ctrl, wide left shift)

* Caps is control

* hardware side: qwerty instead of colemak

* lemp9 fabian: FN+PgUp=Home, FN+PgDn=Eend, FN+LeftShift=KBD_BKL

* lemp9 default_iso: FN+PgUp=Home, FN+PgDn=End

* clevo_l141cu_us_iso.c

* merged

* FN+1=K_FAN_TOGGLE
This commit is contained in:
Fabian Topfstedt 2020-10-05 22:53:15 +02:00 committed by GitHub
parent d35e375277
commit 6a081cc1b8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 91 additions and 2 deletions

View File

@ -13,7 +13,7 @@
// common/keymap.h requires KM_LAY, KM_OUT, and KM_IN definitions
#include <common/keymap.h>
// Conversion of physical layout to keyboard matrix
// Conversion of physical ANSI layout to keyboard matrix
#define LAYOUT( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
@ -41,6 +41,34 @@
{ ___, ___, K3C, ___, K61, K0C, ___, K59 } \
}
// Conversion of physical ISO layout to keyboard matrix
#define LAYOUT_ISO( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \
K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, \
K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, \
K60, K61, K62 \
) { \
{ ___, ___, ___, ___, ___, ___, K52, ___ }, \
{ ___, ___, ___, ___, ___, ___, K50, K56 }, \
{ ___, ___, ___, ___, ___, ___, K53, K55 }, \
{ ___, ___, ___, ___, ___, ___, K40, K4C }, \
{ K43, K42, K30, K31, K20, ___, K54, K21 }, \
{ K45, K44, ___, K33, ___, ___, ___, K23 }, \
{ K51, K46, K34, K35, K24, K25, ___, ___ }, \
{ ___, K47, K36, K26, K12, K11, K10, K00 }, \
{ K28, K48, K27, K15, K14, K13, K02, K01 }, \
{ K22, K37, K38, ___, K17, K16, K04, K03 }, \
{ K32, K49, K39, K29, K19, K18, K06, K05 }, \
{ ___, K58, K4A, K3A, K2A, K1A, K08, K07 }, \
{ ___, K41, K4B, K3B, K2B, K1B, K0A, K09 }, \
{ K3C, ___, K0D, K2C, K1C, K62, K0E, K0B }, \
{ ___, ___, K60, K1D, K57, K0F, ___, K0G }, \
{ ___, ___, K2D, ___, K61, K0C, ___, K59 } \
}
// Position of physical Esc key in the matrix
#define MATRIX_ESC_INPUT 7
#define MATRIX_ESC_OUTPUT 7

View File

@ -0,0 +1,29 @@
// SPDX-License-Identifier: GPL-3.0-only
// Clevo L141CU US ISO layout by @fabiant7t
// Picture: https://drive.google.com/file/d/1vTJvdfl9tf2Iwb6hkmsUwGBCVZ9lmouv/view?usp=sharing
#include <board/keymap.h>
uint16_t __code KEYMAP[KM_LAY][KM_OUT][KM_IN] = {
// TODO: K0E=K_PAUSE (once defined in src/common/include/common/keymap.h)
LAYOUT_ISO(
K_ESC, K_F1, K_F2, K_F3, K_F4, K_F5, K_F6, K_F7, K_F8, K_F9, K_F10, K_F11, K_F12, K_PRINT_SCREEN, K_PLAY_PAUSE, K_INSERT, K_DEL,
K_TICK, K_1, K_2, K_3, K_4, K_5, K_6, K_7, K_8, K_9, K_0, K_MINUS, K_EQUALS, K_BKSP,
K_TAB, K_Q, K_W, K_E, K_R, K_T, K_Y, K_U, K_I, K_O, K_P, K_BRACE_OPEN, K_BRACE_CLOSE, K_ENTER,
K_CAPS, K_A, K_S, K_D, K_F, K_G, K_H, K_J, K_K, K_L, K_SEMICOLON, K_QUOTE, K_BACKSLASH,
K_LEFT_SHIFT, K_BACKSLASH, K_Z, K_X, K_C, K_V, K_B, K_N, K_M, K_COMMA, K_PERIOD, K_SLASH, K_RIGHT_SHIFT,
K_LEFT_CTRL, KT_FN, K_LEFT_SUPER, K_LEFT_ALT, K_SPACE, K_RIGHT_ALT, K_RIGHT_CTRL, K_PGUP, K_UP, K_PGDN,
K_LEFT, K_DOWN, K_RIGHT
),
// TODO: K0D=K_SYS_RQ, K0E=K_BREAK, K0G=K_SCROLL_LOCK (once defined in src/common/include/common/keymap.h)
LAYOUT_ISO(
K_ESC, K_TOUCHPAD, K_DISPLAY_TOGGLE, K_MUTE, K_KBD_BKL, K_VOLUME_DOWN, K_VOLUME_UP, K_DISPLAY_MODE, K_BRIGHTNESS_DOWN, K_BRIGHTNESS_UP, K_CAMERA_TOGGLE, K_AIRPLANE_MODE, K_SUSPEND, K_PRINT_SCREEN, K_PLAY_PAUSE, K_NUM_LOCK, K_DEL,
K_PLAY_PAUSE, K_FAN_TOGGLE, K_2, K_3, K_4, K_5, K_6, K_NUM_7, K_NUM_8, K_NUM_9, K_NUM_ASTERISK, K_MINUS, K_EQUALS, K_BKSP,
K_TAB, K_Q, K_W, K_E, K_R, K_T, K_Y, K_NUM_4, K_NUM_5, K_NUM_6, K_NUM_SLASH, K_BRACE_OPEN, K_BRACE_CLOSE, K_ENTER,
K_CAPS, K_A, K_S, K_D, K_F, K_G, K_H, K_NUM_1, K_NUM_2, K_NUM_3, K_NUM_MINUS, K_QUOTE, K_BACKSLASH,
K_LEFT_SHIFT, K_BACKSLASH, K_Z, K_X, K_C, K_V, K_B, K_N, K_NUM_0, K_COMMA, K_NUM_PERIOD, K_NUM_PLUS, K_RIGHT_SHIFT,
K_LEFT_CTRL, KT_FN, K_LEFT_SUPER, K_LEFT_ALT, K_SPACE, K_RIGHT_ALT, K_APP, K_HOME, K_UP, K_END,
K_LEFT, K_DOWN, K_RIGHT
)
};

View File

@ -0,0 +1,32 @@
// SPDX-License-Identifier: GPL-3.0-only
// # Fabian ISO layout
// Swapped FN and LEFT_CTRL (like on Thinkpads and Macbooks)
// Key right of left shift is shift (ANSI like, less strain)
// CapsLock is control
// FN + LEFT_SHIFT is keyboard backlight (in the dark, you don't want to search F4)
#include <board/keymap.h>
uint16_t __code KEYMAP[KM_LAY][KM_OUT][KM_IN] = {
// TODO: K0E=K_PAUSE (once defined in src/common/include/common/keymap.h)
LAYOUT_ISO(
K_ESC, K_F1, K_F2, K_F3, K_F4, K_F5, K_F6, K_F7, K_F8, K_F9, K_F10, K_F11, K_F12, K_PRINT_SCREEN, K_PLAY_PAUSE, K_INSERT, K_DEL,
K_TICK, K_1, K_2, K_3, K_4, K_5, K_6, K_7, K_8, K_9, K_0, K_MINUS, K_EQUALS, K_BKSP,
K_TAB, K_Q, K_W, K_E, K_R, K_T, K_Y, K_U, K_I, K_O, K_P, K_BRACE_OPEN, K_BRACE_CLOSE, K_ENTER,
K_LEFT_CTRL, K_A, K_S, K_D, K_F, K_G, K_H, K_J, K_K, K_L, K_SEMICOLON, K_QUOTE, K_BACKSLASH,
K_LEFT_SHIFT, K_LEFT_SHIFT, K_Z, K_X, K_C, K_V, K_B, K_N, K_M, K_COMMA, K_PERIOD, K_SLASH, K_RIGHT_SHIFT,
KT_FN, K_LEFT_CTRL, K_LEFT_SUPER, K_LEFT_ALT, K_SPACE, K_RIGHT_ALT, K_RIGHT_CTRL, K_PGUP, K_UP, K_PGDN,
K_LEFT, K_DOWN, K_RIGHT
),
// TODO: K0D=K_SYS_RQ, K0E=K_BREAK, K0G=K_SCROLL_LOCK (once defined in src/common/include/common/keymap.h)
LAYOUT_ISO(
K_ESC, K_TOUCHPAD, K_DISPLAY_TOGGLE, K_MUTE, K_KBD_BKL, K_VOLUME_DOWN, K_VOLUME_UP, K_DISPLAY_MODE, K_BRIGHTNESS_DOWN, K_BRIGHTNESS_UP, K_CAMERA_TOGGLE, K_AIRPLANE_MODE, K_SUSPEND, K_PRINT_SCREEN, K_PLAY_PAUSE, K_NUM_LOCK, K_DEL,
K_PLAY_PAUSE, K_FAN_TOGGLE, K_2, K_3, K_4, K_5, K_6, K_NUM_7, K_NUM_8, K_NUM_9, K_NUM_ASTERISK, K_MINUS, K_EQUALS, K_BKSP,
K_TAB, K_Q, K_W, K_E, K_R, K_T, K_Y, K_NUM_4, K_NUM_5, K_NUM_6, K_NUM_SLASH, K_BRACE_OPEN, K_BRACE_CLOSE, K_ENTER,
K_LEFT_CTRL, K_A, K_S, K_D, K_F, K_G, K_H, K_NUM_1, K_NUM_2, K_NUM_3, K_NUM_MINUS, K_QUOTE, K_BACKSLASH,
K_KBD_BKL, K_LEFT_SHIFT, K_Z, K_X, K_C, K_V, K_B, K_N, K_NUM_0, K_COMMA, K_NUM_PERIOD, K_NUM_PLUS, K_RIGHT_SHIFT,
KT_FN, K_LEFT_CTRL, K_LEFT_SUPER, K_LEFT_ALT, K_SPACE, K_RIGHT_ALT, K_APP, K_HOME, K_UP, K_END,
K_LEFT, K_DOWN, K_RIGHT
)
};

View File

@ -167,7 +167,7 @@ uint16_t keymap_translate(uint16_t key);
// Escape key
#define K_ESC (0x76)
//TODO: Print screen, scroll lock, pause
//TODO: Print screen, scroll lock, pause, sys request, break
// Tick/tilde key
#define K_TICK (0x0E)