mirror of
				https://github.com/mfulz/qmk_firmware.git
				synced 2025-10-30 21:02:32 +01:00 
			
		
		
		
	added new layout and Olivierko keymap for dz60 (#6996)
* - added new layout for dz60 - created personal keymap using new layout * - changes based on pr feedback from @noroadsleft * - further readme formatting * Apply suggestions from code review applied changes based on review feedback Co-Authored-By: fauxpark <fauxpark@gmail.com> * - readme formatting * Apply suggestions from code review Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									918f13a4ac
								
							
						
					
					
						commit
						094aa7c24b
					
				| @ -575,4 +575,30 @@ | ||||
|     { k40,  k41,   KC_NO, k43,  k44,  KC_NO, k46,  KC_NO, k48,  KC_NO, k4a,  k4b,   k4c,  k4d,  k4e   }  \ | ||||
| } | ||||
| 
 | ||||
| /* LAYOUT_60_olivierko
 | ||||
|  * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ | ||||
|  * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │0e │ | ||||
|  * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ | ||||
|  * │10   │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │1e   │ | ||||
|  * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ | ||||
|  * │20    │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2d      │ | ||||
|  * ├──────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬───────┤ | ||||
|  * │30     │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │3d     │ | ||||
|  * ├─────┬─┴─┬─┴───┼───┴───┴───┴───┴───┴───┴───┼───┼───┼───┬───┤ | ||||
|  * │40   │41 │43   │46 (7u)                    │4b │4c │4d │4e │ | ||||
|  * └─────┴───┴─────┴───────────────────────────┴───┴───┴───┴───┘ | ||||
| */ | ||||
| #define LAYOUT_olivierko( \ | ||||
|     k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ | ||||
| 	k10,      k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, \ | ||||
| 	k20,      k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d,      \ | ||||
|     k30,      k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d,      \ | ||||
| 	k40, k41,      k43,           k46,                     k4b, k4c, k4d, k4e  \ | ||||
| ) { \ | ||||
|     { k00,  k01,   k02,   k03,  k04,   k05,   k06,  k07,   k08,   k09,   k0a,   k0b,  k0c,   k0d,   k0e   }, \ | ||||
|     { k10,  KC_NO, k12,   k13,  k14,   k15,   k16,  k17,   k18,   k19,   k1a,   k1b,  k1c,   k1d,   k1e   }, \ | ||||
|     { k20,  KC_NO, k22,   k23,  k24,   k25,   k26,  k27,   k28,   k29,   k2a,   k2b,  k2c,   k2d,   KC_NO }, \ | ||||
|     { k30,  KC_NO, k32,   k33,  k34,   k35,   k36,  k37,   k38,   k39,   k3a,   k3b,  k3c,   k3d,   KC_NO }, \ | ||||
| 	{ k40,  k41,   KC_NO, k43,  KC_NO, KC_NO, k46,  KC_NO, KC_NO, KC_NO, KC_NO, k4b,  k4c,   k4d,   k4e   }  \ | ||||
| } | ||||
| #endif | ||||
|  | ||||
| @ -84,6 +84,10 @@ | ||||
|     "LAYOUT_60_iso_5x1u_split_bs_rshift_spc": { | ||||
|       "key_count": 67, | ||||
|       "layout": [{"label":"Esc/¬", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"\"", "x":2, "y":0}, {"label":"£", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Del", "x":13, "y":0, "w":1}, {"label":"Backspace", "x":14, "y":0, "w":1}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"CapsLock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"@", "x":11.75, "y":2}, {"label":"~", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"VolUp", "x":14, "y":3, "w":1}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.25}, {"x":6.00, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"label":"Left", "x":10, "y":4, "w":1}, {"label":"Down", "x":11, "y":4, "w":1}, {"label":"Up", "x":12, "y":4, "w":1}, {"label":"Right", "x":13, "y":4, "w":1}, {"label":"VolDown", "x":14, "y":4, "w":1}] | ||||
|     }, | ||||
|     "LAYOUT_olivierko": { | ||||
|       "key_count": 63, | ||||
|       "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"|", "x":13, "y":0}, {"label":"~", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Backspace", "x":13.5, "y":1, "w":1.5}, {"label":"Fn", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"label":"↑", "x":12, "y":3}, {"label":"Shift", "x":13, "y":3, "w":2}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Win", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"←", "x":11, "y":4}, {"label":"↓", "x":12, "y":4}, {"label":"→", "x":13, "y":4}, {"label":"Ctrl", "x":14, "y":4}] | ||||
|     } | ||||
|   } | ||||
| } | ||||
|  | ||||
							
								
								
									
										87
									
								
								keyboards/dz60/keymaps/olivierko/keymap.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										87
									
								
								keyboards/dz60/keymaps/olivierko/keymap.c
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,87 @@ | ||||
| #include QMK_KEYBOARD_H | ||||
| 
 | ||||
