aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Young <18669334+noroadsleft@users.noreply.github.com>2019-11-05 22:12:21 -0800
committerDrashna Jaelre <drashna@live.com>2019-11-05 22:12:21 -0800
commit95309e9af5c58cd0f468ac1fadfcef3ff52aaa6a (patch)
treef7a7fa30a8a15b7aa9ac8b270abf0e00e09057d2
parentdfb78d2a086daa2ceb3fd043afce03785abfa23a (diff)
downloadqmk_firmware-95309e9af5c58cd0f468ac1fadfcef3ff52aaa6a.tar.gz
qmk_firmware-95309e9af5c58cd0f468ac1fadfcef3ff52aaa6a.zip
[Keymap] Updates to noroadsleft keymap for KC60 (2019-11-05) (#7265)
* Rename layers_keymap to layer_names * Update Escape and Left Control keys - change KC_GESC to KC_ESC - change KC_LCTL to MT(MOD_LCTL, KC_GRV) * Disable features I don't use Makes the firmware lean. Why? Because I can. :D * Update the readme files * Add KC_F13 through KC_F24 emulation ... and update the readme files accordingly. * Update rules/config - Swap EXTRAFLAGS for LINK_TIME_OPTIMIZATION_ENABLE - remove NO_ACTION_MACRO and NO_ACTION_FUNCTION - Re-enable COMMAND * concatenate full-length and short layer names * enable dynamic macros * update readme files
-rw-r--r--keyboards/kc60/keymaps/noroadsleft/config.h9
-rw-r--r--keyboards/kc60/keymaps/noroadsleft/keymap.c70
-rw-r--r--keyboards/kc60/keymaps/noroadsleft/readme.md14
-rw-r--r--keyboards/kc60/keymaps/noroadsleft/readme_ch1.md31
-rw-r--r--keyboards/kc60/keymaps/noroadsleft/readme_ch2.md2
-rw-r--r--keyboards/kc60/keymaps/noroadsleft/readme_ch3.md10
-rw-r--r--keyboards/kc60/keymaps/noroadsleft/readme_ch4.md8
-rw-r--r--keyboards/kc60/keymaps/noroadsleft/readme_ch5.md39
-rw-r--r--keyboards/kc60/keymaps/noroadsleft/readme_git.md11
-rw-r--r--keyboards/kc60/keymaps/noroadsleft/rules.mk8
10 files changed, 112 insertions, 90 deletions
diff --git a/keyboards/kc60/keymaps/noroadsleft/config.h b/keyboards/kc60/keymaps/noroadsleft/config.h
index e216d050b..4490a3bb7 100644
--- a/keyboards/kc60/keymaps/noroadsleft/config.h
+++ b/keyboards/kc60/keymaps/noroadsleft/config.h
@@ -6,3 +6,12 @@
6#define BACKLIGHT_BREATHING 6#define BACKLIGHT_BREATHING
7#define BACKLIGHT_LEVELS 5 7#define BACKLIGHT_LEVELS 5
8#define BREATHING_PERIOD 4 8#define BREATHING_PERIOD 4
9
10#ifdef LOCKING_SUPPORT_ENABLE
11# undef LOCKING_SUPPORT_ENABLE
12#endif
13#ifdef LOCKING_RESYNC_ENABLE
14# undef LOCKING_RESYNC_ENABLE
15#endif
16
17#define NO_ACTION_ONESHOT
diff --git a/keyboards/kc60/keymaps/noroadsleft/keymap.c b/keyboards/kc60/keymaps/noroadsleft/keymap.c
index 98d735356..84aeb482d 100644
--- a/keyboards/kc60/keymaps/noroadsleft/keymap.c
+++ b/keyboards/kc60/keymaps/noroadsleft/keymap.c
@@ -8,42 +8,39 @@
8/********************** 8/**********************
9** LAYER DEFINITIONS ** 9** LAYER DEFINITIONS **
10**********************/ 10**********************/
11enum layers_keymap { 11enum layer_names {
12 // BASE LAYERS 12 // BASE LAYERS
13 // SHORT CODES
13 _QWERTY = 0, 14 _QWERTY = 0,
15 _QW = _QWERTY,
14 _DVORAK, 16 _DVORAK,
17 _DV = _DVORAK,
15 _COLEMAK, 18 _COLEMAK,
19 _CM = _COLEMAK,
16 _MAC, 20 _MAC,
21 _MC = _MAC,
17 _QUAKE2, 22 _QUAKE2,
23 _Q2 = _QUAKE2,
18 _QUAKE2_DVORAK, 24 _QUAKE2_DVORAK,
25 _QD = _QUAKE2_DVORAK,
19 _QUAKE2_CONSOLE, 26 _QUAKE2_CONSOLE,
20 27 _QC = _QUAKE2_CONSOLE,
21 // FUNCTION LAYERS 28 // FUNCTION LAYERS
22 _FUNCWIN, 29 _FUNCWIN,
30 _FW = _FUNCWIN,
23 _FUNCMAC, 31 _FUNCMAC,
32 _FM = _FUNCMAC,
24 _FUNCQ2, 33 _FUNCQ2,
25 34 _FQ = _FUNCQ2,
26 // OTHER LAYERS 35 // OTHER LAYERS
27 _NUMPAD, 36 _NUMPAD,
37 _NP = _NUMPAD,
28 _MACROS, 38 _MACROS,
29 _SYSTEM 39 _MA = _MACROS,
40 _SYSTEM,
41 _SY = _SYSTEM,
30}; 42};
31 43
32// LAYER SHORT CODES
33#define _QW _QWERTY
34#define _DV _DVORAK
35#define _CM _COLEMAK
36#define _MC _MAC
37#define _Q2 _QUAKE2
38#define _QD _QUAKE2_DVORAK
39#define _QC _QUAKE2_CONSOLE
40#define _FW _FUNCWIN
41#define _FM _FUNCMAC
42#define _FQ _FUNCQ2
43#define _NP _NUMPAD
44#define _MA _MACROS
45#define _SY _SYSTEM
46
47 44
48// KEYCODE DEFINITIONS 45// KEYCODE DEFINITIONS
49#define NO_CHNG KC_TRNS // Note for me for keys I need to leave as Pass-through 46#define NO_CHNG KC_TRNS // Note for me for keys I need to leave as Pass-through
@@ -58,6 +55,8 @@ enum layers_keymap {
58#define WN_COPY LCTL(DV_C) // Windows/Linux Copy 55#define WN_COPY LCTL(DV_C) // Windows/Linux Copy
59#define WN_PSTE LCTL(DV_V) // Windows/Linux Paste 56#define WN_PSTE LCTL(DV_V) // Windows/Linux Paste
60 57
58#define CTL_GRV MT(MOD_LCTL, KC_GRV) // Left Control when held, Grave accent when tapped
59
61#define MC_PSCR LGUI(LSFT(KC_3)) // MacOS Print Screen (Command + Shift + 3) 60#define MC_PSCR LGUI(LSFT(KC_3)) // MacOS Print Screen (Command + Shift + 3)
62#define MC_HOME LGUI(KC_LEFT) // MacOS Home (Command + Left Arrow) 61#define MC_HOME LGUI(KC_LEFT) // MacOS Home (Command + Left Arrow)
63#define MC_END LGUI(KC_RGHT) // MacOS End (Command + Right Arrow) 62#define MC_END LGUI(KC_RGHT) // MacOS End (Command + Right Arrow)
@@ -252,6 +251,21 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
252 } 251 }
253 } 252 }
254 return false; 253 return false;
254 case KC_F1 ... KC_F12:
255 if (record->event.pressed) {
256 if ( get_mods() & MOD_MASK_RALT ) {
257 register_code( keycode + 0x2E );
258 } else {
259 register_code( keycode );
260 }
261 } else {
262 if ( get_mods() & MOD_MASK_RALT ) {
263 unregister_code( keycode + 0x2E );
264 } else {
265 unregister_code( keycode );
266 }
267 }
268 return false;
255 } // switch() 269 } // switch()
256 return true; 270 return true;
257}; 271};
@@ -267,31 +281,31 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
267 /* QWERTY */ 281 /* QWERTY */
268 [_QWERTY] = LAYOUT_60_ansi( 282 [_QWERTY] = LAYOUT_60_ansi(
269 // 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 283 // 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
270 KC_GESC, 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, \ 284 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \
271 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, \ 285 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, \
272 FW_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ 286 FW_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
273 KC_LSFT, NUBS_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \ 287 KC_LSFT, NUBS_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \
274 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FW), KC_RCTL \ 288 CTL_GRV, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_MA), MO(_FW), KC_RCTL \
275 ), 289 ),
276 290
277 /* Dvorak */ 291 /* Dvorak */
278 [_DVORAK] = LAYOUT_60_ansi( 292 [_DVORAK] = LAYOUT_60_ansi(
279 // 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 293 // 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
280 KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, \ 294 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, \
281 KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSLS, \ 295 KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSLS, \
282 FW_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_ENT, \ 296 FW_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_ENT, \
283 KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, \ 297 KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, \
284 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FW), KC_RCTL \ 298 CTL_GRV, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_MA), MO(_FW), KC_RCTL \
285 ), 299 ),
286 300
287 /* Colemak */ 301 /* Colemak */
288 [_COLEMAK] = LAYOUT_60_ansi( 302 [_COLEMAK] = LAYOUT_60_ansi(
289 // 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 303 // 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
290 KC_GESC, 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, \ 304 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \
291 KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, \ 305 KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, \
292 FW_CAPS, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, \ 306 FW_CAPS, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, \
293 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \ 307 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \
294 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FW), KC_RCTL \ 308 CTL_GRV, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_MA), MO(_FW), KC_RCTL \
295 ), 309 ),
296 310
297 /**************** 311 /****************
@@ -391,9 +405,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
391 /* Macro layer */ 405 /* Macro layer */
392 [_MACROS] = LAYOUT_60_ansi( 406 [_MACROS] = LAYOUT_60_ansi(
393 // 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 407 // 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
394 TG(_MA), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 408 TG(_MA), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, DM_REC1, DM_REC2, _______, \
395 _______, _______, _______, G_PUSH, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 409 _______, _______, _______, G_PUSH, _______, _______, _______, _______, _______, _______, _______, DM_PLY1, DM_PLY2, DM_RSTP, \
396 _______, _______, _______, G_FTCH, G_COMM, _______, _______, _______, _______, T_L3DED, _______, _______, _______, \ 410 _______, _______, _______, G_FTCH, G_COMM, _______, _______, _______, _______, _______, _______, _______, _______, \
397 _______, _______, _______, _______, _______, G_BRCH, SIGNA, _______, _______, _______, _______, _______, \ 411 _______, _______, _______, _______, _______, G_BRCH, SIGNA, _______, _______, _______, _______, _______, \
398 _______, _______, _______, _______, _______, _______, NO_CHNG, _______ \ 412 _______, _______, _______, _______, _______, _______, NO_CHNG, _______ \
399 ), 413 ),
diff --git a/keyboards/kc60/keymaps/noroadsleft/readme.md b/keyboards/kc60/keymaps/noroadsleft/readme.md
index c9db4f8de..6a7ad6f65 100644
--- a/keyboards/kc60/keymaps/noroadsleft/readme.md
+++ b/keyboards/kc60/keymaps/noroadsleft/readme.md
@@ -1,6 +1,6 @@
1# @noroadsleft's KC60 keymap 1# @noroadsleft's KC60 keymap
2 2
3### Last updated: April 7, 2019, 2:26 AM UTC-0700 3### Last updated: November 5, 2019, 12:07 AM UTC-0800
4 4
5![](https://i.imgur.com/tzhXQYI.jpg) 5![](https://i.imgur.com/tzhXQYI.jpg)
6 6
@@ -9,6 +9,18 @@ I am a full-time Dvorak typist, and occasional semi-serious FPS gamer. The layer
9 9
10---- 10----
11 11
12# Preface
13
14Images in this readme follow the following format:
15
16![Legend](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/kc60/keymaps/noroadsleft/legend.png)
17*Legend*
18
19Descriptions of the physical locations of keys will use the key's function in a US QWERTY layout, even if the layout itself is not QWERTY.
20
21
22----
23
12# Outline 24# Outline
13 25
14- [Base Layers](./readme_ch1.md) 26- [Base Layers](./readme_ch1.md)
diff --git a/keyboards/kc60/keymaps/noroadsleft/readme_ch1.md b/keyboards/kc60/keymaps/noroadsleft/readme_ch1.md
index fff80760e..3872232f5 100644
--- a/keyboards/kc60/keymaps/noroadsleft/readme_ch1.md
+++ b/keyboards/kc60/keymaps/noroadsleft/readme_ch1.md
@@ -12,21 +12,14 @@
12 12
13## Layer 0: QWERTY - `_QW` 13## Layer 0: QWERTY - `_QW`
14 14
15Standard QWERTY layout, with three QMK features: 15Standard QWERTY layout, with four QMK features:
16 16
17- The `Menu` key has been replaced by `MO(_FW)`, which moves to my Windows Fn layer when held. 17- The `Menu` key has been replaced by `MO(_FW)`, which moves to my Windows Fn layer when held.
18- The Right `GUI` key has been replaced with a `MO(_MA)` key, which moves to the Macro layer when held.
18- The `Caps Lock` key has been replaced with a dual function `LT()` key, which opens the Windows Fn layer when held, and is `Caps Lock` when tapped 19- The `Caps Lock` key has been replaced with a dual function `LT()` key, which opens the Windows Fn layer when held, and is `Caps Lock` when tapped
19- The `Escape` key has been replaced with a `KC_GESC` `` ` ~ `` key when used with a `Fn` key or a `Shift` key 20- The Left `Control` key has been replaced with a `MT(MOD_CTRL, KC_GRV)` key, which is <code>&#96; ~</code> when tapped and `Ctrl` when held.
20 21
21###### For the rest of this readme, the physical location of keys will be referred to by their function in a US QWERTY layout. 22![QWERTY layer](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/kc60/keymaps/noroadsleft/layer_00.png)
22
23![QWERTY layer](https://i.imgur.com/2eVsefw.png)
24
25Keycode(s) Sent | Notes
26:---------------------------------------------------- | :----
27[`KC_GESC`](https://docs.qmk.fm/#/feature_grave_esc) | `Esc` when tapped alone, `` ` ~ `` when used with a `Shift` or `GUI` key.
28`LT(_FW, KC_CAPS)` | Opens the Windows Fn layer when held; toggles Caps Lock when tapped.
29`MO(_FW)` | Opens the Windows Fn layer when held.
30 23
31 24
32---- 25----
@@ -37,13 +30,7 @@ Keycode(s) Sent | Notes
37 30
38A hardware-based Dvorak Simplified layout. At my weekend job, I use a shared computer that runs MacOS Sierra, in US QWERTY layout. In this layer, I can leave the system in QWERTY, plug my keyboard in, and still type in Dvorak. 31A hardware-based Dvorak Simplified layout. At my weekend job, I use a shared computer that runs MacOS Sierra, in US QWERTY layout. In this layer, I can leave the system in QWERTY, plug my keyboard in, and still type in Dvorak.
39 32
40![Hardware Dvorak layer](https://i.imgur.com/a6hYedB.png) 33![Hardware Dvorak layer](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/kc60/keymaps/noroadsleft/layer_01.png)
41
42Keycode(s) Sent | Notes
43:---------------------------------------------------- | :----
44[`KC_GESC`](https://docs.qmk.fm/#/feature_grave_esc) | `Esc` when tapped alone, `` ` ~ `` when used with a `Shift` or `GUI` key.
45`LT(_FW, KC_CAPS)` | Opens the Windows Fn layer when held; toggles Caps Lock when tapped.
46`MO(_FW)` | Opens the Windows Fn layer when held.
47 34
48 35
49---- 36----
@@ -54,13 +41,7 @@ Keycode(s) Sent | Notes
54 41
55A hardware-based Colemak layout. Been thinking of trying it, so it's here. 42A hardware-based Colemak layout. Been thinking of trying it, so it's here.
56 43
57![Hardware Colemak layer](https://i.imgur.com/dbQ6HDW.png) 44![Hardware Colemak layer](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/kc60/keymaps/noroadsleft/layer_02.png)
58
59Keycode(s) Sent | Notes
60:---------------------------------------------------- | :----
61[`KC_GESC`](https://docs.qmk.fm/#/feature_grave_esc) | `Esc` when tapped alone, `` ` ~ `` when used with a `Shift` or `GUI` key.
62`LT(_FW, KC_CAPS)` | Opens the Windows Fn layer when held; toggles Caps Lock when tapped.
63`MO(_FW)` | Opens the Windows Fn layer when held.
64 45
65 46
66---- 47----
diff --git a/keyboards/kc60/keymaps/noroadsleft/readme_ch2.md b/keyboards/kc60/keymaps/noroadsleft/readme_ch2.md
index 142fe302f..76ab51015 100644
--- a/keyboards/kc60/keymaps/noroadsleft/readme_ch2.md
+++ b/keyboards/kc60/keymaps/noroadsleft/readme_ch2.md
@@ -16,7 +16,7 @@
16 16
17This layer overrides the `Fn` keys on whichever base layer is currently enabled, sending the keyboard to the MacOS-oriented Fn layer `_FM`, instead of the Windows Fn layer `_FW`. 17This layer overrides the `Fn` keys on whichever base layer is currently enabled, sending the keyboard to the MacOS-oriented Fn layer `_FM`, instead of the Windows Fn layer `_FW`.
18 18
19![MacOS Overlay](https://i.imgur.com/lxsEVpm.png) 19![MacOS Overlay](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/kc60/keymaps/noroadsleft/layer_03.png)
20 20
21 21
22---- 22----
diff --git a/keyboards/kc60/keymaps/noroadsleft/readme_ch3.md b/keyboards/kc60/keymaps/noroadsleft/readme_ch3.md
index b9dc556e4..93c43fbf9 100644
--- a/keyboards/kc60/keymaps/noroadsleft/readme_ch3.md
+++ b/keyboards/kc60/keymaps/noroadsleft/readme_ch3.md
@@ -16,20 +16,20 @@
16 16
17These layers were born out of the confusion I have had trying to use the in-game chat and the console in [Quake 2](https://en.wikipedia.org/wiki/Quake_II). When Quake 2 came out, alternate keyboard layouts weren't really a thing. As a result, all in-game text input is hard-locked to US QWERTY, regardless of what the operating system is using for its input method. 17These layers were born out of the confusion I have had trying to use the in-game chat and the console in [Quake 2](https://en.wikipedia.org/wiki/Quake_II). When Quake 2 came out, alternate keyboard layouts weren't really a thing. As a result, all in-game text input is hard-locked to US QWERTY, regardless of what the operating system is using for its input method.
18 18
19I'm attempting to solve this by some creative use of QMK's macro feature. The keycode in the System layer that enables these layers, [`GO_Q2`](./keymap.c#L404), is a [macro](./keymap.c#L165-L172) that sets the default layer to the QWERTY layer, then turns the Quake 2 layer `_Q2` on. The result is a partially-overwritten QWERTY layer, that has some keycodes with some creative layer switching. 19I'm attempting to solve this by some creative use of QMK's macro feature. The keycode in the System layer that enables these layers, [`GO_Q2`](./keymap.c#L418), is a [macro](./keymap.c#L164-L171) that sets the default layer to the QWERTY layer, then turns the Quake 2 layer `_Q2` on. The result is a partially-overwritten QWERTY layer, that has some keycodes with some creative layer switching.
20 20
21When I hit the `Enter` key (bound in-game to text chat), the [macro keycode](./keymap.c#L173-L179) I've created sends the keycode for `Enter`, then follows with enabling the Hardware Dvorak layer and its corresponding overlay. Now the game is in text chat mode, and my keyboard is in Dvorak. When I hit `Enter` again, another `Enter` [keycode macro](./keymap.c#L180-L186) is sent, which sends the message, then the macro brings me back to the standard QWERTY+Quake 2 setup. Hitting `Escape` instead runs a [macro](./keymap.c#L187-L193) that cancels the sending of the message, and undoes the layers. 21When I hit the `Enter` key (bound in-game to text chat), the [macro keycode](./keymap.c#L172-L178) I've created sends the keycode for `Enter`, then follows with enabling the Hardware Dvorak layer and its corresponding overlay. Now the game is in text chat mode, and my keyboard is in Dvorak. When I hit `Enter` again, another `Enter` [keycode macro](./keymap.c#L179-L185) is sent, which sends the message, then the macro brings me back to the standard QWERTY+Quake 2 setup. Hitting `Escape` instead runs a [macro](./keymap.c#L186-L192) that cancels the sending of the message, and undoes the layers.
22 22
23I have been testing this configuration for a few months. Sometimes I end up still in Dvorak mode without any text input systems (in-game chat or the console) running, but it pretty much always happens when I'm focused on the game, so I don't know the cause yet. 23I have been testing this configuration for a few months. Sometimes I end up still in Dvorak mode without any text input systems (in-game chat or the console) running, but it pretty much always happens when I'm focused on the game, so I don't know the cause yet.
24 24
25### Layer 4: Quake 2 25### Layer 4: Quake 2
26![Quake 2](https://i.imgur.com/WEZ9p2u.png) 26![Quake 2](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/kc60/keymaps/noroadsleft/layer_04.png)
27 27
28### Layer 5: Quake 2 Dvorak 28### Layer 5: Quake 2 Dvorak
29![Quake 2 Dvorak](https://i.imgur.com/rhugHN4.png) 29![Quake 2 Dvorak](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/kc60/keymaps/noroadsleft/layer_05.png)
30 30
31### Layer 6: Quake 2 Console 31### Layer 6: Quake 2 Console
32![Quake 2 Console](https://i.imgur.com/dRTAjcy.png) 32![Quake 2 Console](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/kc60/keymaps/noroadsleft/layer_06.png)
33 33
34 34
35---- 35----
diff --git a/keyboards/kc60/keymaps/noroadsleft/readme_ch4.md b/keyboards/kc60/keymaps/noroadsleft/readme_ch4.md
index 00e6b781b..32ca82ce9 100644
--- a/keyboards/kc60/keymaps/noroadsleft/readme_ch4.md
+++ b/keyboards/kc60/keymaps/noroadsleft/readme_ch4.md
@@ -16,7 +16,7 @@
16 16
17Arrows, Navigation keys (Insert, Home, Page Up, etc.), and Function keys are here. Also has keys for Calculator, Menu, Volume Control, and shortcuts for Select All, Undo, Cut, Copy, and Paste. Numpad Enter for when I'm working in Adobe Photoshop, because it treats Numpad Enter differently from the regular Enter key. 17Arrows, Navigation keys (Insert, Home, Page Up, etc.), and Function keys are here. Also has keys for Calculator, Menu, Volume Control, and shortcuts for Select All, Undo, Cut, Copy, and Paste. Numpad Enter for when I'm working in Adobe Photoshop, because it treats Numpad Enter differently from the regular Enter key.
18 18
19![Windows Fn layer](https://i.imgur.com/XwCshcz.png) 19![Windows Fn layer](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/kc60/keymaps/noroadsleft/layer_07.png)
20 20
21 21
22---- 22----
@@ -27,7 +27,7 @@ Arrows, Navigation keys (Insert, Home, Page Up, etc.), and Function keys are her
27 27
28Based on my Windows Fn layer, but swaps a few functions for a MacOS environment. Arrow, Navigation, and Function keys are basically unchanged from Layer 2. This layer enables using either `Fn` key as a sort of simulated `Command` key, which I find easier to reach and use. 28Based on my Windows Fn layer, but swaps a few functions for a MacOS environment. Arrow, Navigation, and Function keys are basically unchanged from Layer 2. This layer enables using either `Fn` key as a sort of simulated `Command` key, which I find easier to reach and use.
29 29
30![MacOS-oriented Fn layer](https://i.imgur.com/Z11kRu2.png) 30![MacOS-oriented Fn layer](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/kc60/keymaps/noroadsleft/layer_08.png)
31 31
32 32
33---- 33----
@@ -38,11 +38,11 @@ Based on my Windows Fn layer, but swaps a few functions for a MacOS environment.
38 38
39Based on the Windows function layer, but removes some functions that are pointless to have while in the game. 39Based on the Windows function layer, but removes some functions that are pointless to have while in the game.
40 40
41![Quake 2 Fn layer](https://i.imgur.com/9PG7yWb.png) 41![Quake 2 Fn layer](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/kc60/keymaps/noroadsleft/layer_09.png)
42 42
43Keycode(s) Sent | Notes 43Keycode(s) Sent | Notes
44:-------------------------------- | :---- 44:-------------------------------- | :----
45[`Q2_GRV`](./keymap.c#L194-L201) | Sends `KC_GRV`, then enables the Dvorak, Quake 2 Dvorak, and Quake 2 Console layers. 45[`Q2_GRV`](./keymap.c#L193-L200) | Sends `KC_GRV`, then enables the Dvorak, Quake 2 Dvorak, and Quake 2 Console layers.
46 46
47 47
48 48
diff --git a/keyboards/kc60/keymaps/noroadsleft/readme_ch5.md b/keyboards/kc60/keymaps/noroadsleft/readme_ch5.md
index a65b3acbe..cb2abbd6d 100644
--- a/keyboards/kc60/keymaps/noroadsleft/readme_ch5.md
+++ b/keyboards/kc60/keymaps/noroadsleft/readme_ch5.md
@@ -16,7 +16,7 @@
16 16
17Puts a Numpad on the right-hand side of the keyboard. A through F included for hexadecimal input. Tapping `Space` returns to the previous Base Layer. 17Puts a Numpad on the right-hand side of the keyboard. A through F included for hexadecimal input. Tapping `Space` returns to the previous Base Layer.
18 18
19![Numpad layer](https://i.imgur.com/fKVRkGH.png) 19![Numpad layer](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/kc60/keymaps/noroadsleft/layer_10.png)
20 20
21 21
22---- 22----
@@ -25,42 +25,35 @@ Puts a Numpad on the right-hand side of the keyboard. A through F included for h
25 25
26### Accessed by holding the `Fn` key and tapping the right-side `Win` key 26### Accessed by holding the `Fn` key and tapping the right-side `Win` key
27 27
28Has some macros that I use in Git, and some frequently-typed strings. 28Has some macros that I use in Git, some frequently-typed strings, and keys for use with the [Dynamic Macros feature](https://docs.qmk.fm/#/feature_dynamic_macros).
29 29
30Tapping `Esc` exits the Macro layer, if the macro used doesn't do it automatically. 30Tapping `Esc` exits the Macro layer, if the macro used doesn't do it automatically.
31 31
32![Macro layer](https://i.imgur.com/wgbsluI.png) 32![Macro layer](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/kc60/keymaps/noroadsleft/layer_11.png)
33 33
34 34
35### Macros 35### Macros
36 36
37#### [T_L3DED](./keymap.c#L122-L126) 37#### [G_PUSH](./keymap.c#L126-L130)
38
39Output: `lavak3DED `
40
41Twitch emote for [a streamer I watch a lot](https://www.twitch.tv/lavak3_).
42![lavak3DED](https://static-cdn.jtvnw.net/emoticons/v1/821796/1.0)
43
44#### [G_PUSH](./keymap.c#L127-L131)
45 38
46Output: `git push origin ` 39Output: `git push origin `
47 40
48Everything from here down is related to Git or GitHub. 41Everything from here down is related to Git or GitHub.
49 42
50#### [G_FTCH](./keymap.c#L132-L141) 43#### [G_FTCH](./keymap.c#L131-L140)
51 44
52| Condition | Output | 45| Condition | Output |
53| :-------- | :----- | 46| :-------- | :----- |
54| If <kbd>Shift</kbd> is active | `git pull upstream ` | 47| If <kbd>Shift</kbd> is active | `git pull upstream ` |
55| Otherwise | `git fetch upstream ` | 48| Otherwise | `git fetch upstream ` |
56 49
57#### [G_COMM](./keymap.c#L142-L147) 50#### [G_COMM](./keymap.c#L141-L146)
58 51
59Output: `git commit -m ""` <kbd>Left</kbd> 52Output: `git commit -m ""` <kbd>Left</kbd>
60 53
61Readies a `git commit` command, moves the cursor between the quotation marks, then disables the Macro layer. 54Readies a `git commit` command, moves the cursor between the quotation marks, then disables the Macro layer.
62 55
63#### [G_BRCH](./keymap.c#L148-L158) 56#### [G_BRCH](./keymap.c#L147-L157)
64 57
65| Condition | Output | 58| Condition | Output |
66| :-------- | :----- | 59| :-------- | :----- |
@@ -69,13 +62,13 @@ Readies a `git commit` command, moves the cursor between the quotation marks, th
69 62
70`$(git branch-name)` is a [git alias](./readme_git.md) that returns the name of the current branch. This macro disables the Macro layer when finished. 63`$(git branch-name)` is a [git alias](./readme_git.md) that returns the name of the current branch. This macro disables the Macro layer when finished.
71 64
72#### [SIGNA](./keymap.c#L159-L164) 65#### [SIGNA](./keymap.c#L158-L163)
73 66
74Output: `\- @noroadsleft` <kbd>Enter</kbd> 67Output: `\- @noroadsleft` <kbd>Enter</kbd>
75 68
76Sometimes on GitHub, I sign my comments. Types my GitHub name in Markdown syntax, and then taps the `Enter` key. Disables the Macro layer when finished. 69Sometimes on GitHub, I sign my comments. Types my GitHub name in Markdown syntax, and then taps the `Enter` key. Disables the Macro layer when finished.
77 70
78#### [MC_UNDO](./keymap.c#L202-L210) 71#### [MC_UNDO](./keymap.c#L201-L209)
79 72
80| Condition | Output | 73| Condition | Output |
81| :-------- | :----- | 74| :-------- | :----- |
@@ -84,7 +77,7 @@ Sometimes on GitHub, I sign my comments. Types my GitHub name in Markdown syntax
84 77
85An Undo shortcut that turns to Redo if <kbd>Shift</kbd> is being held. I'm not sure that part is required to get that behavior, but it works as desired, so I'm not messing with it. 78An Undo shortcut that turns to Redo if <kbd>Shift</kbd> is being held. I'm not sure that part is required to get that behavior, but it works as desired, so I'm not messing with it.
86 79
87#### [MC_PSTE](./keymap.c#L211-L219) 80#### [MC_PSTE](./keymap.c#L210-L218)
88 81
89| Condition | Output | 82| Condition | Output |
90| :-------- | :----- | 83| :-------- | :----- |
@@ -93,7 +86,7 @@ An Undo shortcut that turns to Redo if <kbd>Shift</kbd> is being held. I'm not s
93 86
94The program I use this in uses <kbd>Shift</kbd> + <kbd>Command</kbd> + <kbd>Option</kbd> + <kbd>V</kbd> to paste while maintaining formatting (typeface, text size, etc.). Sometimes I want this and sometimes I don't. Using <kbd>Shift</kbd> changes the behavior. 87The program I use this in uses <kbd>Shift</kbd> + <kbd>Command</kbd> + <kbd>Option</kbd> + <kbd>V</kbd> to paste while maintaining formatting (typeface, text size, etc.). Sometimes I want this and sometimes I don't. Using <kbd>Shift</kbd> changes the behavior.
95 88
96#### [NUBS_Z](./keymap.c#L220-L234) 89#### [NUBS_Z](./keymap.c#L219-L233)
97 90
98| Condition | Output | 91| Condition | Output |
99| :-------- | :----- | 92| :-------- | :----- |
@@ -102,16 +95,20 @@ The program I use this in uses <kbd>Shift</kbd> + <kbd>Command</kbd> + <kbd>Opti
102 95
103Sometimes I type in languages from countries that use ISO layout, but my keyboard is ANSI, so I have one key fewer. This macro simulates the Non-US Backslash key if I use Right Alt + Z. 96Sometimes I type in languages from countries that use ISO layout, but my keyboard is ANSI, so I have one key fewer. This macro simulates the Non-US Backslash key if I use Right Alt + Z.
104 97
105#### [VRSN](./keymap.c#L235-L239) 98#### [VRSN](./keymap.c#L234-L238)
106 99
107Outputs a string that tells me the Git commit from which my flashed firmware was built. Looks something like: 100Outputs a string that tells me the Git commit from which my flashed firmware was built. Looks something like:
108 101
109 kc60/noroadsleft @ 0.6.326-6-gae6d7b-dirty 102 kc60/noroadsleft @ 0.6.326-6-gae6d7b-dirty
110 103
111#### [Emulated Numeric Keypad](./keymap.c#L240-L254) 104#### [Emulated Numeric Keypad](./keymap.c#L239-L253)
112 105
113If I hold the Right Alt key, the number row (`KC_1` through `KC_0`) will output numpad keycodes instead of number row keycodes, enabling quicker access to characters like ™ and °. 106If I hold the Right Alt key, the number row (`KC_1` through `KC_0`) will output numpad keycodes instead of number row keycodes, enabling quicker access to characters like ™ and °.
114 107
108#### [Emulated Extended Function Keys](./keymap.c#L254-L268)
109
110Similar to the emulated numpad, if I hold the Right Alt key with the Fn key, the function row (`KC_F1` through `KC_F12`) will output keycodes `KC_F13` throught `KC_F24`.
111
115---- 112----
116 113
117### Layer 12: System layer - `_SY` 114### Layer 12: System layer - `_SY`
@@ -120,7 +117,7 @@ If I hold the Right Alt key, the number row (`KC_1` through `KC_0`) will output
120 117
121This is where I change my keyboard function. Base layer select on `1` through `3`, Backlight controls on `C` through `N`, Reset on `8*`, Debug on `0)`. 118This is where I change my keyboard function. Base layer select on `1` through `3`, Backlight controls on `C` through `N`, Reset on `8*`, Debug on `0)`.
122 119
123![System layer](https://i.imgur.com/95ovTBn.png) 120![System layer](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/kc60/keymaps/noroadsleft/layer_12.png)
124 121
125 122
126---- 123----
diff --git a/keyboards/kc60/keymaps/noroadsleft/readme_git.md b/keyboards/kc60/keymaps/noroadsleft/readme_git.md
index b81bb9409..432f1abc7 100644
--- a/keyboards/kc60/keymaps/noroadsleft/readme_git.md
+++ b/keyboards/kc60/keymaps/noroadsleft/readme_git.md
@@ -11,7 +11,8 @@
11 # Cherry Pick 11 # Cherry Pick
12 cp = cherry-pick 12 cp = cherry-pick
13 13
14 # Check out a Pull Request 14 # Check out a Pull Request locally
15 # e.g. `git cop 351` fetches the commits from Pull Request #351 and saves it to local branch 'pr/351'.
15 cop = "!f() { git fetch upstream pull/$1/head:pr/$1; git checkout pr/$1; }; f" 16 cop = "!f() { git fetch upstream pull/$1/head:pr/$1; git checkout pr/$1; }; f"
16 17
17 # Sync master branch 18 # Sync master branch
@@ -39,13 +40,17 @@
39 40
40 # Short-form status 41 # Short-form status
41 st = "!git status --short --untracked-files=no" 42 st = "!git status --short --untracked-files=no"
43 stu = "!git ls-files --others -x '*/*'"
42 44
43 # Returns the name of the current branch 45 # Returns the name of the current branch
44 branch-name = "!git rev-parse --abbrev-ref HEAD" 46 branch-name = "!git rev-parse --abbrev-ref HEAD"
45 bn = "!git branch-name" # short-form of the above 47 bn = "!git branch-name" # short-form of the above
48 # List branches by the date of their last commit, newest to oldest
49 bbd = "for-each-ref --count=30 --sort=-committerdate refs/heads/ --format='%(objectname) %(objecttype) %(refname:short) (%(authordate))'"
46 50
47 # Compare commit counts between current branch and QMK master 51 # Compare commit counts between current branch and QMK master
48 cc = "!f() { git fetch upstream; echo \"$(git branch-name) vs. upstream/master\"; git rev-list --left-right --count $(git branch-name)...upstream/master; }; f" 52 # e.g. `git cc dev_branch upstream/master` returns how many commits are on `dev_branch` and not on `upstream/master`, and vice versa.
53 cc = "!f() { git fetch upstream; echo \"$(git branch-name) vs. $2\"; git rev-list --left-right --count $1...$2; }; f"
49 54
50 # Push to origin repo 55 # Push to origin repo
51 po = "push origin $(git branch-name)" 56 po = "push origin $(git branch-name)"
@@ -71,6 +76,4 @@
71 76
72 # Force push without overwriting established history 77 # Force push without overwriting established history
73 pushf = push --force-with-lease 78 pushf = push --force-with-lease
74
75
76``` 79```
diff --git a/keyboards/kc60/keymaps/noroadsleft/rules.mk b/keyboards/kc60/keymaps/noroadsleft/rules.mk
index 9d78fc0fb..c9805878d 100644
--- a/keyboards/kc60/keymaps/noroadsleft/rules.mk
+++ b/keyboards/kc60/keymaps/noroadsleft/rules.mk
@@ -1,2 +1,8 @@
1# https://github.com/qmk/qmk_firmware/issues/3448#issuecomment-406636125 1# https://github.com/qmk/qmk_firmware/issues/3448#issuecomment-406636125
2EXTRAFLAGS += -flto 2# EXTRAFLAGS += -flto
3LINK_TIME_OPTIMIZATION_ENABLE = yes
4
5MOUSEKEY_ENABLE = no # Mouse keys
6# COMMAND_ENABLE = no # Commands for debug and configuration
7SPACE_CADET_ENABLE = no # Space Cadet
8DYNAMIC_MACRO_ENABLE = yes