Forráskód Böngészése

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>
Olivierko 6 éve
szülő
commit
094aa7c24b

+ 26 - 0
keyboards/dz60/dz60.h

@@ -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

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 0 - 0
keyboards/dz60/info.json


+ 87 - 0
keyboards/dz60/keymaps/olivierko/keymap.c

@@ -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 - 0
keyboards/dz60/keymaps/olivierko/readme.md

@@ -0,0 +1,21 @@
+# DZ60
+### _BL:
+Base layer with american ANSI layout.  
+
+![_BL](https://i.imgur.com/BPMn7dk.png)
+### _SL:
+Swedish layer with ÅÄÖ at original positions.  
+
+![_SL](https://i.imgur.com/I8QRh24.png)
+### _FL:
+Function layer including various extra keys.  
+
+![_FL](https://i.imgur.com/nCbCIrZ.png)
+### _CL:
+Control layer for managing RGB and flashing.  
+
+![_CL](https://i.imgur.com/QnoMgsb.png)
+### Make command:
+```sh
+make dz60:olivierko:flash
+```

Nem az összes módosított fájl került megjelenítésre, mert túl sok fájl változott