[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!
|
||||
case F_CAPS:
|
||||
/*
|
||||
Objective: write a macro that checks the current layers that are
|
||||
enabled, and activates the appropriate function layer.
|
||||
* Objective: write a macro that checks the current layers that are
|
||||
* enabled, and activates the appropriate function layer.
|
||||
*/
|
||||
if ( biton32(layer_state) == _MAC ) {
|
||||
if (record->event.pressed) {
|
||||
|
@ -220,9 +220,15 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|||
case NUBS_Z:
|
||||
if (record->event.pressed) {
|
||||
if ( get_mods() & MOD_MASK_RALT ) {
|
||||
SEND_STRING( SS_TAP(X_NONUS_BSLASH) );
|
||||
SEND_STRING( SS_DOWN(X_NONUS_BSLASH) );
|
||||
} 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;
|
||||
|
@ -231,6 +237,21 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|||
SEND_STRING( QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION );
|
||||
}
|
||||
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()
|
||||
return true;
|
||||
};
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# @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)
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
||||
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.
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
||||
#### [G_BRCH](./keymap.c#L148-158)
|
||||
#### [G_BRCH](./keymap.c#L148-L158)
|
||||
|
||||
| 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.
|
||||
|
||||
#### [NUBS_Z](./keymap.c#L220-L228)
|
||||
#### [NUBS_Z](./keymap.c#L220-L234)
|
||||
|
||||
| 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.
|
||||
|
||||
#### [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:
|
||||
|
||||
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