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:
		@@ -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
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										29
									
								
								src/board/system76/lemp9/keymap/clevo_l141cu_us_iso.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								src/board/system76/lemp9/keymap/clevo_l141cu_us_iso.c
									
									
									
									
									
										Normal 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
 | 
			
		||||
)
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										32
									
								
								src/board/system76/lemp9/keymap/fabian.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								src/board/system76/lemp9/keymap/fabian.c
									
									
									
									
									
										Normal 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
 | 
			
		||||
)
 | 
			
		||||
};
 | 
			
		||||
@@ -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)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user