[deadcyclo layout] Added unicode layer
This commit is contained in:
parent
3c32e38036
commit
37ed3d13a4
5 changed files with 98 additions and 27 deletions
1
keyboards/ergodox/keymaps/deadcyclo/Makefile
Normal file
1
keyboards/ergodox/keymaps/deadcyclo/Makefile
Normal file
|
@ -0,0 +1 @@
|
||||||
|
UNICODE_ENABLE = yes
|
Binary file not shown.
Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 61 KiB |
Binary file not shown.
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 57 KiB |
|
@ -12,7 +12,10 @@ enum custom_keycodes {
|
||||||
PLACEHOLDER = SAFE_RANGE, // can always be here
|
PLACEHOLDER = SAFE_RANGE, // can always be here
|
||||||
EPRM,
|
EPRM,
|
||||||
VRSN,
|
VRSN,
|
||||||
RGB_SLD
|
RGB_SLD,
|
||||||
|
SHRUG,
|
||||||
|
YAY,
|
||||||
|
HUG
|
||||||
};
|
};
|
||||||
|
|
||||||
// TODO: Get rid of of keys I don't want. Make others that I do. Set up lots of makros (Using hyper (and meh)) keys (where to put them?)
|
// TODO: Get rid of of keys I don't want. Make others that I do. Set up lots of makros (Using hyper (and meh)) keys (where to put them?)
|
||||||
|
@ -103,14 +106,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
KC_TRNS,
|
KC_TRNS,
|
||||||
EPRM, KC_DEL, KC_TRNS
|
EPRM, KC_DEL, KC_TRNS
|
||||||
),
|
),
|
||||||
/* Keymap 2: Media and mouse keys
|
/* Keymap 2: Media, mouse and navigation
|
||||||
*
|
*
|
||||||
* ,--------------------------------------------------. ,--------------------------------------------------.
|
* ,--------------------------------------------------. ,--------------------------------------------------.
|
||||||
* | | | | | | | | | | | | | | | |
|
* | | | | | | | | | | | | | | | |
|
||||||
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
|
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
|
||||||
* | | | | MsUp | | | | | | | | | | | |
|
* | | | | MsUp | | | | | | | | Up | | | |
|
||||||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||||
* | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play |
|
* | | |MsLeft|MsDown|MsRght| |------| |------| | Left | Down | Right| | Play |
|
||||||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||||
* | | | | | | | | | | | | Prev | Next | | |
|
* | | | | | | | | | | | | Prev | Next | | |
|
||||||
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
|
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
|
||||||
|
@ -124,7 +127,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
* | | | | | | | |
|
* | | | | | | | |
|
||||||
* `--------------------' `--------------------'
|
* `--------------------' `--------------------'
|
||||||
*/
|
*/
|
||||||
// MEDIA AND MOUSE
|
// MEDIA , MOUSE and NAVIGATION
|
||||||
[MDIA] = KEYMAP(
|
[MDIA] = KEYMAP(
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
@ -135,24 +138,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
KC_TRNS,
|
KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
// right hand
|
// right hand
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
|
KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_MPLY,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
|
||||||
KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
|
KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS,
|
KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS, KC_WBAK
|
KC_TRNS, KC_TRNS, KC_WBAK
|
||||||
),
|
),
|
||||||
|
|
||||||
/* Keymap 3: Navigation TODO: Printscreen, pg up down, home, end, others? Insert for example
|
/* Keymap 3: Unicode
|
||||||
*
|
*
|
||||||
* ,--------------------------------------------------. ,--------------------------------------------------.
|
* ,--------------------------------------------------. ,--------------------------------------------------.
|
||||||
* | | VER | | | | | | | | | | | | | |
|
* | | VER | | | | | | | | | | | | | |
|
||||||
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
|
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
|
||||||
* | | | | up | | | | | | | | | | | |
|
* | | Shrug| yay | hug | | | | | | ■ | λ | → | ➙ | ▻ | |
|
||||||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||||
* | | | left | down | right| |------| |------| | | | | | |
|
* | | | | | | |------| |------| | | | | | |
|
||||||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||||
* | | | | | | | | | | | | | | | |
|
* | | | | | | | | | | | | | | | |
|
||||||
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
|
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
|
||||||
|
@ -166,11 +169,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
* | | | | | | | |
|
* | | | | | | | |
|
||||||
* `--------------------' `--------------------'
|
* `--------------------' `--------------------'
|
||||||
*/
|
*/
|
||||||
// NAVIGATION
|
// Unicode
|
||||||
[NAVG] = KEYMAP(
|
[NAVG] = KEYMAP(
|
||||||
KC_TRNS, VRSN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, VRSN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, SHRUG, YAY, HUG, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS,
|
||||||
|
@ -178,7 +181,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
// right hand
|
// right hand
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, UC(0x25a0), UC(0x03bb), UC(0x2192), UC(0x2799), UC(0x25bb), KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
@ -192,6 +195,25 @@ const uint16_t PROGMEM fn_actions[] = {
|
||||||
[1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols)
|
[1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static void ang_tap (uint16_t code, ...) {
|
||||||
|
uint16_t kc = code;
|
||||||
|
va_list ap;
|
||||||
|
|
||||||
|
va_start(ap, code);
|
||||||
|
|
||||||
|
do {
|
||||||
|
register_code16(kc);
|
||||||
|
unregister_code16(kc);
|
||||||
|
wait_ms(50);
|
||||||
|
kc = va_arg(ap, int);
|
||||||
|
} while (kc != 0);
|
||||||
|
va_end(ap);
|
||||||
|
}
|
||||||
|
|
||||||
|
#define TAP_ONCE(code) \
|
||||||
|
register_code (code); \
|
||||||
|
unregister_code (code)
|
||||||
|
|
||||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||||
{
|
{
|
||||||
// MACRODOWN only works in this function
|
// MACRODOWN only works in this function
|
||||||
|
@ -233,13 +255,46 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
break;
|
break;
|
||||||
|
case SHRUG:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
unicode_input_start(); register_hex(0xaf); unicode_input_finish();
|
||||||
|
TAP_ONCE (KC_BSLS);
|
||||||
|
register_code (KC_RSFT); TAP_ONCE (KC_MINS); TAP_ONCE (KC_9); unregister_code (KC_RSFT);
|
||||||
|
unicode_input_start (); register_hex(0x30c4); unicode_input_finish();
|
||||||
|
register_code (KC_RSFT); TAP_ONCE (KC_0); TAP_ONCE (KC_MINS); unregister_code (KC_RSFT);
|
||||||
|
TAP_ONCE (KC_SLSH);
|
||||||
|
unicode_input_start (); register_hex(0xaf); unicode_input_finish();
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
break;
|
||||||
|
case YAY:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
ang_tap (KC_BSLS, KC_O, KC_SLSH, 0);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
break;
|
||||||
|
case HUG:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
unicode_input_start(); register_hex(0x0f3c); unicode_input_finish();
|
||||||
|
TAP_ONCE (KC_SPC);
|
||||||
|
unicode_input_start(); register_hex(0x3064); unicode_input_finish();
|
||||||
|
TAP_ONCE (KC_SPC);
|
||||||
|
unicode_input_start(); register_hex(0x25d5); unicode_input_finish();
|
||||||
|
unicode_input_start(); register_hex(0x005f); unicode_input_finish();
|
||||||
|
unicode_input_start(); register_hex(0x25d5); unicode_input_finish();
|
||||||
|
TAP_ONCE (KC_SPC);
|
||||||
|
unicode_input_start(); register_hex(0x0f3d); unicode_input_finish();
|
||||||
|
unicode_input_start(); register_hex(0x3064); unicode_input_finish();
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Runs just one time when the keyboard initializes.
|
// Runs just one time when the keyboard initializes.
|
||||||
void matrix_init_user(void) {
|
void matrix_init_user(void) {
|
||||||
|
set_unicode_input_mode(UC_LNX);
|
||||||
};
|
};
|
||||||
|
|
||||||
// Runs constantly in the background, in a loop.
|
// Runs constantly in the background, in a loop.
|
||||||
|
|
|
@ -28,26 +28,41 @@ TOG, are dual purpose. Hence for example the top left key produces ESC
|
||||||
if tapped, and temporarilly toggles L3 when hold down. The two center
|
if tapped, and temporarilly toggles L3 when hold down. The two center
|
||||||
L1 TOG keys toggle L1 on and off for more permanent layer toggling.
|
L1 TOG keys toggle L1 on and off for more permanent layer toggling.
|
||||||
|
|
||||||
## Layer 1 - Symbols
|
## Layer 1 - Symbols and RGB
|
||||||
|
|
||||||
[![Layer 1 - Symbols](images/deadcyclo-layer-1-symbols.png)](http://www.keyboard-layout-editor.com/#/gists/96714e198054c9115bafb5267cc6bc73)
|
[![Layer 1 - Symbols and RGB](images/deadcyclo-layer-1-symbols.png)](http://www.keyboard-layout-editor.com/#/gists/96714e198054c9115bafb5267cc6bc73)
|
||||||
|
|
||||||
## Layer 2 - Media and Mouse
|
The Symbols and RGB layer contains function keys, commonly used
|
||||||
|
symbols, a numpad and if you have the new Ergodox Ez shine keys for
|
||||||
|
controlling various RGB-led functions. In addition, it provides an up
|
||||||
|
and a down key for easy scrolling. RGB controller keys are yellow.
|
||||||
|
|
||||||
[![Layer 2 - Media and Mouse](images/deadcyclo-layer-2-media-and-mouse.png)](http://www.keyboard-layout-editor.com/#/gists/824759486e378bcec30784309a7e5731)
|
## Layer 2 - Media, Mouse and Navigation
|
||||||
|
|
||||||
## Layer 3 - Navigation
|
[![Layer 2 - Media, Mouse and Navigation](images/deadcyclo-layer-2-media-and-mouse.png)](http://www.keyboard-layout-editor.com/#/gists/824759486e378bcec30784309a7e5731)
|
||||||
|
|
||||||
[![Layer 3 - Navigation](images/deadcyclo-layer-3-navigation.png)](http://www.keyboard-layout-editor.com/#/gists/67d9613dcd873c68693d11863d0fd289)
|
The Media, Mouse and unicode layer contains special keys for moving
|
||||||
|
the mouse and clicking on it with the keyboard. In addition it
|
||||||
|
provides standard media control keys, and default arrow keys.
|
||||||
|
|
||||||
|
## Layer 3 - Unicode
|
||||||
|
|
||||||
|
[![Layer 3 - Unicode](images/deadcyclo-layer-3-navigation.png)](http://www.keyboard-layout-editor.com/#/gists/67d9613dcd873c68693d11863d0fd289)
|
||||||
|
|
||||||
|
The unicode layer provides keys for directly typing unicode (utf-8)
|
||||||
|
|
||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
- 02.01.2017 Added delete key on second layer
|
- 02.01.2017 Added delete key on second layer
|
||||||
- 10.01.2017 Added layer images to readme
|
- 10.01.2017 Added layer images to readme
|
||||||
- 24.01.2017 Added support for Ergodox Shine. Added secondary L2 switch key on left hand
|
- 24.01.2017 Added support for Ergodox Shine. Added secondary L2 switch key on left hand
|
||||||
|
- 24.01.2017 Added unicode keys. Added shrug hug and yay. Moved Navigation to layer 2
|
||||||
|
|
||||||
# TODO
|
# TODO
|
||||||
|
|
||||||
- Add unicode support (direct input and indirect? see algernon layout for examples)
|
- Add support for unicode by name? (See algernon layout for example)
|
||||||
- Add descriptions below each layer image of any special functions/keys
|
- Add macros for lots of stuff. (Lastpass cli, pushbullet cli, other push service cli, linode cli, more?)
|
||||||
- Move Navigation keys to Layer 2 on right side, add a layer switch to L2 on left side as well, and use L3 for unicode stuff
|
- Make macros for gnu screen and i3wm
|
||||||
|
- Look into the app launch macros in algernon keymap
|
||||||
|
- Make other smileys like shrug and yay ¯\_(ツ)_/¯ and \o/ and others (see amon others [http://dongerlist.com](http://dongerlist.com)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue