2010-10-09 16:50:36 +00:00
/*
2013-11-28 23:42:40 +00:00
* Hasu : my personal keymap
2010-10-09 16:50:36 +00:00
*/
2013-11-28 23:42:40 +00:00
# include "keymap_common.h"
2010-10-26 12:32:45 +00:00
2010-10-09 16:50:36 +00:00
2013-09-18 15:51:44 +00:00
# ifdef KEYMAP_SECTION_ENABLE
2013-09-03 14:53:19 +00:00
const uint8_t keymaps [ ] [ MATRIX_ROWS ] [ MATRIX_COLS ] __attribute__ ( ( section ( " .keymap.keymaps " ) ) ) = {
# else
2013-11-28 23:42:40 +00:00
const uint8_t keymaps [ ] [ MATRIX_ROWS ] [ MATRIX_COLS ] PROGMEM = {
2013-09-03 14:53:19 +00:00
# endif
2010-10-26 12:32:45 +00:00
/* Layer 0: Default Layer
* , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .
* | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` |
* | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
* | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs |
* | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
2014-06-12 08:18:44 +00:00
* | Contro | A | S | D | F | G | H | J | K | L | Fn3 | ' | Fn6 |
2010-10-26 12:32:45 +00:00
* | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
2014-06-12 08:18:44 +00:00
* | Fn7 | Z | X | C | V | B | N | M | , | . | Fn2 | Shift | Fn1 |
2010-10-26 12:32:45 +00:00
* ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '
2014-06-12 08:18:44 +00:00
* | Gui | Alt | Fn4 | Fn5 | Gui |
2010-10-26 12:32:45 +00:00
* ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '
*/
2014-06-12 08:18:44 +00:00
[ 0 ] = \
2011-09-17 13:39:50 +00:00
KEYMAP ( ESC , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 , MINS , EQL , BSLS , GRV , \
TAB , Q , W , E , R , T , Y , U , I , O , P , LBRC , RBRC , BSPC , \
2014-06-12 08:18:44 +00:00
LCTL , A , S , D , F , G , H , J , K , L , FN3 , QUOT , FN6 , \
FN7 , Z , X , C , V , B , N , M , COMM , DOT , FN2 , RSFT , FN1 , \
2015-01-15 20:22:29 +00:00
LGUI , LALT , FN4 , FN5 , RGUI ) ,
2010-10-26 12:32:45 +00:00
2014-06-12 08:18:44 +00:00
/* Layer 1: HHKB mode[HHKB Fn]
2010-10-26 12:32:45 +00:00
* , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .
2010-11-18 13:35:49 +00:00
* | Esc | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del |
2010-10-26 12:32:45 +00:00
* | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
* | Caps | | | | | | | | Psc | Slk | Pus | Up | | Backs |
* | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
2011-01-02 14:52:13 +00:00
* | Contro | VoD | VoU | Mut | | | * | / | Hom | PgU | Lef | Rig | Enter |
2010-10-26 12:32:45 +00:00
* | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
2013-02-26 07:27:09 +00:00
* | Shift | | | | | | + | - | End | PgD | Dow | Shift | |
2010-10-26 12:32:45 +00:00
* ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '
2013-02-07 15:50:51 +00:00
* | Gui | Alt | Space | Alt | Gui |
* ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '
2010-10-26 12:32:45 +00:00
*/
2014-06-12 08:18:44 +00:00
[ 1 ] = \
2013-03-05 06:41:21 +00:00
KEYMAP ( GRV , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 , F10 , F11 , F12 , INS , DEL , \
2013-02-07 15:50:51 +00:00
CAPS , NO , NO , NO , NO , NO , NO , NO , PSCR , SLCK , PAUS , UP , NO , BSPC , \
2014-06-12 08:18:44 +00:00
LCTL , VOLD , VOLU , MUTE , NO , NO , PAST , PSLS , HOME , PGUP , LEFT , RGHT , ENT , \
2013-02-21 01:15:08 +00:00
LSFT , NO , NO , NO , NO , NO , PPLS , PMNS , END , PGDN , DOWN , RSFT , TRNS , \
2015-01-15 20:22:29 +00:00
LGUI , LALT , TRNS , RALT , RGUI ) ,
2010-10-26 12:32:45 +00:00
2014-06-12 08:18:44 +00:00
/* Layer 2: Vi mode[Slash]
2010-10-26 12:32:45 +00:00
* , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .
* | Esc | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del |
* | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
* | Tab | Hom | PgD | Up | PgU | End | Hom | PgD | PgUlEnd | | | | Backs |
* | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
2010-11-16 05:56:06 +00:00
* | Contro | | Lef | Dow | Rig | | Lef | Dow | Up | Rig | | | Return |
2010-10-26 12:32:45 +00:00
* | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
2013-01-09 13:33:33 +00:00
* | Shift | | | | | | Hom | PgD | PgUlEnd | Fn0 | Shift | |
2010-10-26 12:32:45 +00:00
* ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '
2013-02-07 15:50:51 +00:00
* | Gui | Alt | Space | Alt | Gui |
2010-10-26 12:32:45 +00:00
* ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '
*/
2014-06-12 08:18:44 +00:00
[ 2 ] = \
2013-03-05 06:41:21 +00:00
KEYMAP ( GRV , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 , F10 , F11 , F12 , INS , DEL , \
2011-09-17 13:39:50 +00:00
TAB , HOME , PGDN , UP , PGUP , END , HOME , PGDN , PGUP , END , NO , NO , NO , BSPC , \
LCTL , NO , LEFT , DOWN , RGHT , NO , LEFT , DOWN , UP , RGHT , NO , NO , ENT , \
2015-01-15 20:22:29 +00:00
LSFT , NO , NO , NO , NO , NO , HOME , PGDN , PGUP , END , FN2 , RSFT , TRNS , \
2011-09-17 13:39:50 +00:00
LGUI , LALT , SPC , RALT , RGUI ) ,
2010-10-26 12:32:45 +00:00
2014-06-12 08:18:44 +00:00
/* Layer 3: Mouse mode(IJKL)[Semicolon]
* , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .
* | Esc | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del |
* | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
* | Tab | | | | | | MwL | MwD | McU | MwU | MwR | Wbk | Wfr | Alt - T |
* | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
* | Contro | | | | | | Mb2 | McL | McD | McR | Fn | | Return |
* | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
* | Shift | | | | | Mb3 | Mb2 | Mb1 | Mb4 | Mb5 | | Shift | |
* ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '
* | Gui | Alt | Mb1 | Fn | Fn |
* ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '
2015-01-15 20:22:29 +00:00
* Mc : Mouse Cursor / Mb : Mouse Button / Mw : Mouse Wheel
2014-06-12 08:18:44 +00:00
*/
[ 3 ] = \
KEYMAP ( GRV , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 , F10 , F11 , F12 , INS , DEL , \
2015-04-07 00:29:06 +00:00
FN8 , NO , NO , NO , NO , NO , WH_L , WH_D , MS_U , WH_U , WH_R , FN9 , FN10 , FN8 , \
2015-01-15 20:22:29 +00:00
LCTL , ACL0 , ACL1 , ACL2 , ACL2 , NO , NO , MS_L , MS_D , MS_R , FN3 , NO , ENT , \
LSFT , NO , NO , NO , NO , BTN3 , BTN2 , BTN1 , FN9 , FN10 , NO , RSFT , TRNS , \
2014-06-12 08:18:44 +00:00
LGUI , LALT , BTN1 , TRNS , TRNS ) ,
2015-01-15 20:22:29 +00:00
/* Layer 4: Mouse mode(IJKL)[Space]
2014-06-12 08:18:44 +00:00
* , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .
* | Esc | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del |
* | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
* | Tab | | | | | | MwL | MwD | McU | MwU | MwR | Wbk | Wfr | Alt - T |
* | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
* | Contro | | | | | | Mb2 | McL | McD | McR | Mb1 | | Return |
* | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
* | Shift | | | | | Mb3 | Mb2 | Mb1 | Mb4 | Mb5 | | Shift | |
* ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '
* | Gui | Alt | Mb1 | Fn | Fn |
* ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '
2015-01-15 20:22:29 +00:00
* Mc : Mouse Cursor / Mb : Mouse Button / Mw : Mouse Wheel
2014-06-12 08:18:44 +00:00
*/
[ 4 ] = \
KEYMAP ( GRV , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 , F10 , F11 , F12 , INS , DEL , \
2015-04-07 00:29:06 +00:00
FN8 , NO , NO , NO , NO , NO , WH_L , WH_D , MS_U , WH_U , WH_R , BTN4 , BTN5 , FN8 , \
2014-06-12 08:18:44 +00:00
LCTL , VOLD , VOLU , MUTE , NO , NO , NO , MS_L , MS_D , MS_R , BTN1 , NO , ENT , \
2015-01-15 20:22:29 +00:00
LSFT , NO , NO , NO , NO , BTN3 , BTN2 , BTN1 , FN9 , FN10 , NO , RSFT , TRNS , \
2014-06-12 08:18:44 +00:00
LGUI , LALT , TRNS , TRNS , TRNS ) ,
#if 0
/* Layer 3: Mouse mode(HJKL)[Semicolon]
2010-10-26 12:32:45 +00:00
* , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .
2010-10-28 06:43:51 +00:00
* | Esc | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del |
2010-10-26 12:32:45 +00:00
* | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
2013-02-07 15:50:51 +00:00
* | Tab | | | | | | MwL | MwD | MwU | MwR | | | | Backs |
2010-10-26 12:32:45 +00:00
* | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
2013-02-07 15:50:51 +00:00
* | Contro | | | | | | McL | McD | McU | McR | Fn0 | | Return |
2010-10-26 12:32:45 +00:00
* | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
2013-02-07 15:50:51 +00:00
* | Shift | | | | | Mb3 | Mb2 | Mb1 | Mb4 | Mb5 | | Shift | |
2010-10-26 12:32:45 +00:00
* ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '
2013-02-07 15:50:51 +00:00
* | Gui | Alt | Mb1 | Alt | Fn0 |
2010-10-26 12:32:45 +00:00
* ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '
* Mc : Mouse Cursor / Mb : Mouse Button / Mw : Mouse Wheel
*/
2013-03-05 06:41:21 +00:00
KEYMAP ( GRV , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 , F10 , F11 , F12 , INS , DEL , \
2015-01-15 20:22:29 +00:00
TAB , NO , NO , NO , NO , NO , NO , WH_D , WH_U , RGHT , NO , NO , NO , BSPC , \
2013-02-21 01:15:08 +00:00
LCTL , NO , ACL0 , ACL1 , ACL2 , NO , MS_L , MS_D , MS_U , MS_R , TRNS , QUOT , ENT , \
2015-01-15 20:22:29 +00:00
LSFT , NO , NO , NO , NO , BTN3 , BTN2 , BTN1 , FN9 , FN10 , SLSH , RSFT , NO , \
2013-02-21 01:15:08 +00:00
LGUI , LALT , BTN1 , RALT , TRNS ) ,
2010-10-26 12:32:45 +00:00
2014-06-12 08:18:44 +00:00
/* Layer4: Mouse mode(HJKL)[Space]
* , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .
* | Esc | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del |
* | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
* | Tab | | | | | | MwL | MwD | MwU | MwR | | Wbk | Wfr | Alt - T |
* | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
* | Contro | | | | | | McL | McD | McU | McR | Fn0 | | Return |
* | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
* | Shift | | | | | Mb3 | Mb2 | Mb1 | Mb4 | Mb5 | | Shift | |
* ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '
* | Gui | Alt | Fn0 | Alt | Fn0 |
* ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '
* Mc : Mouse Cursor / Mb : Mouse Button / Mw : Mouse Wheel
*/
KEYMAP ( GRV , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 , F10 , F11 , F12 , INS , DEL , \
2015-01-15 20:22:29 +00:00
FN8 , NO , NO , NO , NO , NO , NO , WH_D , WH_U , RGHT , NO , FN9 , FN10 , FN8 , \
2014-06-12 08:18:44 +00:00
LCTL , NO , ACL0 , ACL1 , ACL2 , NO , MS_L , MS_D , MS_U , MS_R , BTN1 , NO , ENT , \
2015-01-15 20:22:29 +00:00
LSFT , NO , NO , NO , NO , BTN3 , BTN2 , BTN1 , FN9 , FN10 , NO , RSFT , NO , \
2014-06-12 08:18:44 +00:00
LGUI , LALT , TRNS , RALT , RGUI ) ,
# endif
#if 0
/* Layer x: Matias half-qwerty keyboard style[Space]
2010-10-26 12:32:45 +00:00
* , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .
* | - | 0 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | | | | Esc |
* | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
* | Backs | P | O | I | U | Y | T | R | E | W | Q | | | Tab |
* | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
* | Contro | ; | L | K | J | H | G | F | D | S | A | Con | Control |
* | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
* | Shift | / | . | , | M | N | B | V | C | X | Z | Shift | |
* ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '
2013-01-09 13:33:33 +00:00
* | Gui | Alt | Fn0 | Alt | Gui |
2010-10-26 12:32:45 +00:00
* ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '
*/
2011-09-17 13:39:50 +00:00
KEYMAP ( MINS , 0 , 9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 , 1 , NO , NO , NO , ESC , \
BSPC , P , O , I , U , Y , T , R , E , W , Q , NO , NO , TAB , \
LCTL , SCLN , L , K , J , H , G , F , D , S , A , RCTL , RCTL , \
LSFT , SLSH , DOT , COMM , M , N , B , V , C , X , Z , RSFT , NO , \
2013-02-21 01:15:08 +00:00
LGUI , LALT , TRNS , RALT , RGUI ) ,
2014-06-12 08:18:44 +00:00
# endif
2010-10-09 16:50:36 +00:00
} ;
2013-02-01 05:48:11 +00:00
/* id for user defined functions */
enum function_id {
LSHIFT_LPAREN ,
2013-02-25 06:48:34 +00:00
} ;
enum macro_id {
HELLO ,
2013-07-22 22:45:25 +00:00
VOLUP ,
2014-06-12 08:18:44 +00:00
ALT_TAB ,
2013-02-01 05:48:11 +00:00
} ;
2013-02-07 15:50:51 +00:00
2013-02-01 05:48:11 +00:00
/*
* Fn action definition
*/
2013-09-18 15:51:44 +00:00
# ifdef KEYMAP_SECTION_ENABLE
2013-09-03 14:53:19 +00:00
const uint16_t fn_actions [ ] __attribute__ ( ( section ( " .keymap.fn_actions " ) ) ) = {
# else
2013-11-28 23:42:40 +00:00
const uint16_t fn_actions [ ] PROGMEM = {
2013-09-03 14:53:19 +00:00
# endif
2013-04-04 18:27:10 +00:00
[ 0 ] = ACTION_DEFAULT_LAYER_SET ( 0 ) , // Default layer(not used)
[ 1 ] = ACTION_LAYER_TAP_TOGGLE ( 1 ) , // HHKB layer(toggle with 5 taps)
[ 2 ] = ACTION_LAYER_TAP_KEY ( 2 , KC_SLASH ) , // Cursor layer with Slash*
[ 3 ] = ACTION_LAYER_TAP_KEY ( 3 , KC_SCLN ) , // Mousekey layer with Semicolon*
2014-06-12 08:18:44 +00:00
[ 4 ] = ACTION_LAYER_TAP_KEY ( 4 , KC_SPC ) , // Mousekey layer with Space
2015-01-15 20:22:29 +00:00
[ 5 ] = ACTION_LAYER_MOMENTARY ( 4 ) , // Mousekey layer(IJKL)
2014-06-12 08:18:44 +00:00
[ 6 ] = ACTION_MODS_TAP_KEY ( MOD_RCTL , KC_ENT ) , // RControl with tap Enter
[ 7 ] = ACTION_MODS_ONESHOT ( MOD_LSFT ) , // Oneshot Shift
[ 8 ] = ACTION_MACRO ( ALT_TAB ) , // Application switching
2015-01-15 20:22:29 +00:00
[ 9 ] = ACTION_MODS_KEY ( MOD_LALT , KC_LEFT ) ,
[ 10 ] = ACTION_MODS_KEY ( MOD_LALT , KC_RIGHT ) ,
2014-06-12 08:18:44 +00:00
// [x] = ACTION_LMOD_TAP_KEY(KC_LCTL, KC_BSPC), // LControl with tap Backspace
// [x] = ACTION_LMOD_TAP_KEY(KC_LCTL, KC_ESC), // LControl with tap Esc
// [x] = ACTION_FUNCTION_TAP(LSHIFT_LPAREN), // Function: LShift with tap '('
// [x] = ACTION_MACRO(HELLO), // Macro: say hello
// [x] = ACTION_MACRO(VOLUP), // Macro: media key
2013-02-01 05:48:11 +00:00
} ;
2013-02-04 13:53:45 +00:00
/*
* Macro definition
*/
2013-05-20 13:42:29 +00:00
const macro_t * action_get_macro ( keyrecord_t * record , uint8_t id , uint8_t opt )
2013-02-04 13:53:45 +00:00
{
switch ( id ) {
2013-02-25 06:48:34 +00:00
case HELLO :
2014-04-24 02:27:33 +00:00
return ( record - > event . pressed ?
2013-02-25 06:48:34 +00:00
MACRO ( I ( 0 ) , T ( H ) , T ( E ) , T ( L ) , T ( L ) , W ( 255 ) , T ( O ) , END ) :
2013-02-04 13:53:45 +00:00
MACRO_NONE ) ;
2013-07-22 22:45:25 +00:00
case VOLUP :
2014-04-24 02:27:33 +00:00
return ( record - > event . pressed ?
2013-07-22 22:45:25 +00:00
MACRO ( D ( VOLU ) , U ( VOLU ) , END ) :
MACRO_NONE ) ;
2014-06-12 08:18:44 +00:00
case ALT_TAB :
return ( record - > event . pressed ?
MACRO ( D ( LALT ) , D ( TAB ) , END ) :
MACRO ( U ( TAB ) , END ) ) ;
2013-02-04 13:53:45 +00:00
}
2013-02-25 06:48:34 +00:00
return MACRO_NONE ;
2013-02-04 13:53:45 +00:00
}
2013-02-01 05:48:11 +00:00
/*
* user defined action function
*/
2013-02-21 01:15:08 +00:00
void action_function ( keyrecord_t * record , uint8_t id , uint8_t opt )
2013-02-01 05:48:11 +00:00
{
2014-04-24 02:27:33 +00:00
if ( record - > event . pressed ) dprint ( " P " ) ; else dprint ( " R " ) ;
dprintf ( " %d " , record - > tap . count ) ;
if ( record - > tap . interrupted ) dprint ( " i " ) ;
dprint ( " \n " ) ;
2012-12-15 17:32:07 +00:00
2013-02-01 05:48:11 +00:00
switch ( id ) {
case LSHIFT_LPAREN :
2014-04-24 02:27:33 +00:00
// Shift parentheses example: LShft + tap '('
// http://stevelosh.com/blog/2012/10/a-modern-space-cadet/#shift-parentheses
// http://geekhack.org/index.php?topic=41989.msg1304899#msg1304899
if ( record - > event . pressed ) {
if ( record - > tap . count > 0 & & ! record - > tap . interrupted ) {
if ( record - > tap . interrupted ) {
dprint ( " tap interrupted \n " ) ;
register_mods ( MOD_BIT ( KC_LSHIFT ) ) ;
}
2013-02-01 05:48:11 +00:00
} else {
2014-04-24 02:27:33 +00:00
register_mods ( MOD_BIT ( KC_LSHIFT ) ) ;
2013-02-01 05:48:11 +00:00
}
2013-02-26 07:27:09 +00:00
} else {
2014-04-24 02:27:33 +00:00
if ( record - > tap . count > 0 & & ! ( record - > tap . interrupted ) ) {
add_weak_mods ( MOD_BIT ( KC_LSHIFT ) ) ;
2013-11-28 23:42:40 +00:00
send_keyboard_report ( ) ;
2014-04-24 02:27:33 +00:00
register_code ( KC_9 ) ;
unregister_code ( KC_9 ) ;
del_weak_mods ( MOD_BIT ( KC_LSHIFT ) ) ;
2013-11-28 23:42:40 +00:00
send_keyboard_report ( ) ;
2014-04-24 02:27:33 +00:00
record - > tap . count = 0 ; // ad hoc: cancel tap
} else {
unregister_mods ( MOD_BIT ( KC_LSHIFT ) ) ;
2013-02-26 07:27:09 +00:00
}
2013-02-01 05:48:11 +00:00
}
break ;
}
}