[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
This commit is contained in:
James Young 2019-11-05 22:12:21 -08:00 committed by Drashna Jaelre
parent dfb78d2a08
commit 95309e9af5
10 changed files with 112 additions and 90 deletions

View File

@ -6,3 +6,12 @@
#define BACKLIGHT_BREATHING #define BACKLIGHT_BREATHING
#define BACKLIGHT_LEVELS 5 #define BACKLIGHT_LEVELS 5
#define BREATHING_PERIOD 4 #define BREATHING_PERIOD 4
#ifdef LOCKING_SUPPORT_ENABLE
# undef LOCKING_SUPPORT_ENABLE
#endif
#ifdef LOCKING_RESYNC_ENABLE
# undef LOCKING_RESYNC_ENABLE
#endif
#define NO_ACTION_ONESHOT

View File

@ -8,42 +8,39 @@
/********************** /**********************
** LAYER DEFINITIONS ** ** LAYER DEFINITIONS **
**********************/ **********************/
enum layers_keymap { enum layer_names {
// BASE LAYERS // BASE LAYERS
// SHORT CODES
_QWERTY = 0, _QWERTY = 0,
_QW = _QWERTY,
_DVORAK, _DVORAK,
_DV = _DVORAK,
_COLEMAK, _COLEMAK,
_CM = _COLEMAK,
_MAC, _MAC,
_MC = _MAC,
_QUAKE2, _QUAKE2,
_Q2 = _QUAKE2,
_QUAKE2_DVORAK, _QUAKE2_DVORAK,
_QD = _QUAKE2_DVORAK,
_QUAKE2_CONSOLE, _QUAKE2_CONSOLE,
_QC = _QUAKE2_CONSOLE,
// FUNCTION LAYERS // FUNCTION LAYERS
_FUNCWIN, _FUNCWIN,
_FW = _FUNCWIN,
_FUNCMAC, _FUNCMAC,
_FM = _FUNCMAC,
_FUNCQ2, _FUNCQ2,
_FQ = _FUNCQ2,
// OTHER LAYERS // OTHER LAYERS
_NUMPAD, _NUMPAD,
_NP = _NUMPAD,
_MACROS, _MACROS,
_SYSTEM _MA = _MACROS,
_SYSTEM,
_SY = _SYSTEM,
}; };
// LAYER SHORT CODES
#define _QW _QWERTY
#define _DV _DVORAK
#define _CM _COLEMAK
#define _MC _MAC
#define _Q2 _QUAKE2
#define _QD _QUAKE2_DVORAK
#define _QC _QUAKE2_CONSOLE
#define _FW _FUNCWIN
#define _FM _FUNCMAC
#define _FQ _FUNCQ2
#define _NP _NUMPAD
#define _MA _MACROS
#define _SY _SYSTEM
// KEYCODE DEFINITIONS // KEYCODE DEFINITIONS
#define NO_CHNG KC_TRNS // Note for me for keys I need to leave as Pass-through #define NO_CHNG KC_TRNS // Note for me for keys I need to leave as Pass-through
@ -58,6 +55,8 @@ enum layers_keymap {
#define WN_COPY LCTL(DV_C) // Windows/Linux Copy #define WN_COPY LCTL(DV_C) // Windows/Linux Copy
#define WN_PSTE LCTL(DV_V) // Windows/Linux Paste #define WN_PSTE LCTL(DV_V) // Windows/Linux Paste
#define CTL_GRV MT(MOD_LCTL, KC_GRV) // Left Control when held, Grave accent when tapped
#define MC_PSCR LGUI(LSFT(KC_3)) // MacOS Print Screen (Command + Shift + 3) #define MC_PSCR LGUI(LSFT(KC_3)) // MacOS Print Screen (Command + Shift + 3)
#define MC_HOME LGUI(KC_LEFT) // MacOS Home (Command + Left Arrow) #define MC_HOME LGUI(KC_LEFT) // MacOS Home (Command + Left Arrow)
#define MC_END LGUI(KC_RGHT) // MacOS End (Command + Right Arrow) #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) {
} }
} }
return false; return false;
case KC_F1 ... KC_F12:
if (record->event.pressed) {
if ( get_mods() & MOD_MASK_RALT ) {
register_code( keycode + 0x2E );
} else {
register_code( keycode );
}
} else {
if ( get_mods() & MOD_MASK_RALT ) {
unregister_code( keycode + 0x2E );
} else {
unregister_code( keycode );
}
}
return false;
} // switch() } // switch()
return true; return true;
}; };
@ -267,31 +281,31 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* QWERTY */ /* QWERTY */
[_QWERTY] = LAYOUT_60_ansi( [_QWERTY] = LAYOUT_60_ansi(
// 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 // 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
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, \ 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, \
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_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, \
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, \ 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, \
KC_LSFT, NUBS_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \ KC_LSFT, NUBS_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FW), KC_RCTL \ CTL_GRV, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_MA), MO(_FW), KC_RCTL \
), ),
/* Dvorak */ /* Dvorak */
[_DVORAK] = LAYOUT_60_ansi( [_DVORAK] = LAYOUT_60_ansi(
// 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 // 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
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, \ 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, \
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, \ 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, \
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, \ 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, \
KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, \ KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, \
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FW), KC_RCTL \ CTL_GRV, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_MA), MO(_FW), KC_RCTL \
), ),
/* Colemak */ /* Colemak */
[_COLEMAK] = LAYOUT_60_ansi( [_COLEMAK] = LAYOUT_60_ansi(
// 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 // 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
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, \ 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, \
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, \ 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, \
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, \ 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, \
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FW), KC_RCTL \ CTL_GRV, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_MA), MO(_FW), KC_RCTL \
), ),
/**************** /****************
@ -391,9 +405,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Macro layer */ /* Macro layer */
[_MACROS] = LAYOUT_60_ansi( [_MACROS] = LAYOUT_60_ansi(
// 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 // 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
TG(_MA), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ TG(_MA), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, DM_REC1, DM_REC2, _______, \
_______, _______, _______, G_PUSH, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, G_PUSH, _______, _______, _______, _______, _______, _______, _______, DM_PLY1, DM_PLY2, DM_RSTP, \
_______, _______, _______, G_FTCH, G_COMM, _______, _______, _______, _______, T_L3DED, _______, _______, _______, \ _______, _______, _______, G_FTCH, G_COMM, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, G_BRCH, SIGNA, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, G_BRCH, SIGNA, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, NO_CHNG, _______ \ _______, _______, _______, _______, _______, _______, NO_CHNG, _______ \
), ),