| enum keyboard_layers { | ||||
|   _BL, | ||||
|   _SL, | ||||
|   _FL, | ||||
|   _CL, | ||||
| }; | ||||
| 
 | ||||
| enum custom_keycodes { | ||||
|   SWE_AA = SAFE_RANGE, | ||||
|   SWE_AE, | ||||
|   SWE_OE, | ||||
| }; | ||||
| 
 | ||||
| char *alt_codes[][2] = { | ||||
|     { | ||||
|         SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_2)SS_TAP(X_KP_2)SS_TAP(X_KP_9)), // Alt+0229 → å
 | ||||
|         SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_1)SS_TAP(X_KP_9)SS_TAP(X_KP_7)), // Alt+0197 → Å
 | ||||
|     }, | ||||
|     { | ||||
| 		SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_2)SS_TAP(X_KP_2)SS_TAP(X_KP_8)), // Alt+0228 → ä
 | ||||
|         SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_1)SS_TAP(X_KP_9)SS_TAP(X_KP_6)), // Alt+0196 → Ä
 | ||||
|     }, | ||||
|     { | ||||
|         SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_2)SS_TAP(X_KP_4)SS_TAP(X_KP_6)), // Alt+0246 → ö
 | ||||
|         SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_2)SS_TAP(X_KP_1)SS_TAP(X_KP_4)), // Alt+0214 → Ö
 | ||||
|     }, | ||||
| }; | ||||
| 
 | ||||
| const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||||
| 
 | ||||
