forked from mfulz_github/qmk_firmware
		
	[Keyboard] Add Durgod Taurus K310 keyboard (#12314)
Co-authored-by: Tyler Tidman <tyler.tidman@draak.ca> Co-authored-by: Simon Arlott <sa.me.uk>
This commit is contained in:
		
							parent
							
								
									931bf52b74
								
							
						
					
					
						commit
						13a514923a
					
				
							
								
								
									
										6
									
								
								keyboards/durgod/k310/base/readme.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								keyboards/durgod/k310/base/readme.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,6 @@ | |||||||
|  | # Taurus K310 | ||||||
|  | 
 | ||||||
|  | Base Model - no backlight leds | ||||||
|  | 
 | ||||||
|  | See: [K310](../../k3x0/k310/base/readme.md) | ||||||
|  | 
 | ||||||
							
								
								
									
										1
									
								
								keyboards/durgod/k310/base/rules.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								keyboards/durgod/k310/base/rules.mk
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | |||||||
|  | DEFAULT_FOLDER=durgod/k3x0/k310/base | ||||||
							
								
								
									
										4
									
								
								keyboards/durgod/k310/readme.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								keyboards/durgod/k310/readme.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,4 @@ | |||||||
|  | # K310 | ||||||
|  | 
 | ||||||
|  | See: [K310](../k3x0/k310/readme.md) | ||||||
|  | 
 | ||||||
							
								
								
									
										1
									
								
								keyboards/durgod/k310/rules.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								keyboards/durgod/k310/rules.mk
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | |||||||
|  | DEFAULT_FOLDER=durgod/k3x0/k310 | ||||||
							
								
								
									
										6
									
								
								keyboards/durgod/k320/base/readme.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								keyboards/durgod/k320/base/readme.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,6 @@ | |||||||
|  | # Taurus K320 | ||||||
|  | 
 | ||||||
|  | Base Model - no backlight leds | ||||||
|  | 
 | ||||||
|  | See: [K320](../../k3x0/k320/base/readme.md) | ||||||
|  | 
 | ||||||
							
								
								
									
										1
									
								
								keyboards/durgod/k320/base/rules.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								keyboards/durgod/k320/base/rules.mk
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | |||||||
|  | DEFAULT_FOLDER=durgod/k3x0/k320/base | ||||||
| @ -1,26 +0,0 @@ | |||||||
| { |  | ||||||
|   "keyboard": "durgod/k320", |  | ||||||
|   "keymap": "default", |  | ||||||
|   "layout": "LAYOUT_all", |  | ||||||
|   "layers": [ |  | ||||||
|     [ |  | ||||||
|       "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_SLCK", "KC_PAUS", |  | ||||||
|       "KC_GRV",  "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_BSPC",    "KC_INS",  "KC_HOME", "KC_PGUP", |  | ||||||
|       "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_BSLS",    "KC_DEL",  "KC_END",  "KC_PGDN", |  | ||||||
|       "KC_CAPS", "KC_A",    "KC_S",    "KC_D",    "KC_F",    "KC_G",    "KC_H",    "KC_J",    "KC_K",    "KC_L",    "KC_SCLN", "KC_QUOT", "KC_NUHS", "KC_ENT", |  | ||||||
|       "KC_LSFT", "KC_NUBS", "KC_Z",    "KC_X",    "KC_C",    "KC_V",    "KC_B",    "KC_N",    "KC_M",    "KC_COMM", "KC_DOT",  "KC_SLSH",            "KC_RSFT",               "KC_UP", |  | ||||||
|       "KC_LCTL", "KC_LGUI", "KC_LALT",                                  "KC_SPC",                                   "KC_RALT", "MO(1)",   "KC_APP",  "KC_RCTL",    "KC_LEFT", "KC_DOWN", "KC_RGHT" |  | ||||||
|     ], |  | ||||||
|     [ |  | ||||||
|       "KC_TRNS",            "KC_MPLY", "KC_MSTP", "KC_MPRV", "KC_MNXT", "KC_MUTE", "KC_VOLD", "KC_VOLU", "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", "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", "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_TGUI", "KC_TRNS",                                  "KC_TRNS",                                  "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",    "KC_TRNS", "KC_TRNS",  "KC_TRNS" |  | ||||||
|     ] |  | ||||||
|   ], |  | ||||||
|   "author":"dkjer", |  | ||||||
|   "notes":"", |  | ||||||
|   "version":1 |  | ||||||
| } |  | ||||||
| @ -1,367 +0,0 @@ | |||||||
| /* Copyright 2021 kuenhlee and Don Kjer
 |  | ||||||
|  * |  | ||||||
|  * This program is free software: you can redistribute it and/or modify |  | ||||||
|  * it under the terms of the GNU General Public License as published by |  | ||||||
|  * the Free Software Foundation, either version 2 of the License, or |  | ||||||
|  * (at your option) any later version. |  | ||||||
|  * |  | ||||||
|  * This program is distributed in the hope that it will be useful, |  | ||||||
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of |  | ||||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the |  | ||||||
|  * GNU General Public License for more details. |  | ||||||
|  * |  | ||||||
|  * You should have received a copy of the GNU General Public License |  | ||||||
|  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 |  | ||||||
|  */ |  | ||||||
| #include QMK_KEYBOARD_H |  | ||||||
| 
 |  | ||||||
| // Layer shorthand
 |  | ||||||
| enum _layer { |  | ||||||
|     _WBL, |  | ||||||
|     _WFL, |  | ||||||
|     _WSL, |  | ||||||
|     _MBL, |  | ||||||
|     _MFL, |  | ||||||
|     _MSL |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| #ifndef DEFAULT_LAYOUT |  | ||||||
| # define DEFAULT_LAYOUT _WBL // Change to _MBL to boot into Mac layout.
 |  | ||||||
| #endif |  | ||||||
| #ifndef ALT_LAYOUT |  | ||||||
| # define ALT_LAYOUT     _MBL // Layout to display 'MR' led when active.
 |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
| static bool win_key_locked = false; |  | ||||||
| static bool mac_media_locked = false; |  | ||||||
| static bool win_appkey_pressed = false; |  | ||||||
| static bool mac_fnkey_pressed = false; |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| // Defines the keycodes used by our macros in process_record_user
 |  | ||||||
| enum custom_keycodes { |  | ||||||
|     KC_TGUI = SAFE_RANGE,  // Toggle between GUI Lock or Unlock (Windows)
 |  | ||||||
|     KC_TMED,               // Toggle between Fx keys or Media keys (Mac)
 |  | ||||||
|     KC_WFN,                // Windows function key
 |  | ||||||
|     KC_MFN,                // Mac function key
 |  | ||||||
|     MO_WSL,                // Windows system key
 |  | ||||||
|     MO_MSL,                // Mac system key
 |  | ||||||
|     DF_W2MBL,              // Change layout from Windows to Mac
 |  | ||||||
|     DF_M2WBL               // Change layout from Mac to Windows
 |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |  | ||||||
|   /* Keymap _WBL: Windows Base Layer (Default Layer)
 |  | ||||||
|    * ,-----------------------------------------------------------.  ,--------------. |  | ||||||
|    * |Esc  |f1| f2| f3| f4|  | f5| f6| f7| f8|   | f9|f10|f11|f12|  |Prnt|ScLk|Paus| |  | ||||||
|    * |-----------------------------------------------------------|  |--------------| |  | ||||||
|    * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |  0| - | = |Backsp |  | Ins|Home|PgUp| |  | ||||||
|    * |-----------------------------------------------------------|  |--------------| |  | ||||||
|    * |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]|    \|  | Del| End|PgDn| |  | ||||||
|    * |-----------------------------------------------------------|  `--------------' |  | ||||||
|    * |CAPS   |  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  '| #|Ret | |  | ||||||
|    * |-----------------------------------------------------------|        ,----. |  | ||||||
|    * |Shift| \|  Z|  X|  C|  V|  B|  N|  M|  ,|  .|  /|Shift     |        | Up | |  | ||||||
|    * |-----------------------------------------------------------|   ,-------------. |  | ||||||
|    * |Ctrl|Gui |Alt |      Space            |Alt |Func |App|Ctrl |   |Lft| Dn |Rig | |  | ||||||
|    * `-----------------------------------------------------------'   `-------------' |  | ||||||
|    */ |  | ||||||
|   [_WBL] = LAYOUT_all( /* Windows Base Layer */ |  | ||||||
|       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_SLCK,  KC_PAUS, |  | ||||||
|       KC_GRV,   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_BSPC,     KC_INS,   KC_HOME,  KC_PGUP, |  | ||||||
|       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_BSLS,     KC_DEL,   KC_END,   KC_PGDN, |  | ||||||
|       KC_CAPS,  KC_A,     KC_S,     KC_D,     KC_F,     KC_G,     KC_H,     KC_J,     KC_K,     KC_L,     KC_SCLN,  KC_QUOT,  KC_NUHS,  KC_ENT, |  | ||||||
|       KC_LSFT,  KC_NUBS,  KC_Z,     KC_X,     KC_C,     KC_V,     KC_B,     KC_N,     KC_M,     KC_COMM,  KC_DOT,   KC_SLSH,            KC_RSFT,               KC_UP, |  | ||||||
|       KC_LCTL,  KC_LGUI,  KC_LALT,                                KC_SPC,                                 KC_RALT,  KC_WFN,   KC_APP,   KC_RCTL,     KC_LEFT,  KC_DOWN,  KC_RGHT |  | ||||||
|   ), |  | ||||||
|   /* Keymap _WFL: Windows Function Layer
 |  | ||||||
|    * ,-----------------------------------------------------------.  ,--------------. |  | ||||||
|    * |   |Play|Stop|Prev|Next| |Mute|Vol+|Vol-|    | |  |  |  |  |  |    |    |    | |  | ||||||
|    * |-----------------------------------------------------------|  |--------------| |  | ||||||
|    * |   |   |   |   |   |   |   |   |   |   |   |   |   |       |  |    |    |    | |  | ||||||
|    * |-----------------------------------------------------------|  |--------------| |  | ||||||
|    * |     |   |   |   |   |   |   |   |   |   |   |   |   |     |  |    |    |    | |  | ||||||
|    * |-----------------------------------------------------------|  `--------------' |  | ||||||
|    * |       |   |   |   |   |   |   |   |   |   |   |   |  |    | |  | ||||||
|    * |-----------------------------------------------------------|        ,----. |  | ||||||
|    * |     |  |   |   |   |   |   |   |   |   |   |   |          |        |    | |  | ||||||
|    * |-----------------------------------------------------------|   ,-------------. |  | ||||||
|    * |    |Lock|    |                       |    |Func |Sys|     |   |   |    |    | |  | ||||||
|    * `-----------------------------------------------------------'   `-------------' |  | ||||||
|    */ |  | ||||||
|   [_WFL] = LAYOUT_all( /* Windows First Layer */ |  | ||||||
|       _______,            KC_MPLY,  KC_MSTP,  KC_MPRV,  KC_MNXT,  KC_MUTE,  KC_VOLD,  KC_VOLU,  _______,  _______,  _______,  _______,  _______,     _______,  _______,  _______, |  | ||||||
|       _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,     _______,  _______,  _______, |  | ||||||
|       _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,     _______,  _______,  _______, |  | ||||||
|       _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______, |  | ||||||
|       _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,            _______,               _______, |  | ||||||
|       _______,  KC_TGUI,  _______,                                _______,                                _______,  _______,  MO_WSL,   _______,     _______,  _______,  _______ |  | ||||||
|   ), |  | ||||||
|   /* Keymap _WSL: Windows System Layer
 |  | ||||||
|    * ,-----------------------------------------------------------.  ,--------------. |  | ||||||
|    * |Reset |Sleep|     |     |Power| |  |  |  |  | |  |  |  |MAC|  |              | |  | ||||||
|    * |-----------------------------------------------------------|  |--------------| |  | ||||||
|    * |   |   |   |   |   |   |   |   |   |   |   |   |   |       |  |    |    |    | |  | ||||||
|    * |-----------------------------------------------------------|  |--------------| |  | ||||||
|    * |     |   |   |   |   |   |   |   |   |   |   |   |   |     |  |    |    |    | |  | ||||||
|    * |-----------------------------------------------------------|  `--------------' |  | ||||||
|    * |       |   |   |   |   |   |   |   |   |   |   |   |  |    | |  | ||||||
|    * |-----------------------------------------------------------|        ,----. |  | ||||||
|    * |     |  |   |   |   |   |   |   |   |   |   |   |          |        |    | |  | ||||||
|    * |-----------------------------------------------------------|   ,-------------. |  | ||||||
|    * |    |    |    |                       |    |Func |Sys|     |   |   |    |    | |  | ||||||
|    * `-----------------------------------------------------------'   `-------------' |  | ||||||
|    */ |  | ||||||
|   [_WSL] = LAYOUT_all( /* Windows Second / System Layer */ |  | ||||||
|       RESET,              KC_SLEP,  XXXXXXX,  XXXXXXX,  KC_PWR,   XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  DF_W2MBL,    XXXXXXX,  XXXXXXX,  XXXXXXX, |  | ||||||
|       XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,     XXXXXXX,  XXXXXXX,  XXXXXXX, |  | ||||||
|       XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,     XXXXXXX,  XXXXXXX,  XXXXXXX, |  | ||||||
|       XXXXXXX,  XXXXXXX,  XXXXXXX,  DEBUG,    XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX, |  | ||||||
|       XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,            XXXXXXX,               XXXXXXX, |  | ||||||
|       XXXXXXX,  XXXXXXX,  XXXXXXX,                                XXXXXXX,                                XXXXXXX,  _______,  _______,  XXXXXXX,     XXXXXXX,  XXXXXXX,  XXXXXXX |  | ||||||
|   ), |  | ||||||
| 
 |  | ||||||
|   /* Keymap _MBL: Mac Base Layer (Alternate Layout)
 |  | ||||||
|    * ,-----------------------------------------------------------.  ,--------------. |  | ||||||
|    * |Esc  |f1| f2| f3| f4|  | f5| f6| f7| f8|   | f9|f10|f11|f12|  | f13| f14| f15| |  | ||||||
|    * |-----------------------------------------------------------|  |--------------| |  | ||||||
|    * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |  0| - | = |Backsp |  | Ins|Home|PgUp| |  | ||||||
|    * |-----------------------------------------------------------|  |--------------| |  | ||||||
|    * |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]|    \|  | Del| End|PgDn| |  | ||||||
|    * |-----------------------------------------------------------|  `--------------' |  | ||||||
|    * |CAPS   |  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  '| #|Ret | |  | ||||||
|    * |-----------------------------------------------------------|        ,----. |  | ||||||
|    * |Shift| \|  Z|  X|  C|  V|  B|  N|  M|  ,|  .|  /|Shift     |        | Up | |  | ||||||
|    * |-----------------------------------------------------------|   ,-------------. |  | ||||||
|    * |Ctrl|Alt |Gui |      Space            |Gui |Alt|Func |Ctrl |   |Lft| Dn |Rig | |  | ||||||
|    * `-----------------------------------------------------------'   `-------------' |  | ||||||
|    */ |  | ||||||
|   [_MBL] = LAYOUT_all( /* Mac Base Layer */ |  | ||||||
|       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_F13,   KC_F14,   KC_F15, |  | ||||||
|       KC_GRV,   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_BSPC,     KC_INS,   KC_HOME,  KC_PGUP, |  | ||||||
|       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_BSLS,     KC_DEL,   KC_END,   KC_PGDN, |  | ||||||
|       KC_CAPS,  KC_A,     KC_S,     KC_D,     KC_F,     KC_G,     KC_H,     KC_J,     KC_K,     KC_L,     KC_SCLN,  KC_QUOT,  KC_NUHS,  KC_ENT, |  | ||||||
|       KC_LSFT,  KC_NUBS,  KC_Z,     KC_X,     KC_C,     KC_V,     KC_B,     KC_N,     KC_M,     KC_COMM,  KC_DOT,   KC_SLSH,            KC_RSFT,               KC_UP, |  | ||||||
|       KC_LCTL,  KC_LALT,  KC_LGUI,                                KC_SPC,                                 KC_RGUI,  KC_RALT,  KC_MFN,   KC_RCTL,     KC_LEFT,  KC_DOWN,  KC_RGHT |  | ||||||
|   ), |  | ||||||
|   /* Keymap _MFL: Mac Function Layer
 |  | ||||||
|    * ,-----------------------------------------------------------.  ,--------------. |  | ||||||
|    * |  |Bri-|Bri+|MCon|LPad| |  |  |Prv|Ply| |Nxt|Mute|Vol-|Vol+|  |TMed|    |    | |  | ||||||
|    * |-----------------------------------------------------------|  |--------------| |  | ||||||
|    * |   |   |   |   |   |   |   |   |   |   |   |   |   |       |  |    |    |    | |  | ||||||
|    * |-----------------------------------------------------------|  |--------------| |  | ||||||
|    * |     |   |   |   |   |   |   |   |   |   |   |   |   |     |  |    |    |    | |  | ||||||
|    * |-----------------------------------------------------------|  `--------------' |  | ||||||
|    * |       |   |   |   |   |   |   |   |   |   |   |   |  |    | |  | ||||||
|    * |-----------------------------------------------------------|        ,----. |  | ||||||
|    * |     |  |   |   |   |   |   |   |   |   |   |   |          |        |    | |  | ||||||
|    * |-----------------------------------------------------------|   ,-------------. |  | ||||||
|    * |    |    |    |                       |    |Sys|Func |     |   |   |    |    | |  | ||||||
|    * `-----------------------------------------------------------'   `-------------' |  | ||||||
|    */ |  | ||||||
|   [_MFL] = LAYOUT_all( /* Mac First Layer */ |  | ||||||
|       _______,            KC_BRID,  KC_BRIU,  _______,  _______,  _______,  _______,  KC_MPRV,  KC_MPLY,  KC_MNXT,  KC_MUTE,  KC_VOLD,  KC_VOLU,     KC_TMED,  _______,  _______, |  | ||||||
|       _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,     _______,  _______,  _______, |  | ||||||
|       _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,     _______,  _______,  _______, |  | ||||||
|       _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______, |  | ||||||
|       _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,            _______,               _______, |  | ||||||
|       _______,  _______,  _______,                                _______,                                _______,  MO_MSL,   _______,  _______,     _______,  _______,  _______ |  | ||||||
|   ), |  | ||||||
|   /* Keymap _MSL: Mac System Layer
 |  | ||||||
|    * ,-----------------------------------------------------------.  ,--------------. |  | ||||||
|    * |Reset |   |    |     |Sleep| |  |  |  |  | |  |  |  |WIN|  |              | |  | ||||||
|    * |-----------------------------------------------------------|  |--------------| |  | ||||||
|    * |   |   |   |   |   |   |   |   |   |   |   |   |   |       |  |    |    |    | |  | ||||||
|    * |-----------------------------------------------------------|  |--------------| |  | ||||||
|    * |     |   |   |   |   |   |   |   |   |   |   |   |   |     |  |    |    |    | |  | ||||||
|    * |-----------------------------------------------------------|  `--------------' |  | ||||||
|    * |       |   |   |   |   |   |   |   |   |   |   |   |  |    | |  | ||||||
|    * |-----------------------------------------------------------|        ,----. |  | ||||||
|    * |     |  |   |   |   |   |   |   |   |   |   |   |          |        |    | |  | ||||||
|    * |-----------------------------------------------------------|   ,-------------. |  | ||||||
|    * |    |    |    |                       |    |Sys|Func |     |   |   |    |    | |  | ||||||
|    * `-----------------------------------------------------------'   `-------------' |  | ||||||
|    */ |  | ||||||
|   [_MSL] = LAYOUT_all( /* Mac Second / System Layer */ |  | ||||||
|       RESET,              XXXXXXX,  XXXXXXX,  XXXXXXX,  KC_SLEP,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  DF_M2WBL,    XXXXXXX,  XXXXXXX,  XXXXXXX, |  | ||||||
|       XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,     XXXXXXX,  XXXXXXX,  XXXXXXX, |  | ||||||
|       XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,     XXXXXXX,  XXXXXXX,  XXXXXXX, |  | ||||||
|       XXXXXXX,  XXXXXXX,  XXXXXXX,  DEBUG,    XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX, |  | ||||||
|       XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,            XXXXXXX,               XXXXXXX, |  | ||||||
|       XXXXXXX,  XXXXXXX,  XXXXXXX,                                XXXXXXX,                                XXXXXXX,  _______,  _______,  XXXXXXX,     XXXXXXX,  XXXXXXX,  XXXXXXX |  | ||||||
|   ) |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| void unlock_win_key(void) { |  | ||||||
|     win_key_locked = false; |  | ||||||
|     mac_media_locked = false; |  | ||||||
|     writePinHigh(LED_WIN_LOCK_PIN); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| void toggle_lock_win_key(void) { |  | ||||||
|     win_key_locked = !win_key_locked; |  | ||||||
|     writePin(LED_WIN_LOCK_PIN, !win_key_locked); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| void toggle_lock_media_key(void) { |  | ||||||
|   mac_media_locked = !mac_media_locked; |  | ||||||
|   writePin(LED_WIN_LOCK_PIN, !mac_media_locked); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #ifdef CONSOLE_ENABLE |  | ||||||
| void dprint_global_layers(void) { |  | ||||||
|     dprint("Global Layers:"); |  | ||||||
|     if (IS_LAYER_ON(_WFL)) { dprint(" _WFL"); } |  | ||||||
|     if (IS_LAYER_ON(_WSL)) { dprint(" _WSL"); } |  | ||||||
|     if (IS_LAYER_ON(_MFL)) { dprint(" _MFL"); } |  | ||||||
|     if (IS_LAYER_ON(_MSL)) { dprint(" _MSL"); } |  | ||||||
|     dprintf("\n"); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| void dprint_layers(layer_state_t state) { |  | ||||||
|     dprint("Layers:"); |  | ||||||
|     if (IS_LAYER_ON_STATE(state, _WFL)) { dprint(" _WFL"); } |  | ||||||
|     if (IS_LAYER_ON_STATE(state, _WSL)) { dprint(" _WSL"); } |  | ||||||
|     if (IS_LAYER_ON_STATE(state, _MFL)) { dprint(" _MFL"); } |  | ||||||
|     if (IS_LAYER_ON_STATE(state, _MSL)) { dprint(" _MSL"); } |  | ||||||
|     dprintf("\n"); |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
| layer_state_t default_layer_state_set_user(layer_state_t state) { |  | ||||||
| #ifdef CONSOLE_ENABLE |  | ||||||
|     dprintf("default_layer_state_set_user: 0x%x\n", state); |  | ||||||
|     dprint_global_layers(); |  | ||||||
| #endif |  | ||||||
|     // Disable windows key lock on default layer transition.
 |  | ||||||
|     unlock_win_key(); |  | ||||||
|     win_appkey_pressed = false; |  | ||||||
|     mac_fnkey_pressed = false; |  | ||||||
|     writePin(LED_MR_LOCK_PIN, !IS_LAYER_ON_STATE(state, ALT_LAYOUT)); |  | ||||||
|     return state; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| layer_state_t layer_state_set_user(layer_state_t state) { |  | ||||||
| #ifdef CONSOLE_ENABLE |  | ||||||
|     dprintf("layer_state_set_user: 0x%x\n", state); |  | ||||||
|     dprint_layers(state); |  | ||||||
| #endif |  | ||||||
|     return state; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| bool process_record_user(uint16_t keycode, keyrecord_t *record) { |  | ||||||
|     switch (keycode) { |  | ||||||
|         case KC_TGUI: |  | ||||||
|             if (!record->event.pressed) { |  | ||||||
|                 // Toggle GUI lock on key release
 |  | ||||||
|                 toggle_lock_win_key(); |  | ||||||
|             } |  | ||||||
|             break; |  | ||||||
|         case KC_TMED: |  | ||||||
|             // Only trigger when Fn key is also held down, to avoid accidental unlock.
 |  | ||||||
|             if (!mac_fnkey_pressed) { return false; } |  | ||||||
|             if (!record->event.pressed) { |  | ||||||
|                 // Toggle Media Lock on key release
 |  | ||||||
|                 toggle_lock_media_key(); |  | ||||||
|             } |  | ||||||
|             break; |  | ||||||
|         case KC_LGUI: |  | ||||||
|             if (win_key_locked) { return false; } |  | ||||||
|             break; |  | ||||||
|         case KC_WFN: |  | ||||||
|             // Like MO(_WFL), but also enables _WSL if KC_APP is already pressed down.
 |  | ||||||
|             if (record->event.pressed) { |  | ||||||
|                 layer_on(_WFL); |  | ||||||
|                 if (win_appkey_pressed) { |  | ||||||
|                     // Also enable Secondary layer if App key is being held down.
 |  | ||||||
|                     win_appkey_pressed = false; |  | ||||||
|                     layer_on(_WSL); |  | ||||||
|                 } |  | ||||||
|             } else { |  | ||||||
|                 if (IS_LAYER_ON(_WFL)) { layer_off(_WFL); } |  | ||||||
|                 if (IS_LAYER_ON(_MSL)) { layer_off(_MSL); } |  | ||||||
|             } |  | ||||||
|             break; |  | ||||||
|         case KC_APP: |  | ||||||
|             if (record->event.pressed) { |  | ||||||
|                 // Don't actually press down the app menu key
 |  | ||||||
|                 win_appkey_pressed = true; |  | ||||||
|             } else { |  | ||||||
|                 if (IS_LAYER_ON(_WSL)) { layer_off(_WSL); } |  | ||||||
|                 if (IS_LAYER_ON(_MFL)) { layer_off(_MFL); } |  | ||||||
|                 if (win_appkey_pressed) { |  | ||||||
|                     win_appkey_pressed = false; |  | ||||||
|                     // Tap the KC_APP key on key release.
 |  | ||||||
|                     tap_code(KC_APP); |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|             return false; |  | ||||||
|             break; |  | ||||||
|         case KC_MFN: |  | ||||||
|             // Mac Fn key.  Emit Fn keycode, and also transition layers similar to KC_WFN.
 |  | ||||||
|             if (record->event.pressed) { |  | ||||||
|                 mac_fnkey_pressed = true; |  | ||||||
|                 layer_on(_MFL); |  | ||||||
|                 // Also enable Secondary layer if Right-Alt key is being held down.
 |  | ||||||
|                 if (get_mods() & MOD_BIT(KC_RALT)) { |  | ||||||
|                     layer_on(_MSL); |  | ||||||
|                 } |  | ||||||
|             } else { |  | ||||||
|                 mac_fnkey_pressed = false; |  | ||||||
|                 if (!mac_media_locked) { |  | ||||||
|                     if (IS_LAYER_ON(_MFL)) { layer_off(_MFL); } |  | ||||||
|                     if (IS_LAYER_ON(_WSL)) { layer_off(_WSL); } |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|             break; |  | ||||||
|         case KC_RALT: |  | ||||||
|             // Disable MSL/WFL layer on key-up.
 |  | ||||||
|             if (!record->event.pressed) { |  | ||||||
|                 if (IS_LAYER_ON(_MSL)) { layer_off(_MSL); } |  | ||||||
|                 if (IS_LAYER_ON(_WFL)) { layer_off(_WFL); } |  | ||||||
|             } |  | ||||||
|             break; |  | ||||||
|         case MO_WSL: |  | ||||||
|             if (record->event.pressed) { |  | ||||||
|                 layer_on(_WSL); |  | ||||||
|             } else { |  | ||||||
|                 if (IS_LAYER_ON(_WSL)) { layer_off(_WSL); } |  | ||||||
|                 if (IS_LAYER_ON(_MFL)) { layer_off(_MFL); } |  | ||||||
|             } |  | ||||||
|             break; |  | ||||||
|         case MO_MSL: |  | ||||||
|             if (record->event.pressed) { |  | ||||||
|                 layer_on(_MSL); |  | ||||||
|             } else { |  | ||||||
|                 if (IS_LAYER_ON(_MSL)) { layer_off(_MSL); } |  | ||||||
|                 if (IS_LAYER_ON(_WFL)) { layer_off(_WFL); } |  | ||||||
|             } |  | ||||||
|             break; |  | ||||||
|         case DF_W2MBL: |  | ||||||
|             if (!record->event.pressed) { |  | ||||||
|                 // Switch base layer, but preserve first/secondary layers.
 |  | ||||||
|                 default_layer_set(1UL<<_MBL); |  | ||||||
|                 layer_state_set(1UL<<_MFL | 1UL<<_MSL); |  | ||||||
|             } |  | ||||||
|             break; |  | ||||||
|         case DF_M2WBL: |  | ||||||
|             if (!record->event.pressed) { |  | ||||||
|                 // Switch base layer, but preserve first/secondary layers.
 |  | ||||||
|                 default_layer_set(1UL<<_WBL); |  | ||||||
|                 layer_state_set(1UL<<_WFL | 1UL<<_WSL); |  | ||||||
|             } |  | ||||||
|             break; |  | ||||||
|         case RESET: |  | ||||||
|             if (record->event.pressed) { |  | ||||||
|                 // Flash LEDs to indicate bootloader mode is enabled.
 |  | ||||||
|                 on_all_leds(); |  | ||||||
|             } |  | ||||||
|             break; |  | ||||||
|     } |  | ||||||
|     return true; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| void keyboard_post_init_user(void) { |  | ||||||
|     default_layer_set(1UL<<DEFAULT_LAYOUT); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| @ -1,90 +0,0 @@ | |||||||
| /* Copyright 2021 Maxime Coirault
 |  | ||||||
|  * |  | ||||||
|  * This program is free software: you can redistribute it and/or modify |  | ||||||
|  * it under the terms of the GNU General Public License as published by |  | ||||||
|  * the Free Software Foundation, either version 2 of the License, or |  | ||||||
|  * (at your option) any later version. |  | ||||||
|  * |  | ||||||
|  * This program is distributed in the hope that it will be useful, |  | ||||||
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of |  | ||||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the |  | ||||||
|  * GNU General Public License for more details. |  | ||||||
|  * |  | ||||||
|  * You should have received a copy of the GNU General Public License |  | ||||||
|  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 |  | ||||||
|  */ |  | ||||||
| #include QMK_KEYBOARD_H |  | ||||||
| 
 |  | ||||||
| // Layer shorthand
 |  | ||||||
| enum _layer { |  | ||||||
|     _BASE, |  | ||||||
|     _FUNC, |  | ||||||
|     _LAYER3, |  | ||||||
|     _LAYER4 |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |  | ||||||
|   /* Keymap _BASE: Base Layer (Default Layer)
 |  | ||||||
|    * ,-----------------------------------------------------------.  ,--------------. |  | ||||||
|    * |Esc  |f1| f2| f3| f4|  | f5| f6| f7| f8|   | f9|f10|f11|f12|  |Prnt|ScLk|Paus| |  | ||||||
|    * |-----------------------------------------------------------|  |--------------| |  | ||||||
|    * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |  0| - | = |Backsp |  | Ins|Home|PgUp| |  | ||||||
|    * |-----------------------------------------------------------|  |--------------| |  | ||||||
|    * |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]|     |  | Del| End|PgDn| |  | ||||||
|    * |------------------------------------------------------ Ret |  `--------------' |  | ||||||
|    * |CAPS   |  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  '| #|    | |  | ||||||
|    * |-----------------------------------------------------------|        ,----. |  | ||||||
|    * |Shift| \|  Z|  X|  C|  V|  B|  N|  M|  ,|  .|  /|Shift     |        | Up | |  | ||||||
|    * |-----------------------------------------------------------|   ,-------------. |  | ||||||
|    * |Ctrl|Gui |Alt |      Space            |Alt | Fn  |App |Ctrl|   |Lft| Dn |Rig | |  | ||||||
|    * `-----------------------------------------------------------'   `-------------' |  | ||||||
|    */ |  | ||||||
|   [_BASE] = LAYOUT_all( /* Base Layer */ |  | ||||||
|       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_SLCK,  KC_PAUS, |  | ||||||
|       KC_GRV,   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_BSPC,      KC_INS,   KC_HOME,  KC_PGUP, |  | ||||||
|       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_BSLS,      KC_DEL,   KC_END,   KC_PGDN, |  | ||||||
|       KC_CAPS,  KC_A,     KC_S,     KC_D,     KC_F,     KC_G,     KC_H,     KC_J,     KC_K,     KC_L,     KC_SCLN,  KC_QUOT,  KC_NUHS,  KC_ENT, |  | ||||||
|       KC_LSFT,  KC_NUBS,  KC_Z,     KC_X,     KC_C,     KC_V,     KC_B,     KC_N,     KC_M,     KC_COMM,  KC_DOT,   KC_SLSH,            KC_RSFT,                KC_UP, |  | ||||||
|       KC_LCTL,  KC_LGUI,  KC_LALT,                                KC_SPC,                                 KC_RALT,  MO(_FUNC),KC_APP,   KC_RCTL,      KC_LEFT,  KC_DOWN,  KC_RGHT |  | ||||||
|   ), |  | ||||||
|   /* Keymap _FUNC: Function Layer
 |  | ||||||
|    * ,-----------------------------------------------------------.  ,--------------. |  | ||||||
|    * |   |Play|Stop|Prev|Next| |Mute|Vol+|Vol-|    | |  |  |  |  |  |    |    |    | |  | ||||||
|    * |-----------------------------------------------------------|  |--------------| |  | ||||||
|    * |   |   |   |   |   |   |   |   |   |   |   |   |   |       |  |    |    |    | |  | ||||||
|    * |-----------------------------------------------------------|  |--------------| |  | ||||||
|    * |     |   |   |   |   |   |   |   |   |   |   |   |   |     |  |    |    |    | |  | ||||||
|    * |-------------------------------------------------------    |  `--------------' |  | ||||||
|    * |       |   |   |   |   |   |   |   |   |   |   |   |  |    | |  | ||||||
|    * |-----------------------------------------------------------|        ,----. |  | ||||||
|    * |     |  |   |   |   |   |   |   |   |   |   |   |          |        |    | |  | ||||||
|    * |-----------------------------------------------------------|   ,-------------. |  | ||||||
|    * |    |    |    |                       |    |Func |    |    |   |   |    |    | |  | ||||||
|    * `-----------------------------------------------------------'   `-------------' |  | ||||||
|    */ |  | ||||||
|   [_FUNC] = LAYOUT_all( /* Function Layer */ |  | ||||||
|       _______,            KC_MPLY,  KC_MSTP,  KC_MPRV,  KC_MNXT,  KC_MUTE,  KC_VOLD,  KC_VOLU,  _______,  _______,  _______,  _______,  _______,      _______,  _______,  _______, |  | ||||||
|       _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,      _______,  _______,  _______, |  | ||||||
|       _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,      _______,  _______,  _______, |  | ||||||
|       _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______, |  | ||||||
|       _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,            _______,                _______, |  | ||||||
|       _______,  _______,  _______,                                _______,                                _______,  _______,  _______,  _______,      _______,  _______,  _______ |  | ||||||
|   ), |  | ||||||
|   [_LAYER3] = LAYOUT_all( /* Layer 3 */ |  | ||||||
|       _______,            _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,      _______,  _______,  _______, |  | ||||||
|       _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,      _______,  _______,  _______, |  | ||||||
|       _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,      _______,  _______,  _______, |  | ||||||
|       _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______, |  | ||||||
|       _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,            _______,                _______, |  | ||||||
|       _______,  _______,  _______,                                _______,                                _______,  _______,  _______,  _______,      _______,  _______,  _______ |  | ||||||
|   ), |  | ||||||
|   [_LAYER4] = LAYOUT_all( /* Layer 4 */ |  | ||||||
|       _______,            _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,      _______,  _______,  _______, |  | ||||||
|       _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,      _______,  _______,  _______, |  | ||||||
|       _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,      _______,  _______,  _______, |  | ||||||
|       _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______, |  | ||||||
|       _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,            _______,                _______, |  | ||||||
|       _______,  _______,  _______,                                _______,                                _______,  _______,  _______,  _______,      _______,  _______,  _______ |  | ||||||
|   ) |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| @ -1,12 +0,0 @@ | |||||||
| # The default keymap for Durgod Taurus K320. |  | ||||||
| 
 |  | ||||||
| Layer 0 : Standard 87/88 keys TKL layout |  | ||||||
| 
 |  | ||||||
| Layer 1 : Media control |  | ||||||
| - Reusing Durgod's Original Media Control for Fn + F1 ~ Fn + F7 |  | ||||||
| 
 |  | ||||||
| ## Supported PCBs |  | ||||||
| 
 |  | ||||||
| This firmware was tested on a Durgod K320 ISO with the PCB marked "DGK320ST-Single v1.0 HS20181227". |  | ||||||
| 
 |  | ||||||
| The pcb features switch holes for ANSI layout, so this firmware might be compatible with with the Durgod K320 ANSI. |  | ||||||
| @ -1,4 +0,0 @@ | |||||||
| OPT_DEFS += -DWINLOCK_DISABLED |  | ||||||
| 
 |  | ||||||
| VIA_ENABLE = yes |  | ||||||
| LTO_ENABLE = yes |  | ||||||
| @ -1,57 +1,4 @@ | |||||||
| # K320 | # K320 | ||||||
| 
 | 
 | ||||||
| This is a standard off-the-shelf Durgod Taurus K320 TKL (87/88-key) keyboard without backlight. | See: [K320](../k3x0/k320/readme.md) | ||||||
| 
 | 
 | ||||||
| * Keyboard Maintainer: [dkjer](https://github.com/dkjer) |  | ||||||
| * Hardware Supported: Durgod Taurus K320 board with STM32F070RBT6 |  | ||||||
| * Hardware Availability: https://www.durgod.com/page9?product_id=47&_l=en |  | ||||||
| 
 |  | ||||||
| ## Instructions |  | ||||||
| 
 |  | ||||||
| ### Build |  | ||||||
| 
 |  | ||||||
| Make command example for this keyboard (after setting up your build environment): |  | ||||||
| 
 |  | ||||||
|     make durgod/k320:default |  | ||||||
| 
 |  | ||||||
| Flashing example for this keyboard: |  | ||||||
| 
 |  | ||||||
|     make durgod/k320:default:flash |  | ||||||
| 
 |  | ||||||
| See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). |  | ||||||
| 
 |  | ||||||
| ### Initial Flash |  | ||||||
| 
 |  | ||||||
| For first Flashing from initial Stock's Firmware |  | ||||||
| 
 |  | ||||||
| 1. Back up original Firmware Image: |  | ||||||
| - Unplug |  | ||||||
| - Short Boot0 to Vdd (See below) |  | ||||||
| - Plug In USB |  | ||||||
| - Make a Flash Image's Backup in case you wanted to restore the Keyboard to Stock's Image: |  | ||||||
|   - Using DFUseDemo.exe from ST's STSW-STM32080: https://www.st.com/en/development-tools/stsw-stm32080.html |  | ||||||
|   - Using dfu-util: |  | ||||||
| 
 |  | ||||||
|         dfu-util --list |  | ||||||
|         dfu-util --alt 0 --dfuse-address 0x08000000 --upload ${OLD_STOCK_BIN} |  | ||||||
| 
 |  | ||||||
| 2. Flash the QMK Firmware Image. |  | ||||||
| - Put board into Bootloader mode, using the same method as when backing up the original Firmware (above) |  | ||||||
| - Here are a few options for performing the initial Flash: |  | ||||||
|   - Using [QMK Toolbox](https://github.com/qmk/qmk_toolbox) |  | ||||||
|   - Using DFuseDemo.exe if STTub30 driver is used. |  | ||||||
|   - Using dfu-util: |  | ||||||
| 
 |  | ||||||
|         dfu-util --alt 0 --dfuse-address 0x08000000 --download ${NEW_QMK_BIN} |  | ||||||
| 
 |  | ||||||
| You can short Boot0 to Vdd by shorting R21 to C27 on the sides closest to the processor, as shown: |  | ||||||
| 
 |  | ||||||
| <img src="https://i.imgur.com/hvDnw5a.jpg" width="520" height="693" alt="Shorting Boot0 to Vdd on K320"> |  | ||||||
| 
 |  | ||||||
| ### Subsequent Flashing |  | ||||||
| 
 |  | ||||||
| For repeating Flashing you can use BootMagic: |  | ||||||
| - BootMagic Lite has been enabled with Assigned "Esc" key  |  | ||||||
| - Unplug USB Cable |  | ||||||
| - Holding Esc Button  |  | ||||||
| - Plug in USB Cable, Keyboard should be in ST-Bootloader state |  | ||||||
|  | |||||||
| @ -1,29 +1 @@ | |||||||
| # MCU name
 | DEFAULT_FOLDER=durgod/k3x0/k320 | ||||||
| # Actually F070, but close enough
 |  | ||||||
| MCU = STM32F072 |  | ||||||
| BOARD = DURGOD_STM32_F070 |  | ||||||
| 
 |  | ||||||
| # Bootloader selection
 |  | ||||||
| BOOTLOADER = stm32-dfu |  | ||||||
| 
 |  | ||||||
| # Do not put the microcontroller into power saving mode
 |  | ||||||
| OPT_DEFS += -DNO_SUSPEND_POWER_DOWN |  | ||||||
| 
 |  | ||||||
| # Build Options
 |  | ||||||
| #   change yes to no to disable
 |  | ||||||
| #
 |  | ||||||
| BOOTMAGIC_ENABLE = lite     # Virtual DIP switch configuration |  | ||||||
| MOUSEKEY_ENABLE = no        # Mouse keys |  | ||||||
| EXTRAKEY_ENABLE = yes       # Audio control and System control |  | ||||||
| CONSOLE_ENABLE = no         # Console for debug |  | ||||||
| COMMAND_ENABLE = no         # Commands for debug and configuration |  | ||||||
| # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
 |  | ||||||
| SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend |  | ||||||
| # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
 |  | ||||||
| NKRO_ENABLE = yes           # USB Nkey Rollover |  | ||||||
| BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality |  | ||||||
| RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow |  | ||||||
| BLUETOOTH_ENABLE = no       # Enable Bluetooth |  | ||||||
| AUDIO_ENABLE = no           # Audio output |  | ||||||
| 
 |  | ||||||
| LAYOUTS = tkl_ansi tkl_iso |  | ||||||
|  | |||||||
| @ -1,4 +1,5 @@ | |||||||
| /* Copyright 2021 kuenhlee and Don Kjer
 | /* Copyright 2021 kuenhlee, Don Kjer, Tyler Tidman
 | ||||||
|  |  * Copyright 2021 Simon Arlott | ||||||
|  * |  * | ||||||
|  * This program is free software: you can redistribute it and/or modify |  * This program is free software: you can redistribute it and/or modify | ||||||
|  * it under the terms of the GNU General Public License as published by |  * it under the terms of the GNU General Public License as published by | ||||||
| @ -20,16 +21,11 @@ | |||||||
| 
 | 
 | ||||||
| /* USB Device descriptor parameter */ | /* USB Device descriptor parameter */ | ||||||
| #define VENDOR_ID       0xD60D | #define VENDOR_ID       0xD60D | ||||||
| #define PRODUCT_ID      0x3200 |  | ||||||
| #define DEVICE_VER      0x0001 |  | ||||||
| #define MANUFACTURER    Hoksi Technology | #define MANUFACTURER    Hoksi Technology | ||||||
| #define PRODUCT         DURGOD Taurus K320 (QMK) |  | ||||||
| 
 | 
 | ||||||
| /* key matrix size */ | /* key matrix size (rows in specific keyboard variant) */ | ||||||
| #define MATRIX_ROWS 7 |  | ||||||
| #define MATRIX_COLS 16 | #define MATRIX_COLS 16 | ||||||
| 
 | 
 | ||||||
| #define MATRIX_ROW_PINS { A0, A1, A2, A3, A4, A5, A6 } |  | ||||||
| #define MATRIX_COL_PINS { C4, C5, B0, B1, B2, B10, B11, B12, B13, B14, B15, C6, C7, C10, C11, C12 } | #define MATRIX_COL_PINS { C4, C5, B0, B1, B2, B10, B11, B12, B13, B14, B15, C6, C7, C10, C11, C12 } | ||||||
| 
 | 
 | ||||||
| /* COL2ROW, ROW2COL*/ | /* COL2ROW, ROW2COL*/ | ||||||
| @ -42,6 +38,7 @@ | |||||||
| 
 | 
 | ||||||
| /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ | /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ | ||||||
| #define DEBOUNCE 5 | #define DEBOUNCE 5 | ||||||
|  | // #define USB_POLLING_INTERVAL_MS 1
 | ||||||
| 
 | 
 | ||||||
| /* Bootmagic Lite key configuration */ | /* Bootmagic Lite key configuration */ | ||||||
| #define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE | #define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE | ||||||
| @ -54,3 +51,6 @@ | |||||||
| #define LED_WIN_LOCK_PIN    A9 | #define LED_WIN_LOCK_PIN    A9 | ||||||
| #define LED_MR_LOCK_PIN     A10 | #define LED_MR_LOCK_PIN     A10 | ||||||
| #define LED_PIN_ON_STATE    0 | #define LED_PIN_ON_STATE    0 | ||||||
|  | 
 | ||||||
|  | /* Original hardware "reset" button on pin D2 */ | ||||||
|  | #define HARDWARE_RESET_PIN  D2 | ||||||
							
								
								
									
										22
									
								
								keyboards/durgod/k3x0/halconf.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								keyboards/durgod/k3x0/halconf.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,22 @@ | |||||||
|  | /* Copyright 2021 Simon Arlott
 | ||||||
|  |  * | ||||||
|  |  * This program is free software: you can redistribute it and/or modify | ||||||
|  |  * it under the terms of the GNU General Public License as published by | ||||||
|  |  * the Free Software Foundation, either version 2 of the License, or | ||||||
|  |  * (at your option) any later version. | ||||||
|  |  * | ||||||
|  |  * This program is distributed in the hope that it will be useful, | ||||||
|  |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
|  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||||
|  |  * GNU General Public License for more details. | ||||||
|  |  * | ||||||
|  |  * You should have received a copy of the GNU General Public License | ||||||
|  |  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | #pragma once | ||||||
|  | 
 | ||||||
|  | #define HAL_USE_PAL                 TRUE | ||||||
|  | #define PAL_USE_CALLBACKS           TRUE | ||||||
|  | 
 | ||||||
|  | #include_next <halconf.h> | ||||||
							
								
								
									
										23
									
								
								keyboards/durgod/k3x0/k310/base/config.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								keyboards/durgod/k3x0/k310/base/config.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,23 @@ | |||||||
|  | /* Copyright 2021 Don Kjer
 | ||||||
|  |  * | ||||||
|  |  * This program is free software: you can redistribute it and/or modify | ||||||
|  |  * it under the terms of the GNU General Public License as published by | ||||||
|  |  * the Free Software Foundation, either version 2 of the License, or | ||||||
|  |  * (at your option) any later version. | ||||||
|  |  * | ||||||
|  |  * This program is distributed in the hope that it will be useful, | ||||||
|  |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
|  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||||
|  |  * GNU General Public License for more details. | ||||||
|  |  * | ||||||
|  |  * You should have received a copy of the GNU General Public License | ||||||
|  |  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | #pragma once | ||||||
|  | 
 | ||||||
|  | #include "config_common.h" | ||||||
|  | 
 | ||||||
|  | /* USB Device descriptor parameter */ | ||||||
|  | #define PRODUCT         DURGOD Taurus K310 (QMK) | ||||||
|  | #define DEVICE_VER      0x0001 // Base (no backlight)
 | ||||||
							
								
								
									
										27
									
								
								keyboards/durgod/k3x0/k310/base/readme.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								keyboards/durgod/k3x0/k310/base/readme.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,27 @@ | |||||||
|  | # K310 | ||||||
|  | 
 | ||||||
|  | This is a standard off-the-shelf Durgod Taurus K310 full-sized 104/105-key | ||||||
|  | keyboard without backlight.  This supports both the ANSI and ISO variants. | ||||||
|  | 
 | ||||||
|  | * Keyboard Maintainers: [dkjer](https://github.com/dkjer) and [tylert](https://github.com/tylert) | ||||||
|  | * Hardware Supported: Durgod Taurus K310 board with STM32F070RBT6 | ||||||
|  | * Hardware Availability: K310 https://www.durgod.com/page9?product_id=53&_l=en | ||||||
|  | 
 | ||||||
|  | ## Instructions | ||||||
|  | 
 | ||||||
|  | ### Build | ||||||
|  | 
 | ||||||
|  | Make command example for this keyboard (after setting up your build environment): | ||||||
|  | 
 | ||||||
|  |     make durgod/k310:default | ||||||
|  | 
 | ||||||
|  | Flashing example for this keyboard: | ||||||
|  | 
 | ||||||
|  |     make durgod/k310:default:flash | ||||||
|  | 
 | ||||||
|  | See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). | ||||||
|  | 
 | ||||||
|  | ### Initial Flash | ||||||
|  | 
 | ||||||
|  | Instructions for Flashing from initial Stock Firmware: | ||||||
|  | * [Initial Flashing](../../readme.md#initial-flash) | ||||||
							
								
								
									
										1
									
								
								keyboards/durgod/k3x0/k310/base/rules.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								keyboards/durgod/k3x0/k310/base/rules.mk
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | |||||||
|  | # see common rules.mk
 | ||||||
							
								
								
									
										36
									
								
								keyboards/durgod/k3x0/k310/config.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								keyboards/durgod/k3x0/k310/config.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,36 @@ | |||||||
|  | /* Copyright 2021 Don Kjer and Tyler Tidman
 | ||||||
|  |  * Copyright 2021 Simon Arlott | ||||||
|  |  * | ||||||
|  |  * This program is free software: you can redistribute it and/or modify | ||||||
|  |  * it under the terms of the GNU General Public License as published by | ||||||
|  |  * the Free Software Foundation, either version 2 of the License, or | ||||||
|  |  * (at your option) any later version. | ||||||
|  |  * | ||||||
|  |  * This program is distributed in the hope that it will be useful, | ||||||
|  |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
|  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||||
|  |  * GNU General Public License for more details. | ||||||
|  |  * | ||||||
|  |  * You should have received a copy of the GNU General Public License | ||||||
|  |  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | #pragma once | ||||||
|  | 
 | ||||||
|  | #include "config_common.h" | ||||||
|  | 
 | ||||||
|  | /* USB Device descriptor parameter */ | ||||||
|  | #define PRODUCT_ID      0x3100 | ||||||
|  | // Taurus K310 models:
 | ||||||
|  | //#define DEVICE_VER      0x0001 // Base (no backlight)
 | ||||||
|  | //#define DEVICE_VER      0x0002 // Corona (white led matrix)
 | ||||||
|  | //#define DEVICE_VER      0x0003 // Aurora (red & blue led matrix)
 | ||||||
|  | //#define DEVICE_VER      0x0004 // Nebula (rgb led matrix)
 | ||||||
|  | 
 | ||||||
|  | /* key matrix size (cols in generic keyboard config) */ | ||||||
|  | #define MATRIX_ROWS 8 | ||||||
|  | 
 | ||||||
|  | #define MATRIX_ROW_PINS { A0, A1, A2, A3, A4, A5, A6, A7 } | ||||||
|  | 
 | ||||||
|  | /* LED indicator pins */ | ||||||
|  | #define LED_NUM_LOCK_PIN    C8 | ||||||
| @ -1,11 +1,11 @@ | |||||||
| { | { | ||||||
|   "keyboard_name": "DURGOD Taurus K320", |   "keyboard_name": "DURGOD Taurus K310", | ||||||
|   "url": "https://www.durgod.com/page9?product_id=47&_l=en", |   "url": "https://www.durgod.com/page9?product_id=53&_l=en", | ||||||
|   "maintainer": "dkjer", |   "maintainer": "tylert", | ||||||
|   "width": 18.25, |   "width": 22.5, | ||||||
|   "height": 6.5, |   "height": 6.5, | ||||||
|     "layouts": { |     "layouts": { | ||||||
|         "LAYOUT_tkl_ansi": { |         "LAYOUT_fullsize_ansi": { | ||||||
|             "layout": [ |             "layout": [ | ||||||
|                 { "label": "Esc", "x": 0, "y": 0 }, |                 { "label": "Esc", "x": 0, "y": 0 }, | ||||||
|                 { "label": "F1", "x": 2, "y": 0 }, |                 { "label": "F1", "x": 2, "y": 0 }, | ||||||
| @ -41,6 +41,10 @@ | |||||||
|                 { "label": "Insert", "x": 15.25, "y": 1.5 }, |                 { "label": "Insert", "x": 15.25, "y": 1.5 }, | ||||||
|                 { "label": "Home", "x": 16.25, "y": 1.5 }, |                 { "label": "Home", "x": 16.25, "y": 1.5 }, | ||||||
|                 { "label": "PgUp", "x": 17.25, "y": 1.5 }, |                 { "label": "PgUp", "x": 17.25, "y": 1.5 }, | ||||||
|  |                 { "label": "Num Lock", "x": 18.5, "y": 1.5 }, | ||||||
|  |                 { "label": "/", "x": 19.5, "y": 1.5 }, | ||||||
|  |                 { "label": "*", "x": 20.5, "y": 1.5 }, | ||||||
|  |                 { "label": "-", "x": 21.5, "y": 1.5 }, | ||||||
| 
 | 
 | ||||||
|                 { "label": "Tab", "x": 0, "y": 2.5, "w": 1.5 }, |                 { "label": "Tab", "x": 0, "y": 2.5, "w": 1.5 }, | ||||||
|                 { "label": "Q", "x": 1.5, "y": 2.5 }, |                 { "label": "Q", "x": 1.5, "y": 2.5 }, | ||||||
| @ -59,6 +63,10 @@ | |||||||
|                 { "label": "Delete", "x": 15.25, "y": 2.5 }, |                 { "label": "Delete", "x": 15.25, "y": 2.5 }, | ||||||
|                 { "label": "End", "x": 16.25, "y": 2.5 }, |                 { "label": "End", "x": 16.25, "y": 2.5 }, | ||||||
|                 { "label": "PgDn", "x": 17.25, "y": 2.5 }, |                 { "label": "PgDn", "x": 17.25, "y": 2.5 }, | ||||||
|  |                 { "label": "7", "x": 18.5, "y": 2.5 }, | ||||||
|  |                 { "label": "8", "x": 19.5, "y": 2.5 }, | ||||||
|  |                 { "label": "9", "x": 20.5, "y": 2.5 }, | ||||||
|  |                 { "label": "+", "x": 21.5, "y": 2.5, "h": 2 }, | ||||||
| 
 | 
 | ||||||
|                 { "label": "Caps Lock", "x": 0, "y": 3.5, "w": 1.75 }, |                 { "label": "Caps Lock", "x": 0, "y": 3.5, "w": 1.75 }, | ||||||
|                 { "label": "A", "x": 1.75, "y": 3.5 }, |                 { "label": "A", "x": 1.75, "y": 3.5 }, | ||||||
| @ -73,6 +81,9 @@ | |||||||
|                 { "label": ":", "x": 10.75, "y": 3.5 }, |                 { "label": ":", "x": 10.75, "y": 3.5 }, | ||||||
|                 { "label": "\"", "x": 11.75, "y": 3.5 }, |                 { "label": "\"", "x": 11.75, "y": 3.5 }, | ||||||
|                 { "label": "Enter", "x": 12.75, "y": 3.5, "w": 2.25 }, |                 { "label": "Enter", "x": 12.75, "y": 3.5, "w": 2.25 }, | ||||||
|  |                 { "label": "4", "x": 18.5, "y": 3.5 }, | ||||||
|  |                 { "label": "5", "x": 19.5, "y": 3.5 }, | ||||||
|  |                 { "label": "6", "x": 20.5, "y": 3.5 }, | ||||||
| 
 | 
 | ||||||
|                 { "label": "Shift", "x": 0, "y": 4.5, "w": 2.25 }, |                 { "label": "Shift", "x": 0, "y": 4.5, "w": 2.25 }, | ||||||
|                 { "label": "Z", "x": 2.25, "y": 4.5 }, |                 { "label": "Z", "x": 2.25, "y": 4.5 }, | ||||||
| @ -87,6 +98,10 @@ | |||||||
|                 { "label": "?", "x": 11.25, "y": 4.5 }, |                 { "label": "?", "x": 11.25, "y": 4.5 }, | ||||||
|                 { "label": "Shift", "x": 12.25, "y": 4.5, "w": 2.75 }, |                 { "label": "Shift", "x": 12.25, "y": 4.5, "w": 2.75 }, | ||||||
|                 { "label": "\u2191", "x": 16.25, "y": 4.5 }, |                 { "label": "\u2191", "x": 16.25, "y": 4.5 }, | ||||||
|  |                 { "label": "1", "x": 18.5, "y": 4.5 }, | ||||||
|  |                 { "label": "2", "x": 19.5, "y": 4.5 }, | ||||||
|  |                 { "label": "3", "x": 20.5, "y": 4.5 }, | ||||||
|  |                 { "label": "Enter", "x": 21.5, "y": 4.5, "h": 2 }, | ||||||
| 
 | 
 | ||||||
|                 { "label": "Ctrl", "x": 0, "y": 5.5, "w": 1.25 }, |                 { "label": "Ctrl", "x": 0, "y": 5.5, "w": 1.25 }, | ||||||
|                 { "label": "Win", "x": 1.25, "y": 5.5, "w": 1.25 }, |                 { "label": "Win", "x": 1.25, "y": 5.5, "w": 1.25 }, | ||||||
| @ -98,10 +113,12 @@ | |||||||
|                 { "label": "Ctrl", "x": 13.75, "y": 5.5, "w": 1.25 }, |                 { "label": "Ctrl", "x": 13.75, "y": 5.5, "w": 1.25 }, | ||||||
|                 { "label": "\u2190", "x": 15.25, "y": 5.5 }, |                 { "label": "\u2190", "x": 15.25, "y": 5.5 }, | ||||||
|                 { "label": "\u2193", "x": 16.25, "y": 5.5 }, |                 { "label": "\u2193", "x": 16.25, "y": 5.5 }, | ||||||
|                 { "label": "\u2192", "x": 17.25, "y": 5.5 } |                 { "label": "\u2192", "x": 17.25, "y": 5.5 }, | ||||||
|  |                 { "label": "0", "x": 18.5, "y": 5.5, "w": 2 }, | ||||||
|  |                 { "label": ".", "x": 20.5, "y": 5.5 } | ||||||
|             ] |             ] | ||||||
|         }, |         }, | ||||||
|         "LAYOUT_tkl_iso": { |         "LAYOUT_fullsize_iso": { | ||||||
|             "layout": [ |             "layout": [ | ||||||
|                 { "label": "Esc", "x": 0, "y": 0 }, |                 { "label": "Esc", "x": 0, "y": 0 }, | ||||||
|                 { "label": "F1", "x": 2, "y": 0 }, |                 { "label": "F1", "x": 2, "y": 0 }, | ||||||
| @ -137,6 +154,10 @@ | |||||||
|                 { "label": "Insert", "x": 15.25, "y": 1.5 }, |                 { "label": "Insert", "x": 15.25, "y": 1.5 }, | ||||||
|                 { "label": "Home", "x": 16.25, "y": 1.5 }, |                 { "label": "Home", "x": 16.25, "y": 1.5 }, | ||||||
|                 { "label": "PgUp", "x": 17.25, "y": 1.5 }, |                 { "label": "PgUp", "x": 17.25, "y": 1.5 }, | ||||||
|  |                 { "label": "Num Lock", "x": 18.5, "y": 1.5 }, | ||||||
|  |                 { "label": "/", "x": 19.5, "y": 1.5 }, | ||||||
|  |                 { "label": "*", "x": 20.5, "y": 1.5 }, | ||||||
|  |                 { "label": "-", "x": 21.5, "y": 1.5 }, | ||||||
| 
 | 
 | ||||||
|                 { "label": "Tab", "x": 0, "y": 2.5, "w": 1.5 }, |                 { "label": "Tab", "x": 0, "y": 2.5, "w": 1.5 }, | ||||||
|                 { "label": "Q", "x": 1.5, "y": 2.5 }, |                 { "label": "Q", "x": 1.5, "y": 2.5 }, | ||||||
| @ -154,6 +175,10 @@ | |||||||
|                 { "label": "Delete", "x": 15.25, "y": 2.5 }, |                 { "label": "Delete", "x": 15.25, "y": 2.5 }, | ||||||
|                 { "label": "End", "x": 16.25, "y": 2.5 }, |                 { "label": "End", "x": 16.25, "y": 2.5 }, | ||||||
|                 { "label": "PgDn", "x": 17.25, "y": 2.5 }, |                 { "label": "PgDn", "x": 17.25, "y": 2.5 }, | ||||||
|  |                 { "label": "7", "x": 18.5, "y": 2.5 }, | ||||||
|  |                 { "label": "8", "x": 19.5, "y": 2.5 }, | ||||||
|  |                 { "label": "9", "x": 20.5, "y": 2.5 }, | ||||||
|  |                 { "label": "+", "x": 21.5, "y": 2.5, "h": 2 }, | ||||||
| 
 | 
 | ||||||
|                 { "label": "Caps Lock", "x": 0, "y": 3.5, "w": 1.75 }, |                 { "label": "Caps Lock", "x": 0, "y": 3.5, "w": 1.75 }, | ||||||
|                 { "label": "A", "x": 1.75, "y": 3.5 }, |                 { "label": "A", "x": 1.75, "y": 3.5 }, | ||||||
| @ -169,6 +194,9 @@ | |||||||
|                 { "label": "\"", "x": 11.75, "y": 3.5 }, |                 { "label": "\"", "x": 11.75, "y": 3.5 }, | ||||||
|                 { "label": "#", "x": 12.75, "y": 3.5 }, |                 { "label": "#", "x": 12.75, "y": 3.5 }, | ||||||
|                 { "label": "Enter", "x": 13.75, "y": 2.5, "w": 1.25, "h": 2 }, |                 { "label": "Enter", "x": 13.75, "y": 2.5, "w": 1.25, "h": 2 }, | ||||||
|  |                 { "label": "4", "x": 18.5, "y": 3.5 }, | ||||||
|  |                 { "label": "5", "x": 19.5, "y": 3.5 }, | ||||||
|  |                 { "label": "6", "x": 20.5, "y": 3.5 }, | ||||||
| 
 | 
 | ||||||
|                 { "label": "Shift", "x": 0, "y": 4.5, "w": 1.25 }, |                 { "label": "Shift", "x": 0, "y": 4.5, "w": 1.25 }, | ||||||
|                 { "label": "\\", "x": 1.25, "y": 4.5 }, |                 { "label": "\\", "x": 1.25, "y": 4.5 }, | ||||||
| @ -184,6 +212,10 @@ | |||||||
|                 { "label": "?", "x": 11.25, "y": 4.5 }, |                 { "label": "?", "x": 11.25, "y": 4.5 }, | ||||||
|                 { "label": "Shift", "x": 12.25, "y": 4.5, "w": 2.75 }, |                 { "label": "Shift", "x": 12.25, "y": 4.5, "w": 2.75 }, | ||||||
|                 { "label": "\u2191", "x": 16.25, "y": 4.5 }, |                 { "label": "\u2191", "x": 16.25, "y": 4.5 }, | ||||||
|  |                 { "label": "1", "x": 18.5, "y": 4.5 }, | ||||||
|  |                 { "label": "2", "x": 19.5, "y": 4.5 }, | ||||||
|  |                 { "label": "3", "x": 20.5, "y": 4.5 }, | ||||||
|  |                 { "label": "Enter", "x": 21.5, "y": 4.5, "h": 2 }, | ||||||
| 
 | 
 | ||||||
|                 { "label": "Ctrl", "x": 0, "y": 5.5, "w": 1.25 }, |                 { "label": "Ctrl", "x": 0, "y": 5.5, "w": 1.25 }, | ||||||
|                 { "label": "Win", "x": 1.25, "y": 5.5, "w": 1.25 }, |                 { "label": "Win", "x": 1.25, "y": 5.5, "w": 1.25 }, | ||||||
| @ -195,7 +227,9 @@ | |||||||
|                 { "label": "Ctrl", "x": 13.75, "y": 5.5, "w": 1.25 }, |                 { "label": "Ctrl", "x": 13.75, "y": 5.5, "w": 1.25 }, | ||||||
|                 { "label": "\u2190", "x": 15.25, "y": 5.5 }, |                 { "label": "\u2190", "x": 15.25, "y": 5.5 }, | ||||||
|                 { "label": "\u2193", "x": 16.25, "y": 5.5 }, |                 { "label": "\u2193", "x": 16.25, "y": 5.5 }, | ||||||
|                 { "label": "\u2192", "x": 17.25, "y": 5.5 } |                 { "label": "\u2192", "x": 17.25, "y": 5.5 }, | ||||||
|  |                 { "label": "0", "x": 18.5, "y": 5.5, "w": 2 }, | ||||||
|  |                 { "label": ".", "x": 20.5, "y": 5.5 } | ||||||
|             ] |             ] | ||||||
|         }, |         }, | ||||||
|         "LAYOUT_all": { |         "LAYOUT_all": { | ||||||
| @ -234,6 +268,10 @@ | |||||||
|                 { "label": "Insert", "x": 15.25, "y": 1.5 }, |                 { "label": "Insert", "x": 15.25, "y": 1.5 }, | ||||||
|                 { "label": "Home", "x": 16.25, "y": 1.5 }, |                 { "label": "Home", "x": 16.25, "y": 1.5 }, | ||||||
|                 { "label": "PgUp", "x": 17.25, "y": 1.5 }, |                 { "label": "PgUp", "x": 17.25, "y": 1.5 }, | ||||||
|  |                 { "label": "Num Lock", "x": 18.5, "y": 1.5 }, | ||||||
|  |                 { "label": "/", "x": 19.5, "y": 1.5 }, | ||||||
|  |                 { "label": "*", "x": 20.5, "y": 1.5 }, | ||||||
|  |                 { "label": "-", "x": 21.5, "y": 1.5 }, | ||||||
| 
 | 
 | ||||||
|                 { "label": "Tab", "x": 0, "y": 2.5, "w": 1.5 }, |                 { "label": "Tab", "x": 0, "y": 2.5, "w": 1.5 }, | ||||||
|                 { "label": "Q", "x": 1.5, "y": 2.5 }, |                 { "label": "Q", "x": 1.5, "y": 2.5 }, | ||||||
| @ -252,6 +290,10 @@ | |||||||
|                 { "label": "Delete", "x": 15.25, "y": 2.5 }, |                 { "label": "Delete", "x": 15.25, "y": 2.5 }, | ||||||
|                 { "label": "End", "x": 16.25, "y": 2.5 }, |                 { "label": "End", "x": 16.25, "y": 2.5 }, | ||||||
|                 { "label": "PgDn", "x": 17.25, "y": 2.5 }, |                 { "label": "PgDn", "x": 17.25, "y": 2.5 }, | ||||||
|  |                 { "label": "7", "x": 18.5, "y": 2.5 }, | ||||||
|  |                 { "label": "8", "x": 19.5, "y": 2.5 }, | ||||||
|  |                 { "label": "9", "x": 20.5, "y": 2.5 }, | ||||||
|  |                 { "label": "+", "x": 21.5, "y": 2.5, "h": 2 }, | ||||||
| 
 | 
 | ||||||
|                 { "label": "Caps Lock", "x": 0, "y": 3.5, "w": 1.75 }, |                 { "label": "Caps Lock", "x": 0, "y": 3.5, "w": 1.75 }, | ||||||
|                 { "label": "A", "x": 1.75, "y": 3.5 }, |                 { "label": "A", "x": 1.75, "y": 3.5 }, | ||||||
| @ -267,6 +309,9 @@ | |||||||
|                 { "label": "\"", "x": 11.75, "y": 3.5 }, |                 { "label": "\"", "x": 11.75, "y": 3.5 }, | ||||||
|                 { "label": "#", "x": 12.75, "y": 3.5 }, |                 { "label": "#", "x": 12.75, "y": 3.5 }, | ||||||
|                 { "label": "Enter", "x": 13.75, "y": 3.5, "w": 1.25 }, |                 { "label": "Enter", "x": 13.75, "y": 3.5, "w": 1.25 }, | ||||||
|  |                 { "label": "4", "x": 18.5, "y": 3.5 }, | ||||||
|  |                 { "label": "5", "x": 19.5, "y": 3.5 }, | ||||||
|  |                 { "label": "6", "x": 20.5, "y": 3.5 }, | ||||||
| 
 | 
 | ||||||
|                 { "label": "Shift", "x": 0, "y": 4.5, "w": 1.25 }, |                 { "label": "Shift", "x": 0, "y": 4.5, "w": 1.25 }, | ||||||
|                 { "label": "\\", "x": 1.25, "y": 4.5 }, |                 { "label": "\\", "x": 1.25, "y": 4.5 }, | ||||||
| @ -282,6 +327,10 @@ | |||||||
|                 { "label": "?", "x": 11.25, "y": 4.5 }, |                 { "label": "?", "x": 11.25, "y": 4.5 }, | ||||||
|                 { "label": "Shift", "x": 12.25, "y": 4.5, "w": 2.75 }, |                 { "label": "Shift", "x": 12.25, "y": 4.5, "w": 2.75 }, | ||||||
|                 { "label": "\u2191", "x": 16.25, "y": 4.5 }, |                 { "label": "\u2191", "x": 16.25, "y": 4.5 }, | ||||||
|  |                 { "label": "1", "x": 18.5, "y": 4.5 }, | ||||||
|  |                 { "label": "2", "x": 19.5, "y": 4.5 }, | ||||||
|  |                 { "label": "3", "x": 20.5, "y": 4.5 }, | ||||||
|  |                 { "label": "Enter", "x": 21.5, "y": 4.5, "h": 2 }, | ||||||
| 
 | 
 | ||||||
|                 { "label": "Ctrl", "x": 0, "y": 5.5, "w": 1.25 }, |                 { "label": "Ctrl", "x": 0, "y": 5.5, "w": 1.25 }, | ||||||
|                 { "label": "Win", "x": 1.25, "y": 5.5, "w": 1.25 }, |                 { "label": "Win", "x": 1.25, "y": 5.5, "w": 1.25 }, | ||||||
| @ -293,7 +342,9 @@ | |||||||
|                 { "label": "Ctrl", "x": 13.75, "y": 5.5, "w": 1.25 }, |                 { "label": "Ctrl", "x": 13.75, "y": 5.5, "w": 1.25 }, | ||||||
|                 { "label": "\u2190", "x": 15.25, "y": 5.5 }, |                 { "label": "\u2190", "x": 15.25, "y": 5.5 }, | ||||||
|                 { "label": "\u2193", "x": 16.25, "y": 5.5 }, |                 { "label": "\u2193", "x": 16.25, "y": 5.5 }, | ||||||
|                 { "label": "\u2192", "x": 17.25, "y": 5.5 } |                 { "label": "\u2192", "x": 17.25, "y": 5.5 }, | ||||||
|  |                 { "label": "0", "x": 18.5, "y": 5.5, "w": 2 }, | ||||||
|  |                 { "label": ".", "x": 20.5, "y": 5.5 } | ||||||
|             ] |             ] | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
							
								
								
									
										78
									
								
								keyboards/durgod/k3x0/k310/k310.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								keyboards/durgod/k3x0/k310/k310.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,78 @@ | |||||||
|  | /* Copyright 2021 Don Kjer and Tyler Tidman
 | ||||||
|  |  * Copyright 2021 Simon Arlott | ||||||
|  |  * | ||||||
|  |  * This program is free software: you can redistribute it and/or modify | ||||||
|  |  * it under the terms of the GNU General Public License as published by | ||||||
|  |  * the Free Software Foundation, either version 2 of the License, or | ||||||
|  |  * (at your option) any later version. | ||||||
|  |  * | ||||||
|  |  * This program is distributed in the hope that it will be useful, | ||||||
|  |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
|  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||||
|  |  * GNU General Public License for more details. | ||||||
|  |  * | ||||||
|  |  * You should have received a copy of the GNU General Public License | ||||||
|  |  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | #pragma once | ||||||
|  | 
 | ||||||
|  | #define XXX KC_NO | ||||||
|  | 
 | ||||||
|  | // This a shortcut to help you visually see your layout.
 | ||||||
|  | #define LAYOUT_fullsize_ansi( \ | ||||||
|  |       K00,        K01,  K02,  K03,  K04,  K05,  K06,  K07,  K08,  K09,  K0A,  K0B,  K0C,      K0D,  K0E,  K0F,                          \ | ||||||
|  |       K10,  K11,  K12,  K13,  K14,  K15,  K16,  K17,  K18,  K19,  K1A,  K1B,  K1C,  K1E,      K2E,  K2F,  K1F,      K6A, K69, K68, K67, \ | ||||||
|  |       K20,  K21,  K22,  K23,  K24,  K25,  K26,  K27,  K28,  K29,  K2A,  K2B,  K2C,  K2D,      K3D,  K3E,  K3F,      K7A, K79, K78, K6B, \ | ||||||
|  |       K30,  K31,  K32,  K33,  K34,  K35,  K36,  K37,  K38,  K39,  K3A,  K3B,        K4E,                            K7E, K7D, K7C,      \ | ||||||
|  |       K40,        K42,  K43,  K44,  K45,  K46,  K47,  K48,  K49,  K4A,  K4B,        K4D,            K4F,            K6E, K6D, K6C, K7B, \ | ||||||
|  |       K50,  K51,  K52,                    K56,                    K5A,  K5B,  K5C,  K5D,      K5E,  K5F,  K6F,      K7F,      K77       \ | ||||||
|  | ) { \ | ||||||
|  |     { K00,  K01,  K02,  K03,  K04,  K05,  K06,  K07,  K08,  K09,  K0A,  K0B,  K0C,  K0D,  K0E,  K0F },  \ | ||||||
|  |     { K10,  K11,  K12,  K13,  K14,  K15,  K16,  K17,  K18,  K19,  K1A,  K1B,  K1C,  XXX,  K1E,  K1F },  \ | ||||||
|  |     { K20,  K21,  K22,  K23,  K24,  K25,  K26,  K27,  K28,  K29,  K2A,  K2B,  K2C,  K2D,  K2E,  K2F },  \ | ||||||
|  |     { K30,  K31,  K32,  K33,  K34,  K35,  K36,  K37,  K38,  K39,  K3A,  K3B,  XXX,  K3D,  K3E,  K3F },  \ | ||||||
|  |     { K40,  XXX,  K42,  K43,  K44,  K45,  K46,  K47,  K48,  K49,  K4A,  K4B,  XXX,  K4D,  K4E,  K4F },  \ | ||||||
|  |     { K50,  K51,  K52,  XXX,  XXX,  XXX,  K56,  XXX,  XXX,  XXX,  K5A,  K5B,  K5C,  K5D,  K5E,  K5F },  \ | ||||||
|  |     { XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  K67,  K68,  K69,  K6A,  K6B,  K6C,  K6D,  K6E,  K6F },  \ | ||||||
|  |     { XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  K77,  K78,  K79,  K7A,  K7B,  K7C,  K7D,  K7E,  K7F }   \ | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // This a shortcut to help you visually see your layout.
 | ||||||
|  | #define LAYOUT_fullsize_iso( \ | ||||||
|  |       K00,        K01,  K02,  K03,  K04,  K05,  K06,  K07,  K08,  K09,  K0A,  K0B,  K0C,      K0D,  K0E,  K0F,                          \ | ||||||
|  |       K10,  K11,  K12,  K13,  K14,  K15,  K16,  K17,  K18,  K19,  K1A,  K1B,  K1C,  K1E,      K2E,  K2F,  K1F,      K6A, K69, K68, K67, \ | ||||||
|  |       K20,  K21,  K22,  K23,  K24,  K25,  K26,  K27,  K28,  K29,  K2A,  K2B,  K2C,            K3D,  K3E,  K3F,      K7A, K79, K78, K6B, \ | ||||||
|  |       K30,  K31,  K32,  K33,  K34,  K35,  K36,  K37,  K38,  K39,  K3A,  K3B,  K3C,  K4E,                            K7E, K7D, K7C,      \ | ||||||
|  |       K40,  K41,  K42,  K43,  K44,  K45,  K46,  K47,  K48,  K49,  K4A,  K4B,        K4D,            K4F,            K6E, K6D, K6C, K7B, \ | ||||||
|  |       K50,  K51,  K52,                    K56,                    K5A,  K5B,  K5C,  K5D,      K5E,  K5F,  K6F,      K7F,      K77       \ | ||||||
|  | ) { \ | ||||||
|  |     { K00,  K01,  K02,  K03,  K04,  K05,  K06,  K07,  K08,  K09,  K0A,  K0B,  K0C,  K0D,  K0E,  K0F },  \ | ||||||
|  |     { K10,  K11,  K12,  K13,  K14,  K15,  K16,  K17,  K18,  K19,  K1A,  K1B,  K1C,  XXX,  K1E,  K1F },  \ | ||||||
|  |     { K20,  K21,  K22,  K23,  K24,  K25,  K26,  K27,  K28,  K29,  K2A,  K2B,  K2C,  XXX,  K2E,  K2F },  \ | ||||||
|  |     { K30,  K31,  K32,  K33,  K34,  K35,  K36,  K37,  K38,  K39,  K3A,  K3B,  K3C,  K3D,  K3E,  K3F },  \ | ||||||
|  |     { K40,  K41,  K42,  K43,  K44,  K45,  K46,  K47,  K48,  K49,  K4A,  K4B,  XXX,  K4D,  K4E,  K4F },  \ | ||||||
|  |     { K50,  K51,  K52,  XXX,  XXX,  XXX,  K56,  XXX,  XXX,  XXX,  K5A,  K5B,  K5C,  K5D,  K5E,  K5F },  \ | ||||||
|  |     { XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  K67,  K68,  K69,  K6A,  K6B,  K6C,  K6D,  K6E,  K6F },  \ | ||||||
|  |     { XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  K77,  K78,  K79,  K7A,  K7B,  K7C,  K7D,  K7E,  K7F }   \ | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // This a shortcut to help you visually see your layout.
 | ||||||
|  | #define LAYOUT_all( \ | ||||||
|  |       K00,        K01,  K02,  K03,  K04,  K05,  K06,  K07,  K08,  K09,  K0A,  K0B,  K0C,      K0D,  K0E,  K0F,                          \ | ||||||
|  |       K10,  K11,  K12,  K13,  K14,  K15,  K16,  K17,  K18,  K19,  K1A,  K1B,  K1C,  K1E,      K2E,  K2F,  K1F,      K6A, K69, K68, K67, \ | ||||||
|  |       K20,  K21,  K22,  K23,  K24,  K25,  K26,  K27,  K28,  K29,  K2A,  K2B,  K2C,  K2D,      K3D,  K3E,  K3F,      K7A, K79, K78, K6B, \ | ||||||
|  |       K30,  K31,  K32,  K33,  K34,  K35,  K36,  K37,  K38,  K39,  K3A,  K3B,  K3C,  K4E,                            K7E, K7D, K7C,      \ | ||||||
|  |       K40,  K41,  K42,  K43,  K44,  K45,  K46,  K47,  K48,  K49,  K4A,  K4B,        K4D,            K4F,            K6E, K6D, K6C, K7B, \ | ||||||
|  |       K50,  K51,  K52,                    K56,                    K5A,  K5B,  K5C,  K5D,      K5E,  K5F,  K6F,      K7F,      K77       \ | ||||||
|  | ) { \ | ||||||
|  |     { K00,  K01,  K02,  K03,  K04,  K05,  K06,  K07,  K08,  K09,  K0A,  K0B,  K0C,  K0D,  K0E,  K0F },  \ | ||||||
|  |     { K10,  K11,  K12,  K13,  K14,  K15,  K16,  K17,  K18,  K19,  K1A,  K1B,  K1C,  XXX,  K1E,  K1F },  \ | ||||||
|  |     { K20,  K21,  K22,  K23,  K24,  K25,  K26,  K27,  K28,  K29,  K2A,  K2B,  K2C,  K2D,  K2E,  K2F },  \ | ||||||
|  |     { K30,  K31,  K32,  K33,  K34,  K35,  K36,  K37,  K38,  K39,  K3A,  K3B,  K3C,  K3D,  K3E,  K3F },  \ | ||||||
|  |     { K40,  K41,  K42,  K43,  K44,  K45,  K46,  K47,  K48,  K49,  K4A,  K4B,  XXX,  K4D,  K4E,  K4F },  \ | ||||||
|  |     { K50,  K51,  K52,  XXX,  XXX,  XXX,  K56,  XXX,  XXX,  XXX,  K5A,  K5B,  K5C,  K5D,  K5E,  K5F },  \ | ||||||
|  |     { XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  K67,  K68,  K69,  K6A,  K6B,  K6C,  K6D,  K6E,  K6F },  \ | ||||||
|  |     { XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  K77,  K78,  K79,  K7A,  K7B,  K7C,  K7D,  K7E,  K7F }   \ | ||||||
|  | } | ||||||
|  | 
 | ||||||
							
								
								
									
										10
									
								
								keyboards/durgod/k3x0/k310/readme.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								keyboards/durgod/k3x0/k310/readme.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,10 @@ | |||||||
|  | # Taurus K310 | ||||||
|  | 
 | ||||||
|  | This code is shared between all K310 variants.  Currently only the base model with no backlight is supported. | ||||||
|  | 
 | ||||||
|  | * Keyboard Maintainers: [dkjer](https://github.com/dkjer) and [tylert](https://github.com/tylert) | ||||||
|  | * Hardware Supported: Durgod Taurus K310 board with STM32F070RBT6 | ||||||
|  | * Hardware Availability: Base https://www.durgod.com/page9?product_id=53&_l=en | ||||||
|  | 
 | ||||||
|  | Instructions for building the K310 firmware can be found here: | ||||||
|  | * [No Backlight](base/readme.md) | ||||||
							
								
								
									
										4
									
								
								keyboards/durgod/k3x0/k310/rules.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								keyboards/durgod/k3x0/k310/rules.mk
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,4 @@ | |||||||
|  | # Default to the base model
 | ||||||
|  | DEFAULT_FOLDER=durgod/k3x0/k310/base | ||||||
|  | 
 | ||||||
|  | LAYOUTS = fullsize_ansi fullsize_iso | ||||||
							
								
								
									
										23
									
								
								keyboards/durgod/k3x0/k320/base/config.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								keyboards/durgod/k3x0/k320/base/config.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,23 @@ | |||||||
|  | /* Copyright 2021 Don Kjer
 | ||||||
|  |  * | ||||||
|  |  * This program is free software: you can redistribute it and/or modify | ||||||
|  |  * it under the terms of the GNU General Public License as published by | ||||||
|  |  * the Free Software Foundation, either version 2 of the License, or | ||||||
|  |  * (at your option) any later version. | ||||||
|  |  * | ||||||
|  |  * This program is distributed in the hope that it will be useful, | ||||||
|  |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
|  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||||
|  |  * GNU General Public License for more details. | ||||||
|  |  * | ||||||
|  |  * You should have received a copy of the GNU General Public License | ||||||
|  |  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | #pragma once | ||||||
|  | 
 | ||||||
|  | #include "config_common.h" | ||||||
|  | 
 | ||||||
|  | /* USB Device descriptor parameter */ | ||||||
|  | #define PRODUCT         DURGOD Taurus K320 (QMK) | ||||||
|  | #define DEVICE_VER      0x0001 // Base (no backlight)
 | ||||||
							
								
								
									
										27
									
								
								keyboards/durgod/k3x0/k320/base/readme.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								keyboards/durgod/k3x0/k320/base/readme.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,27 @@ | |||||||
|  | # K320 | ||||||
|  | 
 | ||||||
|  | This is a standard off-the-shelf Durgod Taurus K320 TKL (87/88-key) | ||||||
|  | keyboard without backlight.  This supports both the ANSI and ISO variants. | ||||||
|  | 
 | ||||||
|  | * Keyboard Maintainers: [dkjer](https://github.com/dkjer) and [tylert](https://github.com/tylert) | ||||||
|  | * Hardware Supported: Durgod Taurus K320 board with STM32F070RBT6 | ||||||
|  | * Hardware Availability: https://www.durgod.com/page9?product_id=47&_l=en | ||||||
|  | 
 | ||||||
|  | ## Instructions | ||||||
|  | 
 | ||||||
|  | ### Build | ||||||
|  | 
 | ||||||
|  | Make command example for this keyboard (after setting up your build environment): | ||||||
|  | 
 | ||||||
|  |     make durgod/k320:default | ||||||
|  | 
 | ||||||
|  | Flashing example for this keyboard: | ||||||
|  | 
 | ||||||
|  |     make durgod/k320:default:flash | ||||||
|  | 
 | ||||||
|  | See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). | ||||||
|  | 
 | ||||||
|  | ### Initial Flash | ||||||
|  | 
 | ||||||
|  | Instructions for Flashing from initial Stock Firmware: | ||||||
|  | * [Initial Flashing](../../readme.md#initial-flash) | ||||||
							
								
								
									
										1
									
								
								keyboards/durgod/k3x0/k320/base/rules.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								keyboards/durgod/k3x0/k320/base/rules.mk
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | |||||||
|  | # see common rules.mk
 | ||||||
							
								
								
									
										33
									
								
								keyboards/durgod/k3x0/k320/config.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								keyboards/durgod/k3x0/k320/config.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,33 @@ | |||||||
|  | /* Copyright 2021 Don Kjer and Tyler Tidman
 | ||||||
|  |  * Copyright 2021 Simon Arlott | ||||||
|  |  * | ||||||
|  |  * This program is free software: you can redistribute it and/or modify | ||||||
|  |  * it under the terms of the GNU General Public License as published by | ||||||
|  |  * the Free Software Foundation, either version 2 of the License, or | ||||||
|  |  * (at your option) any later version. | ||||||
|  |  * | ||||||
|  |  * This program is distributed in the hope that it will be useful, | ||||||
|  |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
|  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||||
|  |  * GNU General Public License for more details. | ||||||
|  |  * | ||||||
|  |  * You should have received a copy of the GNU General Public License | ||||||
|  |  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | #pragma once | ||||||
|  | 
 | ||||||
|  | #include "config_common.h" | ||||||
|  | 
 | ||||||
|  | /* USB Device descriptor parameter */ | ||||||
|  | #define PRODUCT_ID      0x3200 | ||||||
|  | // Taurus K320 models:
 | ||||||
|  | //#define DEVICE_VER      0x0001 // Base (no backlight)
 | ||||||
|  | //#define DEVICE_VER      0x0002 // Corona (white led matrix)
 | ||||||
|  | //#define DEVICE_VER      0x0003 // Aurora (red & blue led matrix)
 | ||||||
|  | //#define DEVICE_VER      0x0004 // Nebula (rgb led matrix)
 | ||||||
|  | 
 | ||||||
|  | /* key matrix size (cols in generic keyboard config) */ | ||||||
|  | #define MATRIX_ROWS 7 | ||||||
|  | 
 | ||||||
|  | #define MATRIX_ROW_PINS { A0, A1, A2, A3, A4, A5, A6 } | ||||||
							
								
								
									
										415
									
								
								keyboards/durgod/k3x0/k320/info.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										415
									
								
								keyboards/durgod/k3x0/k320/info.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,415 @@ | |||||||
|  | { | ||||||
|  |   "keyboard_name": "DURGOD Taurus K320", | ||||||
|  |   "url": "https://www.durgod.com/page9?product_id=47&_l=en", | ||||||
|  |   "maintainer": "dkjer", | ||||||
|  |   "width": 18.25, | ||||||
|  |   "height": 6.5, | ||||||
|  |     "layouts": { | ||||||
|  |         "LAYOUT_tkl_ansi": { | ||||||
|  |             "layout": [ | ||||||
|  |                 { "label": "Esc", "x": 0, "y": 0 }, | ||||||
|  |                 { "label": "F1", "x": 2, "y": 0 }, | ||||||
|  |                 { "label": "F2", "x": 3, "y": 0 }, | ||||||
|  |                 { "label": "F3", "x": 4, "y": 0 }, | ||||||
|  |                 { "label": "F4", "x": 5, "y": 0 }, | ||||||
|  |                 { "label": "F5", "x": 6.5, "y": 0 }, | ||||||
|  |                 { "label": "F6", "x": 7.5, "y": 0 }, | ||||||
|  |                 { "label": "F7", "x": 8.5, "y": 0 }, | ||||||
|  |                 { "label": "F8", "x": 9.5, "y": 0 }, | ||||||
|  |                 { "label": "F9", "x": 11, "y": 0 }, | ||||||
|  |                 { "label": "F10", "x": 12, "y": 0 }, | ||||||
|  |                 { "label": "F11", "x": 13, "y": 0 }, | ||||||
|  |                 { "label": "F12", "x": 14, "y": 0 }, | ||||||
|  |                 { "label": "PrtSc", "x": 15.25, "y": 0 }, | ||||||
|  |                 { "label": "Scroll Lock", "x": 16.25, "y": 0 }, | ||||||
|  |                 { "label": "Pause", "x": 17.25, "y": 0 }, | ||||||
|  | 
 | ||||||
|  |                 { "label": "~", "x": 0, "y": 1.5 }, | ||||||
|  |                 { "label": "!", "x": 1, "y": 1.5 }, | ||||||
|  |                 { "label": "@", "x": 2, "y": 1.5 }, | ||||||
|  |                 { "label": "#", "x": 3, "y": 1.5 }, | ||||||
|  |                 { "label": "$", "x": 4, "y": 1.5 }, | ||||||
|  |                 { "label": "%", "x": 5, "y": 1.5 }, | ||||||
|  |                 { "label": "^", "x": 6, "y": 1.5 }, | ||||||
|  |                 { "label": "&", "x": 7, "y": 1.5 }, | ||||||
|  |                 { "label": "*", "x": 8, "y": 1.5 }, | ||||||
|  |                 { "label": "(", "x": 9, "y": 1.5 }, | ||||||
|  |                 { "label": ")", "x": 10, "y": 1.5 }, | ||||||
|  |                 { "label": "_", "x": 11, "y": 1.5 }, | ||||||
|  |                 { "label": "+", "x": 12, "y": 1.5 }, | ||||||
|  |                 { "label": "Backspace", "x": 13, "y": 1.5, "w": 2 }, | ||||||
|  |                 { "label": "Insert", "x": 15.25, "y": 1.5 }, | ||||||
|  |                 { "label": "Home", "x": 16.25, "y": 1.5 }, | ||||||
|  |                 { "label": "PgUp", "x": 17.25, "y": 1.5 }, | ||||||
|  | 
 | ||||||
|  |                 { "label": "Tab", "x": 0, "y": 2.5, "w": 1.5 }, | ||||||
|  |                 { "label": "Q", "x": 1.5, "y": 2.5 }, | ||||||
|  |                 { "label": "W", "x": 2.5, "y": 2.5 }, | ||||||
|  |                 { "label": "E", "x": 3.5, "y": 2.5 }, | ||||||
|  |                 { "label": "R", "x": 4.5, "y": 2.5 }, | ||||||
|  |                 { "label": "T", "x": 5.5, "y": 2.5 }, | ||||||
|  |                 { "label": "Y", "x": 6.5, "y": 2.5 }, | ||||||
|  |                 { "label": "U", "x": 7.5, "y": 2.5 }, | ||||||
|  |                 { "label": "I", "x": 8.5, "y": 2.5 }, | ||||||
|  |                 { "label": "O", "x": 9.5, "y": 2.5 }, | ||||||
|  |                 { "label": "P", "x": 10.5, "y": 2.5 }, | ||||||
|  |                 { "label": "{", "x": 11.5, "y": 2.5 }, | ||||||
|  |                 { "label": "}", "x": 12.5, "y": 2.5 }, | ||||||
|  |                 { "label": "|", "x": 13.5, "y": 2.5, "w": 1.5 }, | ||||||
|  |                 { "label": "Delete", "x": 15.25, "y": 2.5 }, | ||||||
|  |                 { "label": "End", "x": 16.25, "y": 2.5 }, | ||||||
|  |                 { "label": "PgDn", "x": 17.25, "y": 2.5 }, | ||||||
|  | 
 | ||||||
|  |                 { "label": "Caps Lock", "x": 0, "y": 3.5, "w": 1.75 }, | ||||||
|  |                 { "label": "A", "x": 1.75, "y": 3.5 }, | ||||||
|  |                 { "label": "S", "x": 2.75, "y": 3.5 }, | ||||||
|  |                 { "label": "D", "x": 3.75, "y": 3.5 }, | ||||||
|  |                 { "label": "F", "x": 4.75, "y": 3.5 }, | ||||||
|  |                 { "label": "G", "x": 5.75, "y": 3.5 }, | ||||||
|  |                 { "label": "H", "x": 6.75, "y": 3.5 }, | ||||||
|  |                 { "label": "J", "x": 7.75, "y": 3.5 }, | ||||||
|  |                 { "label": "K", "x": 8.75, "y": 3.5 }, | ||||||
|  |                 { "label": "L", "x": 9.75, "y": 3.5 }, | ||||||
|  |                 { "label": ":", "x": 10.75, "y": 3.5 }, | ||||||
|  |                 { "label": "\"", "x": 11.75, "y": 3.5 }, | ||||||
|  |                 { "label": "Enter", "x": 12.75, "y": 3.5, "w": 2.25 }, | ||||||
|  | 
 | ||||||
|  |                 { "label": "Shift", "x": 0, "y": 4.5, "w": 2.25 }, | ||||||
|  |                 { "label": "Z", "x": 2.25, "y": 4.5 }, | ||||||
|  |                 { "label": "X", "x": 3.25, "y": 4.5 }, | ||||||
|  |                 { "label": "C", "x": 4.25, "y": 4.5 }, | ||||||
|  |                 { "label": "V", "x": 5.25, "y": 4.5 }, | ||||||
|  |                 { "label": "B", "x": 6.25, "y": 4.5 }, | ||||||
|  |                 { "label": "N", "x": 7.25, "y": 4.5 }, | ||||||
|  |                 { "label": "M", "x": 8.25, "y": 4.5 }, | ||||||
|  |                 { "label": "<", "x": 9.25, "y": 4.5 }, | ||||||
|  |                 { "label": ">", "x": 10.25, "y": 4.5 }, | ||||||
|  |                 { "label": "?", "x": 11.25, "y": 4.5 }, | ||||||
|  |                 { "label": "Shift", "x": 12.25, "y": 4.5, "w": 2.75 }, | ||||||
|  |                 { "label": "\u2191", "x": 16.25, "y": 4.5 }, | ||||||
|  | 
 | ||||||
|  |                 { "label": "Ctrl", "x": 0, "y": 5.5, "w": 1.25 }, | ||||||
|  |                 { "label": "Win", "x": 1.25, "y": 5.5, "w": 1.25 }, | ||||||
|  |                 { "label": "Alt", "x": 2.5, "y": 5.5, "w": 1.25 }, | ||||||
|  |                 { "x": 3.75, "y": 5.5, "w": 6.25 }, | ||||||
|  |                 { "label": "Alt", "x": 10, "y": 5.5, "w": 1.25 }, | ||||||
|  |                 { "label": "Fn", "x": 11.25, "y": 5.5, "w": 1.25 }, | ||||||
|  |                 { "label": "Menu", "x": 12.5, "y": 5.5, "w": 1.25 }, | ||||||
|  |                 { "label": "Ctrl", "x": 13.75, "y": 5.5, "w": 1.25 }, | ||||||
|  |                 { "label": "\u2190", "x": 15.25, "y": 5.5 }, | ||||||
|  |                 { "label": "\u2193", "x": 16.25, "y": 5.5 }, | ||||||
|  |                 { "label": "\u2192", "x": 17.25, "y": 5.5 } | ||||||
|  |             ] | ||||||
|  |         }, | ||||||
|  |         "LAYOUT_tkl_iso": { | ||||||
|  |             "layout": [ | ||||||
|  |                 { "label": "Esc", "x": 0, "y": 0 }, | ||||||
|  |                 { "label": "F1", "x": 2, "y": 0 }, | ||||||
|  |                 { "label": "F2", "x": 3, "y": 0 }, | ||||||
|  |                 { "label": "F3", "x": 4, "y": 0 }, | ||||||
|  |                 { "label": "F4", "x": 5, "y": 0 }, | ||||||
|  |                 { "label": "F5", "x": 6.5, "y": 0 }, | ||||||
|  |                 { "label": "F6", "x": 7.5, "y": 0 }, | ||||||
|  |                 { "label": "F7", "x": 8.5, "y": 0 }, | ||||||
|  |                 { "label": "F8", "x": 9.5, "y": 0 }, | ||||||
|  |                 { "label": "F9", "x": 11, "y": 0 }, | ||||||
|  |                 { "label": "F10", "x": 12, "y": 0 }, | ||||||
|  |                 { "label": "F11", "x": 13, "y": 0 }, | ||||||
|  |                 { "label": "F12", "x": 14, "y": 0 }, | ||||||
|  |                 { "label": "PrtSc", "x": 15.25, "y": 0 }, | ||||||
|  |                 { "label": "Scroll Lock", "x": 16.25, "y": 0 }, | ||||||
|  |                 { "label": "Pause", "x": 17.25, "y": 0 }, | ||||||
|  | 
 | ||||||
|  |                 { "label": "~", "x": 0, "y": 1.5 }, | ||||||
|  |                 { "label": "!", "x": 1, "y": 1.5 }, | ||||||
|  |                 { "label": "@", "x": 2, "y": 1.5 }, | ||||||
|  |                 { "label": "#", "x": 3, "y": 1.5 }, | ||||||
|  |                 { "label": "$", "x": 4, "y": 1.5 }, | ||||||
|  |                 { "label": "%", "x": 5, "y": 1.5 }, | ||||||
|  |                 { "label": "^", "x": 6, "y": 1.5 }, | ||||||
|  |                 { "label": "&", "x": 7, "y": 1.5 }, | ||||||
|  |                 { "label": "*", "x": 8, "y": 1.5 }, | ||||||
|  |                 { "label": "(", "x": 9, "y": 1.5 }, | ||||||
|  |                 { "label": ")", "x": 10, "y": 1.5 }, | ||||||
|  |                 { "label": "_", "x": 11, "y": 1.5 }, | ||||||
|  |                 { "label": "+", "x": 12, "y": 1.5 }, | ||||||
|  |                 { "label": "Backspace", "x": 13, "y": 1.5, "w": 2 }, | ||||||
|  |                 { "label": "Insert", "x": 15.25, "y": 1.5 }, | ||||||
|  |                 { "label": "Home", "x": 16.25, "y": 1.5 }, | ||||||
|  |                 { "label": "PgUp", "x": 17.25, "y": 1.5 }, | ||||||
|  | 
 | ||||||
|  |                 { "label": "Tab", "x": 0, "y": 2.5, "w": 1.5 }, | ||||||
|  |                 { "label": "Q", "x": 1.5, "y": 2.5 }, | ||||||
|  |                 { "label": "W", "x": 2.5, "y": 2.5 }, | ||||||
|  |                 { "label": "E", "x": 3.5, "y": 2.5 }, | ||||||
|  |                 { "label": "R", "x": 4.5, "y": 2.5 }, | ||||||
|  |                 { "label": "T", "x": 5.5, "y": 2.5 }, | ||||||
|  |                 { "label": "Y", "x": 6.5, "y": 2.5 }, | ||||||
|  |                 { "label": "U", "x": 7.5, "y": 2.5 }, | ||||||
|  |                 { "label": "I", "x": 8.5, "y": 2.5 }, | ||||||
|  |                 { "label": "O", "x": 9.5, "y": 2.5 }, | ||||||
|  |                 { "label": "P", "x": 10.5, "y": 2.5 }, | ||||||
|  |                 { "label": "{", "x": 11.5, "y": 2.5 }, | ||||||
|  |                 { "label": "}", "x": 12.5, "y": 2.5 }, | ||||||
|  |                 { "label": "Delete", "x": 15.25, "y": 2.5 }, | ||||||
|  |                 { "label": "End", "x": 16.25, "y": 2.5 }, | ||||||
|  |                 { "label": "PgDn", "x": 17.25, "y": 2.5 }, | ||||||
|  | 
 | ||||||
|  |                 { "label": "Caps Lock", "x": 0, "y": 3.5, "w": 1.75 }, | ||||||
|  |                 { "label": "A", "x": 1.75, "y": 3.5 }, | ||||||
|  |                 { "label": "S", "x": 2.75, "y": 3.5 }, | ||||||
|  |                 { "label": "D", "x": 3.75, "y": 3.5 }, | ||||||
|  |                 { "label": "F", "x": 4.75, "y": 3.5 }, | ||||||
|  |                 { "label": "G", "x": 5.75, "y": 3.5 }, | ||||||
|  |                 { "label": "H", "x": 6.75, "y": 3.5 }, | ||||||
|  |                 { "label": "J", "x": 7.75, "y": 3.5 }, | ||||||
|  |                 { "label": "K", "x": 8.75, "y": 3.5 }, | ||||||
|  |                 { "label": "L", "x": 9.75, "y": 3.5 }, | ||||||
|  |                 { "label": ":", "x": 10.75, "y": 3.5 }, | ||||||
|  |                 { "label": "\"", "x": 11.75, "y": 3.5 }, | ||||||
|  |                 { "label": "#", "x": 12.75, "y": 3.5 }, | ||||||
|  |                 { "label": "Enter", "x": 13.75, "y": 2.5, "w": 1.25, "h": 2 }, | ||||||
|  | 
 | ||||||
|  |                 { "label": "Shift", "x": 0, "y": 4.5, "w": 1.25 }, | ||||||
|  |                 { "label": "\\", "x": 1.25, "y": 4.5 }, | ||||||
|  |                 { "label": "Z", "x": 2.25, "y": 4.5 }, | ||||||
|  |                 { "label": "X", "x": 3.25, "y": 4.5 }, | ||||||
|  |                 { "label": "C", "x": 4.25, "y": 4.5 }, | ||||||
|  |                 { "label": "V", "x": 5.25, "y": 4.5 }, | ||||||
|  |                 { "label": "B", "x": 6.25, "y": 4.5 }, | ||||||
|  |                 { "label": "N", "x": 7.25, "y": 4.5 }, | ||||||
|  |                 { "label": "M", "x": 8.25, "y": 4.5 }, | ||||||
|  |                 { "label": "<", "x": 9.25, "y": 4.5 }, | ||||||
|  |                 { "label": ">", "x": 10.25, "y": 4.5 }, | ||||||
|  |                 { "label": "?", "x": 11.25, "y": 4.5 }, | ||||||
|  |                 { "label": "Shift", "x": 12.25, "y": 4.5, "w": 2.75 }, | ||||||
|  |                 { "label": "\u2191", "x": 16.25, "y": 4.5 }, | ||||||
|  | 
 | ||||||
|  |                 { "label": "Ctrl", "x": 0, "y": 5.5, "w": 1.25 }, | ||||||
|  |                 { "label": "Win", "x": 1.25, "y": 5.5, "w": 1.25 }, | ||||||
|  |                 { "label": "Alt", "x": 2.5, "y": 5.5, "w": 1.25 }, | ||||||
|  |                 { "x": 3.75, "y": 5.5, "w": 6.25 }, | ||||||
|  |                 { "label": "Alt", "x": 10, "y": 5.5, "w": 1.25 }, | ||||||
|  |                 { "label": "Fn", "x": 11.25, "y": 5.5, "w": 1.25 }, | ||||||
|  |                 { "label": "Menu", "x": 12.5, "y": 5.5, "w": 1.25 }, | ||||||
|  |                 { "label": "Ctrl", "x": 13.75, "y": 5.5, "w": 1.25 }, | ||||||
|  |                 { "label": "\u2190", "x": 15.25, "y": 5.5 }, | ||||||
|  |                 { "label": "\u2193", "x": 16.25, "y": 5.5 }, | ||||||
|  |                 { "label": "\u2192", "x": 17.25, "y": 5.5 } | ||||||
|  |             ] | ||||||
|  |         }, | ||||||
|  |         "LAYOUT_tkl": { | ||||||
|  |             "layout": [ | ||||||
|  |                 { "label": "Esc", "x": 0, "y": 0 }, | ||||||
|  |                 { "label": "F1", "x": 2, "y": 0 }, | ||||||
|  |                 { "label": "F2", "x": 3, "y": 0 }, | ||||||
|  |                 { "label": "F3", "x": 4, "y": 0 }, | ||||||
|  |                 { "label": "F4", "x": 5, "y": 0 }, | ||||||
|  |                 { "label": "F5", "x": 6.5, "y": 0 }, | ||||||
|  |                 { "label": "F6", "x": 7.5, "y": 0 }, | ||||||
|  |                 { "label": "F7", "x": 8.5, "y": 0 }, | ||||||
|  |                 { "label": "F8", "x": 9.5, "y": 0 }, | ||||||
|  |                 { "label": "F9", "x": 11, "y": 0 }, | ||||||
|  |                 { "label": "F10", "x": 12, "y": 0 }, | ||||||
|  |                 { "label": "F11", "x": 13, "y": 0 }, | ||||||
|  |                 { "label": "F12", "x": 14, "y": 0 }, | ||||||
|  |                 { "label": "PrtSc", "x": 15.25, "y": 0 }, | ||||||
|  |                 { "label": "Scroll Lock", "x": 16.25, "y": 0 }, | ||||||
|  |                 { "label": "Pause", "x": 17.25, "y": 0 }, | ||||||
|  | 
 | ||||||
|  |                 { "label": "~", "x": 0, "y": 1.5 }, | ||||||
|  |                 { "label": "!", "x": 1, "y": 1.5 }, | ||||||
|  |                 { "label": "@", "x": 2, "y": 1.5 }, | ||||||
|  |                 { "label": "#", "x": 3, "y": 1.5 }, | ||||||
|  |                 { "label": "$", "x": 4, "y": 1.5 }, | ||||||
|  |                 { "label": "%", "x": 5, "y": 1.5 }, | ||||||
|  |                 { "label": "^", "x": 6, "y": 1.5 }, | ||||||
|  |                 { "label": "&", "x": 7, "y": 1.5 }, | ||||||
|  |                 { "label": "*", "x": 8, "y": 1.5 }, | ||||||
|  |                 { "label": "(", "x": 9, "y": 1.5 }, | ||||||
|  |                 { "label": ")", "x": 10, "y": 1.5 }, | ||||||
|  |                 { "label": "_", "x": 11, "y": 1.5 }, | ||||||
|  |                 { "label": "+", "x": 12, "y": 1.5 }, | ||||||
|  |                 { "label": "Backspace", "x": 13, "y": 1.5, "w": 2 }, | ||||||
|  |                 { "label": "Insert", "x": 15.25, "y": 1.5 }, | ||||||
|  |                 { "label": "Home", "x": 16.25, "y": 1.5 }, | ||||||
|  |                 { "label": "PgUp", "x": 17.25, "y": 1.5 }, | ||||||
|  | 
 | ||||||
|  |                 { "label": "Tab", "x": 0, "y": 2.5, "w": 1.5 }, | ||||||
|  |                 { "label": "Q", "x": 1.5, "y": 2.5 }, | ||||||
|  |                 { "label": "W", "x": 2.5, "y": 2.5 }, | ||||||
|  |                 { "label": "E", "x": 3.5, "y": 2.5 }, | ||||||
|  |                 { "label": "R", "x": 4.5, "y": 2.5 }, | ||||||
|  |                 { "label": "T", "x": 5.5, "y": 2.5 }, | ||||||
|  |                 { "label": "Y", "x": 6.5, "y": 2.5 }, | ||||||
|  |                 { "label": "U", "x": 7.5, "y": 2.5 }, | ||||||
|  |                 { "label": "I", "x": 8.5, "y": 2.5 }, | ||||||
|  |                 { "label": "O", "x": 9.5, "y": 2.5 }, | ||||||
|  |                 { "label": "P", "x": 10.5, "y": 2.5 }, | ||||||
|  |                 { "label": "{", "x": 11.5, "y": 2.5 }, | ||||||
|  |                 { "label": "}", "x": 12.5, "y": 2.5 }, | ||||||
|  |                 { "label": "|", "x": 13.5, "y": 2.5, "w": 1.5 }, | ||||||
|  |                 { "label": "Delete", "x": 15.25, "y": 2.5 }, | ||||||
|  |                 { "label": "End", "x": 16.25, "y": 2.5 }, | ||||||
|  |                 { "label": "PgDn", "x": 17.25, "y": 2.5 }, | ||||||
|  | 
 | ||||||
|  |                 { "label": "Caps Lock", "x": 0, "y": 3.5, "w": 1.75 }, | ||||||
|  |                 { "label": "A", "x": 1.75, "y": 3.5 }, | ||||||
|  |                 { "label": "S", "x": 2.75, "y": 3.5 }, | ||||||
|  |                 { "label": "D", "x": 3.75, "y": 3.5 }, | ||||||
|  |                 { "label": "F", "x": 4.75, "y": 3.5 }, | ||||||
|  |                 { "label": "G", "x": 5.75, "y": 3.5 }, | ||||||
|  |                 { "label": "H", "x": 6.75, "y": 3.5 }, | ||||||
|  |                 { "label": "J", "x": 7.75, "y": 3.5 }, | ||||||
|  |                 { "label": "K", "x": 8.75, "y": 3.5 }, | ||||||
|  |                 { "label": "L", "x": 9.75, "y": 3.5 }, | ||||||
|  |                 { "label": ":", "x": 10.75, "y": 3.5 }, | ||||||
|  |                 { "label": "\"", "x": 11.75, "y": 3.5 }, | ||||||
|  |                 { "label": "#", "x": 12.75, "y": 3.5 }, | ||||||
|  |                 { "label": "Enter", "x": 13.75, "y": 3.5, "w": 1.25 }, | ||||||
|  | 
 | ||||||
|  |                 { "label": "Shift", "x": 0, "y": 4.5, "w": 1.25 }, | ||||||
|  |                 { "label": "\\", "x": 1.25, "y": 4.5 }, | ||||||
|  |                 { "label": "Z", "x": 2.25, "y": 4.5 }, | ||||||
|  |                 { "label": "X", "x": 3.25, "y": 4.5 }, | ||||||
|  |                 { "label": "C", "x": 4.25, "y": 4.5 }, | ||||||
|  |                 { "label": "V", "x": 5.25, "y": 4.5 }, | ||||||
|  |                 { "label": "B", "x": 6.25, "y": 4.5 }, | ||||||
|  |                 { "label": "N", "x": 7.25, "y": 4.5 }, | ||||||
|  |                 { "label": "M", "x": 8.25, "y": 4.5 }, | ||||||
|  |                 { "label": "<", "x": 9.25, "y": 4.5 }, | ||||||
|  |                 { "label": ">", "x": 10.25, "y": 4.5 }, | ||||||
|  |                 { "label": "?", "x": 11.25, "y": 4.5 }, | ||||||
|  |                 { "label": "Shift", "x": 12.25, "y": 4.5, "w": 2.75 }, | ||||||
|  |                 { "label": "\u2191", "x": 16.25, "y": 4.5 }, | ||||||
|  | 
 | ||||||
|  |                 { "label": "Ctrl", "x": 0, "y": 5.5, "w": 1.25 }, | ||||||
|  |                 { "label": "Win", "x": 1.25, "y": 5.5, "w": 1.25 }, | ||||||
|  |                 { "label": "Alt", "x": 2.5, "y": 5.5, "w": 1.25 }, | ||||||
|  |                 { "x": 3.75, "y": 5.5, "w": 6.25 }, | ||||||
|  |                 { "label": "Alt", "x": 10, "y": 5.5, "w": 1.25 }, | ||||||
|  |                 { "label": "Fn", "x": 11.25, "y": 5.5, "w": 1.25 }, | ||||||
|  |                 { "label": "Menu", "x": 12.5, "y": 5.5, "w": 1.25 }, | ||||||
|  |                 { "label": "Ctrl", "x": 13.75, "y": 5.5, "w": 1.25 }, | ||||||
|  |                 { "label": "\u2190", "x": 15.25, "y": 5.5 }, | ||||||
|  |                 { "label": "\u2193", "x": 16.25, "y": 5.5 }, | ||||||
|  |                 { "label": "\u2192", "x": 17.25, "y": 5.5 } | ||||||
|  |             ] | ||||||
|  |         }, | ||||||
|  |         "LAYOUT_all": { | ||||||
|  |             "layout": [ | ||||||
|  |                 { "label": "Esc", "x": 0, "y": 0 }, | ||||||
|  |                 { "label": "F1", "x": 2, "y": 0 }, | ||||||
|  |                 { "label": "F2", "x": 3, "y": 0 }, | ||||||
|  |                 { "label": "F3", "x": 4, "y": 0 }, | ||||||
|  |                 { "label": "F4", "x": 5, "y": 0 }, | ||||||
|  |                 { "label": "F5", "x": 6.5, "y": 0 }, | ||||||
|  |                 { "label": "F6", "x": 7.5, "y": 0 }, | ||||||
|  |                 { "label": "F7", "x": 8.5, "y": 0 }, | ||||||
|  |                 { "label": "F8", "x": 9.5, "y": 0 }, | ||||||
|  |                 { "label": "F9", "x": 11, "y": 0 }, | ||||||
|  |                 { "label": "F10", "x": 12, "y": 0 }, | ||||||
|  |                 { "label": "F11", "x": 13, "y": 0 }, | ||||||
|  |                 { "label": "F12", "x": 14, "y": 0 }, | ||||||
|  |                 { "label": "PrtSc", "x": 15.25, "y": 0 }, | ||||||
|  |                 { "label": "Scroll Lock", "x": 16.25, "y": 0 }, | ||||||
|  |                 { "label": "Pause", "x": 17.25, "y": 0 }, | ||||||
|  | 
 | ||||||
|  |                 { "label": "~", "x": 0, "y": 1.5 }, | ||||||
|  |                 { "label": "!", "x": 1, "y": 1.5 }, | ||||||
|  |                 { "label": "@", "x": 2, "y": 1.5 }, | ||||||
|  |                 { "label": "#", "x": 3, "y": 1.5 }, | ||||||
|  |                 { "label": "$", "x": 4, "y": 1.5 }, | ||||||
|  |                 { "label": "%", "x": 5, "y": 1.5 }, | ||||||
|  |                 { "label": "^", "x": 6, "y": 1.5 }, | ||||||
|  |                 { "label": "&", "x": 7, "y": 1.5 }, | ||||||
|  |                 { "label": "*", "x": 8, "y": 1.5 }, | ||||||
|  |                 { "label": "(", "x": 9, "y": 1.5 }, | ||||||
|  |                 { "label": ")", "x": 10, "y": 1.5 }, | ||||||
|  |                 { "label": "_", "x": 11, "y": 1.5 }, | ||||||
|  |                 { "label": "+", "x": 12, "y": 1.5 }, | ||||||
|  |                 { "label": "Backspace", "x": 13, "y": 1.5, "w": 2 }, | ||||||
|  |                 { "label": "Insert", "x": 15.25, "y": 1.5 }, | ||||||
|  |                 { "label": "Home", "x": 16.25, "y": 1.5 }, | ||||||
|  |                 { "label": "PgUp", "x": 17.25, "y": 1.5 }, | ||||||
|  |                 { "label": "Num Lock", "x": 18.5, "y": 1.5 }, | ||||||
|  |                 { "label": "/", "x": 19.5, "y": 1.5 }, | ||||||
|  |                 { "label": "*", "x": 20.5, "y": 1.5 }, | ||||||
|  |                 { "label": "-", "x": 21.5, "y": 1.5 }, | ||||||
|  | 
 | ||||||
|  |                 { "label": "Tab", "x": 0, "y": 2.5, "w": 1.5 }, | ||||||
|  |                 { "label": "Q", "x": 1.5, "y": 2.5 }, | ||||||
|  |                 { "label": "W", "x": 2.5, "y": 2.5 }, | ||||||
|  |                 { "label": "E", "x": 3.5, "y": 2.5 }, | ||||||
|  |                 { "label": "R", "x": 4.5, "y": 2.5 }, | ||||||
|  |                 { "label": "T", "x": 5.5, "y": 2.5 }, | ||||||
|  |                 { "label": "Y", "x": 6.5, "y": 2.5 }, | ||||||
|  |                 { "label": "U", "x": 7.5, "y": 2.5 }, | ||||||
|  |                 { "label": "I", "x": 8.5, "y": 2.5 }, | ||||||
|  |                 { "label": "O", "x": 9.5, "y": 2.5 }, | ||||||
|  |                 { "label": "P", "x": 10.5, "y": 2.5 }, | ||||||
|  |                 { "label": "{", "x": 11.5, "y": 2.5 }, | ||||||
|  |                 { "label": "}", "x": 12.5, "y": 2.5 }, | ||||||
|  |                 { "label": "|", "x": 13.5, "y": 2.5, "w": 1.5 }, | ||||||
|  |                 { "label": "Delete", "x": 15.25, "y": 2.5 }, | ||||||
|  |                 { "label": "End", "x": 16.25, "y": 2.5 }, | ||||||
|  |                 { "label": "PgDn", "x": 17.25, "y": 2.5 }, | ||||||
|  |                 { "label": "7", "x": 18.5, "y": 2.5 }, | ||||||
|  |                 { "label": "8", "x": 19.5, "y": 2.5 }, | ||||||
|  |                 { "label": "9", "x": 20.5, "y": 2.5 }, | ||||||
|  |                 { "label": "+", "x": 21.5, "y": 2.5, "h": 2 }, | ||||||
|  | 
 | ||||||
|  |                 { "label": "Caps Lock", "x": 0, "y": 3.5, "w": 1.75 }, | ||||||
|  |                 { "label": "A", "x": 1.75, "y": 3.5 }, | ||||||
|  |                 { "label": "S", "x": 2.75, "y": 3.5 }, | ||||||
|  |                 { "label": "D", "x": 3.75, "y": 3.5 }, | ||||||
|  |                 { "label": "F", "x": 4.75, "y": 3.5 }, | ||||||
|  |                 { "label": "G", "x": 5.75, "y": 3.5 }, | ||||||
|  |                 { "label": "H", "x": 6.75, "y": 3.5 }, | ||||||
|  |                 { "label": "J", "x": 7.75, "y": 3.5 }, | ||||||
|  |                 { "label": "K", "x": 8.75, "y": 3.5 }, | ||||||
|  |                 { "label": "L", "x": 9.75, "y": 3.5 }, | ||||||
|  |                 { "label": ":", "x": 10.75, "y": 3.5 }, | ||||||
|  |                 { "label": "\"", "x": 11.75, "y": 3.5 }, | ||||||
|  |                 { "label": "#", "x": 12.75, "y": 3.5 }, | ||||||
|  |                 { "label": "Enter", "x": 13.75, "y": 3.5, "w": 1.25 }, | ||||||
|  |                 { "label": "4", "x": 18.5, "y": 3.5 }, | ||||||
|  |                 { "label": "5", "x": 19.5, "y": 3.5 }, | ||||||
|  |                 { "label": "6", "x": 20.5, "y": 3.5 }, | ||||||
|  | 
 | ||||||
|  |                 { "label": "Shift", "x": 0, "y": 4.5, "w": 1.25 }, | ||||||
|  |                 { "label": "\\", "x": 1.25, "y": 4.5 }, | ||||||
|  |                 { "label": "Z", "x": 2.25, "y": 4.5 }, | ||||||
|  |                 { "label": "X", "x": 3.25, "y": 4.5 }, | ||||||
|  |                 { "label": "C", "x": 4.25, "y": 4.5 }, | ||||||
|  |                 { "label": "V", "x": 5.25, "y": 4.5 }, | ||||||
|  |                 { "label": "B", "x": 6.25, "y": 4.5 }, | ||||||
|  |                 { "label": "N", "x": 7.25, "y": 4.5 }, | ||||||
|  |                 { "label": "M", "x": 8.25, "y": 4.5 }, | ||||||
|  |                 { "label": "<", "x": 9.25, "y": 4.5 }, | ||||||
|  |                 { "label": ">", "x": 10.25, "y": 4.5 }, | ||||||
|  |                 { "label": "?", "x": 11.25, "y": 4.5 }, | ||||||
|  |                 { "label": "Shift", "x": 12.25, "y": 4.5, "w": 2.75 }, | ||||||
|  |                 { "label": "\u2191", "x": 16.25, "y": 4.5 }, | ||||||
|  |                 { "label": "1", "x": 18.5, "y": 4.5 }, | ||||||
|  |                 { "label": "2", "x": 19.5, "y": 4.5 }, | ||||||
|  |                 { "label": "3", "x": 20.5, "y": 4.5 }, | ||||||
|  |                 { "label": "Enter", "x": 21.5, "y": 4.5, "h": 2 }, | ||||||
|  | 
 | ||||||
|  |                 { "label": "Ctrl", "x": 0, "y": 5.5, "w": 1.25 }, | ||||||
|  |                 { "label": "Win", "x": 1.25, "y": 5.5, "w": 1.25 }, | ||||||
|  |                 { "label": "Alt", "x": 2.5, "y": 5.5, "w": 1.25 }, | ||||||
|  |                 { "x": 3.75, "y": 5.5, "w": 6.25 }, | ||||||
|  |                 { "label": "Alt", "x": 10, "y": 5.5, "w": 1.25 }, | ||||||
|  |                 { "label": "Fn", "x": 11.25, "y": 5.5, "w": 1.25 }, | ||||||
|  |                 { "label": "Menu", "x": 12.5, "y": 5.5, "w": 1.25 }, | ||||||
|  |                 { "label": "Ctrl", "x": 13.75, "y": 5.5, "w": 1.25 }, | ||||||
|  |                 { "label": "\u2190", "x": 15.25, "y": 5.5 }, | ||||||
|  |                 { "label": "\u2193", "x": 16.25, "y": 5.5 }, | ||||||
|  |                 { "label": "\u2192", "x": 17.25, "y": 5.5 }, | ||||||
|  |                 { "label": "0", "x": 18.5, "y": 5.5, "w": 2 }, | ||||||
|  |                 { "label": ".", "x": 20.5, "y": 5.5 } | ||||||
|  |             ] | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -1,4 +1,5 @@ | |||||||
| /* Copyright 2021 kuenhlee and Don Kjer
 | /* Copyright 2021 Don Kjer and Tyler Tidman
 | ||||||
|  |  * Copyright 2021 Simon Arlott | ||||||
|  * |  * | ||||||
|  * This program is free software: you can redistribute it and/or modify |  * This program is free software: you can redistribute it and/or modify | ||||||
|  * it under the terms of the GNU General Public License as published by |  * it under the terms of the GNU General Public License as published by | ||||||
| @ -13,26 +14,9 @@ | |||||||
|  * You should have received a copy of the GNU General Public License |  * You should have received a copy of the GNU General Public License | ||||||
|  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 |  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | ||||||
|  */ |  */ | ||||||
|  | 
 | ||||||
| #pragma once | #pragma once | ||||||
| 
 | 
 | ||||||
| #include "quantum.h" |  | ||||||
| 
 |  | ||||||
| #ifndef WINLOCK_DISABLED |  | ||||||
| // Define the TGUI key here so it is available in QMK configurator
 |  | ||||||
| enum K320_keycodes { |  | ||||||
|     KC_TGUI = SAFE_RANGE,   // Toggle between GUI Lock or Unlock
 |  | ||||||
|     NEW_SAFE_RANGE |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| #undef SAFE_RANGE |  | ||||||
| #define SAFE_RANGE NEW_SAFE_RANGE |  | ||||||
| #endif /* WINLOCK_DISABLED */ |  | ||||||
| 
 |  | ||||||
| /* Function Prototype */ |  | ||||||
| void off_all_leds(void); |  | ||||||
| void on_all_leds(void); |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| #define XXX KC_NO | #define XXX KC_NO | ||||||
| 
 | 
 | ||||||
| // This a shortcut to help you visually see your layout.
 | // This a shortcut to help you visually see your layout.
 | ||||||
| @ -53,7 +37,6 @@ void on_all_leds(void); | |||||||
|     { XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  K6F }   \ |     { XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  K6F }   \ | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| // This a shortcut to help you visually see your layout.
 | // This a shortcut to help you visually see your layout.
 | ||||||
| #define LAYOUT_tkl_iso( \ | #define LAYOUT_tkl_iso( \ | ||||||
|       K00,        K01,  K02,  K03,  K04,  K05,  K06,  K07,  K08,  K09,  K0A,  K0B,  K0C,      K0D,  K0E,  K0F,  \ |       K00,        K01,  K02,  K03,  K04,  K05,  K06,  K07,  K08,  K09,  K0A,  K0B,  K0C,      K0D,  K0E,  K0F,  \ | ||||||
| @ -72,9 +55,8 @@ void on_all_leds(void); | |||||||
|     { XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  K6F }   \ |     { XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  K6F }   \ | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| // This a shortcut to help you visually see your layout.
 | // This a shortcut to help you visually see your layout.
 | ||||||
| #define LAYOUT_all( \ | #define LAYOUT_tkl( \ | ||||||
|       K00,        K01,  K02,  K03,  K04,  K05,  K06,  K07,  K08,  K09,  K0A,  K0B,  K0C,      K0D,  K0E,  K0F,  \ |       K00,        K01,  K02,  K03,  K04,  K05,  K06,  K07,  K08,  K09,  K0A,  K0B,  K0C,      K0D,  K0E,  K0F,  \ | ||||||
|       K10,  K11,  K12,  K13,  K14,  K15,  K16,  K17,  K18,  K19,  K1A,  K1B,  K1C,  K1E,      K2E,  K2F,  K1F,  \ |       K10,  K11,  K12,  K13,  K14,  K15,  K16,  K17,  K18,  K19,  K1A,  K1B,  K1C,  K1E,      K2E,  K2F,  K1F,  \ | ||||||
|       K20,  K21,  K22,  K23,  K24,  K25,  K26,  K27,  K28,  K29,  K2A,  K2B,  K2C,  K2D,      K3D,  K3E,  K3F,  \ |       K20,  K21,  K22,  K23,  K24,  K25,  K26,  K27,  K28,  K29,  K2A,  K2B,  K2C,  K2D,      K3D,  K3E,  K3F,  \ | ||||||
| @ -90,3 +72,21 @@ void on_all_leds(void); | |||||||
|     { K50,  K51,  K52,  XXX,  XXX,  XXX,  K56,  XXX,  XXX,  XXX,  K5A,  K5B,  K5C,  K5D,  K5E,  K5F },  \ |     { K50,  K51,  K52,  XXX,  XXX,  XXX,  K56,  XXX,  XXX,  XXX,  K5A,  K5B,  K5C,  K5D,  K5E,  K5F },  \ | ||||||
|     { XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  K6F }   \ |     { XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  K6F }   \ | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | // This a shortcut to help you visually see your layout.
 | ||||||
|  | #define LAYOUT_all( \ | ||||||
|  |       K00,        K01,  K02,  K03,  K04,  K05,  K06,  K07,  K08,  K09,  K0A,  K0B,  K0C,      K0D,  K0E,  K0F,                          \ | ||||||
|  |       K10,  K11,  K12,  K13,  K14,  K15,  K16,  K17,  K18,  K19,  K1A,  K1B,  K1C,  K1E,      K2E,  K2F,  K1F,      K6A, K69, K68, K67, \ | ||||||
|  |       K20,  K21,  K22,  K23,  K24,  K25,  K26,  K27,  K28,  K29,  K2A,  K2B,  K2C,  K2D,      K3D,  K3E,  K3F,      K7A, K79, K78, K6B, \ | ||||||
|  |       K30,  K31,  K32,  K33,  K34,  K35,  K36,  K37,  K38,  K39,  K3A,  K3B,  K3C,  K4E,                            K7E, K7D, K7C,      \ | ||||||
|  |       K40,  K41,  K42,  K43,  K44,  K45,  K46,  K47,  K48,  K49,  K4A,  K4B,        K4D,            K4F,            K6E, K6D, K6C, K7B, \ | ||||||
|  |       K50,  K51,  K52,                    K56,                    K5A,  K5B,  K5C,  K5D,      K5E,  K5F,  K6F,      K7F,      K77       \ | ||||||
|  | ) { \ | ||||||
|  |     { K00,  K01,  K02,  K03,  K04,  K05,  K06,  K07,  K08,  K09,  K0A,  K0B,  K0C,  K0D,  K0E,  K0F },  \ | ||||||
|  |     { K10,  K11,  K12,  K13,  K14,  K15,  K16,  K17,  K18,  K19,  K1A,  K1B,  K1C,  XXX,  K1E,  K1F },  \ | ||||||
|  |     { K20,  K21,  K22,  K23,  K24,  K25,  K26,  K27,  K28,  K29,  K2A,  K2B,  K2C,  K2D,  K2E,  K2F },  \ | ||||||
|  |     { K30,  K31,  K32,  K33,  K34,  K35,  K36,  K37,  K38,  K39,  K3A,  K3B,  K3C,  K3D,  K3E,  K3F },  \ | ||||||
|  |     { K40,  K41,  K42,  K43,  K44,  K45,  K46,  K47,  K48,  K49,  K4A,  K4B,  XXX,  K4D,  K4E,  K4F },  \ | ||||||
|  |     { K50,  K51,  K52,  XXX,  XXX,  XXX,  K56,  XXX,  XXX,  XXX,  K5A,  K5B,  K5C,  K5D,  K5E,  K5F },  \ | ||||||
|  |     { XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  K67,  K68,  K69,  K6A,  K6B,  K6C,  K6D,  K6E,  K6F }   \ | ||||||
|  | } | ||||||
							
								
								
									
										10
									
								
								keyboards/durgod/k3x0/k320/readme.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								keyboards/durgod/k3x0/k320/readme.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,10 @@ | |||||||
|  | # Taurus K320 | ||||||
|  | 
 | ||||||
|  | This code is shared between all K320 variants.  Currently only the base model with no backlight is supported. | ||||||
|  | 
 | ||||||
|  | * Keyboard Maintainers: [dkjer](https://github.com/dkjer) and [tylert](https://github.com/tylert) | ||||||
|  | * Hardware Supported: Durgod Taurus K320 board with STM32F070RBT6 | ||||||
|  | * Hardware Availability: Base https://www.amazon.com/Durgod-Taurus-Corona-Mechanical-Keyboard/dp/B078H3WPHM | ||||||
|  | 
 | ||||||
|  | Instructions for building the K320 firmware can be found here: | ||||||
|  | * [No Backlight](base/readme.md) | ||||||
							
								
								
									
										4
									
								
								keyboards/durgod/k3x0/k320/rules.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								keyboards/durgod/k3x0/k320/rules.mk
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,4 @@ | |||||||
|  | # Default to the base model
 | ||||||
|  | DEFAULT_FOLDER=durgod/k3x0/k320/base | ||||||
|  | 
 | ||||||
|  | LAYOUTS = tkl_ansi tkl_iso | ||||||
| @ -1,4 +1,5 @@ | |||||||
| /* Copyright 2021 kuenhlee and Don Kjer
 | /* Copyright 2021 kuenhlee, Don Kjer, Tyler Tidman
 | ||||||
|  |  * Copyright 2021 Simon Arlott | ||||||
|  * |  * | ||||||
|  * This program is free software: you can redistribute it and/or modify |  * This program is free software: you can redistribute it and/or modify | ||||||
|  * it under the terms of the GNU General Public License as published by |  * it under the terms of the GNU General Public License as published by | ||||||
| @ -14,10 +15,15 @@ | |||||||
|  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 |  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | ||||||
|  */ |  */ | ||||||
| 
 | 
 | ||||||
| #include "k320.h" | #include "k3x0.h" | ||||||
|  | #include <ch.h> | ||||||
|  | #include <hal.h> | ||||||
| 
 | 
 | ||||||
| /* Private Functions */ | /* Private Functions */ | ||||||
| void off_all_leds(void) { | void off_all_leds(void) { | ||||||
|  | #ifdef LED_NUM_LOCK_PIN | ||||||
|  |     writePinHigh(LED_NUM_LOCK_PIN); | ||||||
|  | #endif | ||||||
|     writePinHigh(LED_CAPS_LOCK_PIN); |     writePinHigh(LED_CAPS_LOCK_PIN); | ||||||
|     writePinHigh(LED_SCROLL_LOCK_PIN); |     writePinHigh(LED_SCROLL_LOCK_PIN); | ||||||
|     writePinHigh(LED_WIN_LOCK_PIN); |     writePinHigh(LED_WIN_LOCK_PIN); | ||||||
| @ -25,6 +31,9 @@ void off_all_leds(void) { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void on_all_leds(void) { | void on_all_leds(void) { | ||||||
|  | #ifdef LED_NUM_LOCK_PIN | ||||||
|  |     writePinLow(LED_NUM_LOCK_PIN); | ||||||
|  | #endif | ||||||
|     writePinLow(LED_CAPS_LOCK_PIN); |     writePinLow(LED_CAPS_LOCK_PIN); | ||||||
|     writePinLow(LED_SCROLL_LOCK_PIN); |     writePinLow(LED_SCROLL_LOCK_PIN); | ||||||
|     writePinLow(LED_WIN_LOCK_PIN); |     writePinLow(LED_WIN_LOCK_PIN); | ||||||
| @ -33,6 +42,9 @@ void on_all_leds(void) { | |||||||
| 
 | 
 | ||||||
| /* WinLock and MR LEDs are non-standard. Need to override led init */ | /* WinLock and MR LEDs are non-standard. Need to override led init */ | ||||||
| void led_init_ports(void) { | void led_init_ports(void) { | ||||||
|  | #ifdef LED_NUM_LOCK_PIN | ||||||
|  |     setPinOutput(LED_NUM_LOCK_PIN); | ||||||
|  | #endif | ||||||
|     setPinOutput(LED_CAPS_LOCK_PIN); |     setPinOutput(LED_CAPS_LOCK_PIN); | ||||||
|     setPinOutput(LED_SCROLL_LOCK_PIN); |     setPinOutput(LED_SCROLL_LOCK_PIN); | ||||||
|     setPinOutput(LED_WIN_LOCK_PIN); |     setPinOutput(LED_WIN_LOCK_PIN); | ||||||
| @ -40,7 +52,6 @@ void led_init_ports(void) { | |||||||
|     off_all_leds(); |     off_all_leds(); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| #ifndef WINLOCK_DISABLED | #ifndef WINLOCK_DISABLED | ||||||
| static bool win_key_locked = false; | static bool win_key_locked = false; | ||||||
| 
 | 
 | ||||||
| @ -60,3 +71,26 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { | |||||||
|     return process_record_user(keycode, record); |     return process_record_user(keycode, record); | ||||||
| } | } | ||||||
| #endif /* WINLOCK_DISABLED */ | #endif /* WINLOCK_DISABLED */ | ||||||
|  | 
 | ||||||
|  | #ifndef HW_RESET_PIN_DISABLED | ||||||
|  | static void hardware_reset_cb(void *arg) { | ||||||
|  |     chSysLockFromISR(); | ||||||
|  |     bootloader_jump(); | ||||||
|  |     chSysUnlockFromISR(); | ||||||
|  | } | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
|  | void keyboard_pre_init_kb(void) { | ||||||
|  |     setPinInputHigh(HARDWARE_RESET_PIN); | ||||||
|  | 
 | ||||||
|  | #ifndef HW_RESET_PIN_DISABLED | ||||||
|  |     /* Jump to bootloader when the hardware reset button is pressed */ | ||||||
|  |     palEnablePadEvent(PAL_PORT(HARDWARE_RESET_PIN), PAL_PAD(HARDWARE_RESET_PIN), PAL_EVENT_MODE_FALLING_EDGE); | ||||||
|  |     palSetPadCallback(PAL_PORT(HARDWARE_RESET_PIN), PAL_PAD(HARDWARE_RESET_PIN), hardware_reset_cb, NULL); | ||||||
|  | 
 | ||||||
|  |     /* The interrupt is edge-triggered so check that it's not already pressed */ | ||||||
|  |     if (!readPin(HARDWARE_RESET_PIN)) { | ||||||
|  |         bootloader_jump(); | ||||||
|  |     } | ||||||
|  | #endif | ||||||
|  | } | ||||||
							
								
								
									
										47
									
								
								keyboards/durgod/k3x0/k3x0.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								keyboards/durgod/k3x0/k3x0.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,47 @@ | |||||||
|  | /* Copyright 2021 kuenhlee, Don Kjer, Tyler Tidman
 | ||||||
|  |  * Copyright 2021 Simon Arlott | ||||||
|  |  * | ||||||
|  |  * This program is free software: you can redistribute it and/or modify | ||||||
|  |  * it under the terms of the GNU General Public License as published by | ||||||
|  |  * the Free Software Foundation, either version 2 of the License, or | ||||||
|  |  * (at your option) any later version. | ||||||
|  |  * | ||||||
|  |  * This program is distributed in the hope that it will be useful, | ||||||
|  |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
|  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||||
|  |  * GNU General Public License for more details. | ||||||
|  |  * | ||||||
|  |  * You should have received a copy of the GNU General Public License | ||||||
|  |  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | #pragma once | ||||||
|  | 
 | ||||||
|  | #include "quantum.h" | ||||||
|  | 
 | ||||||
|  | #ifdef KEYBOARD_durgod_k3x0_k310 | ||||||
|  | #   include "k310.h" | ||||||
|  | #elif KEYBOARD_durgod_k3x0_k320 | ||||||
|  | #   include "k320.h" | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
|  | #ifndef WINLOCK_DISABLED | ||||||
|  | // Define the TGUI key here so it is available in QMK configurator
 | ||||||
|  | enum K3x0_keycodes { | ||||||
|  | #ifdef VIA_ENABLE | ||||||
|  |     KC_TGUI = USER00,   // Toggle between GUI Lock or Unlock
 | ||||||
|  |     NEW_SAFE_RANGE = SAFE_RANGE | ||||||
|  | #else | ||||||
|  |     KC_TGUI = SAFE_RANGE,   // Toggle between GUI Lock or Unlock
 | ||||||
|  |     NEW_SAFE_RANGE | ||||||
|  | #endif | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | #undef SAFE_RANGE | ||||||
|  | #define SAFE_RANGE NEW_SAFE_RANGE | ||||||
|  | #endif /* WINLOCK_DISABLED */ | ||||||
|  | 
 | ||||||
|  | /* Function Prototype */ | ||||||
|  | void off_all_leds(void); | ||||||
|  | void on_all_leds(void); | ||||||
|  | 
 | ||||||
							
								
								
									
										373
									
								
								keyboards/durgod/k3x0/keymaps/chimera/keymap.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										373
									
								
								keyboards/durgod/k3x0/keymaps/chimera/keymap.c
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,373 @@ | |||||||
|  | /* Copyright 2021 Don Kjer and Tyler Tidman
 | ||||||
|  |  * | ||||||
|  |  * This program is free software: you can redistribute it and/or modify | ||||||
|  |  * it under the terms of the GNU General Public License as published by | ||||||
|  |  * the Free Software Foundation, either version 2 of the License, or | ||||||
|  |  * (at your option) any later version. | ||||||
|  |  * | ||||||
|  |  * This program is distributed in the hope that it will be useful, | ||||||
|  |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
|  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||||
|  |  * GNU General Public License for more details. | ||||||
|  |  * | ||||||
|  |  * You should have received a copy of the GNU General Public License | ||||||
|  |  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | #include QMK_KEYBOARD_H | ||||||
|  | 
 | ||||||
|  | // Layer shorthand
 | ||||||
|  | enum _layer { | ||||||
|  |     _WBL, | ||||||
|  |     _WFL, | ||||||
|  |     _WSL, | ||||||
|  |     _MBL, | ||||||
|  |     _MFL, | ||||||
|  |     _MSL | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | #ifndef DEFAULT_LAYOUT | ||||||
|  | # define DEFAULT_LAYOUT _WBL // Change to _MBL to boot into Mac layout.
 | ||||||
|  | #endif | ||||||
|  | #ifndef ALT_LAYOUT | ||||||
|  | # define ALT_LAYOUT     _MBL // Layout to display 'MR' led when active.
 | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
|  | static bool win_key_locked = false; | ||||||
|  | static bool mac_media_locked = false; | ||||||
|  | static bool win_appkey_pressed = false; | ||||||
|  | static bool mac_fnkey_pressed = false; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | // Defines the keycodes used by our macros in process_record_user
 | ||||||
|  | enum custom_keycodes { | ||||||
|  |     KC_TGUI = SAFE_RANGE,  // Toggle between GUI Lock or Unlock (Windows)
 | ||||||
|  |     KC_TMED,               // Toggle between Fx keys or Media keys (Mac)
 | ||||||
|  |     KC_WFN,                // Windows function key
 | ||||||
|  |     KC_MFN,                // Mac function key
 | ||||||
|  |     MO_WSL,                // Windows system key
 | ||||||
|  |     MO_MSL,                // Mac system key
 | ||||||
|  |     DF_W2MBL,              // Change layout from Windows to Mac
 | ||||||
|  |     DF_M2WBL               // Change layout from Mac to Windows
 | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||||||
|  |   /* Keymap _WBL: Windows Base Layer (Default Layer)
 | ||||||
|  |    * ┌───┐   ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ | ||||||
|  |    * │Esc│   │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │PSc│Slk│Pse│ | ||||||
|  |    * └───┘   └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ | ||||||
|  |    * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ | ||||||
|  |    * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Ins│Hom│PgU│ │Num│ / │ * │ - │ | ||||||
|  |    * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤ | ||||||
|  |    * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │  \  │ │Del│End│PgD│ │ 7 │ 8 │ 9 │   │ | ||||||
|  |    * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬┈┈┈┈┤ └───┴───┴───┘ ├───┼───┼───┤ + │ | ||||||
|  |    * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │Entr│               │ 4 │ 5 │ 6 │   │ | ||||||
|  |    * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤     ┌───┐     ├───┼───┼───┼───┤ | ||||||
|  |    * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │    Shift │     │ ↑ │     │ 1 │ 2 │ 3 │   │ | ||||||
|  |    * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤Ent│ | ||||||
|  |    * │Ctrl│GUI │Alt │                        │ Alt│Func│ App│Ctrl│ │ ← │ ↓ │ → │ │   0   │ . │   │ | ||||||
|  |    * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘ | ||||||
|  |    */ | ||||||
|  |     [_WBL] = LAYOUT_all( /* Windows Base Layer */ | ||||||
|  |         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_SLCK, KC_PAUS, | ||||||
|  |         KC_GRV,  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_BSPC,    KC_INS,  KC_HOME, KC_PGUP,    KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, | ||||||
|  |         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_BSLS,    KC_DEL,  KC_END,  KC_PGDN,    KC_P7,   KC_P8,   KC_P9,   KC_PPLS, | ||||||
|  |         KC_CAPS, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,                                   KC_P4,   KC_P5,   KC_P6, | ||||||
|  |         KC_LSFT, KC_NUBS, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH,          KC_RSFT,             KC_UP,               KC_P1,   KC_P2,   KC_P3,   KC_PENT, | ||||||
|  |         KC_LCTL, KC_LGUI, KC_LALT,                            KC_SPC,                             KC_RALT, KC_WFN,  KC_APP,  KC_RCTL,    KC_LEFT, KC_DOWN, KC_RGHT,    KC_P0,            KC_PDOT | ||||||
|  |     ), | ||||||
|  |   /* Keymap _WFL: Windows Function Layer
 | ||||||
|  |    * ┌───┐   ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ | ||||||
|  |    * │   │   │Ply│Stp│Prv│Nxt│ │Mut│Vo+│Vo-│   │ │   │   │   │   │ │   │   │Mut│ | ||||||
|  |    * └───┘   └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ | ||||||
|  |    * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ | ||||||
|  |    * │   │   │   │   │   │   │   │   │   │   │   │   │   │       │ │   │   │Vo+│ │   │   │   │   │ | ||||||
|  |    * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤ | ||||||
|  |    * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │ │   │   │Vo-│ │   │   │   │   │ | ||||||
|  |    * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬┈┈┈┈┤ └───┴───┴───┘ ├───┼───┼───┤   │ | ||||||
|  |    * │      │   │   │   │   │   │   │   │   │   │   │   │   │    │               │   │   │   │   │ | ||||||
|  |    * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤     ┌───┐     ├───┼───┼───┼───┤ | ||||||
|  |    * │    │   │   │   │   │   │   │   │   │   │   │   │          │     │   │     │   │   │   │   │ | ||||||
|  |    * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤   │ | ||||||
|  |    * │    │Lock│    │                        │    │Func│ Sys│    │ │   │   │   │ │       │   │   │ | ||||||
|  |    * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘ | ||||||
|  |    */ | ||||||
|  |   [_WFL] = LAYOUT_all( /* Windows Function Layer */ | ||||||
|  |         _______,          KC_MPLY, KC_MSTP, KC_MPRV, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______,    _______, _______, KC_MUTE, | ||||||
|  |         _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, KC_VOLU,    _______, _______, _______, _______, | ||||||
|  |         _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, KC_VOLD,    _______, _______, _______, _______, | ||||||
|  |         _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,                                  _______, _______, _______, | ||||||
|  |         _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______,             _______,             _______, _______, _______, _______, | ||||||
|  |         _______, KC_TGUI, _______,                            _______,                            _______, _______, MO_WSL,  _______,    _______, _______, _______,    _______,          _______ | ||||||
|  |     ), | ||||||
|  |   /* Keymap _WSL: Windows System Layer
 | ||||||
|  |    * ┌───┐   ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ | ||||||
|  |    * │Rst│   │Slp│   │   │Pwr│ │   │   │   │   │ │   │   │   │MAC│ │   │   │   │ | ||||||
|  |    * └───┘   └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ | ||||||
|  |    * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ | ||||||
|  |    * │   │   │   │   │   │   │   │   │   │   │   │   │   │       │ │   │   │   │ │   │   │   │   │ | ||||||
|  |    * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤ | ||||||
|  |    * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │ │   │   │   │ │   │   │   │   │ | ||||||
|  |    * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬┈┈┈┈┤ └───┴───┴───┘ ├───┼───┼───┤   │ | ||||||
|  |    * │      │   │   │DBG│   │   │   │   │   │   │   │   │   │    │               │   │   │   │   │ | ||||||
|  |    * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤     ┌───┐     ├───┼───┼───┼───┤ | ||||||
|  |    * │    │   │   │   │   │   │   │   │   │   │   │   │          │     │   │     │   │   │   │   │ | ||||||
|  |    * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤   │ | ||||||
|  |    * │    │    │    │                        │    │    │    │    │ │   │   │   │ │       │   │   │ | ||||||
|  |    * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘ | ||||||
|  |    */ | ||||||
|  |     [_WSL] = LAYOUT_all( /* Windows Second / System Layer */ | ||||||
|  |         RESET,            KC_SLEP, XXXXXXX, XXXXXXX, KC_PWR,  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DF_W2MBL,   XXXXXXX, XXXXXXX, XXXXXXX, | ||||||
|  |         XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,    XXXXXXX, XXXXXXX, XXXXXXX,    XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||||||
|  |         XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,    XXXXXXX, XXXXXXX, XXXXXXX,    XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||||||
|  |         XXXXXXX, XXXXXXX, XXXXXXX, DEBUG,   XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,                                  XXXXXXX, XXXXXXX, XXXXXXX, | ||||||
|  |         XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,          XXXXXXX,             XXXXXXX,             XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||||||
|  |         XXXXXXX, XXXXXXX, XXXXXXX,                            XXXXXXX,                            XXXXXXX, _______, _______, XXXXXXX,    XXXXXXX, XXXXXXX, XXXXXXX,    XXXXXXX,          XXXXXXX | ||||||
|  |     ), | ||||||
|  | 
 | ||||||
|  |   /* Keymap _MBL: Mac Base Layer (Alternate Layout)
 | ||||||
|  |    * ┌───┐   ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ | ||||||
|  |    * │Esc│   │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │F13│F14│F15│ | ||||||
|  |    * └───┘   └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ | ||||||
|  |    * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ | ||||||
|  |    * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Ins│Hom│PgU│ │Num│ / │ * │ - │ | ||||||
|  |    * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤ | ||||||
|  |    * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │  \  │ │Del│End│PgD│ │ 7 │ 8 │ 9 │   │ | ||||||
|  |    * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬┈┈┈┈┤ └───┴───┴───┘ ├───┼───┼───┤ + │ | ||||||
|  |    * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │Entr│               │ 4 │ 5 │ 6 │   │ | ||||||
|  |    * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤     ┌───┐     ├───┼───┼───┼───┤ | ||||||
|  |    * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │    Shift │     │ ↑ │     │ 1 │ 2 │ 3 │   │ | ||||||
|  |    * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤Ent│ | ||||||
|  |    * │Ctrl│Alt │GUI │                        │ GUI│ Alt│Func│Ctrl│ │ ← │ ↓ │ → │ │   0   │ . │   │ | ||||||
|  |    * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘ | ||||||
|  |    */ | ||||||
|  |     [_MBL] = LAYOUT_all( /* Mac Base Layer */ | ||||||
|  |         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_F13,  KC_F14,  KC_F15, | ||||||
|  |         KC_GRV,  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_BSPC,    KC_INS,  KC_HOME, KC_PGUP,    KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, | ||||||
|  |         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_BSLS,    KC_DEL,  KC_END,  KC_PGDN,    KC_P7,   KC_P8,   KC_P9,   KC_PPLS, | ||||||
|  |         KC_CAPS, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,                                   KC_P4,   KC_P5,   KC_P6, | ||||||
|  |         KC_LSFT, KC_NUBS, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH,          KC_RSFT,             KC_UP,               KC_P1,   KC_P2,   KC_P3,   KC_PENT, | ||||||
|  |         KC_LCTL, KC_LALT, KC_LGUI,                            KC_SPC,                             KC_RGUI, KC_RALT, KC_MFN,  KC_RCTL,    KC_LEFT, KC_DOWN, KC_RGHT,    KC_P0,            KC_PDOT | ||||||
|  |     ), | ||||||
|  |   /* Keymap _MFL: Mac Function Layer
 | ||||||
|  |    * ┌───┐   ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ | ||||||
|  |    * │   │   │Br-│Br+│   │   │ │   │   │Prv│Ply│ │Nxt│Mut│Vo-│Vo+│ │TMd│   │Mut│ | ||||||
|  |    * └───┘   └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ | ||||||
|  |    * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ | ||||||
|  |    * │   │   │   │   │   │   │   │   │   │   │   │   │   │       │ │   │   │Vo+│ │   │   │   │   │ | ||||||
|  |    * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤ | ||||||
|  |    * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │ │   │   │Vo-│ │   │   │   │   │ | ||||||
|  |    * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬┈┈┈┈┤ └───┴───┴───┘ ├───┼───┼───┤   │ | ||||||
|  |    * │      │   │   │   │   │   │   │   │   │   │   │   │   │    │               │   │   │   │   │ | ||||||
|  |    * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤     ┌───┐     ├───┼───┼───┼───┤ | ||||||
|  |    * │    │   │   │   │   │   │   │   │   │   │   │   │          │     │   │     │   │   │   │   │ | ||||||
|  |    * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤   │ | ||||||
|  |    * │    │    │    │                        │    │ Sys│Func│    │ │   │   │   │ │       │   │   │ | ||||||
|  |    * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘ | ||||||
|  |    */ | ||||||
|  |   [_MFL] = LAYOUT_all( /* Mac Function Layer */ | ||||||
|  |         _______,          KC_BRID, KC_BRIU, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU,    KC_TMED, _______, KC_MUTE, | ||||||
|  |         _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, KC_VOLU,     _______, _______, _______, _______, | ||||||
|  |         _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, KC_VOLD,     _______, _______, _______, _______, | ||||||
|  |         _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,                                   _______, _______, _______, | ||||||
|  |         _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______,             _______,              _______, _______, _______, _______, | ||||||
|  |         _______, _______, _______,                            _______,                            _______, MO_MSL,  _______, _______,    _______, _______, _______,     _______,          _______ | ||||||
|  |     ), | ||||||
|  |   /* Keymap _MSL: Mac System Layer
 | ||||||
|  |    * ┌───┐   ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ | ||||||
|  |    * │Rst│   │   │   │   │Slp│ │   │   │   │   │ │   │   │   │WIN│ │   │   │   │ | ||||||
|  |    * └───┘   └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ | ||||||
|  |    * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ | ||||||
|  |    * │   │   │   │   │   │   │   │   │   │   │   │   │   │       │ │   │   │   │ │   │   │   │   │ | ||||||
|  |    * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤ | ||||||
|  |    * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │ │   │   │   │ │   │   │   │   │ | ||||||
|  |    * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬┈┈┈┈┤ └───┴───┴───┘ ├───┼───┼───┤   │ | ||||||
|  |    * │      │   │   │DBG│   │   │   │   │   │   │   │   │   │    │               │   │   │   │   │ | ||||||
|  |    * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤     ┌───┐     ├───┼───┼───┼───┤ | ||||||
|  |    * │    │   │   │   │   │   │   │   │   │   │   │   │          │     │   │     │   │   │   │   │ | ||||||
|  |    * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤   │ | ||||||
|  |    * │    │    │    │                        │    │ Sys│Func│    │ │   │   │   │ │       │   │   │ | ||||||
|  |    * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘ | ||||||
|  |    */ | ||||||
|  |     [_MSL] = LAYOUT_all( /* Mac Second / System Layer */ | ||||||
|  |         RESET,            XXXXXXX, XXXXXXX, XXXXXXX, KC_SLEP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DF_M2WBL,   XXXXXXX, XXXXXXX, XXXXXXX, | ||||||
|  |         XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,    XXXXXXX, XXXXXXX, XXXXXXX,    XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||||||
|  |         XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,    XXXXXXX, XXXXXXX, XXXXXXX,    XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||||||
|  |         XXXXXXX, XXXXXXX, XXXXXXX, DEBUG,   XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,                                  XXXXXXX, XXXXXXX, XXXXXXX, | ||||||
|  |         XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,          XXXXXXX,             XXXXXXX,             XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||||||
|  |         XXXXXXX, XXXXXXX, XXXXXXX,                            XXXXXXX,                            XXXXXXX, _______, _______, XXXXXXX,    XXXXXXX, XXXXXXX, XXXXXXX,    XXXXXXX,          XXXXXXX | ||||||
|  |     ) | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | void unlock_win_key(void) { | ||||||
|  |     win_key_locked = false; | ||||||
|  |     mac_media_locked = false; | ||||||
|  |     writePinHigh(LED_WIN_LOCK_PIN); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void toggle_lock_win_key(void) { | ||||||
|  |     win_key_locked = !win_key_locked; | ||||||
|  |     writePin(LED_WIN_LOCK_PIN, !win_key_locked); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void toggle_lock_media_key(void) { | ||||||
|  |     mac_media_locked = !mac_media_locked; | ||||||
|  |     writePin(LED_WIN_LOCK_PIN, !mac_media_locked); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #ifdef CONSOLE_ENABLE | ||||||
|  | void dprint_global_layers(void) { | ||||||
|  |     dprint("Global Layers:"); | ||||||
|  |     if (IS_LAYER_ON(_WFL)) { dprint(" _WFL"); } | ||||||
|  |     if (IS_LAYER_ON(_WSL)) { dprint(" _WSL"); } | ||||||
|  |     if (IS_LAYER_ON(_MFL)) { dprint(" _MFL"); } | ||||||
|  |     if (IS_LAYER_ON(_MSL)) { dprint(" _MSL"); } | ||||||
|  |     dprintf("\n"); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void dprint_layers(layer_state_t state) { | ||||||
|  |     dprint("Layers:"); | ||||||
|  |     if (IS_LAYER_ON_STATE(state, _WFL)) { dprint(" _WFL"); } | ||||||
|  |     if (IS_LAYER_ON_STATE(state, _WSL)) { dprint(" _WSL"); } | ||||||
|  |     if (IS_LAYER_ON_STATE(state, _MFL)) { dprint(" _MFL"); } | ||||||
|  |     if (IS_LAYER_ON_STATE(state, _MSL)) { dprint(" _MSL"); } | ||||||
|  |     dprintf("\n"); | ||||||
|  | } | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
|  | layer_state_t default_layer_state_set_user(layer_state_t state) { | ||||||
|  | #ifdef CONSOLE_ENABLE | ||||||
|  |     dprintf("default_layer_state_set_user: 0x%x\n", state); | ||||||
|  |     dprint_global_layers(); | ||||||
|  | #endif | ||||||
|  |     // Disable windows key lock on default layer transition.
 | ||||||
|  |     unlock_win_key(); | ||||||
|  |     win_appkey_pressed = false; | ||||||
|  |     mac_fnkey_pressed = false; | ||||||
|  |     writePin(LED_MR_LOCK_PIN, !IS_LAYER_ON_STATE(state, ALT_LAYOUT)); | ||||||
|  |     return state; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | layer_state_t layer_state_set_user(layer_state_t state) { | ||||||
|  | #ifdef CONSOLE_ENABLE | ||||||
|  |     dprintf("layer_state_set_user: 0x%x\n", state); | ||||||
|  |     dprint_layers(state); | ||||||
|  | #endif | ||||||
|  |     return state; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||||||
|  |     switch (keycode) { | ||||||
|  |         case KC_TGUI: | ||||||
|  |             if (!record->event.pressed) { | ||||||
|  |                 // Toggle GUI lock on key release
 | ||||||
|  |                 toggle_lock_win_key(); | ||||||
|  |             } | ||||||
|  |             break; | ||||||
|  |         case KC_TMED: | ||||||
|  |             // Only trigger when Fn key is also held down, to avoid accidental unlock.
 | ||||||
|  |             if (!mac_fnkey_pressed) { return false; } | ||||||
|  |             if (!record->event.pressed) { | ||||||
|  |                 // Toggle Media Lock on key release
 | ||||||
|  |                 toggle_lock_media_key(); | ||||||
|  |             } | ||||||
|  |             break; | ||||||
|  |         case KC_LGUI: | ||||||
|  |             if (win_key_locked) { return false; } | ||||||
|  |             break; | ||||||
|  |         case KC_WFN: | ||||||
|  |             // Like MO(_WFL), but also enables _WSL if KC_APP is already pressed down.
 | ||||||
|  |             if (record->event.pressed) { | ||||||
|  |                 layer_on(_WFL); | ||||||
|  |                 if (win_appkey_pressed) { | ||||||
|  |                     // Also enable Secondary layer if App key is being held down.
 | ||||||
|  |                     win_appkey_pressed = false; | ||||||
|  |                     layer_on(_WSL); | ||||||
|  |                 } | ||||||
|  |             } else { | ||||||
|  |                 if (IS_LAYER_ON(_WFL)) { layer_off(_WFL); } | ||||||
|  |                 if (IS_LAYER_ON(_MSL)) { layer_off(_MSL); } | ||||||
|  |             } | ||||||
|  |             break; | ||||||
|  |         case KC_APP: | ||||||
|  |             if (record->event.pressed) { | ||||||
|  |                 // Don't actually press down the app menu key
 | ||||||
|  |                 win_appkey_pressed = true; | ||||||
|  |             } else { | ||||||
|  |                 if (IS_LAYER_ON(_WSL)) { layer_off(_WSL); } | ||||||
|  |                 if (IS_LAYER_ON(_MFL)) { layer_off(_MFL); } | ||||||
|  |                 if (win_appkey_pressed) { | ||||||
|  |                     win_appkey_pressed = false; | ||||||
|  |                     // Tap the KC_APP key on key release.
 | ||||||
|  |                     tap_code(KC_APP); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |             return false; | ||||||
|  |             break; | ||||||
|  |         case KC_MFN: | ||||||
|  |             // Mac Fn key.  Emit Fn keycode, and also transition layers similar to KC_WFN.
 | ||||||
|  |             if (record->event.pressed) { | ||||||
|  |                 mac_fnkey_pressed = true; | ||||||
|  |                 layer_on(_MFL); | ||||||
|  |                 // Also enable Secondary layer if Right-Alt key is being held down.
 | ||||||
|  |                 if (get_mods() & MOD_BIT(KC_RALT)) { | ||||||
|  |                     layer_on(_MSL); | ||||||
|  |                 } | ||||||
|  |             } else { | ||||||
|  |                 mac_fnkey_pressed = false; | ||||||
|  |                 if (!mac_media_locked) { | ||||||
|  |                     if (IS_LAYER_ON(_MFL)) { layer_off(_MFL); } | ||||||
|  |                     if (IS_LAYER_ON(_WSL)) { layer_off(_WSL); } | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |             break; | ||||||
|  |         case KC_RALT: | ||||||
|  |             // Disable MSL/WFL layer on key-up.
 | ||||||
|  |             if (!record->event.pressed) { | ||||||
|  |                 if (IS_LAYER_ON(_MSL)) { layer_off(_MSL); } | ||||||
|  |                 if (IS_LAYER_ON(_WFL)) { layer_off(_WFL); } | ||||||
|  |             } | ||||||
|  |             break; | ||||||
|  |         case MO_WSL: | ||||||
|  |             if (record->event.pressed) { | ||||||
|  |                 layer_on(_WSL); | ||||||
|  |             } else { | ||||||
|  |                 if (IS_LAYER_ON(_WSL)) { layer_off(_WSL); } | ||||||
|  |                 if (IS_LAYER_ON(_MFL)) { layer_off(_MFL); } | ||||||
|  |             } | ||||||
|  |             break; | ||||||
|  |         case MO_MSL: | ||||||
|  |             if (record->event.pressed) { | ||||||
|  |                 layer_on(_MSL); | ||||||
|  |             } else { | ||||||
|  |                 if (IS_LAYER_ON(_MSL)) { layer_off(_MSL); } | ||||||
|  |                 if (IS_LAYER_ON(_WFL)) { layer_off(_WFL); } | ||||||
|  |             } | ||||||
|  |             break; | ||||||
|  |         case DF_W2MBL: | ||||||
|  |             if (!record->event.pressed) { | ||||||
|  |                 // Switch base layer, but preserve first/secondary layers.
 | ||||||
|  |                 default_layer_set(1UL<<_MBL); | ||||||
|  |                 layer_state_set(1UL<<_MFL | 1UL<<_MSL); | ||||||
|  |             } | ||||||
|  |             break; | ||||||
|  |         case DF_M2WBL: | ||||||
|  |             if (!record->event.pressed) { | ||||||
|  |                 // Switch base layer, but preserve first/secondary layers.
 | ||||||
|  |                 default_layer_set(1UL<<_WBL); | ||||||
|  |                 layer_state_set(1UL<<_WFL | 1UL<<_WSL); | ||||||
|  |             } | ||||||
|  |             break; | ||||||
|  |         case RESET: | ||||||
|  |             if (record->event.pressed) { | ||||||
|  |                 // Flash LEDs to indicate bootloader mode is enabled.
 | ||||||
|  |                 on_all_leds(); | ||||||
|  |             } | ||||||
|  |             break; | ||||||
|  |     } | ||||||
|  |     return true; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void keyboard_post_init_user(void) { | ||||||
|  |     default_layer_set(1UL<<DEFAULT_LAYOUT); | ||||||
|  | } | ||||||
| @ -1,8 +1,8 @@ | |||||||
| # A keymap for Durgod Taurus K320 that supports toggling between Mac and Windows | # A keymap for Durgod Taurus K310/K320 that supports toggling between Mac and Windows | ||||||
| 
 | 
 | ||||||
| Supports both ANSI and ISO layouts. | Supports both ANSI and ISO layouts. | ||||||
| 
 | 
 | ||||||
| Layer 0 : Standard 87/88 keys TKL layout (Windows) | Layer 0 : Standard layout (Windows) | ||||||
| 
 | 
 | ||||||
| Layer 1 : Media control and Windows lock key (Windows) | Layer 1 : Media control and Windows lock key (Windows) | ||||||
| - Reusing Durgod's Original Media Control for Fn + F1 ~ Fn + F7 | - Reusing Durgod's Original Media Control for Fn + F1 ~ Fn + F7 | ||||||
| @ -14,7 +14,7 @@ Layer 2 : System layer (Windows) | |||||||
| - Fn + Menu + F4  : Turning Off System | - Fn + Menu + F4  : Turning Off System | ||||||
| - Fn + Menu + F12 : Switch to Mac layout | - Fn + Menu + F12 : Switch to Mac layout | ||||||
| 
 | 
 | ||||||
| Layer 3 : Mac 87/88 keys TKL layout | Layer 3 : Mac layout | ||||||
| 
 | 
 | ||||||
| Layer 4 : Media control and Media lock key (Mac) | Layer 4 : Media control and Media lock key (Mac) | ||||||
|  - Standard Mac Media keys for Fn + F1 ~ Fn + F12. |  - Standard Mac Media keys for Fn + F1 ~ Fn + F12. | ||||||
| @ -39,14 +39,14 @@ You can change the default & alternate layout by setting the following flags to | |||||||
| 
 | 
 | ||||||
| For example, to configure Mac as the default layer, and Windows to be the alternate layout, compile with these flags: | For example, to configure Mac as the default layer, and Windows to be the alternate layout, compile with these flags: | ||||||
| 
 | 
 | ||||||
|     make EXTRAFLAGS="-DDEFAULT_LAYOUT=_MBL -DALT_LAYOUT=_WBL" durgod/k320:default_toggle_mac_windows |     make EXTRAFLAGS="-DDEFAULT_LAYOUT=_MBL -DALT_LAYOUT=_WBL" durgod/k3x0/k310:chimera | ||||||
| 
 | 
 | ||||||
| ## Windows key lock | ## Windows key lock | ||||||
| 
 | 
 | ||||||
| In windows layout, you can hold down Fn + Windows key to disable the Windows key while in locked mode.  The 'Lock' LED | In windows layout, you can hold down Fn + Windows key to disable the Windows key while in locked mode.  The 'Lock' LED | ||||||
| indicates if the Windows key is locked. | indicates if the Windows key is locked. | ||||||
| 
 | 
 | ||||||
| This is similar to the stock K320 Windows key lock functionality. | This is similar to the stock K310/K320 Windows key lock functionality. | ||||||
| 
 | 
 | ||||||
| ## Mac Media Lock | ## Mac Media Lock | ||||||
| 
 | 
 | ||||||
							
								
								
									
										26
									
								
								keyboards/durgod/k3x0/keymaps/default/keymap.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								keyboards/durgod/k3x0/keymaps/default/keymap.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,26 @@ | |||||||
|  | { | ||||||
|  |   "keyboard": "durgod/k3x0", | ||||||
|  |   "keymap": "default", | ||||||
|  |   "layout": "LAYOUT_all", | ||||||
|  |   "layers": [ | ||||||
|  |     [ | ||||||
|  |       "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_SLCK", "KC_PAUS", | ||||||
|  |       "KC_GRV",  "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_BSPC",    "KC_INS",  "KC_HOME", "KC_PGUP",    "KC_NLCK", "KC_PSLS", "KC_PAST", "KC_PMNS", | ||||||
|  |       "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_BSLS",    "KC_DEL",  "KC_END",  "KC_PGDN",    "KC_P7",   "KC_P8",   "KC_P9",   "KC_PPLS", | ||||||
|  |       "KC_CAPS", "KC_A",    "KC_S",    "KC_D",    "KC_F",    "KC_G",    "KC_H",    "KC_J",    "KC_K",    "KC_L",    "KC_SCLN", "KC_QUOT", "KC_NUHS", "KC_ENT",                                         "KC_P4",   "KC_P5",   "KC_P6", | ||||||
|  |       "KC_LSFT", "KC_NUBS", "KC_Z",    "KC_X",    "KC_C",    "KC_V",    "KC_B",    "KC_N",    "KC_M",    "KC_COMM", "KC_DOT",  "KC_SLSH",            "KC_RSFT",               "KC_UP",                 "KC_P1",   "KC_P2",   "KC_P3",   "KC_PENT", | ||||||
|  |       "KC_LCTL", "KC_LGUI", "KC_LALT",                                  "KC_SPC",                                   "KC_RALT", "MO(1)",   "KC_APP",  "KC_RCTL",    "KC_LEFT", "KC_DOWN", "KC_RGHT",    "KC_P0",              "KC_PDOT" | ||||||
|  |     ], | ||||||
|  |     [ | ||||||
|  |       "_______",            "KC_MPLY", "KC_MSTP", "KC_MPRV", "KC_MNXT", "KC_MUTE", "KC_VOLD", "KC_VOLU", "_______", "_______", "_______", "_______", "_______",    "_______", "_______", "_______", | ||||||
|  |       "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",    "_______", "_______", "_______",    "_______", "_______", "_______", "_______", | ||||||
|  |       "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",    "_______", "_______", "_______",    "_______", "_______", "_______", "_______", | ||||||
|  |       "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",                                        "_______", "_______", "_______", | ||||||
|  |       "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",            "_______",               "_______",               "_______", "_______", "_______", "_______", | ||||||
|  |       "_______", "KC_TGUI", "_______",                                  "_______",                                  "_______", "_______", "_______", "_______",    "_______", "_______", "_______",    "_______",            "_______" | ||||||
|  |     ] | ||||||
|  |   ], | ||||||
|  |   "author": "tylert", | ||||||
|  |   "notes": "", | ||||||
|  |   "version": 1 | ||||||
|  | } | ||||||
| @ -1,8 +1,8 @@ | |||||||
| # The default keymap for Durgod Taurus K320. | # The default keymap for Durgod Taurus K3X0 (K310, K320, etc.) without backlight | ||||||
| 
 | 
 | ||||||
| Supports both ANSI and ISO layouts. | Supports both ANSI and ISO layouts. | ||||||
| 
 | 
 | ||||||
| Layer 0 : Standard 87/88 keys TKL layout (Windows) | Layer 0 : Standard layout (Windows) | ||||||
| 
 | 
 | ||||||
| Layer 1 : Media control and Windows lock key | Layer 1 : Media control and Windows lock key | ||||||
| - Reusing Durgod's Original Media Control for Fn + F1 ~ Fn + F7 | - Reusing Durgod's Original Media Control for Fn + F1 ~ Fn + F7 | ||||||
| @ -13,4 +13,4 @@ Layer 1 : Media control and Windows lock key | |||||||
| You can hold down Fn + Windows key to disable the Windows key while in locked mode. | You can hold down Fn + Windows key to disable the Windows key while in locked mode. | ||||||
| The 'Lock' LED indicates if the Windows key is locked. | The 'Lock' LED indicates if the Windows key is locked. | ||||||
| 
 | 
 | ||||||
| This is similar to the stock K320 Windows key lock functionality. | This is similar to the stock K310/K320 Windows key lock functionality. | ||||||
| @ -1,23 +1,23 @@ | |||||||
| { | { | ||||||
|   "keyboard": "durgod/k320", |   "keyboard": "durgod/k3x0", | ||||||
|   "keymap": "default_mac", |   "keymap": "default_mac", | ||||||
|   "layout": "LAYOUT_all", |   "layout": "LAYOUT_all", | ||||||
|   "layers": [ |   "layers": [ | ||||||
|     [ |     [ | ||||||
|       "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_F13",  "KC_F14",  "KC_F15", |       "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_F13",  "KC_F14",  "KC_F15", | ||||||
|       "KC_GRV",  "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_BSPC",    "KC_INS",  "KC_HOME", "KC_PGUP", |       "KC_GRV",  "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_BSPC",    "KC_INS",  "KC_HOME", "KC_PGUP",    "KC_NLCK", "KC_PSLS", "KC_PAST", "KC_PMNS", | ||||||
|       "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_BSLS",    "KC_DEL",  "KC_END",  "KC_PGDN", |       "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_BSLS",    "KC_DEL",  "KC_END",  "KC_PGDN",    "KC_P7",   "KC_P8",   "KC_P9",   "KC_PPLS", | ||||||
|       "KC_CAPS", "KC_A",    "KC_S",    "KC_D",    "KC_F",    "KC_G",    "KC_H",    "KC_J",    "KC_K",    "KC_L",    "KC_SCLN", "KC_QUOT", "KC_NUHS", "KC_ENT", |       "KC_CAPS", "KC_A",    "KC_S",    "KC_D",    "KC_F",    "KC_G",    "KC_H",    "KC_J",    "KC_K",    "KC_L",    "KC_SCLN", "KC_QUOT", "KC_NUHS", "KC_ENT",                                         "KC_P4",   "KC_P5",   "KC_P6", | ||||||
|       "KC_LSFT", "KC_NUBS", "KC_Z",    "KC_X",    "KC_C",    "KC_V",    "KC_B",    "KC_N",    "KC_M",    "KC_COMM", "KC_DOT",  "KC_SLSH",            "KC_RSFT",               "KC_UP", |       "KC_LSFT", "KC_NUBS", "KC_Z",    "KC_X",    "KC_C",    "KC_V",    "KC_B",    "KC_N",    "KC_M",    "KC_COMM", "KC_DOT",  "KC_SLSH",            "KC_RSFT",               "KC_UP",                 "KC_P1",   "KC_P2",   "KC_P3",   "KC_PENT", | ||||||
|       "KC_LCTL", "KC_LALT", "KC_LGUI",                                  "KC_SPC",                                   "KC_RGUI", "KC_RALT", "MO(1)",   "KC_RCTL",    "KC_LEFT", "KC_DOWN", "KC_RGHT" |       "KC_LCTL", "KC_LALT", "KC_LGUI",                                  "KC_SPC",                                   "KC_RGUI", "KC_RALT", "MO(1)",   "KC_RCTL",    "KC_LEFT", "KC_DOWN", "KC_RGHT",    "KC_P0",              "KC_PDOT" | ||||||
|     ], |     ], | ||||||
|     [ |     [ | ||||||
|       "KC_TRNS",            "KC_MPLY", "KC_MSTP", "KC_MPRV", "KC_MNXT", "KC_MUTE", "KC_VOLD", "KC_VOLU", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",    "KC_TRNS", "KC_TRNS", "KC_TRNS", |       "KC_TRNS",            "KC_MPLY", "KC_MSTP", "KC_MPRV", "KC_MNXT", "KC_MUTE", "KC_VOLD", "KC_VOLU", "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", "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", "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", "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",                                        "_______", "_______", "_______", | ||||||
|       "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",            "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",    "_______",            "_______" | ||||||
|     ] |     ] | ||||||
|   ], |   ], | ||||||
|   "author":"AlCutter", |   "author":"AlCutter", | ||||||
							
								
								
									
										373
									
								
								keyboards/durgod/k3x0/keymaps/typhon/keymap.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										373
									
								
								keyboards/durgod/k3x0/keymaps/typhon/keymap.c
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,373 @@ | |||||||
|  | /* Copyright 2021 Don Kjer and Tyler Tidman
 | ||||||
|  |  * | ||||||
|  |  * This program is free software: you can redistribute it and/or modify | ||||||
|  |  * it under the terms of the GNU General Public License as published by | ||||||
|  |  * the Free Software Foundation, either version 2 of the License, or | ||||||
|  |  * (at your option) any later version. | ||||||
|  |  * | ||||||
|  |  * This program is distributed in the hope that it will be useful, | ||||||
|  |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
|  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||||
|  |  * GNU General Public License for more details. | ||||||
|  |  * | ||||||
|  |  * You should have received a copy of the GNU General Public License | ||||||
|  |  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | #include QMK_KEYBOARD_H | ||||||
|  | 
 | ||||||
|  | // Layer shorthand
 | ||||||
|  | enum _layer { | ||||||
|  |     _WBL, | ||||||
|  |     _WFL, | ||||||
|  |     _WSL, | ||||||
|  |     _MBL, | ||||||
|  |     _MFL, | ||||||
|  |     _MSL | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | #ifndef DEFAULT_LAYOUT | ||||||
|  | # define DEFAULT_LAYOUT _WBL // Change to _MBL to boot into Mac layout.
 | ||||||
|  | #endif | ||||||
|  | #ifndef ALT_LAYOUT | ||||||
|  | # define ALT_LAYOUT     _MBL // Layout to display 'MR' led when active.
 | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
|  | static bool win_key_locked = false; | ||||||
|  | static bool mac_media_locked = false; | ||||||
|  | static bool win_appkey_pressed = false; | ||||||
|  | static bool mac_fnkey_pressed = false; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | // Defines the keycodes used by our macros in process_record_user
 | ||||||
|  | enum custom_keycodes { | ||||||
|  |     KC_TGUI = SAFE_RANGE,  // Toggle between GUI Lock or Unlock (Windows)
 | ||||||
|  |     KC_TMED,               // Toggle between Fx keys or Media keys (Mac)
 | ||||||
|  |     KC_WFN,                // Windows function key
 | ||||||
|  |     KC_MFN,                // Mac function key
 | ||||||
|  |     MO_WSL,                // Windows system key
 | ||||||
|  |     MO_MSL,                // Mac system key
 | ||||||
|  |     DF_W2MBL,              // Change layout from Windows to Mac
 | ||||||
|  |     DF_M2WBL               // Change layout from Mac to Windows
 | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||||||
|  |   /* Keymap _WBL: Windows Base Layer (Default Layer)
 | ||||||
|  |    * ┌───┐   ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ | ||||||
|  |    * │Esc│   │M1 │M3 │M2 │M4 │ │M1 │M3 │M2 │M4 │ │M1 │M3 │M2 │M4 │ │PSc│Slk│Pse│ | ||||||
|  |    * └───┘   └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ | ||||||
|  |    * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ | ||||||
|  |    * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Ins│Hom│PgU│ │Num│ / │ * │ - │ | ||||||
|  |    * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤ | ||||||
|  |    * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │  \  │ │Del│End│PgD│ │ 7 │ 8 │ 9 │   │ | ||||||
|  |    * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬┈┈┈┈┤ └───┴───┴───┘ ├───┼───┼───┤ + │ | ||||||
|  |    * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │Entr│               │ 4 │ 5 │ 6 │   │ | ||||||
|  |    * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤     ┌───┐     ├───┼───┼───┼───┤ | ||||||
|  |    * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │    Shift │     │ ↑ │     │ 1 │ 2 │ 3 │   │ | ||||||
|  |    * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤Ent│ | ||||||
|  |    * │Ctrl│GUI │Alt │                        │ Alt│Func│ App│Ctrl│ │ ← │ ↓ │ → │ │   0   │ . │   │ | ||||||
|  |    * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘ | ||||||
|  |    */ | ||||||
|  |     [_WBL] = LAYOUT_all( /* Windows Base Layer */ | ||||||
|  |         KC_ESC,           KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN4, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN4, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN4,    KC_PSCR, KC_SLCK, KC_PAUS, | ||||||
|  |         KC_GRV,  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_BSPC,    KC_INS,  KC_HOME, KC_PGUP,    KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, | ||||||
|  |         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_BSLS,    KC_DEL,  KC_END,  KC_PGDN,    KC_P7,   KC_P8,   KC_P9,   KC_PPLS, | ||||||
|  |         KC_CAPS, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,                                   KC_P4,   KC_P5,   KC_P6, | ||||||
|  |         KC_LSFT, KC_NUBS, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH,          KC_RSFT,             KC_UP,               KC_P1,   KC_P2,   KC_P3,   KC_PENT, | ||||||
|  |         KC_LCTL, KC_LGUI, KC_LALT,                            KC_SPC,                             KC_RALT, KC_WFN,  KC_APP,  KC_RCTL,    KC_LEFT, KC_DOWN, KC_RGHT,    KC_P0,            KC_PDOT | ||||||
|  |     ), | ||||||
|  |   /* Keymap _WFL: Windows Function Layer
 | ||||||
|  |    * ┌───┐   ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ | ||||||
|  |    * │   │   │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │   │   │Mut│ | ||||||
|  |    * └───┘   └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ | ||||||
|  |    * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ | ||||||
|  |    * │   │   │   │   │   │   │   │   │   │   │   │   │   │       │ │   │   │Vo+│ │   │   │   │   │ | ||||||
|  |    * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤ | ||||||
|  |    * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │ │   │   │Vo-│ │   │   │   │   │ | ||||||
|  |    * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬┈┈┈┈┤ └───┴───┴───┘ ├───┼───┼───┤   │ | ||||||
|  |    * │      │   │   │   │   │   │   │   │   │   │   │   │   │    │               │   │   │   │   │ | ||||||
|  |    * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤     ┌───┐     ├───┼───┼───┼───┤ | ||||||
|  |    * │    │   │   │   │   │   │   │   │   │   │   │   │          │     │   │     │   │   │   │   │ | ||||||
|  |    * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤   │ | ||||||
|  |    * │    │Lock│    │                        │    │Func│ Sys│    │ │   │   │   │ │       │   │   │ | ||||||
|  |    * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘ | ||||||
|  |    */ | ||||||
|  |   [_WFL] = LAYOUT_all( /* Windows Function Layer */ | ||||||
|  |         _______,          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_MUTE, | ||||||
|  |         _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, KC_VOLU,    _______, _______, _______, _______, | ||||||
|  |         _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, KC_VOLD,    _______, _______, _______, _______, | ||||||
|  |         _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,                                  _______, _______, _______, | ||||||
|  |         _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______,             _______,             _______, _______, _______, _______, | ||||||
|  |         _______, KC_TGUI, _______,                            _______,                            _______, _______, MO_WSL,  _______,    _______, _______, _______,    _______,          _______ | ||||||
|  |     ), | ||||||
|  |   /* Keymap _WSL: Windows System Layer
 | ||||||
|  |    * ┌───┐   ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ | ||||||
|  |    * │Rst│   │Slp│   │   │Pwr│ │   │   │   │   │ │   │   │   │MAC│ │   │   │   │ | ||||||
|  |    * └───┘   └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ | ||||||
|  |    * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ | ||||||
|  |    * │   │   │   │   │   │   │   │   │   │   │   │   │   │       │ │   │   │   │ │   │   │   │   │ | ||||||
|  |    * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤ | ||||||
|  |    * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │ │   │   │   │ │   │   │   │   │ | ||||||
|  |    * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬┈┈┈┈┤ └───┴───┴───┘ ├───┼───┼───┤   │ | ||||||
|  |    * │      │   │   │DBG│   │   │   │   │   │   │   │   │   │    │               │   │   │   │   │ | ||||||
|  |    * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤     ┌───┐     ├───┼───┼───┼───┤ | ||||||
|  |    * │    │   │   │   │   │   │   │   │   │   │   │   │          │     │   │     │   │   │   │   │ | ||||||
|  |    * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤   │ | ||||||
|  |    * │    │    │    │                        │    │    │    │    │ │   │   │   │ │       │   │   │ | ||||||
|  |    * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘ | ||||||
|  |    */ | ||||||
|  |     [_WSL] = LAYOUT_all( /* Windows Second / System Layer */ | ||||||
|  |         RESET,            KC_SLEP, XXXXXXX, XXXXXXX, KC_PWR,  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DF_W2MBL,   XXXXXXX, XXXXXXX, XXXXXXX, | ||||||
|  |         XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,    XXXXXXX, XXXXXXX, XXXXXXX,    XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||||||
|  |         XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,    XXXXXXX, XXXXXXX, XXXXXXX,    XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||||||
|  |         XXXXXXX, XXXXXXX, XXXXXXX, DEBUG,   XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,                                  XXXXXXX, XXXXXXX, XXXXXXX, | ||||||
|  |         XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,          XXXXXXX,             XXXXXXX,             XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||||||
|  |         XXXXXXX, XXXXXXX, XXXXXXX,                            XXXXXXX,                            XXXXXXX, _______, _______, XXXXXXX,    XXXXXXX, XXXXXXX, XXXXXXX,    XXXXXXX,          XXXXXXX | ||||||
|  |     ), | ||||||
|  | 
 | ||||||
|  |   /* Keymap _MBL: Mac Base Layer (Alternate Layout)
 | ||||||
|  |    * ┌───┐   ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ | ||||||
|  |    * │Esc│   │M1 │M3 │M2 │M4 │ │M1 │M3 │M2 │M4 │ │M1 │M3 │M2 │M4 │ │F13│F14│F15│ | ||||||
|  |    * └───┘   └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ | ||||||
|  |    * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ | ||||||
|  |    * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Ins│Hom│PgU│ │Num│ / │ * │ - │ | ||||||
|  |    * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤ | ||||||
|  |    * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │  \  │ │Del│End│PgD│ │ 7 │ 8 │ 9 │   │ | ||||||
|  |    * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬┈┈┈┈┤ └───┴───┴───┘ ├───┼───┼───┤ + │ | ||||||
|  |    * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │Entr│               │ 4 │ 5 │ 6 │   │ | ||||||
|  |    * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤     ┌───┐     ├───┼───┼───┼───┤ | ||||||
|  |    * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │    Shift │     │ ↑ │     │ 1 │ 2 │ 3 │   │ | ||||||
|  |    * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤Ent│ | ||||||
|  |    * │Ctrl│Alt │GUI │                        │ GUI│ Alt│Func│Ctrl│ │ ← │ ↓ │ → │ │   0   │ . │   │ | ||||||
|  |    * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘ | ||||||
|  |    */ | ||||||
|  |     [_MBL] = LAYOUT_all( /* Mac Base Layer */ | ||||||
|  |         KC_ESC,           KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN4, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN4, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN4,    KC_F13,  KC_F14,  KC_F15, | ||||||
|  |         KC_GRV,  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_BSPC,    KC_INS,  KC_HOME, KC_PGUP,    KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, | ||||||
|  |         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_BSLS,    KC_DEL,  KC_END,  KC_PGDN,    KC_P7,   KC_P8,   KC_P9,   KC_PPLS, | ||||||
|  |         KC_CAPS, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,                                   KC_P4,   KC_P5,   KC_P6, | ||||||
|  |         KC_LSFT, KC_NUBS, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH,          KC_RSFT,             KC_UP,               KC_P1,   KC_P2,   KC_P3,   KC_PENT, | ||||||
|  |         KC_LCTL, KC_LALT, KC_LGUI,                            KC_SPC,                             KC_RGUI, KC_RALT, KC_MFN,  KC_RCTL,    KC_LEFT, KC_DOWN, KC_RGHT,    KC_P0,            KC_PDOT | ||||||
|  |     ), | ||||||
|  |   /* Keymap _MFL: Mac Function Layer
 | ||||||
|  |    * ┌───┐   ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ | ||||||
|  |    * │   │   │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │TMd│   │Mut│ | ||||||
|  |    * └───┘   └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ | ||||||
|  |    * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ | ||||||
|  |    * │   │   │   │   │   │   │   │   │   │   │   │   │   │       │ │   │   │Vo+│ │   │   │   │   │ | ||||||
|  |    * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤ | ||||||
|  |    * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │ │   │   │Vo-│ │   │   │   │   │ | ||||||
|  |    * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬┈┈┈┈┤ └───┴───┴───┘ ├───┼───┼───┤   │ | ||||||
|  |    * │      │   │   │   │   │   │   │   │   │   │   │   │   │    │               │   │   │   │   │ | ||||||
|  |    * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤     ┌───┐     ├───┼───┼───┼───┤ | ||||||
|  |    * │    │   │   │   │   │   │   │   │   │   │   │   │          │     │   │     │   │   │   │   │ | ||||||
|  |    * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤   │ | ||||||
|  |    * │    │    │    │                        │    │ Sys│Func│    │ │   │   │   │ │       │   │   │ | ||||||
|  |    * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘ | ||||||
|  |    */ | ||||||
|  |   [_MFL] = LAYOUT_all( /* Mac Function Layer */ | ||||||
|  |         _______,          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_TMED, _______, KC_MUTE, | ||||||
|  |         _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, KC_VOLU,     _______, _______, _______, _______, | ||||||
|  |         _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, KC_VOLD,     _______, _______, _______, _______, | ||||||
|  |         _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,                                   _______, _______, _______, | ||||||
|  |         _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______,             _______,              _______, _______, _______, _______, | ||||||
|  |         _______, _______, _______,                            _______,                            _______, MO_MSL,  _______, _______,    _______, _______, _______,     _______,          _______ | ||||||
|  |     ), | ||||||
|  |   /* Keymap _MSL: Mac System Layer
 | ||||||
|  |    * ┌───┐   ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ | ||||||
|  |    * │Rst│   │   │   │   │Slp│ │   │   │   │   │ │   │   │   │WIN│ │   │   │   │ | ||||||
|  |    * └───┘   └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ | ||||||
|  |    * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ | ||||||
|  |    * │   │   │   │   │   │   │   │   │   │   │   │   │   │       │ │   │   │   │ │   │   │   │   │ | ||||||
|  |    * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤ | ||||||
|  |    * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │ │   │   │   │ │   │   │   │   │ | ||||||
|  |    * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬┈┈┈┈┤ └───┴───┴───┘ ├───┼───┼───┤   │ | ||||||
|  |    * │      │   │   │DBG│   │   │   │   │   │   │   │   │   │    │               │   │   │   │   │ | ||||||
|  |    * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤     ┌───┐     ├───┼───┼───┼───┤ | ||||||
|  |    * │    │   │   │   │   │   │   │   │   │   │   │   │          │     │   │     │   │   │   │   │ | ||||||
|  |    * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤   │ | ||||||
|  |    * │    │    │    │                        │    │ Sys│Func│    │ │   │   │   │ │       │   │   │ | ||||||
|  |    * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘ | ||||||
|  |    */ | ||||||
|  |     [_MSL] = LAYOUT_all( /* Mac Second / System Layer */ | ||||||
|  |         RESET,            XXXXXXX, XXXXXXX, XXXXXXX, KC_SLEP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DF_M2WBL,   XXXXXXX, XXXXXXX, XXXXXXX, | ||||||
|  |         XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,    XXXXXXX, XXXXXXX, XXXXXXX,    XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||||||
|  |         XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,    XXXXXXX, XXXXXXX, XXXXXXX,    XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||||||
|  |         XXXXXXX, XXXXXXX, XXXXXXX, DEBUG,   XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,                                  XXXXXXX, XXXXXXX, XXXXXXX, | ||||||
|  |         XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,          XXXXXXX,             XXXXXXX,             XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||||||
|  |         XXXXXXX, XXXXXXX, XXXXXXX,                            XXXXXXX,                            XXXXXXX, _______, _______, XXXXXXX,    XXXXXXX, XXXXXXX, XXXXXXX,    XXXXXXX,          XXXXXXX | ||||||
|  |     ) | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | void unlock_win_key(void) { | ||||||
|  |     win_key_locked = false; | ||||||
|  |     mac_media_locked = false; | ||||||
|  |     writePinHigh(LED_WIN_LOCK_PIN); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void toggle_lock_win_key(void) { | ||||||
|  |     win_key_locked = !win_key_locked; | ||||||
|  |     writePin(LED_WIN_LOCK_PIN, !win_key_locked); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void toggle_lock_media_key(void) { | ||||||
|  |     mac_media_locked = !mac_media_locked; | ||||||
|  |     writePin(LED_WIN_LOCK_PIN, !mac_media_locked); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #ifdef CONSOLE_ENABLE | ||||||
|  | void dprint_global_layers(void) { | ||||||
|  |     dprint("Global Layers:"); | ||||||
|  |     if (IS_LAYER_ON(_WFL)) { dprint(" _WFL"); } | ||||||
|  |     if (IS_LAYER_ON(_WSL)) { dprint(" _WSL"); } | ||||||
|  |     if (IS_LAYER_ON(_MFL)) { dprint(" _MFL"); } | ||||||
|  |     if (IS_LAYER_ON(_MSL)) { dprint(" _MSL"); } | ||||||
|  |     dprintf("\n"); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void dprint_layers(layer_state_t state) { | ||||||
|  |     dprint("Layers:"); | ||||||
|  |     if (IS_LAYER_ON_STATE(state, _WFL)) { dprint(" _WFL"); } | ||||||
|  |     if (IS_LAYER_ON_STATE(state, _WSL)) { dprint(" _WSL"); } | ||||||
|  |     if (IS_LAYER_ON_STATE(state, _MFL)) { dprint(" _MFL"); } | ||||||
|  |     if (IS_LAYER_ON_STATE(state, _MSL)) { dprint(" _MSL"); } | ||||||
|  |     dprintf("\n"); | ||||||
|  | } | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
|  | layer_state_t default_layer_state_set_user(layer_state_t state) { | ||||||
|  | #ifdef CONSOLE_ENABLE | ||||||
|  |     dprintf("default_layer_state_set_user: 0x%x\n", state); | ||||||
|  |     dprint_global_layers(); | ||||||
|  | #endif | ||||||
|  |     // Disable windows key lock on default layer transition.
 | ||||||
|  |     unlock_win_key(); | ||||||
|  |     win_appkey_pressed = false; | ||||||
|  |     mac_fnkey_pressed = false; | ||||||
|  |     writePin(LED_MR_LOCK_PIN, !IS_LAYER_ON_STATE(state, ALT_LAYOUT)); | ||||||
|  |     return state; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | layer_state_t layer_state_set_user(layer_state_t state) { | ||||||
|  | #ifdef CONSOLE_ENABLE | ||||||
|  |     dprintf("layer_state_set_user: 0x%x\n", state); | ||||||
|  |     dprint_layers(state); | ||||||
|  | #endif | ||||||
|  |     return state; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||||||
|  |     switch (keycode) { | ||||||
|  |         case KC_TGUI: | ||||||
|  |             if (!record->event.pressed) { | ||||||
|  |                 // Toggle GUI lock on key release
 | ||||||
|  |                 toggle_lock_win_key(); | ||||||
|  |             } | ||||||
|  |             break; | ||||||
|  |         case KC_TMED: | ||||||
|  |             // Only trigger when Fn key is also held down, to avoid accidental unlock.
 | ||||||
|  |             if (!mac_fnkey_pressed) { return false; } | ||||||
|  |             if (!record->event.pressed) { | ||||||
|  |                 // Toggle Media Lock on key release
 | ||||||
|  |                 toggle_lock_media_key(); | ||||||
|  |             } | ||||||
|  |             break; | ||||||
|  |         case KC_LGUI: | ||||||
|  |             if (win_key_locked) { return false; } | ||||||
|  |             break; | ||||||
|  |         case KC_WFN: | ||||||
|  |             // Like MO(_WFL), but also enables _WSL if KC_APP is already pressed down.
 | ||||||
|  |             if (record->event.pressed) { | ||||||
|  |                 layer_on(_WFL); | ||||||
|  |                 if (win_appkey_pressed) { | ||||||
|  |                     // Also enable Secondary layer if App key is being held down.
 | ||||||
|  |                     win_appkey_pressed = false; | ||||||
|  |                     layer_on(_WSL); | ||||||
|  |                 } | ||||||
|  |             } else { | ||||||
|  |                 if (IS_LAYER_ON(_WFL)) { layer_off(_WFL); } | ||||||
|  |                 if (IS_LAYER_ON(_MSL)) { layer_off(_MSL); } | ||||||
|  |             } | ||||||
|  |             break; | ||||||
|  |         case KC_APP: | ||||||
|  |             if (record->event.pressed) { | ||||||
|  |                 // Don't actually press down the app menu key
 | ||||||
|  |                 win_appkey_pressed = true; | ||||||
|  |             } else { | ||||||
|  |                 if (IS_LAYER_ON(_WSL)) { layer_off(_WSL); } | ||||||
|  |                 if (IS_LAYER_ON(_MFL)) { layer_off(_MFL); } | ||||||
|  |                 if (win_appkey_pressed) { | ||||||
|  |                     win_appkey_pressed = false; | ||||||
|  |                     // Tap the KC_APP key on key release.
 | ||||||
|  |                     tap_code(KC_APP); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |             return false; | ||||||
|  |             break; | ||||||
|  |         case KC_MFN: | ||||||
|  |             // Mac Fn key.  Emit Fn keycode, and also transition layers similar to KC_WFN.
 | ||||||
|  |             if (record->event.pressed) { | ||||||
|  |                 mac_fnkey_pressed = true; | ||||||
|  |                 layer_on(_MFL); | ||||||
|  |                 // Also enable Secondary layer if Right-Alt key is being held down.
 | ||||||
|  |                 if (get_mods() & MOD_BIT(KC_RALT)) { | ||||||
|  |                     layer_on(_MSL); | ||||||
|  |                 } | ||||||
|  |             } else { | ||||||
|  |                 mac_fnkey_pressed = false; | ||||||
|  |                 if (!mac_media_locked) { | ||||||
|  |                     if (IS_LAYER_ON(_MFL)) { layer_off(_MFL); } | ||||||
|  |                     if (IS_LAYER_ON(_WSL)) { layer_off(_WSL); } | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |             break; | ||||||
|  |         case KC_RALT: | ||||||
|  |             // Disable MSL/WFL layer on key-up.
 | ||||||
|  |             if (!record->event.pressed) { | ||||||
|  |                 if (IS_LAYER_ON(_MSL)) { layer_off(_MSL); } | ||||||
|  |                 if (IS_LAYER_ON(_WFL)) { layer_off(_WFL); } | ||||||
|  |             } | ||||||
|  |             break; | ||||||
|  |         case MO_WSL: | ||||||
|  |             if (record->event.pressed) { | ||||||
|  |                 layer_on(_WSL); | ||||||
|  |             } else { | ||||||
|  |                 if (IS_LAYER_ON(_WSL)) { layer_off(_WSL); } | ||||||
|  |                 if (IS_LAYER_ON(_MFL)) { layer_off(_MFL); } | ||||||
|  |             } | ||||||
|  |             break; | ||||||
|  |         case MO_MSL: | ||||||
|  |             if (record->event.pressed) { | ||||||
|  |                 layer_on(_MSL); | ||||||
|  |             } else { | ||||||
|  |                 if (IS_LAYER_ON(_MSL)) { layer_off(_MSL); } | ||||||
|  |                 if (IS_LAYER_ON(_WFL)) { layer_off(_WFL); } | ||||||
|  |             } | ||||||
|  |             break; | ||||||
|  |         case DF_W2MBL: | ||||||
|  |             if (!record->event.pressed) { | ||||||
|  |                 // Switch base layer, but preserve first/secondary layers.
 | ||||||
|  |                 default_layer_set(1UL<<_MBL); | ||||||
|  |                 layer_state_set(1UL<<_MFL | 1UL<<_MSL); | ||||||
|  |             } | ||||||
|  |             break; | ||||||
|  |         case DF_M2WBL: | ||||||
|  |             if (!record->event.pressed) { | ||||||
|  |                 // Switch base layer, but preserve first/secondary layers.
 | ||||||
|  |                 default_layer_set(1UL<<_WBL); | ||||||
|  |                 layer_state_set(1UL<<_WFL | 1UL<<_WSL); | ||||||
|  |             } | ||||||
|  |             break; | ||||||
|  |         case RESET: | ||||||
|  |             if (record->event.pressed) { | ||||||
|  |                 // Flash LEDs to indicate bootloader mode is enabled.
 | ||||||
|  |                 on_all_leds(); | ||||||
|  |             } | ||||||
|  |             break; | ||||||
|  |     } | ||||||
|  |     return true; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void keyboard_post_init_user(void) { | ||||||
|  |     default_layer_set(1UL<<DEFAULT_LAYOUT); | ||||||
|  | } | ||||||
							
								
								
									
										65
									
								
								keyboards/durgod/k3x0/keymaps/typhon/readme.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								keyboards/durgod/k3x0/keymaps/typhon/readme.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,65 @@ | |||||||
|  | # A keymap for Durgod Taurus K310/K320 that supports toggling between Mac and Windows | ||||||
|  | 
 | ||||||
|  | Supports both ANSI and ISO layouts. | ||||||
|  | 
 | ||||||
|  | Layer 0 : Standard layout (Windows) | ||||||
|  | 
 | ||||||
|  | Layer 1 : Media control and Windows lock key (Windows) | ||||||
|  | - Reusing Durgod's Original Media Control for Fn + F1 ~ Fn + F7 | ||||||
|  | - Fn + Windows to toggle Windows lock key functionality | ||||||
|  | 
 | ||||||
|  | Layer 2 : System layer (Windows) | ||||||
|  | - Fn + Menu + Esc : Bootloader mode | ||||||
|  | - Fn + Menu + F1  : System Sleep | ||||||
|  | - Fn + Menu + F4  : Turning Off System | ||||||
|  | - Fn + Menu + F12 : Switch to Mac layout | ||||||
|  | 
 | ||||||
|  | Layer 3 : Mac layout | ||||||
|  | 
 | ||||||
|  | Layer 4 : Media control and Media lock key (Mac) | ||||||
|  |  - Standard Mac Media keys for Fn + F1 ~ Fn + F12. | ||||||
|  |  - Fn + F13 to toggle Media lock key functionality | ||||||
|  | 
 | ||||||
|  | Layer 5 : System layer (Mac) | ||||||
|  | - Fn + R-ALT + Esc : Bootloader mode | ||||||
|  | - Fn + R-ALT + F4  : Shutdown/Sleep (Hold down on Mac) | ||||||
|  | - Fn + R-ALT + F12 : Switch to Windows layout | ||||||
|  | 
 | ||||||
|  | ## Toggle between Mac and Windows layout | ||||||
|  | 
 | ||||||
|  | You can switch between Mac and Windows layout by doing the following: | ||||||
|  | - Hold down Fn + Menu (Windows Layout) or Fn + Right-Alt (Mac layout)  (These are the same physical keys) | ||||||
|  | - Press F12 | ||||||
|  | 
 | ||||||
|  | The 'M' led will be lit when you are using the alternate layout.  By default Mac is the alternate layout. | ||||||
|  | 
 | ||||||
|  | You can change the default & alternate layout by setting the following flags to either '_WBL'(Windows) or '_MBL' (Mac) | ||||||
|  | - DEFAULT_LAYOUT (initial layout to use on boot) | ||||||
|  | - ALT_LAYOUT (layout that will light the 'M' LED when active) | ||||||
|  | 
 | ||||||
|  | For example, to configure Mac as the default layer, and Windows to be the alternate layout, compile with these flags: | ||||||
|  | 
 | ||||||
|  |     make EXTRAFLAGS="-DDEFAULT_LAYOUT=_MBL -DALT_LAYOUT=_WBL" durgod/k3x0/k310:typhon | ||||||
|  | 
 | ||||||
|  | ## Windows key lock | ||||||
|  | 
 | ||||||
|  | In windows layout, you can hold down Fn + Windows key to disable the Windows key while in locked mode.  The 'Lock' LED | ||||||
|  | indicates if the Windows key is locked. | ||||||
|  | 
 | ||||||
|  | This is similar to the stock K310/K320 Windows key lock functionality. | ||||||
|  | 
 | ||||||
|  | ## Mac Media Lock | ||||||
|  | 
 | ||||||
|  | To switch between Function row and Media row in Mac layout, press Fn + PrtSc.  The 'Lock' LED indicator will be lit when in Media row mode. | ||||||
|  | 
 | ||||||
|  | ### Subsequent Flashing | ||||||
|  | 
 | ||||||
|  | For repeating Flashing you have two options with this keymap: | ||||||
|  | 1. Use BootMagic | ||||||
|  | - BootMagic Lite has been enabled with Assigned "Esc" key  | ||||||
|  | - Unplug USB Cable | ||||||
|  | - Holding Esc Button  | ||||||
|  | - Plug in USB Cable, Keyboard should be in ST-Bootloader state | ||||||
|  | 2. Use key combination if using default keymap | ||||||
|  | - Hold down Fn + Menu (Windows Layout) or Fn + Right-Alt (Mac layout)  (These are the same physical keys) | ||||||
|  | - Press Esc.  Keyboard should go into booloader state. | ||||||
							
								
								
									
										2
									
								
								keyboards/durgod/k3x0/keymaps/typhon/rules.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								keyboards/durgod/k3x0/keymaps/typhon/rules.mk
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,2 @@ | |||||||
|  | OPT_DEFS += -DWINLOCK_DISABLED | ||||||
|  | MOUSEKEY_ENABLE = yes | ||||||
							
								
								
									
										92
									
								
								keyboards/durgod/k3x0/keymaps/via/keymap.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										92
									
								
								keyboards/durgod/k3x0/keymaps/via/keymap.c
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,92 @@ | |||||||
|  | /* Copyright 2021 Maxime Coirault, Don Kjer, Tyler Tidman
 | ||||||
|  |  * | ||||||
|  |  * This program is free software: you can redistribute it and/or modify | ||||||
|  |  * it under the terms of the GNU General Public License as published by | ||||||
|  |  * the Free Software Foundation, either version 2 of the License, or | ||||||
|  |  * (at your option) any later version. | ||||||
|  |  * | ||||||
|  |  * This program is distributed in the hope that it will be useful, | ||||||
|  |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
|  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||||
|  |  * GNU General Public License for more details. | ||||||
|  |  * | ||||||
|  |  * You should have received a copy of the GNU General Public License | ||||||
|  |  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | #include QMK_KEYBOARD_H | ||||||
|  | 
 | ||||||
|  | // Layer shorthand
 | ||||||
|  | enum _layer { | ||||||
|  |     _BASE, | ||||||
|  |     _FN, | ||||||
|  |     _LAYER3, | ||||||
|  |     _LAYER4 | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||||||
|  |   /* Keymap _BASE: Base Layer (Default Layer)
 | ||||||
|  |    * ┌───┐   ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ | ||||||
|  |    * │Esc│   │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │PSc│Slk│Pse│ | ||||||
|  |    * └───┘   └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ | ||||||
|  |    * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ | ||||||
|  |    * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Ins│Hom│PgU│ │Num│ / │ * │ - │ | ||||||
|  |    * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤ | ||||||
|  |    * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │  \  │ │Del│End│PgD│ │ 7 │ 8 │ 9 │   │ | ||||||
|  |    * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬┈┈┈┈┤ └───┴───┴───┘ ├───┼───┼───┤ + │ | ||||||
|  |    * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │Entr│               │ 4 │ 5 │ 6 │   │ | ||||||
|  |    * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤     ┌───┐     ├───┼───┼───┼───┤ | ||||||
|  |    * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │    Shift │     │ ↑ │     │ 1 │ 2 │ 3 │   │ | ||||||
|  |    * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤Ent│ | ||||||
|  |    * │Ctrl│GUI │Alt │                        │ Alt│Func│ App│Ctrl│ │ ← │ ↓ │ → │ │   0   │ . │   │ | ||||||
|  |    * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘ | ||||||
|  |    */ | ||||||
|  |   [_BASE] = LAYOUT_all( /* Base Layer */ | ||||||
|  |       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_SLCK, KC_PAUS, | ||||||
|  |       KC_GRV,  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_BSPC,    KC_INS,  KC_HOME, KC_PGUP,    KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, | ||||||
|  |       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_BSLS,    KC_DEL,  KC_END,  KC_PGDN,    KC_P7,   KC_P8,   KC_P9,   KC_PPLS, | ||||||
|  |       KC_CAPS, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,                                   KC_P4,   KC_P5,   KC_P6, | ||||||
|  |       KC_LSFT, KC_NUBS, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH,          KC_RSFT,             KC_UP,               KC_P1,   KC_P2,   KC_P3,   KC_PENT, | ||||||
|  |       KC_LCTL, KC_LGUI, KC_LALT,                            KC_SPC,                             KC_RALT, MO(_FN), KC_APP,  KC_RCTL,    KC_LEFT, KC_DOWN, KC_RGHT,    KC_P0,            KC_PDOT | ||||||
|  |   ), | ||||||
|  |   /* Keymap _FN: Function Layer
 | ||||||
|  |    * ┌───┐   ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ | ||||||
|  |    * │   │   │Ply│Stp│Prv│Nxt│ │Mut│Vo+│Vo-│   │ │   │   │   │   │ │   │   │   │ | ||||||
|  |    * └───┘   └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ | ||||||
|  |    * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ | ||||||
|  |    * │   │   │   │   │   │   │   │   │   │   │   │   │   │       │ │   │   │   │ │   │   │   │   │ | ||||||
|  |    * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤ | ||||||
|  |    * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │ │   │   │   │ │   │   │   │   │ | ||||||
|  |    * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬┈┈┈┈┤ └───┴───┴───┘ ├───┼───┼───┤   │ | ||||||
|  |    * │      │   │   │   │   │   │   │   │   │   │   │   │   │    │               │   │   │   │   │ | ||||||
|  |    * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤     ┌───┐     ├───┼───┼───┼───┤ | ||||||
|  |    * │    │   │   │   │   │   │   │   │   │   │   │   │          │     │   │     │   │   │   │   │ | ||||||
|  |    * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤   │ | ||||||
|  |    * │    │Lock│    │                        │    │Func│ Sys│    │ │   │   │   │ │       │   │   │ | ||||||
|  |    * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘ | ||||||
|  |    */ | ||||||
|  |   [_FN] = LAYOUT_all( /* Function Layer */ | ||||||
|  |       _______,          KC_MPLY, KC_MSTP, KC_MPRV, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______,    _______, _______, _______, | ||||||
|  |       _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, _______,    _______, _______, _______, _______, | ||||||
|  |       _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, _______,    _______, _______, _______, _______, | ||||||
|  |       _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,                                  _______, _______, _______, | ||||||
|  |       _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______,             _______,             _______, _______, _______, _______, | ||||||
|  |       _______, KC_TGUI, _______,                            _______,                            _______, _______, _______, _______,    _______, _______, _______,    _______,          _______ | ||||||
|  |   ), | ||||||
|  |   [_LAYER3] = LAYOUT_all( /* Layer 3 */ | ||||||
|  |       _______,          _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, _______, | ||||||
|  |       _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, _______,    _______, _______, _______, _______, | ||||||
|  |       _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, _______,    _______, _______, _______, _______, | ||||||
|  |       _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,                                  _______, _______, _______, | ||||||
|  |       _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______,             _______,             _______, _______, _______, _______, | ||||||
|  |       _______, _______, _______,                            _______,                            _______, _______, _______, _______,    _______, _______, _______,    _______,          _______ | ||||||
|  |   ), | ||||||
|  |   [_LAYER4] = LAYOUT_all( /* Layer 4 */ | ||||||
|  |       _______,          _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, _______, | ||||||
|  |       _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, _______,    _______, _______, _______, _______, | ||||||
|  |       _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, _______,    _______, _______, _______, _______, | ||||||
|  |       _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,                                  _______, _______, _______, | ||||||
|  |       _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______,             _______,             _______, _______, _______, _______, | ||||||
|  |       _______, _______, _______,                            _______,                            _______, _______, _______, _______,    _______, _______, _______,    _______,          _______ | ||||||
|  |   ) | ||||||
|  | }; | ||||||
							
								
								
									
										6
									
								
								keyboards/durgod/k3x0/keymaps/via/readme.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								keyboards/durgod/k3x0/keymaps/via/readme.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,6 @@ | |||||||
|  | # The via keymap for Durgod Taurus K310/K320. | ||||||
|  | 
 | ||||||
|  | Layer 0 : Standard layout | ||||||
|  | 
 | ||||||
|  | Layer 1 : Media control | ||||||
|  | - Reusing Durgod's Original Media Control for Fn + F1 ~ Fn + F7 | ||||||
							
								
								
									
										1
									
								
								keyboards/durgod/k3x0/keymaps/via/rules.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								keyboards/durgod/k3x0/keymaps/via/rules.mk
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | |||||||
|  | VIA_ENABLE = yes | ||||||
							
								
								
									
										51
									
								
								keyboards/durgod/k3x0/readme.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								keyboards/durgod/k3x0/readme.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,51 @@ | |||||||
|  | # K3X0 = K310, K320, etc. | ||||||
|  | 
 | ||||||
|  | This K3X0 code is shared between both the ANSI and ISO variants of both the | ||||||
|  | K310 full-sized 104/105-key and K320 TKL 87/88-key keyboards. | ||||||
|  | 
 | ||||||
|  | * Keyboard Maintainers: [dkjer](https://github.com/dkjer) and [tylert](https://github.com/tylert) | ||||||
|  | * Hardware Supported: Durgod Taurus K310 or K320 board with STM32F070RBT6 | ||||||
|  | * Hardware Availability: K310 https://www.durgod.com/page9?product_id=53&_l=en | ||||||
|  |                          and K320 https://www.durgod.com/page9?product_id=47&_l=en | ||||||
|  | 
 | ||||||
|  | ## Instructions | ||||||
|  | 
 | ||||||
|  | ### Build | ||||||
|  | 
 | ||||||
|  | Instructions for building the K310 and K320 firmware can be found here: | ||||||
|  | * [K310](k310/readme.md) | ||||||
|  | * [K320](k320/readme.md) | ||||||
|  | 
 | ||||||
|  | ### Initial Flash | ||||||
|  | 
 | ||||||
|  | For first Flashing from initial Stock Firmware | ||||||
|  | 
 | ||||||
|  | 1. Back up original Firmware Image: | ||||||
|  | - Unplug | ||||||
|  | - Short Boot0 to Vdd (See below) | ||||||
|  | - Plug In USB | ||||||
|  | - Make a Flash Image's Backup in case you wanted to restore the Keyboard to Stock's Image: | ||||||
|  |   - Using dfu-util: | ||||||
|  | 
 | ||||||
|  |         dfu-util --list | ||||||
|  |         dfu-util --alt 0 --dfuse-address 0x08000000 --upload ${OLD_STOCK_BIN} | ||||||
|  | 
 | ||||||
|  | 2. Flash the QMK Firmware Image. | ||||||
|  | - Put board into Bootloader mode, using the same method as when backing up the original Firmware (above) | ||||||
|  | - Here are a few options for performing the initial Flash: | ||||||
|  |   - Using [QMK Toolbox](https://github.com/qmk/qmk_toolbox) | ||||||
|  |   - Using dfu-util: | ||||||
|  | 
 | ||||||
|  |         dfu-util --alt 0 --dfuse-address 0x08000000 --download ${NEW_QMK_BIN} | ||||||
|  | 
 | ||||||
|  | You can short Boot0 to Vdd by shorting R21 to C27 on the sides closest to the processor, as shown: | ||||||
|  | 
 | ||||||
|  | <img src="https://i.imgur.com/hvDnw5a.jpg" width="520" height="693" alt="Shorting Boot0 to Vdd on K320"> | ||||||
|  | 
 | ||||||
|  | ### Subsequent Flashing | ||||||
|  | 
 | ||||||
|  | For repeating Flashing you can use BootMagic: | ||||||
|  | - BootMagic Lite has been enabled with Assigned "Esc" key  | ||||||
|  | - Unplug USB Cable | ||||||
|  | - Holding Esc Button  | ||||||
|  | - Plug in USB Cable, Keyboard should be in ST-Bootloader state | ||||||
							
								
								
									
										28
									
								
								keyboards/durgod/k3x0/rules.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								keyboards/durgod/k3x0/rules.mk
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,28 @@ | |||||||
|  | # Default to K310 variant, since it will also work on a K320
 | ||||||
|  | DEFAULT_FOLDER=durgod/k3x0/k310 | ||||||
|  | 
 | ||||||
|  | # MCU name
 | ||||||
|  | # Actually F070, but close enough
 | ||||||
|  | MCU = STM32F072 | ||||||
|  | BOARD = DURGOD_STM32_F070 | ||||||
|  | 
 | ||||||
|  | # Bootloader selection
 | ||||||
|  | BOOTLOADER = stm32-dfu | ||||||
|  | 
 | ||||||
|  | # Build Options
 | ||||||
|  | #   change yes to no to disable
 | ||||||
|  | #
 | ||||||
|  | BOOTMAGIC_ENABLE = lite     # Virtual DIP switch configuration | ||||||
|  | MOUSEKEY_ENABLE = no        # Mouse keys | ||||||
|  | EXTRAKEY_ENABLE = yes       # Audio control and System control | ||||||
|  | CONSOLE_ENABLE = no         # Console for debug | ||||||
|  | COMMAND_ENABLE = no         # Commands for debug and configuration | ||||||
|  | # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
 | ||||||
|  | SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend | ||||||
|  | # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
 | ||||||
|  | NKRO_ENABLE = yes           # USB Nkey Rollover | ||||||
|  | BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality | ||||||
|  | RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow | ||||||
|  | BLUETOOTH_ENABLE = no       # Enable Bluetooth | ||||||
|  | AUDIO_ENABLE = no           # Audio output | ||||||
|  | LTO_ENABLE = yes | ||||||
| @ -92,6 +92,7 @@ enum layers { | |||||||
| #define MLT_E     LT(_NUM, KC_E) | #define MLT_E     LT(_NUM, KC_E) | ||||||
| 
 | 
 | ||||||
| #ifndef SWAP_HANDS_ENABLE | #ifndef SWAP_HANDS_ENABLE | ||||||
|  | #undef SH_T | ||||||
| #define SH_T | #define SH_T | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Donald Kjer
						Donald Kjer