View File

@ -1,12 +1,24 @@
# @noroadsleft's KC60 keymap # @noroadsleft's KC60 keymap
### Last updated: April 7, 2019, 2:26 AM UTC-0700 ### Last updated: November 5, 2019, 12:07 AM UTC-0800
![](https://i.imgur.com/tzhXQYI.jpg) ![](https://i.imgur.com/tzhXQYI.jpg)
I am a full-time Dvorak typist, and occasional semi-serious FPS gamer. The layers are oriented towards a mix of typing and gaming. I am a full-time Dvorak typist, and occasional semi-serious FPS gamer. The layers are oriented towards a mix of typing and gaming.
----
# Preface
Images in this readme follow the following format:
![Legend](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/kc60/keymaps/noroadsleft/legend.png)
*Legend*
Descriptions 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.
---- ----
# Outline # Outline

View File

@ -12,21 +12,14 @@
## Layer 0: QWERTY - `_QW` ## Layer 0: QWERTY - `_QW`
Standard QWERTY layout, with three QMK features: Standard QWERTY layout, with four QMK features:
- The `Menu` key has been replaced by `MO(_FW)`, which moves to my Windows Fn layer when held. - The `Menu` key has been replaced by `MO(_FW)`, which moves to my Windows Fn layer when held.
- The Right `GUI` key has been replaced with a `MO(_MA)` key, which moves to the Macro layer when held.
- 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 - 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
- The `Escape` key has been replaced with a `KC_GESC` `` ` ~ `` key when used with a `Fn` key or a `Shift` key - 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.
###### For the rest of this readme, the physical location of keys will be referred to by their function in a US QWERTY layout. ![QWERTY layer](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/kc60/keymaps/noroadsleft/layer_00.png)
![QWERTY layer](https://i.imgur.com/2eVsefw.png)
Keycode(s) Sent | Notes
:---------------------------------------------------- | :----
[`KC_GESC`](https://docs.qmk.fm/#/feature_grave_esc) | `Esc` when tapped alone, `` ` ~ `` when used with a `Shift` or `GUI` key.
`LT(_FW, KC_CAPS)` | Opens the Windows Fn layer when held; toggles Caps Lock when tapped.
`MO(_FW)` | Opens the Windows Fn layer when held.
---- ----
@ -37,13 +30,7 @@ Keycode(s) Sent | Notes
A 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. A 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.
![Hardware Dvorak layer](https://i.imgur.com/a6hYedB.png) ![Hardware Dvorak layer](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/kc60/keymaps/noroadsleft/layer_01.png)
Keycode(s) Sent | Notes
:---------------------------------------------------- | :----
[`KC_GESC`](https://docs.qmk.fm/#/feature_grave_esc) | `Esc` when tapped alone, `` ` ~ `` when used with a `Shift` or `GUI` key.
`LT(_FW, KC_CAPS)` | Opens the Windows Fn layer when held; toggles Caps Lock when tapped.
`MO(_FW)` | Opens the Windows Fn layer when held.
---- ----
@ -54,13 +41,7 @@ Keycode(s) Sent | Notes
A hardware-based Colemak layout. Been thinking of trying it, so it's here. A hardware-based Colemak layout. Been thinking of trying it, so it's here.
![Hardware Colemak layer](https://i.imgur.com/dbQ6HDW.png) ![Hardware Colemak layer](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/kc60/keymaps/noroadsleft/layer_02.png)
Keycode(s) Sent | Notes
:---------------------------------------------------- | :----
[`KC_GESC`](https://docs.qmk.fm/#/feature_grave_esc) | `Esc` when tapped alone, `` ` ~ `` when used with a `Shift` or `GUI` key.
`LT(_FW, KC_CAPS)` | Opens the Windows Fn layer when held; toggles Caps Lock when tapped.
`MO(_FW)` | Opens the Windows Fn layer when held.
---- ----

View File

@ -16,7 +16,7 @@
This 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`. This 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`.
![MacOS Overlay](https://i.imgur.com/lxsEVpm.png) ![MacOS Overlay](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/kc60/keymaps/noroadsleft/layer_03.png)
---- ----

View File

@ -16,20 +16,20 @@
These 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. These 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.
I'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. I'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.
When 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. When 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.
I 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. I 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.
### Layer 4: Quake 2 ### Layer 4: Quake 2
![Quake 2](https://i.imgur.com/WEZ9p2u.png) ![Quake 2](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/kc60/keymaps/noroadsleft/layer_04.png)
### Layer 5: Quake 2 Dvorak ### Layer 5: Quake 2 Dvorak
![Quake 2 Dvorak](https://i.imgur.com/rhugHN4.png) ![Quake 2 Dvorak](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/kc60/keymaps/noroadsleft/layer_05.png)
### Layer 6: Quake 2 Console ### Layer 6: Quake 2 Console
![Quake 2 Console](https://i.imgur.com/dRTAjcy.png) ![Quake 2 Console](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/kc60/keymaps/noroadsleft/layer_06.png)
---- ----

View File

@ -16,7 +16,7 @@
Arrows, 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. Arrows, 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.
![Windows Fn layer](https://i.imgur.com/XwCshcz.png) ![Windows Fn layer](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/kc60/keymaps/noroadsleft/layer_07.png)
---- ----
@ -27,7 +27,7 @@ Arrows, Navigation keys (Insert, Home, Page Up, etc.), and Function keys are her
Based 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. Based 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.
![MacOS-oriented Fn layer](https://i.imgur.com/Z11kRu2.png) ![MacOS-oriented Fn layer](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/kc60/keymaps/noroadsleft/layer_08.png)
---- ----
@ -38,11 +38,11 @@ Based on my Windows Fn layer, but swaps a few functions for a MacOS environment.
Based on the Windows function layer, but removes some functions that are pointless to have while in the game. Based on the Windows function layer, but removes some functions that are pointless to have while in the game.
![Quake 2 Fn layer](https://i.imgur.com/9PG7yWb.png) ![Quake 2 Fn layer](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/kc60/keymaps/noroadsleft/layer_09.png)
Keycode(s) Sent | Notes Keycode(s) Sent | Notes
:-------------------------------- | :---- :-------------------------------- | :----
[`Q2_GRV`](./keymap.c#L194-L201) | Sends `KC_GRV`, then enables the Dvorak, Quake 2 Dvorak, and Quake 2 Console layers. [`Q2_GRV`](./keymap.c#L193-L200) | Sends `KC_GRV`, then enables the Dvorak, Quake 2 Dvorak, and Quake 2 Console layers.

View File

@ -16,7 +16,7 @@
Puts 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. Puts 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.
![Numpad layer](https://i.imgur.com/fKVRkGH.png) ![Numpad layer](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/kc60/keymaps/noroadsleft/layer_10.png)
---- ----
@ -25,42 +25,35 @@ Puts a Numpad on the right-hand side of the keyboard. A through F included for h
### Accessed by holding the `Fn` key and tapping the right-side `Win` key ### Accessed by holding the `Fn` key and tapping the right-side `Win` key
Has some macros that I use in Git, and some frequently-typed strings. Has 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).
Tapping `Esc` exits the Macro layer, if the macro used doesn't do it automatically. Tapping `Esc` exits the Macro layer, if the macro used doesn't do it automatically.
![Macro layer](https://i.imgur.com/wgbsluI.png) ![Macro layer](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/kc60/keymaps/noroadsleft/layer_11.png)
### Macros ### Macros
#### [T_L3DED](./keymap.c#L122-L126) #### [G_PUSH](./keymap.c#L126-L130)
Output: `lavak3DED `
Twitch emote for [a streamer I watch a lot](https://www.twitch.tv/lavak3_).
![lavak3DED](https://static-cdn.jtvnw.net/emoticons/v1/821796/1.0)
#### [G_PUSH](./keymap.c#L127-L131)
Output: `git push origin ` Output: `git push origin `
Everything from here down is related to Git or GitHub. Everything from here down is related to Git or GitHub.
#### [G_FTCH](./keymap.c#L132-L141) #### [G_FTCH](./keymap.c#L131-L140)
| Condition | Output | | Condition | Output |
| :-------- | :----- | | :-------- | :----- |
| If <kbd>Shift</kbd> is active | `git pull upstream ` | | If <kbd>Shift</kbd> is active | `git pull upstream ` |
| Otherwise | `git fetch upstream ` | | Otherwise | `git fetch upstream ` |
#### [G_COMM](./keymap.c#L142-L147) #### [G_COMM](./keymap.c#L141-L146)
Output: `git commit -m ""` <kbd>Left</kbd> Output: `git commit -m ""` <kbd>Left</kbd>
Readies a `git commit` command, moves the cursor between the quotation marks, then disables the Macro layer. Readies a `git commit` command, moves the cursor between the quotation marks, then disables the Macro layer.
#### [G_BRCH](./keymap.c#L148-L158) #### [G_BRCH](./keymap.c#L147-L157)
| Condition | Output | | Condition | Output |
| :-------- | :----- | | :-------- | :----- |
@ -69,13 +62,13 @@ Readies a `git commit` command, moves the cursor between the quotation marks, th
`$(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. `$(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.
#### [SIGNA](./keymap.c#L159-L164) #### [SIGNA](./keymap.c#L158-L163)
Output: `\- @noroadsleft` <kbd>Enter</kbd> Output: `\- @noroadsleft` <kbd>Enter</kbd>
Sometimes 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. Sometimes 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.
#### [MC_UNDO](./keymap.c#L202-L210) #### [MC_UNDO](./keymap.c#L201-L209)
| Condition | Output | | Condition | Output |
| :-------- | :----- | | :-------- | :----- |
@ -84,7 +77,7 @@ Sometimes on GitHub, I sign my comments. Types my GitHub name in Markdown syntax
An 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. An 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.
#### [MC_PSTE](./keymap.c#L211-L219) #### [MC_PSTE](./keymap.c#L210-L218)
| Condition | Output | | Condition | Output |
| :-------- | :----- | | :-------- | :----- |
@ -93,7 +86,7 @@ An Undo shortcut that turns to Redo if <kbd>Shift</kbd> is being held. I'm not s
The 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. The 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.
#### [NUBS_Z](./keymap.c#L220-L234) #### [NUBS_Z](./keymap.c#L219-L233)
| Condition | Output | | Condition | Output |
| :-------- | :----- | | :-------- | :----- |
@ -102,16 +95,20 @@ The program I use this in uses <kbd>Shift</kbd> + <kbd>Command</kbd> + <kbd>Opti
Sometimes 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. Sometimes 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.
#### [VRSN](./keymap.c#L235-L239) #### [VRSN](./keymap.c#L234-L238)
Outputs a string that tells me the Git commit from which my flashed firmware was built. Looks something like: Outputs a string that tells me the Git commit from which my flashed firmware was built. Looks something like:
kc60/noroadsleft @ 0.6.326-6-gae6d7b-dirty kc60/noroadsleft @ 0.6.326-6-gae6d7b-dirty
#### [Emulated Numeric Keypad](./keymap.c#L240-L254) #### [Emulated Numeric Keypad](./keymap.c#L239-L253)
If 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 °. If 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 °.
#### [Emulated Extended Function Keys](./keymap.c#L254-L268)
Similar 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`.
---- ----
### Layer 12: System layer - `_SY` ### 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
This 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)`. This 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)`.
![System layer](https://i.imgur.com/95ovTBn.png) ![System layer](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/kc60/keymaps/noroadsleft/layer_12.png)
---- ----

View File

@ -11,7 +11,8 @@
# Cherry Pick # Cherry Pick
cp = cherry-pick cp = cherry-pick
# Check out a Pull Request # Check out a Pull Request locally
# e.g. `git cop 351` fetches the commits from Pull Request #351 and saves it to local branch 'pr/351'.
cop = "!f() { git fetch upstream pull/$1/head:pr/$1; git checkout pr/$1; }; f" cop = "!f() { git fetch upstream pull/$1/head:pr/$1; git checkout pr/$1; }; f"
# Sync master branch # Sync master branch
@ -39,13 +40,17 @@
# Short-form status # Short-form status
st = "!git status --short --untracked-files=no" st = "!git status --short --untracked-files=no"
stu = "!git ls-files --others -x '*/*'"
# Returns the name of the current branch # Returns the name of the current branch
branch-name = "!git rev-parse --abbrev-ref HEAD" branch-name = "!git rev-parse --abbrev-ref HEAD"
bn = "!git branch-name" # short-form of the above bn = "!git branch-name" # short-form of the above
# List branches by the date of their last commit, newest to oldest
bbd = "for-each-ref --count=30 --sort=-committerdate refs/heads/ --format='%(objectname) %(objecttype) %(refname:short) (%(authordate))'"
# Compare commit counts between current branch and QMK master # Compare commit counts between current branch and QMK master
cc = "!f() { git fetch upstream; echo \"$(git branch-name) vs. upstream/master\"; git rev-list --left-right --count $(git branch-name)...upstream/master; }; f" # e.g. `git cc dev_branch upstream/master` returns how many commits are on `dev_branch` and not on `upstream/master`, and vice versa.
cc = "!f() { git fetch upstream; echo \"$(git branch-name) vs. $2\"; git rev-list --left-right --count $1...$2; }; f"
# Push to origin repo # Push to origin repo
po = "push origin $(git branch-name)" po = "push origin $(git branch-name)"
@ -71,6 +76,4 @@
# Force push without overwriting established history # Force push without overwriting established history
pushf = push --force-with-lease pushf = push --force-with-lease
``` ```

View File

@ -1,2 +1,8 @@
# https://github.com/qmk/qmk_firmware/issues/3448#issuecomment-406636125 # https://github.com/qmk/qmk_firmware/issues/3448#issuecomment-406636125
EXTRAFLAGS += -flto # EXTRAFLAGS += -flto
LINK_TIME_OPTIMIZATION_ENABLE = yes
MOUSEKEY_ENABLE = no # Mouse keys
# COMMAND_ENABLE = no # Commands for debug and configuration
SPACE_CADET_ENABLE = no # Space Cadet
DYNAMIC_MACRO_ENABLE = yes