| 	[_BL] = LAYOUT_olivierko( | ||||
| 		KC_ESC,	 	KC_1,	  	KC_2,	 	KC_3,		KC_4,		KC_5,		KC_6,		KC_7,		KC_8,		KC_9,		KC_0,		KC_MINS,	KC_EQL,		KC_BSLS,		KC_GRV, | ||||
| 		KC_TAB,	 	KC_Q,	  	KC_W,	 	KC_E,		KC_R,		KC_T,		KC_Y,		KC_U,		KC_I,		KC_O,		KC_P,		KC_LBRC,	KC_RBRC,	KC_BSPC, | ||||
| 		MO(_FL),	KC_A,	  	KC_S,	 	KC_D,		KC_F,		KC_G,		KC_H,		KC_J,		KC_K,		KC_L,		KC_SCLN,	KC_QUOT,	KC_ENT,		 | ||||
| 		KC_LSFT, 	KC_Z,	  	KC_X,	 	KC_C,		KC_V,		KC_B,		KC_N,		KC_M,		KC_COMM,	KC_DOT,		KC_SLSH,	KC_UP, 		KC_RSFT,	 | ||||
| 		KC_LCTL, 	KC_LGUI,  	KC_LALT, 										KC_SPC,											KC_LEFT,	KC_DOWN,	KC_RIGHT,	KC_RCTL), | ||||
| 									 | ||||
| 	[_SL] = LAYOUT_olivierko( | ||||
| 		KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,		KC_TRNS, | ||||
| 		KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	SWE_AA,		KC_NO,		KC_TRNS, | ||||
| 		KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	SWE_OE,		SWE_AE,		KC_TRNS,		 | ||||
| 		KC_TRNS, 	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS, 	KC_TRNS,	 | ||||
| 		KC_TRNS, 	KC_TRNS,  	KC_TRNS, 										KC_TRNS,										KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS),									 | ||||
| 									 | ||||
| 	[_FL] = LAYOUT_olivierko(								 | ||||
| 		KC_ESC,		KC_F1,		KC_F2,		KC_F3,		KC_F4,		KC_F5,		KC_F6,		KC_F7,		KC_F8,		KC_F9,		KC_F10,		KC_F11,		KC_F12,		KC_PSCR,		KC_PAUSE, | ||||
| 		KC_NO,		KC_NO,		KC_NO,		KC_NO,		KC_NO,		KC_NO,		KC_NO,		KC_NO,		KC_NO,		KC_NO,		KC_NO,		KC_NO,		KC_NO,		KC_DELETE, | ||||
| 		KC_NO,		DF(_BL),	DF(_SL),	KC_NO,		KC_NO,		KC_NO,		KC_NO,		KC_NO,		KC_NO,		KC_NO,		KC_NO,		KC_NO,		KC_INS,	 | ||||
| 		KC_LSFT,	KC_NO,		KC_NO,		KC_CAPS,	KC_NO,		KC_NO,		KC_NO,		KC_MUTE,	KC_NO,		KC_NO,		KC_NO,		KC_PGUP,	KC_RSFT,	 | ||||
| 		KC_LCTL,	MO(_CL),	KC_LALT,										KC_MPLY,										KC_HOME,	KC_PGDOWN,	KC_END,		KC_RCTL), | ||||
| 											 | ||||
| 	[_CL] = LAYOUT_olivierko(								 | ||||
| 		RGB_TOG,	RGB_MOD,	RGB_HUI,	RGB_HUD,	RGB_SAI,	RGB_SAD,	RGB_VAI,	RGB_VAD,	KC_NO,		KC_NO,		KC_NO,		KC_NO,		KC_NO,		KC_NO,			KC_NO, | ||||
| 		KC_NO,		KC_NO,		KC_NO,		KC_NO,		RESET,		KC_NO,		KC_NO,		KC_NO,		KC_NO,		KC_NO,		KC_NO,		KC_NO,		KC_NO,		KC_NO, | ||||
| 		KC_NO,		KC_NO,		KC_NO,		DEBUG,		KC_NO,		KC_NO,		KC_NO,		KC_NO,		KC_NO,		KC_NO,		KC_NO,		KC_NO,		KC_NO,	 | ||||
| 		KC_LSFT,	KC_NO,		KC_NO,		KC_NO,		KC_NO,		KC_NO,		KC_NO,		KC_NO,		KC_NO,		KC_NO,		KC_NO,		KC_NO,		KC_RSFT,	 | ||||
| 		KC_NO,		KC_NO,		KC_NO,											KC_NO,											KC_NO,		KC_NO,		KC_NO,		KC_NO), | ||||
| }; | ||||
| 
 | ||||
| bool process_record_user(uint16_t keycode, keyrecord_t *record) | ||||
| { | ||||
|     if (!record->event.pressed)  | ||||
| 		return true; | ||||
| 
 | ||||
|     switch (keycode) { | ||||
| 		case SWE_AA:  | ||||
| 		case SWE_AE:  | ||||
| 		case SWE_OE: { | ||||
| 			uint16_t index = keycode - SWE_AA; | ||||
| 			uint8_t shift = get_mods() & (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); | ||||
| 
 | ||||
| 			unregister_code(KC_LSFT); | ||||
| 			unregister_code(KC_RSFT); | ||||
| 
 | ||||
| 			send_string(alt_codes[index][(bool)shift]); | ||||
| 
 | ||||
| 			if (shift & MOD_BIT(KC_LSFT)) register_code(KC_LSFT); | ||||
| 			if (shift & MOD_BIT(KC_RSFT)) register_code(KC_RSFT); | ||||
| 
 | ||||
| 			return false; | ||||
| 		} | ||||
| 		default: | ||||
| 			return true; | ||||
|     } | ||||
| } | ||||
							
								
								
									
										21
									
								
								keyboards/dz60/keymaps/olivierko/readme.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								keyboards/dz60/keymaps/olivierko/readme.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,21 @@ | ||||
| # DZ60 | ||||
| ### _BL: | ||||
| Base layer with american ANSI layout.   | ||||
| 
 | ||||
|  | ||||
| ### _SL: | ||||
| Swedish layer with ÅÄÖ at original positions.   | ||||
| 
 | ||||
|  | ||||
| ### _FL: | ||||
| Function layer including various extra keys.   | ||||
| 
 | ||||
|  | ||||
| ### _CL: | ||||
| Control layer for managing RGB and flashing.   | ||||
| 
 | ||||
|  | ||||
| ### Make command: | ||||
| ```sh | ||||
| make dz60:olivierko:flash | ||||
| ``` | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Olivierko
						Olivierko