forked from qmk/qmk_firmware
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Keymap] new userspace for ibnuda (qmk#8221)
* to ease the maintenance for some boards ibnuda has. * followed ridingqwerty's suggestion on 8821. * folloing drashna's suggestion on qmk's 8221. * following drashn's suggestion on qmk's 8211
- Loading branch information
Showing
10 changed files
with
307 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
#include "combo.h" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
#pragma once | ||
#include "quantum.h" | ||
|
||
// enum for combos. | ||
enum combos { | ||
// left hand combinations. | ||
COLON_COMMA, | ||
COMMA_DOT, | ||
DOT_P, | ||
QUOT_Q, | ||
Q_J, | ||
J_K, | ||
|
||
// right hand combinations. | ||
L_R, | ||
R_C, | ||
C_G, | ||
V_W, | ||
W_M, | ||
|
||
// both hands combinations. | ||
J_W, | ||
}; | ||
|
||
// left hand combinations. | ||
const uint16_t PROGMEM colon_comma_combo[] = {KC_SCLN, KC_COMM, COMBO_END}; | ||
const uint16_t PROGMEM comma_dot_combo[] = {KC_COMM, KC_DOT, COMBO_END}; | ||
const uint16_t PROGMEM dot_p_combo[] = {KC_DOT, KC_P, COMBO_END}; | ||
const uint16_t PROGMEM quot_q_combo[] = {KC_QUOT, KC_Q, COMBO_END}; | ||
const uint16_t PROGMEM q_j_combo[] = {KC_Q, KC_J, COMBO_END}; | ||
const uint16_t PROGMEM j_k_combo[] = {KC_J, KC_K, COMBO_END}; | ||
|
||
// right hand combinations. | ||
const uint16_t PROGMEM l_r_combo[] = {KC_L, KC_R, COMBO_END}; | ||
const uint16_t PROGMEM r_c_combo[] = {KC_R, KC_C, COMBO_END}; | ||
const uint16_t PROGMEM c_g_combo[] = {KC_C, KC_G, COMBO_END}; | ||
const uint16_t PROGMEM v_w_combo[] = {KC_V, KC_W, COMBO_END}; | ||
const uint16_t PROGMEM w_m_combo[] = {KC_W, KC_M, COMBO_END}; | ||
|
||
// both hand combinations. | ||
const uint16_t PROGMEM j_w_combo[] = {KC_J, KC_W, COMBO_END}; | ||
|
||
combo_t key_combos[COMBO_COUNT] = { | ||
// left hand combinations. | ||
[COLON_COMMA] = COMBO(colon_comma_combo, KC_TAB), | ||
[COMMA_DOT] = COMBO(comma_dot_combo, KC_QUES), | ||
[DOT_P] = COMBO(dot_p_combo, KC_UNDS), | ||
[QUOT_Q] = COMBO(quot_q_combo, KC_ENT), | ||
[Q_J] = COMBO(q_j_combo, LCTL(KC_W)), | ||
[J_K] = COMBO(j_k_combo, KC_DELT), | ||
|
||
// right hand combinations. | ||
[L_R] = COMBO(l_r_combo, KC_BSPC), | ||
[R_C] = COMBO(r_c_combo, KC_SLSH), | ||
[C_G] = COMBO(c_g_combo, KC_MINS), | ||
[V_W] = COMBO(v_w_combo, KC_APP), | ||
[W_M] = COMBO(w_m_combo, KC_DELT), | ||
|
||
// both hand combinations. | ||
[J_W] = COMBO(j_w_combo, KC_ENT), | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
#pragma once | ||
|
||
#define COMBO_COUNT 18 | ||
#define COMBO_TERM 100 | ||
|
||
#define IGNORE_MOD_TAP_INTERRUPT | ||
#define PERMISSIVE_HOLD | ||
|
||
#define TAPPING_TERM 200 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
#include "ibnuda.h" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
#pragma once | ||
#include "quantum.h" | ||
|
||
#include "tapdance.h" | ||
#include "wrapper.h" | ||
//#include "combo.h" | ||
|
||
enum { | ||
_BASE, | ||
_LOWER, | ||
_RAISE, | ||
_ADJUST, | ||
}; | ||
|
||
// thumb keys. | ||
#define ALT_ENT ALT_T(KC_ENT) | ||
#define SFT_ESC SFT_T(KC_ESC) | ||
|
||
// home row mods. | ||
#define CT_O LCTL_T(KC_O) | ||
#define CT_N RCTL_T(KC_N) | ||
#define SH_A LSFT_T(KC_A) | ||
#define SH_S RSFT_T(KC_S) | ||
#define AL_E LALT_T(KC_E) | ||
#define AL_T RALT_T(KC_T) | ||
#define GU_I LGUI_T(KC_I) | ||
#define GU_D RGUI_T(KC_D) | ||
|
||
// layer toggle. | ||
#define LW_I LT(_LOWER, KC_I) | ||
#define LW_BSPC LT(_LOWER, KC_BSPC) | ||
#define RS_SPC LT(_RAISE, KC_SPC) | ||
#define RS_D LT(_RAISE, KC_D) | ||
|
||
// idk, man. not used, i guess. | ||
#define ADDDD MO(_ADJUST) | ||
|
||
// common shortcuts for windows and linux that i use. | ||
#define NXTTAB LCTL(KC_PGDN) | ||
#define PRVTAB LCTL(KC_PGUP) | ||
#define UPTAB LCTL(LSFT(KC_PGUP)) | ||
#define DNTAB LCTL(LSFT(KC_PGDN)) | ||
#define NXTWIN LALT(KC_TAB) | ||
#define PRVWIN LALT(LSFT(KC_TAB)) | ||
#define CALDL LCTL(LALT(KC_DELT)) | ||
#define TSKMGR LCTL(LSFT(KC_ESC)) | ||
#define EXPLR LGUI(KC_E) | ||
#define LCKGUI LGUI(KC_L) | ||
#define CONPST LSFT(KC_INS) | ||
#define CLSGUI LALT(KC_F4) | ||
|
||
// tap dances | ||
#define CTL_DLT TD(TD_DLT_CTLDLT) | ||
#define SM_CLN TD(TD_SCLN_CLN) | ||
#define LFT_TMB TD(TD_LEFT_THUMB) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
Copyright 2020 Ibnu D. Aji <[email protected]> @ibnuda | ||
|
||
This program is free software: you can redistribute it and/or modify | ||
it under the terms of the GNU General Public License as published by | ||
the Free Software Foundation, either version 2 of the License, or | ||
(at your option) any later version. | ||
|
||
This program is distributed in the hope that it will be useful, | ||
but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
GNU General Public License for more details. | ||
|
||
You should have received a copy of the GNU General Public License | ||
along with this program. If not, see <http://www.gnu.org/licenses/>. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
COMBO_ENABLE = yes | ||
COMMAND_ENABLE = yes | ||
CONSOLE_ENABLE = yes | ||
TAP_DANCE_ENABLE = yes | ||
|
||
SRC += ibnuda.c | ||
|
||
ifeq ($(strip $(TAP_DANCE_ENABLE)), yes) | ||
SRC += tapdance.c | ||
endif | ||
|
||
ifeq ($(strip $(COMBO_ENABLE)), yes) | ||
SRC += combo.c | ||
endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,83 @@ | ||
#include "tapdance.h" | ||
|
||
static td_state_t td_state; | ||
|
||
void dance_dlt_finished(qk_tap_dance_state_t *state, void *user_data) { | ||
if (state->count == 1) { | ||
register_code16(KC_DELT); | ||
} else { | ||
register_code16(C(KC_DELT)); | ||
} | ||
} | ||
|
||
void dance_dlt_reset(qk_tap_dance_state_t *state, void *user_data) { | ||
if (state->count == 1) { | ||
unregister_code16(KC_DELT); | ||
} else { | ||
unregister_code16(C(KC_DELT)); | ||
} | ||
} | ||
|
||
void dance_cln_finished(qk_tap_dance_state_t *state, void *user_data) { | ||
if (state->count == 1) { | ||
register_code(KC_LSFT); | ||
} | ||
register_code(KC_SCLN); | ||
} | ||
|
||
void dance_cln_reset(qk_tap_dance_state_t *state, void *user_data) { | ||
if (state->count == 1) { | ||
unregister_code(KC_LSFT); | ||
} | ||
unregister_code(KC_SCLN); | ||
} | ||
|
||
int current_dance(qk_tap_dance_state_t *state) { | ||
if (state->count == 1) { | ||
if (state->interrupted || !state->pressed) { | ||
return SINGLE_TAP; | ||
} else { | ||
return SINGLE_HOLD; | ||
} | ||
} | ||
if (state->count == 2) { | ||
return DOUBLE_TAP; | ||
} else { | ||
return 3; | ||
} | ||
} | ||
|
||
void dance_tmb_finished(qk_tap_dance_state_t *state, void *user_data) { | ||
td_state = current_dance(state); | ||
switch (td_state) { | ||
case SINGLE_TAP: | ||
register_code16(KC_ESC); | ||
break; | ||
case SINGLE_HOLD: | ||
register_mods(MOD_BIT(KC_LSFT)); | ||
break; | ||
case DOUBLE_TAP: | ||
register_code16(KC_DELT); | ||
break; | ||
} | ||
} | ||
|
||
void dance_tmb_reset(qk_tap_dance_state_t *state, void *user_data) { | ||
switch (td_state) { | ||
case SINGLE_TAP: | ||
unregister_code16(KC_ESC); | ||
break; | ||
case SINGLE_HOLD: | ||
unregister_mods(MOD_BIT(KC_LSFT)); | ||
break; | ||
case DOUBLE_TAP: | ||
unregister_code16(KC_DELT); | ||
break; | ||
} | ||
} | ||
|
||
qk_tap_dance_action_t tap_dance_actions[] = { | ||
[TD_DLT_CTLDLT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_dlt_finished, dance_dlt_reset), | ||
[TD_SCLN_CLN] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_cln_finished, dance_cln_reset), | ||
[TD_LEFT_THUMB] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_tmb_finished, dance_tmb_reset), | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
#pragma once | ||
#include "ibnuda.h" | ||
|
||
#ifdef TAP_DANCE_ENABLE | ||
typedef enum { | ||
SINGLE_TAP, | ||
SINGLE_HOLD, | ||
DOUBLE_TAP, | ||
} td_state_t; | ||
|
||
int current_dance(qk_tap_dance_state_t *state); | ||
|
||
void dance_tmb_finished(qk_tap_dance_state_t *state, void *user_data); | ||
void dance_tmb_reset(qk_tap_dance_state_t *state, void *user_data); | ||
|
||
// enum for tap dances. | ||
enum { | ||
TD_DLT_CTLDLT = 0, | ||
TD_SCLN_CLN, | ||
TD_LEFT_THUMB, | ||
}; | ||
|
||
#endif // TAP_DANCE_ENABLE |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
#pragma once | ||
#include "ibnuda.h" | ||
|
||
/* | ||
Since our quirky block definitions are basically a list of comma separated | ||
arguments, we need a wrapper in order for these definitions to be | ||
expanded before being used as arguments to the LAYOUT_xxx macro. | ||
*/ | ||
#if (!defined(LAYOUT) && defined(KEYMAP)) | ||
# define LAYOUT KEYMAP | ||
#endif | ||
|
||
#define KEYMAP_wrapper(...) LAYOUT(__VA_ARGS__) | ||
#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__) | ||
|
||
#define ________________DVORAK_L1_______________ KC_SCLN,KC_COMM,KC_DOT, KC_P, KC_Y | ||
#define ________________DVORAK_L2_______________ SH_A, CT_O, AL_E, KC_U, GU_I | ||
#define ________________DVORAK_L3_______________ KC_QUOT,KC_Q, KC_J, KC_K, KC_X | ||
|
||
#define ________________DVORAK_R1_______________ KC_F, KC_G, KC_C, KC_R, KC_L | ||
#define ________________DVORAK_R2_______________ GU_D, KC_H, AL_T, CT_N, SH_S | ||
#define ________________DVORAK_R3_______________ KC_B, KC_M, KC_W, KC_V, KC_Z | ||
|
||
#define ________________RAISE_L1________________ KC_EXLM,KC_AT, KC_UP, KC_LCBR,KC_RCBR | ||
#define ________________RAISE_L2________________ KC_HASH,KC_LEFT,KC_DOWN,KC_RGHT,KC_DLR | ||
#define ________________RAISE_L3________________ KC_LBRC,KC_RBRC,KC_LPRN,KC_RPRN,KC_AMPR | ||
|
||
#define ________________RAISE_R1________________ KC_BSLS,KC_7, KC_8, KC_9, KC_ASTR | ||
#define ________________RAISE_R2________________ KC_EQL, KC_4, KC_5, KC_6, KC_0 | ||
#define ________________RAISE_R3________________ KC_GRV, KC_1, KC_2, KC_3, KC_PLUS | ||
|
||
#define ________________LOWER_L1________________ KC_ESC, KC_QUES,KC_UNDS,KC_F1, KC_F2 | ||
#define ________________LOWER_L2________________ KC_LSFT,KC_TAB, KC_PGUP,KC_F5, KC_F6 | ||
#define ________________LOWER_L3________________ KC_CLCK,KC_SLCK,KC_PGDN,KC_F9, KC_F10 | ||
|
||
#define ________________LOWER_R1________________ KC_F3, KC_F4, KC_MINS,KC_SLSH,KC_BSPC | ||
#define ________________LOWER_R2________________ KC_F7, KC_F8, KC_HOME,KC_LALT,KC_ENT | ||
#define ________________LOWER_R3________________ KC_F11, KC_F12, KC_END, KC_INS, KC_SLSH | ||
|
||
#define ________________ADJUST_L1_______________ _______,EXPLR, KC_UP, PRVTAB, PRVWIN | ||
#define ________________ADJUST_L2_______________ TSKMGR, KC_LEFT,KC_DOWN,KC_RGHT,UPTAB | ||
#define ________________ADJUST_L3_______________ _______,CLSGUI, _______,CONPST, RESET | ||
|
||
#define ________________ADJUST_R1_______________ NXTWIN, NXTTAB, _______,_______,LCKGUI | ||
#define ________________ADJUST_R2_______________ DNTAB, KC_ENT, KC_LGUI,_______,CALDL | ||
#define ________________ADJUST_R3_______________ _______,_______,_______,_______,_______ |