[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:
parent
0231caa25a
commit
18a9f7999e
4 changed files with 330 additions and 305 deletions
|
@ -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;
|
||||||
};
|
};
|
||||||
|
|
|
@ -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)
|
||||||
|
|
||||||
|
|
|
@ -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.
|
||||||
|
|
||||||
|
|
|
@ -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 °.
|
||||||
|
|
||||||
----
|
----
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue