[Keymap] Updates to noroadsleft keymap for KC60 (2019-04-07) (#5576)

* Update macros and keycode handling

- Update NUBS_Z macro so it repeats when held down
- Number row now uses numpad keycodes if Right Alt is being held
- coding conventions and formatting update
  - switched to four-space indent
  - reformatted a block comment

* Update readme files
This commit is contained in:
noroadsleft 2019-04-07 07:32:06 -07:00 committed by Drashna Jaelre
parent 0231caa25a
commit 18a9f7999e
4 changed files with 330 additions and 305 deletions

View File

@ -102,8 +102,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
// these are our macros! // these are our macros!
case F_CAPS: case F_CAPS:
/* /*
Objective: write a macro that checks the current layers that are * Objective: write a macro that checks the current layers that are
enabled, and activates the appropriate function layer. * enabled, and activates the appropriate function layer.
*/ */
if ( biton32(layer_state) == _MAC ) { if ( biton32(layer_state) == _MAC ) {
if (record->event.pressed) { if (record->event.pressed) {
@ -220,9 +220,15 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
case NUBS_Z: case NUBS_Z:
if (record->event.pressed) { if (record->event.pressed) {
if ( get_mods() & MOD_MASK_RALT ) { if ( get_mods() & MOD_MASK_RALT ) {
SEND_STRING( SS_TAP(X_NONUS_BSLASH) ); SEND_STRING( SS_DOWN(X_NONUS_BSLASH) );
} else { } else {
SEND_STRING( SS_TAP(X_Z) ); SEND_STRING( SS_DOWN(X_Z) );
}
} else {
if ( get_mods() & MOD_MASK_RALT ) {
SEND_STRING( SS_UP(X_NONUS_BSLASH) );
} else {
SEND_STRING( SS_UP(X_Z) );
} }
}; };
return false; return false;
@ -231,6 +237,21 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
SEND_STRING( QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION ); SEND_STRING( QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION );
} }
return false; return false;
case KC_1 ... KC_0:
if (record->event.pressed) {
if ( get_mods() & MOD_MASK_RALT ) {
register_code( keycode + 0x3b );
} else {
register_code( keycode );
}
} else {
if ( get_mods() & MOD_MASK_RALT ) {
unregister_code( keycode + 0x3b );
} else {
unregister_code( keycode );
}
}
return false;
} // switch() } // switch()
return true; return true;
}; };

View File

@ -1,6 +1,6 @@
# @noroadsleft's KC60 keymap # @noroadsleft's KC60 keymap
### Last updated: February 14, 2019, 3:50 AM UTC-0800 ### Last updated: April 7, 2019, 2:26 AM UTC-0700
![](https://i.imgur.com/tzhXQYI.jpg) ![](https://i.imgur.com/tzhXQYI.jpg)

View File

@ -16,7 +16,7 @@
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#L383), is a [macro](./keymap.c#L165-172) 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#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.
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#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.

View File

@ -60,7 +60,7 @@ 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-158) #### [G_BRCH](./keymap.c#L148-L158)
| Condition | Output | | Condition | Output |
| :-------- | :----- | | :-------- | :----- |
@ -93,7 +93,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-L228) #### [NUBS_Z](./keymap.c#L220-L234)
| Condition | Output | | Condition | Output |
| :-------- | :----- | | :-------- | :----- |
@ -102,11 +102,15 @@ 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#L229-L233) #### [VRSN](./keymap.c#L235-L239)
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.240-20-ge91549-dirty kc60/noroadsleft @ 0.6.326-6-gae6d7b-dirty
#### [Emulated Numeric Keypad](./keymap.c#L240-L254)
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 °.
---- ----