mirror of
				https://github.com/mfulz/qmk_firmware.git
				synced 2025-11-04 07:12:33 +01:00 
			
		
		
		
	Late9 keymaps update, added VIA support (#22801)
This commit is contained in:
		
							parent
							
								
									bc7d1cc397
								
							
						
					
					
						commit
						8df2e70ae4
					
				@ -5,11 +5,9 @@ The LATE-9 is a multi-tap input keyboard based on mobile phones from the late '9
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
See the project repository for gerbers.
 | 
			
		||||
 | 
			
		||||
* Keyboard maintainer: [rookiebwoy](https://github.com/rookiebwoy)
 | 
			
		||||
* Hardware supported: ProMicro, _Elite-C (not tested)_
 | 
			
		||||
* Project repository: [LATE-9 on github](https://github.com/rookiebwoy/late-9)
 | 
			
		||||
* Hardware Availability: LATE-9 is open source, check the [project repository](https://github.com/rookiebwoy/late-9) for gerbers.
 | 
			
		||||
 | 
			
		||||
Make example for this keyboard (after setting up your build environment):
 | 
			
		||||
 | 
			
		||||
@ -19,9 +17,9 @@ Flashing example for this keyboard:
 | 
			
		||||
 | 
			
		||||
    make rookiebwoy/late9/rev1:default:flash
 | 
			
		||||
 | 
			
		||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
 | 
			
		||||
 | 
			
		||||
When asked by the terminal, short with a metal wire the pins on the backside of the board highlighted as `RST` (one is the `RESET` and the other one is `GROUND`) to enter the bootloader and let the OS detects the device.
 | 
			
		||||
After installing this firmware you can use Bootmagic to enter the bootloader while plugging in your LATE-9. By default it's the button on the upper-left of the keyboard.
 | 
			
		||||
 | 
			
		||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
 | 
			
		||||
## Bootloader
 | 
			
		||||
 | 
			
		||||
When asked by the terminal, short with a metal wire the pins on the backside of the board highlighted as `RST` (one is the `RESET` and the other one is `GROUND`) to enter the bootloader and let the OS detects the device.\
 | 
			
		||||
After installing this firmware you can use Bootmagic to enter the bootloader while plugging in your LATE-9. By default it's the button on the upper-left of the keyboard.
 | 
			
		||||
@ -4,8 +4,8 @@
 | 
			
		||||
    "url": "https://github.com/rookiebwoy/late-9)",
 | 
			
		||||
    "maintainer": "rookiebwoy",
 | 
			
		||||
    "usb": {
 | 
			
		||||
        "vid": "0xFEED",
 | 
			
		||||
        "pid": "0x3777",
 | 
			
		||||
        "vid": "0x6961",
 | 
			
		||||
        "pid": "0x3032",
 | 
			
		||||
        "device_version": "0.1.0"
 | 
			
		||||
    },
 | 
			
		||||
    "tapping": {
 | 
			
		||||
@ -19,6 +19,11 @@
 | 
			
		||||
        "rows": ["B4", "E6", "D7", "B3", "B2", "B6"]
 | 
			
		||||
    },
 | 
			
		||||
    "diode_direction": "ROW2COL",
 | 
			
		||||
    "features": {
 | 
			
		||||
      "bootmagic": true,
 | 
			
		||||
      "nkro": true,
 | 
			
		||||
      "oled": true
 | 
			
		||||
    },
 | 
			
		||||
    "processor": "atmega32u4",
 | 
			
		||||
    "bootloader": "caterina",
 | 
			
		||||
    "layouts": {
 | 
			
		||||
 | 
			
		||||
@ -22,23 +22,23 @@ enum layers {
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
/* Keymap _BL: Base Layer
 | 
			
		||||
/* BL: Base Layer
 | 
			
		||||
 * ,-----------------------.
 | 
			
		||||
 * |MO(OP) | ↑     | BSPC  |
 | 
			
		||||
 * |       |       |       |
 | 
			
		||||
 * |-------|-------|-------|
 | 
			
		||||
 * |-------+-------+-------|
 | 
			
		||||
 * | <-    | ↓     | ->    |
 | 
			
		||||
 * |       |       |       |
 | 
			
		||||
 * |-------|-------|-------|
 | 
			
		||||
 * |-------+-------+-------|
 | 
			
		||||
 * | 1     | 2     | 3     |
 | 
			
		||||
 * |       |       |       |
 | 
			
		||||
 * |-------|-------|-------|
 | 
			
		||||
 * |-------+-------+-------|
 | 
			
		||||
 * | 4     | 5     | 6     |
 | 
			
		||||
 * |       |       |       |
 | 
			
		||||
 * |-------|-------|-------|
 | 
			
		||||
 * |-------+-------+-------|
 | 
			
		||||
 * | 7     | 8     | 9     |
 | 
			
		||||
 * |       |       |       |
 | 
			
		||||
 * |-------|-------|-------|
 | 
			
		||||
 * |-------+-------+-------|
 | 
			
		||||
 * | 0     | .     | =     |
 | 
			
		||||
 * |       |       |       |
 | 
			
		||||
 * `-----------------------'
 | 
			
		||||
@ -52,23 +52,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
    KC_P0,         KC_PDOT,       KC_PEQL
 | 
			
		||||
  ),
 | 
			
		||||
 | 
			
		||||
/* Keymap _OP: Operators Layer
 | 
			
		||||
/* OP: Operators Layer
 | 
			
		||||
 * ,-----------------------.
 | 
			
		||||
 * |MO(OP) | ↑     | BSPC  |
 | 
			
		||||
 * |       |       |       |
 | 
			
		||||
 * |-------|-------|-------|
 | 
			
		||||
 * |-------+-------+-------|
 | 
			
		||||
 * | <-    | ↓     | ->    |
 | 
			
		||||
 * |       |       |       |
 | 
			
		||||
 * |-------|-------|-------|
 | 
			
		||||
 * |-------+-------+-------|
 | 
			
		||||
 * | /     | *     | -     |
 | 
			
		||||
 * |       |       |       |
 | 
			
		||||
 * |-------|-------|-------|
 | 
			
		||||
 * |-------+-------+-------|
 | 
			
		||||
 * | (     | )     | +     |
 | 
			
		||||
 * |       |       |       |
 | 
			
		||||
 * |-------|-------|-------|
 | 
			
		||||
 * |-------+-------+-------|
 | 
			
		||||
 * | &     | %     | ^     |
 | 
			
		||||
 * |       |       |       |
 | 
			
		||||
 * |-------|-------|-------|
 | 
			
		||||
 * |-------+-------+-------|
 | 
			
		||||
 * | |     | .     | =     |
 | 
			
		||||
 * |       |       |       |
 | 
			
		||||
 * `-----------------------'
 | 
			
		||||
 | 
			
		||||
@ -1,235 +0,0 @@
 | 
			
		||||
/* Copyright 2021 rookiebwoy
 | 
			
		||||
 *
 | 
			
		||||
 * 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
 | 
			
		||||
 | 
			
		||||
// Layers declarations
 | 
			
		||||
enum layers {
 | 
			
		||||
    _BL
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// Tap Dance declarations
 | 
			
		||||
enum {
 | 
			
		||||
    TD_PNCT,
 | 
			
		||||
    TD_ABC,
 | 
			
		||||
    TD_DEF,
 | 
			
		||||
    TD_GHI,
 | 
			
		||||
    TD_JKL,
 | 
			
		||||
    TD_MNO,
 | 
			
		||||
    TD_PQRS,
 | 
			
		||||
    TD_TUV,
 | 
			
		||||
    TD_WXYZ,
 | 
			
		||||
    TD_SPACE,
 | 
			
		||||
    TD_UPRCS,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
/* Keymap _BL: Base Layer
 | 
			
		||||
 * ,-----------------------.
 | 
			
		||||
 * |ENTER  | ↑     | BSPC  |
 | 
			
		||||
 * |       |       |       |
 | 
			
		||||
 * |-------|-------|-------|
 | 
			
		||||
 * | <-    | ↓     | ->    |
 | 
			
		||||
 * |       |       |       |
 | 
			
		||||
 * |-------|-------|-------|
 | 
			
		||||
 * | 1 .,' | 2     | 3     |
 | 
			
		||||
 * |?!-:;/ | abc   | def   |
 | 
			
		||||
 * |-------|-------|-------|
 | 
			
		||||
 * | 4     | 5     | 6     |
 | 
			
		||||
 * | ghi   | jkl   | mno   |
 | 
			
		||||
 * |-------|-------|-------|
 | 
			
		||||
 * | 7     | 8     | 9     |
 | 
			
		||||
 * | pqrs  | tuv   | wxyz  |
 | 
			
		||||
 * |-------|-------|-------|
 | 
			
		||||
 * | *     | 0     | CAPS  |
 | 
			
		||||
 * |       | space |       |
 | 
			
		||||
 * `-----------------------'
 | 
			
		||||
 */
 | 
			
		||||
  [_BL] = LAYOUT(
 | 
			
		||||
    KC_ENT,       KC_UP,        KC_BSPC,
 | 
			
		||||
    KC_LEFT,      KC_DOWN,      KC_RIGHT,
 | 
			
		||||
    TD(TD_PNCT),  TD(TD_ABC),   TD(TD_DEF),
 | 
			
		||||
    TD(TD_GHI),   TD(TD_JKL),   TD(TD_MNO),
 | 
			
		||||
    TD(TD_PQRS),  TD(TD_TUV),   TD(TD_WXYZ),
 | 
			
		||||
    KC_PAST,      TD(TD_SPACE), TD(TD_UPRCS)
 | 
			
		||||
  ),
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// Tap Dance cycles
 | 
			
		||||
void dance_1 (tap_dance_state_t *state, void *user_data) {
 | 
			
		||||
    if (state->count == 1) {
 | 
			
		||||
        if (state->interrupted || !state->pressed) return tap_code(KC_DOT);
 | 
			
		||||
        else return tap_code(KC_1);
 | 
			
		||||
    } else if (state->count == 2) {
 | 
			
		||||
        tap_code (KC_COMM);
 | 
			
		||||
    } else if (state->count == 3) {
 | 
			
		||||
        tap_code(KC_QUOT);
 | 
			
		||||
    } else if (state->count == 4) {
 | 
			
		||||
        tap_code16(KC_QUES);
 | 
			
		||||
    } else if (state->count == 5) {
 | 
			
		||||
        tap_code16(KC_EXLM);
 | 
			
		||||
    } else if (state->count == 6) {
 | 
			
		||||
        tap_code(KC_MINS);
 | 
			
		||||
    } else if (state->count == 7) {
 | 
			
		||||
        tap_code16(KC_COLN);
 | 
			
		||||
    } else if (state->count == 8) {
 | 
			
		||||
        tap_code(KC_SCLN);
 | 
			
		||||
    } else if (state->count == 9) {
 | 
			
		||||
        tap_code(KC_SLSH);
 | 
			
		||||
    } else {
 | 
			
		||||
        reset_tap_dance (state);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void dance_2 (tap_dance_state_t *state, void *user_data) {
 | 
			
		||||
    if (state->count == 1) {
 | 
			
		||||
        if (state->interrupted || !state->pressed) return tap_code(KC_A);
 | 
			
		||||
        else return tap_code(KC_2);
 | 
			
		||||
    } else if (state->count == 2) {
 | 
			
		||||
        tap_code (KC_B);
 | 
			
		||||
    } else if (state->count == 3) {
 | 
			
		||||
        tap_code(KC_C);
 | 
			
		||||
    } else {
 | 
			
		||||
        reset_tap_dance (state);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void dance_3 (tap_dance_state_t *state, void *user_data) {
 | 
			
		||||
    if (state->count == 1) {
 | 
			
		||||
        if (state->interrupted || !state->pressed) return tap_code(KC_D);
 | 
			
		||||
        else return tap_code(KC_3);
 | 
			
		||||
    } else if (state->count == 2) {
 | 
			
		||||
        tap_code (KC_E);
 | 
			
		||||
    } else if (state->count == 3) {
 | 
			
		||||
        tap_code(KC_F);
 | 
			
		||||
    } else {
 | 
			
		||||
        reset_tap_dance (state);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void dance_4 (tap_dance_state_t *state, void *user_data) {
 | 
			
		||||
    if (state->count == 1) {
 | 
			
		||||
        if (state->interrupted || !state->pressed) return tap_code(KC_G);
 | 
			
		||||
        else return tap_code(KC_4);
 | 
			
		||||
    } else if (state->count == 2) {
 | 
			
		||||
        tap_code (KC_H);
 | 
			
		||||
    } else if (state->count == 3) {
 | 
			
		||||
        tap_code(KC_I);
 | 
			
		||||
    } else {
 | 
			
		||||
        reset_tap_dance (state);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void dance_5 (tap_dance_state_t *state, void *user_data) {
 | 
			
		||||
    if (state->count == 1) {
 | 
			
		||||
        if (state->interrupted || !state->pressed) return tap_code(KC_J);
 | 
			
		||||
        else return tap_code(KC_5);
 | 
			
		||||
    } else if (state->count == 2) {
 | 
			
		||||
        tap_code (KC_K);
 | 
			
		||||
    } else if (state->count == 3) {
 | 
			
		||||
        tap_code(KC_L);
 | 
			
		||||
    } else {
 | 
			
		||||
        reset_tap_dance (state);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void dance_6 (tap_dance_state_t *state, void *user_data) {
 | 
			
		||||
    if (state->count == 1) {
 | 
			
		||||
        if (state->interrupted || !state->pressed) return tap_code(KC_M);
 | 
			
		||||
        else return tap_code(KC_6);
 | 
			
		||||
    } else if (state->count == 2) {
 | 
			
		||||
        tap_code (KC_N);
 | 
			
		||||
    } else if (state->count == 3) {
 | 
			
		||||
        tap_code(KC_O);
 | 
			
		||||
    } else {
 | 
			
		||||
        reset_tap_dance (state);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void dance_7 (tap_dance_state_t *state, void *user_data) {
 | 
			
		||||
    if (state->count == 1) {
 | 
			
		||||
        if (state->interrupted || !state->pressed) return tap_code(KC_P);
 | 
			
		||||
        else return tap_code(KC_7);
 | 
			
		||||
    } else if (state->count == 2) {
 | 
			
		||||
        tap_code (KC_Q);
 | 
			
		||||
    } else if (state->count == 3) {
 | 
			
		||||
        tap_code(KC_R);
 | 
			
		||||
    } else if (state->count == 4) {
 | 
			
		||||
        tap_code(KC_S);
 | 
			
		||||
    } else {
 | 
			
		||||
        reset_tap_dance (state);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void dance_8 (tap_dance_state_t *state, void *user_data) {
 | 
			
		||||
    if (state->count == 1) {
 | 
			
		||||
        if (state->interrupted || !state->pressed) return tap_code(KC_T);
 | 
			
		||||
        else return tap_code(KC_8);
 | 
			
		||||
    } else if (state->count == 2) {
 | 
			
		||||
        tap_code (KC_U);
 | 
			
		||||
    } else if (state->count == 3) {
 | 
			
		||||
        tap_code(KC_V);
 | 
			
		||||
    } else {
 | 
			
		||||
        reset_tap_dance (state);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void dance_9 (tap_dance_state_t *state, void *user_data) {
 | 
			
		||||
    if (state->count == 1) {
 | 
			
		||||
        if (state->interrupted || !state->pressed) return tap_code(KC_W);
 | 
			
		||||
        else return tap_code(KC_9);
 | 
			
		||||
    } else if (state->count == 2) {
 | 
			
		||||
        tap_code (KC_X);
 | 
			
		||||
    } else if (state->count == 3) {
 | 
			
		||||
        tap_code(KC_Y);
 | 
			
		||||
    } else if (state->count == 4) {
 | 
			
		||||
        tap_code(KC_Z);
 | 
			
		||||
    } else {
 | 
			
		||||
        reset_tap_dance (state);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void dance_0 (tap_dance_state_t *state, void *user_data) {
 | 
			
		||||
    if (state->count == 1) {
 | 
			
		||||
        if (state->interrupted || !state->pressed) return tap_code(KC_SPACE);
 | 
			
		||||
        else return tap_code(KC_0);
 | 
			
		||||
    } else {
 | 
			
		||||
        reset_tap_dance (state);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void dance_maiusc (tap_dance_state_t *state, void *user_data) {
 | 
			
		||||
    if (state->count == 1) {
 | 
			
		||||
        if (state->interrupted || !state->pressed) return set_oneshot_mods(MOD_BIT(KC_LSFT)); 
 | 
			
		||||
        else return tap_code(KC_CAPS);
 | 
			
		||||
    } else {
 | 
			
		||||
        reset_tap_dance (state);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Tap Dance actions
 | 
			
		||||
tap_dance_action_t tap_dance_actions[] = {
 | 
			
		||||
    [TD_PNCT] = ACTION_TAP_DANCE_FN (dance_1),
 | 
			
		||||
    [TD_ABC] = ACTION_TAP_DANCE_FN (dance_2),
 | 
			
		||||
    [TD_DEF] = ACTION_TAP_DANCE_FN (dance_3),
 | 
			
		||||
    [TD_GHI] = ACTION_TAP_DANCE_FN (dance_4),
 | 
			
		||||
    [TD_JKL] = ACTION_TAP_DANCE_FN (dance_5),
 | 
			
		||||
    [TD_MNO] = ACTION_TAP_DANCE_FN (dance_6),
 | 
			
		||||
    [TD_PQRS] = ACTION_TAP_DANCE_FN (dance_7),
 | 
			
		||||
    [TD_TUV] = ACTION_TAP_DANCE_FN (dance_8),
 | 
			
		||||
    [TD_WXYZ] = ACTION_TAP_DANCE_FN (dance_9),
 | 
			
		||||
    [TD_SPACE] = ACTION_TAP_DANCE_FN (dance_0),
 | 
			
		||||
    [TD_UPRCS] = ACTION_TAP_DANCE_FN (dance_maiusc),
 | 
			
		||||
};
 | 
			
		||||
@ -1,3 +0,0 @@
 | 
			
		||||
# LATE-9 multitap keymap
 | 
			
		||||
 | 
			
		||||
This is the intended LATE-9 layout with multitap `ON` and old mobile phone look-a-like layout..
 | 
			
		||||
@ -1,2 +0,0 @@
 | 
			
		||||
# Enable Tap Dance feature
 | 
			
		||||
TAP_DANCE_ENABLE = yes
 | 
			
		||||
							
								
								
									
										84
									
								
								keyboards/rookiebwoy/late9/rev1/keymaps/via/keymap.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										84
									
								
								keyboards/rookiebwoy/late9/rev1/keymaps/via/keymap.c
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,84 @@
 | 
			
		||||
/* Copyright 2021 rookiebwoy
 | 
			
		||||
 *
 | 
			
		||||
 * 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
 | 
			
		||||
 | 
			
		||||
// Layers declarations
 | 
			
		||||
enum layers {
 | 
			
		||||
    _BL,
 | 
			
		||||
    _OL
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
/* BL: Base Layer
 | 
			
		||||
 * ,-----------------------.
 | 
			
		||||
 * |MO(OP) | ↑     | BSPC  |
 | 
			
		||||
 * |       |       |       |
 | 
			
		||||
 * |-------+-------+-------|
 | 
			
		||||
 * | <-    | ↓     | ->    |
 | 
			
		||||
 * |       |       |       |
 | 
			
		||||
 * |-------+-------+-------|
 | 
			
		||||
 * | 1     | 2     | 3     |
 | 
			
		||||
 * |       |       |       |
 | 
			
		||||
 * |-------+-------+-------|
 | 
			
		||||
 * | 4     | 5     | 6     |
 | 
			
		||||
 * |       |       |       |
 | 
			
		||||
 * |-------+-------+-------|
 | 
			
		||||
 * | 7     | 8     | 9     |
 | 
			
		||||
 * |       |       |       |
 | 
			
		||||
 * |-------+-------+-------|
 | 
			
		||||
 * | 0     | .     | =     |
 | 
			
		||||
 * |       |       |       |
 | 
			
		||||
 * `-----------------------'
 | 
			
		||||
 */
 | 
			
		||||
  [_BL] = LAYOUT(
 | 
			
		||||
    MO(1),         KC_UP,         KC_BSPC,
 | 
			
		||||
    KC_LEFT,       KC_DOWN,       KC_RIGHT,
 | 
			
		||||
    KC_P1,         KC_P2,         KC_P3,
 | 
			
		||||
    KC_P4,         KC_P5,         KC_P6,
 | 
			
		||||
    KC_P7,         KC_P8,         KC_P9,
 | 
			
		||||
    KC_P0,         KC_PDOT,       KC_PEQL
 | 
			
		||||
  ),
 | 
			
		||||
 | 
			
		||||
/* OP: Operators Layer
 | 
			
		||||
 * ,-----------------------.
 | 
			
		||||
 * |MO(OP) | ↑     | BSPC  |
 | 
			
		||||
 * |       |       |       |
 | 
			
		||||
 * |-------+-------+-------|
 | 
			
		||||
 * | <-    | ↓     | ->    |
 | 
			
		||||
 * |       |       |       |
 | 
			
		||||
 * |-------+-------+-------|
 | 
			
		||||
 * | /     | *     | -     |
 | 
			
		||||
 * |       |       |       |
 | 
			
		||||
 * |-------+-------+-------|
 | 
			
		||||
 * | (     | )     | +     |
 | 
			
		||||
 * |       |       |       |
 | 
			
		||||
 * |-------+-------+-------|
 | 
			
		||||
 * | &     | %     | ^     |
 | 
			
		||||
 * |       |       |       |
 | 
			
		||||
 * |-------+-------+-------|
 | 
			
		||||
 * | |     | .     | =     |
 | 
			
		||||
 * |       |       |       |
 | 
			
		||||
 * `-----------------------'
 | 
			
		||||
 */
 | 
			
		||||
  [_OL] = LAYOUT(
 | 
			
		||||
    MO(1),         KC_UP,         KC_BSPC,
 | 
			
		||||
    KC_LEFT,       KC_DOWN,       KC_RIGHT,
 | 
			
		||||
    KC_PSLS,       KC_PAST,       KC_PMNS,
 | 
			
		||||
    LSFT(KC_9),    LSFT(KC_0),    KC_PPLS,
 | 
			
		||||
    LSFT(KC_7),    LSFT(KC_5),    LSFT(KC_6),
 | 
			
		||||
    LSFT(KC_BSLS), KC_PDOT,       KC_PEQL
 | 
			
		||||
  ),
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										1
									
								
								keyboards/rookiebwoy/late9/rev1/keymaps/via/rules.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								keyboards/rookiebwoy/late9/rev1/keymaps/via/rules.mk
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
			
		||||
VIA_ENABLE = yes
 | 
			
		||||
@ -1,14 +1 @@
 | 
			
		||||
# Build Options
 | 
			
		||||
#   change yes to no to disable
 | 
			
		||||
#
 | 
			
		||||
BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
 | 
			
		||||
MOUSEKEY_ENABLE = no        # Mouse keys
 | 
			
		||||
EXTRAKEY_ENABLE = no        # Audio control and System control
 | 
			
		||||
CONSOLE_ENABLE = no         # Console for debug
 | 
			
		||||
COMMAND_ENABLE = no         # Commands for debug and configuration
 | 
			
		||||
NKRO_ENABLE = yes           # Enable N-Key Rollover
 | 
			
		||||
BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
 | 
			
		||||
RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
 | 
			
		||||
AUDIO_ENABLE = no           # Audio output
 | 
			
		||||
 | 
			
		||||
OLED_ENABLE = yes
 | 
			
		||||
# This file intentionally left blank
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user