A keyboards/keyball/keyball39/keymaps/init/config.h => keyboards/keyball/keyball39/keymaps/init/config.h +50 -0
@@ 0,0 1,50 @@
+/*
+This is the c configuration file for the keymap
+
+Copyright 2022 @Yowkees
+Copyright 2022 MURAOKA Taro (aka KoRoN, @kaoriya)
+
+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/>.
+*/
+
+#pragma once
+
+#ifdef RGBLIGHT_ENABLE
+# define RGBLIGHT_EFFECT_BREATHING
+# define RGBLIGHT_EFFECT_RAINBOW_MOOD
+# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
+# define RGBLIGHT_EFFECT_SNAKE
+# define RGBLIGHT_EFFECT_KNIGHT
+# define RGBLIGHT_EFFECT_CHRISTMAS
+# define RGBLIGHT_EFFECT_STATIC_GRADIENT
+# define RGBLIGHT_EFFECT_RGB_TEST
+# define RGBLIGHT_EFFECT_ALTERNATING
+# define RGBLIGHT_EFFECT_TWINKLE
+#endif
+
+#define TAP_CODE_DELAY 5
+
+// Home row mods settings
+#define TAPPING_TERM 200
+#define QUICK_TAP_TERM 0
+#define PERMISSIVE_HOLD
+#define BOTH_SHIFTS_TURNS_ON_CAPS_WORD
+
+#define QUICK_TAP_TERM_PER_KEY
+
+// Auto mouse settings
+#define POINTING_DEVICE_AUTO_MOUSE_ENABLE
+#define AUTO_MOUSE_DEFAULT_LAYER 3
+#define AUTO_MOUSE_TIME 490
+#define AUTO_MOUSE_THRESHOLD 5
A keyboards/keyball/keyball39/keymaps/init/keymap.c => keyboards/keyball/keyball39/keymaps/init/keymap.c +221 -0
@@ 0,0 1,221 @@
+/*
+Copyright 2022 @Yowkees
+Copyright 2022 MURAOKA Taro (aka KoRoN, @kaoriya)
+
+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/>.
+*/
+
+#include QMK_KEYBOARD_H
+
+#include "quantum.h"
+
+// Home row mods
+#define HR_A KC_A
+#define HR_S MT(MOD_LALT, KC_S)
+#define HR_D MT(MOD_LSFT, KC_D)
+#define HR_F MT(MOD_LCTL, KC_F)
+
+#define HR_J MT(MOD_RCTL, KC_J)
+#define HR_K MT(MOD_RSFT, KC_K)
+#define HR_L MT(MOD_RALT, KC_L)
+#define HR_SCLN KC_SCLN
+
+
+// Custom shortcuts
+#define KC_EUNDO LCTL(LSFT(KC_MINUS))
+#define KC_AENTER LCTL(LALT(KC_ENT))
+#define WAYFULL LGUI(LSFT(KC_F))
+#define WAYHALF LGUI(LSFT(KC_D))
+#define KC_CAD LCTL(LALT(KC_DEL))
+
+enum {
+ TD_UNDO,
+};
+
+// Combo for caps word
+const uint16_t PROGMEM capsword_combo[] = {HR_D, HR_K, COMBO_END};
+
+combo_t key_combos[] = {
+ COMBO(capsword_combo, QK_CAPS_WORD_TOGGLE),
+};
+
+tap_dance_action_t tap_dance_actions[] = {
+ [TD_UNDO] = ACTION_TAP_DANCE_DOUBLE(KC_U, KC_EUNDO),
+};
+
+// clang-format off
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ // Base layer
+ [0] = LAYOUT_universal(
+ KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , TD(TD_UNDO), KC_I , KC_O , KC_P ,
+ HR_A , HR_S , HR_D , HR_F , KC_G , KC_H , HR_J , HR_K , HR_L , HR_SCLN ,
+ KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH ,
+ KC_ESC , KC_TAB , MO(5) , LT(3,KC_TAB), LT(4,KC_BSPC), KC_LGUI, MT(MOD_RGUI, KC_ENT), LT(4,KC_SPC), _______, _______, _______, KC_QUOT
+ ),
+
+ // Transparent layer for HR_L GUI+N behavior
+ [1] = LAYOUT_universal(
+ _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ ,
+ _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ ,
+ _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ ,
+ _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______
+ ),
+
+ // Gaming layer (removes home row mods via layer toggle)
+ [2] = LAYOUT_universal(
+ _______ , _______ , KC_E , _______ , _______ , _______ , KC_U , _______ , _______ , _______ ,
+ KC_A , KC_S , KC_D , KC_F , _______ , _______ , KC_J , KC_K , KC_L , KC_SCLN ,
+ _______ , _______ , _______ , _______ , KC_B , _______ , _______ , _______ , _______ , _______ ,
+ _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______
+ ),
+
+ // Mouse + Numpad layer (via left thumb)
+ [3] = LAYOUT_universal(
+ _______ , _______ , _______ , _______ , _______ , KC_SLSH , KC_7 , KC_8 , KC_9 , KC_ASTR ,
+ _______ , _______ , _______ , _______ , _______ , KC_MINS , KC_4 , KC_5 , KC_6 , KC_PLUS ,
+ SCRL_TO , SCRL_MO , KC_BTN2 , KC_BTN1 , _______ , KC_0 , KC_1 , KC_2 , KC_3 , KC_DOT ,
+ _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______
+ ),
+
+ // Symbols layer (via thumb keys)
+ [4] = LAYOUT_universal(
+ KC_GRV , KC_TILDE , KC_HASH , KC_AMPR , KC_PIPE, KC_CIRC , KC_LCBR , KC_RCBR , KC_LBRC , KC_RBRC ,
+ KC_EXLM , KC_UNDS , KC_COLN , KC_EQL , KC_DLR , KC_AT , KC_LPRN , KC_RPRN , KC_UNDS , KC_SCLN ,
+ KC_PERC , KC_QUES , KC_ASTR , KC_PLUS , KC_BSLS , KC_SLSH , KC_MINUS , KC_LT , KC_GT , KC_DQT ,
+ _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______
+ ),
+
+ // Nav/Settings layer
+ [5] = LAYOUT_universal(
+ RGB_TOG , AML_TO , AML_I50 , AML_D50 , TG(1) , _______ , SSNP_VRT , SSNP_HOR , SSNP_FRE , QK_BOOT ,
+ WAYHALF , WAYFULL , KC_CAD , KC_AENTER, SCRL_DVI, CPI_I100, KC_HOME , KC_UP , KC_END , _______ ,
+ RGB_MOD , RGB_RMOD , RGB_VAI , RGB_VAD , SCRL_DVD, CPI_D100, KC_LEFT , KC_DOWN , KC_RGHT , _______ ,
+ QK_BOOT , KBC_RST , _______ , _______ , _______ , _______ , _______ , C(S(KC_TAB)), C(KC_TAB), KC_PGUP , KC_PGDN , KBC_SAVE
+ ),
+};
+// clang-format on
+
+layer_state_t layer_state_set_user(layer_state_t state) {
+ // Auto enable scroll mode on layer 5 (nav layer)
+ // Only force scroll ON for layer 5; let SCRL_TO handle toggling otherwise
+ if (get_highest_layer(state) == 5) {
+ keyball_set_scroll_mode(true);
+ }
+ return state;
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case HR_L:
+ if (record->event.pressed && record->tap.count && layer_state_is(1)) {
+ uint8_t mods = get_mods();
+ uint8_t weak = get_weak_mods();
+ uint8_t oneshot = get_oneshot_mods();
+
+ if ((mods | weak | oneshot) & MOD_MASK_GUI) {
+ // GUI is already held; just tap N so the host sees GUI+N.
+ tap_code(KC_N);
+ return false;
+ }
+ }
+ break;
+ }
+
+ return true;
+}
+
+bool caps_word_press_user(uint16_t keycode) {
+ switch (keycode) {
+ // Keycodes that continue Caps Word, with shift applied.
+ case KC_A ... KC_Z:
+ case TD(TD_UNDO): // Treat tap dance U like a letter
+ add_weak_mods(MOD_BIT(KC_LSFT));
+ return true;
+
+ // Keycodes that continue Caps Word, without shifting.
+ case KC_1 ... KC_0:
+ case KC_BSPC:
+ case KC_DEL:
+ case KC_UNDS:
+ case KC_MINS:
+ return true;
+
+ default:
+ return false; // Deactivate Caps Word.
+ }
+}
+
+// Override scroll direction (invert vertical scroll) with accumulator
+// Adjust SCROLL_DIVISOR to control speed (higher = slower)
+#define SCROLL_DIVISOR 4
+
+void keyball_on_apply_motion_to_mouse_scroll(report_mouse_t *report, report_mouse_t *output, bool is_left) {
+ static int16_t acc_h = 0;
+ static int16_t acc_v = 0;
+
+ // Accumulate movement
+ acc_h += report->x;
+ acc_v += report->y;
+
+ // Consume input
+ report->x = 0;
+ report->y = 0;
+
+ // Calculate scroll output
+ int8_t h = acc_h / SCROLL_DIVISOR;
+ int8_t v = acc_v / SCROLL_DIVISOR;
+
+ // Keep remainder for next time
+ acc_h -= h * SCROLL_DIVISOR;
+ acc_v -= v * SCROLL_DIVISOR;
+
+ // Apply to output (inverted)
+ output->h = is_left ? h : -h;
+ output->v = is_left ? v : -v;
+
+ // scroll snapping
+ switch (keyball_get_scrollsnap_mode()) {
+ case KEYBALL_SCROLLSNAP_MODE_VERTICAL:
+ output->h = 0;
+ break;
+ case KEYBALL_SCROLLSNAP_MODE_HORIZONTAL:
+ output->v = 0;
+ break;
+ default:
+ // pass by without doing anything
+ break;
+ }
+}
+
+uint16_t get_quick_tap_term(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case LT(4, KC_BSPC):
+ return TAPPING_TERM; // Enable quick-tap for backspace
+ case HR_F:
+ return TAPPING_TERM; // Enable quick-tap for Ctrl+F repeating
+ default:
+ return 0; // Disabled for everything else (home row mods)
+ }
+}
+
+#ifdef OLED_ENABLE
+
+# include "lib/oledkit/oledkit.h"
+
+void oledkit_render_info_user(void) {
+ keyball_oled_render_keyinfo();
+ keyball_oled_render_ballinfo();
+ keyball_oled_render_layerinfo();
+}
+#endif
A keyboards/keyball/keyball39/keymaps/init/rules.mk => keyboards/keyball/keyball39/keymaps/init/rules.mk +7 -0
@@ 0,0 1,7 @@
+RGBLIGHT_ENABLE = yes
+OLED_ENABLE = yes
+CAPS_WORD_ENABLE = yes
+TAP_DANCE_ENABLE = yes
+COMBO_ENABLE = yes
+POINTING_DEVICE_ENABLE = yes
+
A keyboards/zsa/voyager/keymaps/ball/config.h => keyboards/zsa/voyager/keymaps/ball/config.h +18 -0
@@ 0,0 1,18 @@
+/* #define TAPPING_TERM 200 */
+#define PERMISSIVE_HOLD
+// #define TAPPING_FORCE_HOLD
+#define BOTH_SHIFTS_TURNS_ON_CAPS_WORD
+
+#define TAPPING_TERM_PER_KEY
+#define POINTING_DEVICE_HIRES_SCROLL_ENABLE
+#define POINTING_DEVICE_HIRES_SCROLL_EXPONENT 0
+#define MOUSE_EXTENDED_REPORT
+#define WHEEL_EXTENDED_REPORT
+#define NAVIGATOR_SCROLL_DIVIDER 10
+#define NAVIGATOR_SCROLL_INVERT_Y
+
+#define POINTING_DEVICE_AUTO_MOUSE_ENABLE
+#define AUTO_MOUSE_DEFAULT_LAYER 2
+#define AUTO_MOUSE_TIME 490
+#define AUTO_MOUSE_THRESHOLD 5
+#define AUTO_MOUSE_SCROLL_THRESHOLD AUTO_MOUSE_THRESHOLD / NAVIGATOR_SCROLL_DIVIDER
A keyboards/zsa/voyager/keymaps/ball/keymap.c => keyboards/zsa/voyager/keymaps/ball/keymap.c +130 -0
@@ 0,0 1,130 @@
+// Copyright 2023 ZSA Technology Labs, Inc <@zsa>
+// Copyright 2023 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+enum custom_keycodes {
+ DRAG_SCROLL = SAFE_RANGE,
+ NAVIGATOR_INC_CPI,
+ NAVIGATOR_DEC_CPI,
+};
+
+#define HR_A KC_A
+#define HR_S MT(MOD_LALT, KC_S)
+#define HR_D MT(MOD_LSFT, KC_D)
+#define HR_F MT(MOD_LCTL, KC_F)
+
+#define HR_J MT(MOD_RCTL, KC_J)
+#define HR_K MT(MOD_RSFT, KC_K)
+#define HR_L MT(MOD_RALT, KC_L)
+#define HR_SCLN KC_SCLN
+
+#define LR_V LT(3, KC_V)
+#define LR_B LT(2, KC_B)
+
+#define KC_EUNDO LCTL(LSFT(KC_MINUS))
+#define KC_AENTER LCTL(LALT(KC_ENT))
+#define WAYFULL LGUI(LSFT(KC_F))
+#define WAYHALF LGUI(LSFT(KC_D))
+#define KC_CAD LCTL(LALT(KC_DEL))
+
+enum {
+ TD_UNDO,
+};
+
+// Combo for caps word
+const uint16_t PROGMEM capsword_combo[] = {HR_D, HR_K, COMBO_END};
+
+combo_t key_combos[] = {
+ COMBO(capsword_combo, QK_CAPS_WORD_TOGGLE),
+};
+
+tap_dance_action_t tap_dance_actions[] = {
+ [TD_UNDO] = ACTION_TAP_DANCE_DOUBLE(KC_U, KC_EUNDO),
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT(
+ KC_EQUAL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, TD(TD_UNDO), KC_I, KC_O, KC_P, KC_BSLS,
+ KC_ESCAPE,HR_A, HR_S, HR_D, HR_F, KC_G, KC_H, HR_J, HR_K, HR_L, HR_SCLN, RSFT_T(KC_QUOT),
+ MO(5), KC_Z, KC_X, KC_C, LR_V, LR_B, KC_N, KC_M, KC_COMMA,KC_DOT, KC_SLSH, TG(1),
+ LT(4, KC_BSPC), KC_LGUI, MT(MOD_RGUI, KC_ENT), LT(4, KC_SPC)
+ ),
+ [1] = LAYOUT(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______
+ ),
+ // Mouse layer
+ [2] = LAYOUT(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, NAVIGATOR_DEC_CPI, NAVIGATOR_INC_CPI, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, DRAG_SCROLL, KC_MS_BTN2, KC_MS_BTN1, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______
+ ),
+ [3] = LAYOUT(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, KC_SLSH, KC_7, KC_8, KC_9, KC_ASTR, _______,
+ _______, _______, _______, _______, _______, _______, KC_MINS, KC_4, KC_5, KC_6, KC_PLUS, _______,
+ _______, _______, _______, _______, _______, _______, KC_0, KC_1, KC_2, KC_3, KC_DOT, _______,
+ _______, _______, _______, _______
+ ),
+ [4] = LAYOUT(
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
+ KC_GRV, KC_GRV, KC_TILDE,KC_HASH, KC_AMPR, KC_PIPE, KC_CIRC, KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, KC_F12,
+ KC_EUNDO,KC_EXLM, KC_UNDS, KC_COLN, KC_EQL, KC_DLR, KC_AT, KC_LPRN, KC_RPRN, KC_UNDS, KC_SCLN, KC_BSPC,
+ _______, KC_PERC, KC_QUES, KC_ASTR, KC_PLUS, KC_BSLS, KC_SLSH, KC_MINUS,KC_LT, KC_GT, KC_DQT, KC_ENT,
+ MO(5), _______, _______, _______
+ ),
+ [5] = LAYOUT(
+ RM_TOGG, QK_KB, RM_NEXT, RGB_M_P, RM_VALD, RM_VALU, _______, _______, _______, _______, _______, QK_BOOT,
+ _______, _______, _______, _______, _______, _______, KC_PGUP, KC_HOME, KC_UP, KC_END, _______, _______,
+ _______, WAYHALF, WAYFULL, KC_CAD, KC_AENTER, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, C(S(KC_TAB)), C(KC_TAB), _______, _______, _______,
+ _______, _______, _______, _______
+ ),
+};
+
+extern bool set_scrolling;
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case HR_L:
+ if (record->event.pressed && record->tap.count && layer_state_is(1)) {
+ uint8_t mods = get_mods();
+ uint8_t weak = get_weak_mods();
+ uint8_t oneshot = get_oneshot_mods();
+
+ if ((mods | weak | oneshot) & MOD_MASK_GUI) {
+ // GUI is already held; just tap N so the host sees GUI+N.
+ tap_code(KC_N);
+ return false;
+ }
+ }
+ break;
+ case DRAG_SCROLL:
+ set_scrolling = record->event.pressed;
+ return false;
+ case NAVIGATOR_INC_CPI:
+ if (record->event.pressed) {
+ pointing_device_set_cpi(1);
+ }
+ return false;
+ case NAVIGATOR_DEC_CPI:
+ if (record->event.pressed) {
+ pointing_device_set_cpi(0);
+ }
+ return false;
+ }
+
+ return true;
+}
+
+void pointing_device_init_user(void) {
+ set_auto_mouse_enable(true);
+}
A keyboards/zsa/voyager/keymaps/ball/keymap.json => keyboards/zsa/voyager/keymaps/ball/keymap.json +5 -0
@@ 0,0 1,5 @@
+{
+ "modules": [
+ "zsa/defaults"
+ ]
+}
A keyboards/zsa/voyager/keymaps/ball/rules.mk => keyboards/zsa/voyager/keymaps/ball/rules.mk +5 -0
@@ 0,0 1,5 @@
+CAPS_WORD_ENABLE = yes
+TAP_DANCE_ENABLE = yes
+COMBO_ENABLE = yes
+POINTING_DEVICE_ENABLE = yes
+POINTING_DEVICE_DRIVER = navigator_trackball
M keyboards/zsa/voyager/keymaps/mod/keymap.c => keyboards/zsa/voyager/keymaps/mod/keymap.c +21 -5
@@ 14,6 14,8 @@
#define HR_L MT(MOD_RALT, KC_L)
#define HR_SCLN KC_SCLN
+#define LR_E LT(2, KC_E)
+
#define KC_EUNDO LCTL(LSFT(KC_MINUS))
#define KC_AENTER LCTL(LALT(KC_ENT))
#define WAYFULL LGUI(LSFT(KC_F))
@@ 24,6 26,13 @@ enum {
TD_UNDO,
};
+// Combo for caps word
+const uint16_t PROGMEM capsword_combo[] = {HR_D, HR_K, COMBO_END};
+
+combo_t key_combos[] = {
+ COMBO(capsword_combo, QK_CAPS_WORD_TOGGLE),
+};
+
tap_dance_action_t tap_dance_actions[] = {
[TD_UNDO] = ACTION_TAP_DANCE_DOUBLE(KC_U, KC_EUNDO),
};
@@ 31,10 40,10 @@ tap_dance_action_t tap_dance_actions[] = {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_EQUAL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, TD(TD_UNDO), KC_I, KC_O, KC_P, KC_BSLS,
+ KC_TAB, KC_Q, KC_W, LR_E, KC_R, KC_T, KC_Y, TD(TD_UNDO), KC_I, KC_O, KC_P, KC_BSLS,
KC_ESCAPE,HR_A, HR_S, HR_D, HR_F, KC_G, KC_H, HR_J, HR_K, HR_L, HR_SCLN, RSFT_T(KC_QUOT),
- MO(3), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA,KC_DOT, KC_SLSH, TG(1),
- LT(2, KC_BSPC), KC_LGUI, MT(MOD_RGUI, KC_ENT), LT(2, KC_SPC)
+ MO(4), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA,KC_DOT, KC_SLSH, TG(1),
+ LT(3, KC_BSPC), KC_LGUI, MT(MOD_RGUI, KC_ENT), LT(3, KC_SPC)
),
[1] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@@ 44,13 53,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______
),
[2] = LAYOUT(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, KC_SLSH, KC_7, KC_8, KC_9, KC_ASTR, _______,
+ _______, _______, _______, _______, _______, _______, KC_MINS, KC_4, KC_5, KC_6, KC_PLUS, _______,
+ _______, _______, _______, _______, _______, _______, KC_0, KC_1, KC_2, KC_3, KC_DOT, _______,
+ _______, _______, _______, _______
+ ),
+ [3] = LAYOUT(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
KC_GRV, KC_GRV, KC_TILDE,KC_HASH, KC_AMPR, KC_PIPE, KC_CIRC, KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, KC_F12,
KC_EUNDO,KC_EXLM, KC_UNDS, KC_COLN, KC_EQL, KC_DLR, KC_AT, KC_LPRN, KC_RPRN, KC_UNDS, KC_SCLN, KC_BSPC,
_______, KC_PERC, KC_QUES, KC_ASTR, KC_PLUS, KC_BSLS, KC_SLSH, KC_MINUS,KC_LT, KC_GT, KC_DQT, KC_ENT,
- MO(3), _______, _______, _______
+ MO(4), _______, _______, _______
),
- [3] = LAYOUT(
+ [4] = LAYOUT(
RM_TOGG, QK_KB, RM_NEXT, RGB_M_P, RM_VALD, RM_VALU, _______, _______, _______, _______, _______, QK_BOOT,
_______, _______, _______, _______, _______, _______, KC_PGUP, KC_HOME, KC_UP, KC_END, _______, _______,
_______, WAYHALF, WAYFULL, KC_CAD, KC_AENTER, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______,
M keyboards/zsa/voyager/keymaps/mod/rules.mk => keyboards/zsa/voyager/keymaps/mod/rules.mk +1 -0
@@ 1,2 1,3 @@
CAPS_WORD_ENABLE = yes
TAP_DANCE_ENABLE = yes
+COMBO_ENABLE = yes
M qmk.json => qmk.json +2 -1
@@ 3,6 3,7 @@
"build_targets": [
["ploopyco/trackball/rev1_007", "pers"],
["zsa/voyager", "pers"],
- ["ploopyco/trackball/rev1_005", "pers"]
+ ["ploopyco/trackball/rev1_005", "pers"],
+ ["keyball/keyball39", "init"]
]
}=
\ No newline at end of file