forked from mfulz_github/qmk_firmware
		
	Merge remote-tracking branch 'origin/master' into develop
This commit is contained in:
		
						commit
						2048c28f78
					
				
							
								
								
									
										28
									
								
								keyboards/kabedon/kabedon98e/chconf.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								keyboards/kabedon/kabedon98e/chconf.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,28 @@
 | 
			
		||||
/* Copyright 2020 QMK
 | 
			
		||||
 *
 | 
			
		||||
 * 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 was auto-generated by:
 | 
			
		||||
 *    `qmk chibios-confmigrate -i keyboards/keyboards/kabedon/kabedon98e/chconf.h -r platforms/chibios/common/configs/chconf.h`
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#define CH_CFG_ST_TIMEDELTA 0
 | 
			
		||||
 | 
			
		||||
#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE
 | 
			
		||||
 | 
			
		||||
#include_next <chconf.h>
 | 
			
		||||
							
								
								
									
										64
									
								
								keyboards/kabedon/kabedon98e/config.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								keyboards/kabedon/kabedon98e/config.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,64 @@
 | 
			
		||||
/* Copyright 2021 KDon<370490639@qq.com>
 | 
			
		||||
 *
 | 
			
		||||
 * 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
 | 
			
		||||
 | 
			
		||||
#include "config_common.h"
 | 
			
		||||
 | 
			
		||||
/* USB Device descriptor parameter */
 | 
			
		||||
#define VENDOR_ID      0x4B44
 | 
			
		||||
#define PRODUCT_ID     0x3935
 | 
			
		||||
#define DEVICE_VER     0x0002
 | 
			
		||||
#define MANUFACTURER   Kabe_Don
 | 
			
		||||
#define PRODUCT        98e
 | 
			
		||||
 | 
			
		||||
/* key matrix size */
 | 
			
		||||
#define MATRIX_ROWS 12
 | 
			
		||||
#define MATRIX_COLS 11
 | 
			
		||||
 | 
			
		||||
#define MATRIX_ROW_PINS {A4,B10,B2,B1,B0,B15,B13,B14,B12,A10,A9,A8}
 | 
			
		||||
#define MATRIX_COL_PINS {A0,B7,B8,B6,A3,A2,A1,B9,A7,A5,A6}
 | 
			
		||||
#define DIODE_DIRECTION ROW2COL
 | 
			
		||||
 | 
			
		||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
 | 
			
		||||
#define DEBOUNCE 5
 | 
			
		||||
 | 
			
		||||
#define FORCE_NKRO
 | 
			
		||||
 | 
			
		||||
#define RGB_DI_PIN B4
 | 
			
		||||
#define RGBLED_NUM 24
 | 
			
		||||
#define RGBLIGHT_ANIMATIONS
 | 
			
		||||
 | 
			
		||||
#define WS2812_PWM_DRIVER PWMD3
 | 
			
		||||
#define WS2812_PWM_CHANNEL 1
 | 
			
		||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM3
 | 
			
		||||
#define WS2812_DMA_CHANNEL 3
 | 
			
		||||
 | 
			
		||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
 | 
			
		||||
#define LOCKING_SUPPORT_ENABLE
 | 
			
		||||
/* Locking resynchronize hack */
 | 
			
		||||
#define LOCKING_RESYNC_ENABLE
 | 
			
		||||
 | 
			
		||||
#define ENCODERS 2
 | 
			
		||||
#define ENCODERS_PAD_A { B3,A14 }
 | 
			
		||||
#define ENCODERS_PAD_B { B5,A15 }
 | 
			
		||||
 | 
			
		||||
#define ENCODERS_CW_KEY  { { 0, 0 },{ 2, 0 } }
 | 
			
		||||
#define ENCODERS_CCW_KEY { { 6, 0 },{ 8, 0 } }
 | 
			
		||||
 | 
			
		||||
#define DYNAMIC_KEYMAP_LAYER_COUNT 3
 | 
			
		||||
/* Bootmagic Lite key configuration */
 | 
			
		||||
#define BOOTMAGIC_LITE_ROW 0
 | 
			
		||||
#define BOOTMAGIC_LITE_COLUMN 1
 | 
			
		||||
							
								
								
									
										26
									
								
								keyboards/kabedon/kabedon98e/halconf.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								keyboards/kabedon/kabedon98e/halconf.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,26 @@
 | 
			
		||||
/* Copyright 2020 QMK
 | 
			
		||||
 *
 | 
			
		||||
 * 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 was auto-generated by:
 | 
			
		||||
 *    `qmk chibios-confmigrate -i keyboards/keyboards/kabedon/kabedon98e/halconf.h -r platforms/chibios/common/configs/halconf.h`
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#define HAL_USE_PWM TRUE
 | 
			
		||||
 | 
			
		||||
#include_next <halconf.h>
 | 
			
		||||
							
								
								
									
										114
									
								
								keyboards/kabedon/kabedon98e/info.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										114
									
								
								keyboards/kabedon/kabedon98e/info.json
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,114 @@
 | 
			
		||||
{
 | 
			
		||||
    "keyboard_name": "KabeDon98E", 
 | 
			
		||||
    "url": "", 
 | 
			
		||||
    "maintainer": "370490639", 
 | 
			
		||||
    "width": 20.8, 
 | 
			
		||||
    "height": 6.7, 
 | 
			
		||||
    "layouts": {
 | 
			
		||||
        "LAYOUT": {
 | 
			
		||||
            "layout": [
 | 
			
		||||
			{"label":"Esc", "x":0, "y":0},
 | 
			
		||||
			{"label":"F1", "x":1.5, "y":0},
 | 
			
		||||
			{"label":"F2", "x":2.5, "y":0},
 | 
			
		||||
			{"label":"F3", "x":3.5, "y":0},
 | 
			
		||||
			{"label":"F4", "x":4.5, "y":0},
 | 
			
		||||
			{"label":"F5", "x":6.25, "y":0},
 | 
			
		||||
			{"label":"F6", "x":7.25, "y":0},
 | 
			
		||||
			{"label":"F7", "x":8.25, "y":0},
 | 
			
		||||
			{"label":"F8", "x":9.25, "y":0},
 | 
			
		||||
			{"label":"F9", "x":11, "y":0},
 | 
			
		||||
			{"label":"F10", "x":12, "y":0},
 | 
			
		||||
			{"label":"F11", "x":13, "y":0},
 | 
			
		||||
			{"label":"F12", "x":14, "y":0},
 | 
			
		||||
			{"label":"Delete", "x":15.5, "y":0},
 | 
			
		||||
			{"label":"Insert", "x":17, "y":0},
 | 
			
		||||
			{"label":"Mute", "x":18.5, "y":0},			
 | 
			
		||||
			{"label":"~", "x":0, "y":1.5},
 | 
			
		||||
			{"label":"!", "x":1, "y":1.5},
 | 
			
		||||
			{"label":"@", "x":2, "y":1.5},
 | 
			
		||||
			{"label":"#", "x":3, "y":1.5},
 | 
			
		||||
			{"label":"$", "x":4, "y":1.5},
 | 
			
		||||
			{"label":"%", "x":5, "y":1.5},
 | 
			
		||||
			{"label":"^", "x":6, "y":1.5},
 | 
			
		||||
			{"label":"&", "x":7, "y":1.5},
 | 
			
		||||
			{"label":"*", "x":8, "y":1.5},
 | 
			
		||||
			{"label":"(", "x":9, "y":1.5},
 | 
			
		||||
			{"label":")", "x":10, "y":1.5},
 | 
			
		||||
			{"label":"_", "x":11, "y":1.5},
 | 
			
		||||
			{"label":"+", "x":12, "y":1.5},
 | 
			
		||||
			{"label":"Backspace", "x":13, "y":1.5, "w":2},
 | 
			
		||||
			{"label":"Num Lock", "x":15.4, "y":1.5},
 | 
			
		||||
			{"label":"/", "x":16.4, "y":1.5},
 | 
			
		||||
			{"label":"*", "x":17.4, "y":1.5},
 | 
			
		||||
			{"label":"-", "x":18.4, "y":1.5},			
 | 
			
		||||
			{"label":"Home", "x":19.8, "y":1.5},			
 | 
			
		||||
			{"label":"Tab", "x":0, "y":2.5, "w":1.5},
 | 
			
		||||
			{"label":"Q", "x":1.5, "y":2.5},
 | 
			
		||||
			{"label":"W", "x":2.5, "y":2.5},
 | 
			
		||||
			{"label":"E", "x":3.5, "y":2.5},
 | 
			
		||||
			{"label":"R", "x":4.5, "y":2.5},
 | 
			
		||||
			{"label":"T", "x":5.5, "y":2.5},
 | 
			
		||||
			{"label":"Y", "x":6.5, "y":2.5},
 | 
			
		||||
			{"label":"U", "x":7.5, "y":2.5},
 | 
			
		||||
			{"label":"I", "x":8.5, "y":2.5},
 | 
			
		||||
			{"label":"O", "x":9.5, "y":2.5},
 | 
			
		||||
			{"label":"P", "x":10.5, "y":2.5},
 | 
			
		||||
			{"label":"{", "x":11.5, "y":2.5},
 | 
			
		||||
			{"label":"}", "x":12.5, "y":2.5},
 | 
			
		||||
			{"label":"|", "x":13.5, "y":2.5, "w":1.5},
 | 
			
		||||
			{"label":"7", "x":15.4, "y":2.5},
 | 
			
		||||
			{"label":"8", "x":16.4, "y":2.5},
 | 
			
		||||
			{"label":"9", "x":17.4, "y":2.5},
 | 
			
		||||
			{"label":"+", "x":18.4, "y":2.5, "h":2},			
 | 
			
		||||
			{"label":"End", "x":19.8, "y":2.5},			
 | 
			
		||||
			{"label":"Caps Lock", "x":0, "y":3.5, "w":1.75},
 | 
			
		||||
			{"label":"A", "x":1.75, "y":3.5},
 | 
			
		||||
			{"label":"S", "x":2.75, "y":3.5},
 | 
			
		||||
			{"label":"D", "x":3.75, "y":3.5},
 | 
			
		||||
			{"label":"F", "x":4.75, "y":3.5},
 | 
			
		||||
			{"label":"G", "x":5.75, "y":3.5},
 | 
			
		||||
			{"label":"H", "x":6.75, "y":3.5},
 | 
			
		||||
			{"label":"J", "x":7.75, "y":3.5},
 | 
			
		||||
			{"label":"K", "x":8.75, "y":3.5},
 | 
			
		||||
			{"label":"L", "x":9.75, "y":3.5},
 | 
			
		||||
			{"label":":", "x":10.75, "y":3.5},
 | 
			
		||||
			{"label":"\"", "x":11.75, "y":3.5},
 | 
			
		||||
			{"label":"Enter", "x":12.75, "y":3.5, "w":2.25},
 | 
			
		||||
			{"label":"4", "x":15.4, "y":3.5},
 | 
			
		||||
			{"label":"5", "x":16.4, "y":3.5},
 | 
			
		||||
			{"label":"6", "x":17.4, "y":3.5},						
 | 
			
		||||
			{"label":"Shift", "x":0, "y":4.5, "w":2.25},
 | 
			
		||||
			{"label":"Z", "x":2.25, "y":4.5},
 | 
			
		||||
			{"label":"X", "x":3.25, "y":4.5},
 | 
			
		||||
			{"label":"C", "x":4.25, "y":4.5},
 | 
			
		||||
			{"label":"V", "x":5.25, "y":4.5},
 | 
			
		||||
			{"label":"B", "x":6.25, "y":4.5},
 | 
			
		||||
			{"label":"N", "x":7.25, "y":4.5},
 | 
			
		||||
			{"label":"M", "x":8.25, "y":4.5},
 | 
			
		||||
			{"label":"<", "x":9.25, "y":4.5},
 | 
			
		||||
			{"label":">", "x":10.25, "y":4.5},
 | 
			
		||||
			{"label":"?", "x":11.25, "y":4.5},
 | 
			
		||||
			{"label":"Shift", "x":12.25, "y":4.5, "w":1.75},
 | 
			
		||||
			{"label":"Up", "x":14.2, "y":4.7},
 | 
			
		||||
			{"label":"1", "x":15.4, "y":4.5},
 | 
			
		||||
			{"label":"2", "x":16.4, "y":4.5},
 | 
			
		||||
			{"label":"3", "x":17.4, "y":4.5},
 | 
			
		||||
			{"label":"Enter", "x":18.4, "y":4.5, "h":2},						
 | 
			
		||||
			{"label":"Pgup", "x":19.8, "y":4.5},						
 | 
			
		||||
			{"label":"Ctrl", "x":0, "y":5.5, "w":1.25},
 | 
			
		||||
			{"label":"Win", "x":1.25, "y":5.5},
 | 
			
		||||
			{"label":"Alt", "x":2.25, "y":5.5},
 | 
			
		||||
			{"label":"MO(1)", "x":3.25, "y":5.5},
 | 
			
		||||
			{"label":"Space", "x":4.25, "y":5.5, "w":6.25},
 | 
			
		||||
			{"label":"Alt", "x":10.5, "y":5.5, "w":1.25},
 | 
			
		||||
			{"label":"Ctrl", "x":11.75, "y":5.5, "w":1.25},
 | 
			
		||||
			{"label":"Left", "x":13.2, "y":5.7},
 | 
			
		||||
			{"label":"Down", "x":14.2, "y":5.7},
 | 
			
		||||
			{"label":"Right", "x":15.2, "y":5.7},
 | 
			
		||||
			{"label":"0", "x":16.4, "y":5.5},
 | 
			
		||||
			{"label":".", "x":17.4, "y":5.5},
 | 
			
		||||
			{"label":"Pgdn", "x":19.8, "y":5.5}
 | 
			
		||||
			]
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										16
									
								
								keyboards/kabedon/kabedon98e/kabedon98e.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								keyboards/kabedon/kabedon98e/kabedon98e.c
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,16 @@
 | 
			
		||||
/* Copyright 2021 KDon<370490639@qq.com>
 | 
			
		||||
 *
 | 
			
		||||
 * 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 "kabedon98e.h"
 | 
			
		||||
							
								
								
									
										42
									
								
								keyboards/kabedon/kabedon98e/kabedon98e.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								keyboards/kabedon/kabedon98e/kabedon98e.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,42 @@
 | 
			
		||||
/* Copyright 2021 KDon<370490639@qq.com>
 | 
			
		||||
 *
 | 
			
		||||
 * 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
 | 
			
		||||
 | 
			
		||||
#include "quantum.h"
 | 
			
		||||
 | 
			
		||||
#define XXXX KC_NO
 | 
			
		||||
 | 
			
		||||
#define LAYOUT( \
 | 
			
		||||
    KB00,   KA01, KB01, KA02, KB02,    KA03, KB03, KA04, KB04,    KA05, KB05, KB06, KB07,     KF07,    KE08,    KE00,        \
 | 
			
		||||
    KD00, KC01, KD01, KC02, KD02, KC03, KD03, KC04, KD04, KC05, KD05, KC06, KD06,   KD07,     KD09, KE09, KE10, KF10,  KA00, \
 | 
			
		||||
    KF00, KE01, KF01, KE02, KF02, KE03, KF03, KE04, KF04, KE05, KF05, KE06, KF06,   KE07,     KF09, KG09, KG10,        KC00, \
 | 
			
		||||
    KH00, KG01, KH01, KG02, KH02, KG03, KH03, KG04, KH04, KG05, KH05, KG06,      KH07,        KH09, KI09, KI10, KH10,        \
 | 
			
		||||
    KJ00, KJ01, KI02, KJ02, KI03, KJ03, KI04, KJ04, KI05, KJ05, KI06,       KJ07,     KI08,   KJ09, KK09, KJ10,        KG00, \
 | 
			
		||||
    KL00, KK01, KL01, KL03,               KL02,                 KL05,   KK07,   KL07, KK08, KL08,   KL09, KK10, KL10,  KI00  \
 | 
			
		||||
) { \
 | 
			
		||||
  { KA00,  KA01,  KA02,  KA03,  KA04,  KA05,  XXXX,  XXXX,  XXXX,  XXXX,  XXXX }, \
 | 
			
		||||
  { KB00,  KB01,  KB02,  KB03,  KB04,  KB05,  KB06,  KB07,  XXXX,  XXXX,  XXXX }, \
 | 
			
		||||
  { KC00,  KC01,  KC02,  KC03,  KC04,  KC05,  KC06,  XXXX,  XXXX,  XXXX,  XXXX }, \
 | 
			
		||||
  { KD00,  KD01,  KD02,  KD03,  KD04,  KD05,  KD06,  KD07,  XXXX,  KD09,  XXXX }, \
 | 
			
		||||
  { KE00,  KE01,  KE02,  KE03,  KE04,  KE05,  KE06,  KE07,  KE08,  KE09,  KE10 }, \
 | 
			
		||||
  { KF00,  KF01,  KF02,  KF03,  KF04,  KF05,  KF06,  KF07,  XXXX,  KF09,  KF10 }, \
 | 
			
		||||
  { KG00,  KG01,  KG02,  KG03,  KG04,  KG05,  KG06,  XXXX,  XXXX,  KG09,  KG10 }, \
 | 
			
		||||
  { KH00,  KH01,  KH02,  KH03,  KH04,  KH05,  XXXX,  KH07,  XXXX,  KH09,  KH10 }, \
 | 
			
		||||
  { KI00,  XXXX,  KI02,  KI03,  KI04,  KI05,  KI06,  XXXX,  KI08,  KI09,  KI10 }, \
 | 
			
		||||
  { KJ00,  KJ01,  KJ02,  KJ03,  KJ04,  KJ05,  XXXX,  KJ07,  XXXX,  KJ09,  KJ10 }, \
 | 
			
		||||
  { XXXX,  KK01,  XXXX,  XXXX,  XXXX,  XXXX,  XXXX,  KK07,  KK08,  KK09,  KK10 }, \
 | 
			
		||||
  { KL00,  KL01,  KL02,  KL03,  XXXX,  KL05,  XXXX,  KL07,  KL08,  KL09,  KL10 }  \
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										108
									
								
								keyboards/kabedon/kabedon98e/keymaps/default/keymap.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										108
									
								
								keyboards/kabedon/kabedon98e/keymaps/default/keymap.c
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,108 @@
 | 
			
		||||
/* Copyright 2021 KDon<370490639@qq.com>
 | 
			
		||||
 *
 | 
			
		||||
 * 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
 | 
			
		||||
// Defines names for use in layer keycodes and the keymap
 | 
			
		||||
enum layer_names {
 | 
			
		||||
    _BASE,
 | 
			
		||||
    _FN,
 | 
			
		||||
    _FN1
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
/*
 | 
			
		||||
┌──┐  ┌──┐┌──┐┌──┐┌──┐   ┌──┐┌──┐┌──┐┌──┐   ┌──┐┌──┐┌──┐┌──┐  ┌──┐  ┌──┐  ┌──┐
 | 
			
		||||
│1A│  │0B││1B││0C││1C│   │0D││1D││0E││1E│   │0F││1F││1G││1H│  │5H│  │4I│  │4A│
 | 
			
		||||
└──┘  └──┘└──┘└──┘└──┘   └──┘└──┘└──┘└──┘   └──┘└──┘└──┘└──┘  └──┘  └──┘  └──┘
 | 
			
		||||
┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──────┐  ┌──┐┌──┐┌──┐┌──┐  ┌──┐
 | 
			
		||||
│3A││2B││3B││2C││3C││2D││3D││2E││3E││2F││3F││2G││3G││3H    │  │3J││4J││4K││5K│  │0A│
 | 
			
		||||
└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──────┘  └──┘└──┘└──┘└──┘  └──┘
 | 
			
		||||
┌────┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌────┐  ┌──┐┌──┐┌──┐┌──┐  ┌──┐
 | 
			
		||||
│5A  ││4B││5B││4C││5C││4D││5D││4E││5E││4F││5F││4G││5G││4H  │  │5J││6J││6K││2A│  │7A│
 | 
			
		||||
└────┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└────┘  └──┘└──┘└──┘│  │  └──┘
 | 
			
		||||
┌─────┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌───────┐  ┌──┐┌──┐┌──┐│  │
 | 
			
		||||
│6B   ││7B││6C││7C││6D││7D││6E││7E││6F││7F││6G││7H││7J     │  │8J││8K││7K││  │
 | 
			
		||||
└─────┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└───────┘  └──┘└──┘└──┘└──┘
 | 
			
		||||
┌───────┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌─────┐      ┌──┐┌──┐┌──┐┌──┐  ┌──┐
 | 
			
		||||
│9A     ││9B││8C││9C││8D││9D││8E││9E││8F││9F││8G││9H   │ ┌──┐ │9J││AJ││9K││6A│  │BA│
 | 
			
		||||
└───────┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└─────┘ │8I│ └──┘└──┘└──┘│  │  └──┘
 | 
			
		||||
┌───┐┌──┐┌──┐┌──┐┌───────────────────────┐┌───┐┌───┐     └──┘     ┌──┐┌──┐│  │  ┌──┐
 | 
			
		||||
│AB ││BB││BD││BC││BF                     ││AH ││BH │ ┌──┐┌──┐┌──┐ │AK││BK││  │  │8A│
 | 
			
		||||
└───┘└──┘└──┘└──┘└───────────────────────┘└───┘└───┘ │AI││BI││BJ│ └──┘└──┘└──┘  └──┘
 | 
			
		||||
                                                     └──┘└──┘└──┘
 | 
			
		||||
 */
 | 
			
		||||
[_BASE] = 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_F12,      KC_DEL,      KC_INS, 		 KC_MUTE, 
 | 
			
		||||
	KC_GRV,  KC_1,   KC_2,   KC_3,   KC_4,   KC_5,   KC_6,   KC_7,   KC_8,    KC_9,    KC_0,     KC_MINS,  KC_EQL,   KC_BSPC,     KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,   KC_HOME,
 | 
			
		||||
	KC_TAB,  KC_Q,   KC_W,   KC_E,   KC_R,   KC_T,   KC_Y,   KC_U,   KC_I,    KC_O,    KC_P,     KC_LBRC,  KC_RBRC,  KC_BSLS,     KC_P7,   KC_P8,   KC_P9,              KC_END,
 | 
			
		||||
	KC_CAPS, KC_A,   KC_S,   KC_D,   KC_F,   KC_G,   KC_H,   KC_J,   KC_K,    KC_L,    KC_SCLN,  KC_QUOT,       KC_ENT,           KC_P4,   KC_P5,   KC_P6,   KC_PPLS,  
 | 
			
		||||
	KC_LSFT, KC_Z,   KC_X,   KC_C,   KC_V,   KC_B,   KC_N,   KC_M,   KC_COMM, KC_DOT,  KC_SLSH,        KC_RSFT,       KC_UP,      KC_P1,   KC_P2,   KC_P3,              KC_PGUP,
 | 
			
		||||
	KC_LCTL, KC_LGUI, KC_LALT, MO(1),                KC_SPC,                         KC_RALT,    KC_RCTL,   KC_LEFT,  KC_DOWN,  KC_RGHT,   KC_P0,   KC_PDOT, KC_PENT,   KC_PGDN),
 | 
			
		||||
 | 
			
		||||
[_FN] = LAYOUT(
 | 
			
		||||
	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,
 | 
			
		||||
	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,   
 | 
			
		||||
	KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,        KC_TRNS,     RGB_VAI,  KC_TRNS, KC_TRNS, KC_TRNS,            KC_TRNS, 
 | 
			
		||||
	KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,                     KC_TRNS,                     RGB_TOG,  RGB_MOD,    RGB_HUI, RGB_VAD, RGB_HUD,  KC_TRNS, KC_TRNS, KC_TRNS,   KC_TRNS),
 | 
			
		||||
 | 
			
		||||
[_FN1] = LAYOUT(
 | 
			
		||||
	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,
 | 
			
		||||
	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,   
 | 
			
		||||
	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)
 | 
			
		||||
	
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static uint8_t encoder_state[ENCODERS] = {0};
 | 
			
		||||
static keypos_t encoder_cw[ENCODERS] = ENCODERS_CW_KEY;
 | 
			
		||||
static keypos_t encoder_ccw[ENCODERS] = ENCODERS_CCW_KEY;
 | 
			
		||||
 | 
			
		||||
void encoder_action_unregister(void) {
 | 
			
		||||
    for (int index = 0; index < ENCODERS; ++index) {
 | 
			
		||||
        if (encoder_state[index]) {
 | 
			
		||||
            keyevent_t encoder_event = (keyevent_t) {
 | 
			
		||||
                .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
 | 
			
		||||
                .pressed = false,
 | 
			
		||||
                .time = (timer_read() | 1)
 | 
			
		||||
            };
 | 
			
		||||
            encoder_state[index] = 0;
 | 
			
		||||
            action_exec(encoder_event);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void encoder_action_register(uint8_t index, bool clockwise) {
 | 
			
		||||
    keyevent_t encoder_event = (keyevent_t) {
 | 
			
		||||
        .key = clockwise ? encoder_cw[index] : encoder_ccw[index],
 | 
			
		||||
        .pressed = true,
 | 
			
		||||
        .time = (timer_read() | 1)
 | 
			
		||||
    };
 | 
			
		||||
    encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
 | 
			
		||||
    action_exec(encoder_event);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void matrix_scan_user(void) {
 | 
			
		||||
    encoder_action_unregister();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool encoder_update_user(uint8_t index, bool clockwise) {
 | 
			
		||||
    encoder_action_register(index, clockwise);
 | 
			
		||||
    return true;
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										108
									
								
								keyboards/kabedon/kabedon98e/keymaps/via/keymap.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										108
									
								
								keyboards/kabedon/kabedon98e/keymaps/via/keymap.c
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,108 @@
 | 
			
		||||
/* Copyright 2021 KDon<370490639@qq.com>
 | 
			
		||||
 *
 | 
			
		||||
 * 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
 | 
			
		||||
// Defines names for use in layer keycodes and the keymap
 | 
			
		||||
enum layer_names {
 | 
			
		||||
    _BASE,
 | 
			
		||||
    _FN,
 | 
			
		||||
    _FN1
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
/*
 | 
			
		||||
┌──┐  ┌──┐┌──┐┌──┐┌──┐   ┌──┐┌──┐┌──┐┌──┐   ┌──┐┌──┐┌──┐┌──┐  ┌──┐  ┌──┐  ┌──┐
 | 
			
		||||
│1A│  │0B││1B││0C││1C│   │0D││1D││0E││1E│   │0F││1F││1G││1H│  │5H│  │4I│  │4A│
 | 
			
		||||
└──┘  └──┘└──┘└──┘└──┘   └──┘└──┘└──┘└──┘   └──┘└──┘└──┘└──┘  └──┘  └──┘  └──┘
 | 
			
		||||
┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──────┐  ┌──┐┌──┐┌──┐┌──┐  ┌──┐
 | 
			
		||||
│3A││2B││3B││2C││3C││2D││3D││2E││3E││2F││3F││2G││3G││3H    │  │3J││4J││4K││5K│  │0A│
 | 
			
		||||
└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──────┘  └──┘└──┘└──┘└──┘  └──┘
 | 
			
		||||
┌────┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌────┐  ┌──┐┌──┐┌──┐┌──┐  ┌──┐
 | 
			
		||||
│5A  ││4B││5B││4C││5C││4D││5D││4E││5E││4F││5F││4G││5G││4H  │  │5J││6J││6K││2A│  │7A│
 | 
			
		||||
└────┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└────┘  └──┘└──┘└──┘│  │  └──┘
 | 
			
		||||
┌─────┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌───────┐  ┌──┐┌──┐┌──┐│  │
 | 
			
		||||
│6B   ││7B││6C││7C││6D││7D││6E││7E││6F││7F││6G││7H││7J     │  │8J││8K││7K││  │
 | 
			
		||||
└─────┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└───────┘  └──┘└──┘└──┘└──┘
 | 
			
		||||
┌───────┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌─────┐      ┌──┐┌──┐┌──┐┌──┐  ┌──┐
 | 
			
		||||
│9A     ││9B││8C││9C││8D││9D││8E││9E││8F││9F││8G││9H   │ ┌──┐ │9J││AJ││9K││6A│  │BA│
 | 
			
		||||
└───────┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└─────┘ │8I│ └──┘└──┘└──┘│  │  └──┘
 | 
			
		||||
┌───┐┌──┐┌──┐┌──┐┌───────────────────────┐┌───┐┌───┐     └──┘     ┌──┐┌──┐│  │  ┌──┐
 | 
			
		||||
│AB ││BB││BD││BC││BF                     ││AH ││BH │ ┌──┐┌──┐┌──┐ │AK││BK││  │  │8A│
 | 
			
		||||
└───┘└──┘└──┘└──┘└───────────────────────┘└───┘└───┘ │AI││BI││BJ│ └──┘└──┘└──┘  └──┘
 | 
			
		||||
                                                     └──┘└──┘└──┘
 | 
			
		||||
 */
 | 
			
		||||
[_BASE] = 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_F12,      KC_DEL,      KC_INS, 		 KC_MUTE, 
 | 
			
		||||
	KC_GRV,  KC_1,   KC_2,   KC_3,   KC_4,   KC_5,   KC_6,   KC_7,   KC_8,    KC_9,    KC_0,     KC_MINS,  KC_EQL,   KC_BSPC,     KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,   KC_HOME,
 | 
			
		||||
	KC_TAB,  KC_Q,   KC_W,   KC_E,   KC_R,   KC_T,   KC_Y,   KC_U,   KC_I,    KC_O,    KC_P,     KC_LBRC,  KC_RBRC,  KC_BSLS,     KC_P7,   KC_P8,   KC_P9,              KC_END,
 | 
			
		||||
	KC_CAPS, KC_A,   KC_S,   KC_D,   KC_F,   KC_G,   KC_H,   KC_J,   KC_K,    KC_L,    KC_SCLN,  KC_QUOT,       KC_ENT,           KC_P4,   KC_P5,   KC_P6,   KC_PPLS,  
 | 
			
		||||
	KC_LSFT, KC_Z,   KC_X,   KC_C,   KC_V,   KC_B,   KC_N,   KC_M,   KC_COMM, KC_DOT,  KC_SLSH,        KC_RSFT,       KC_UP,      KC_P1,   KC_P2,   KC_P3,              KC_PGUP,
 | 
			
		||||
	KC_LCTL, KC_LGUI, KC_LALT, MO(1),                KC_SPC,                         KC_RALT,    KC_RCTL,   KC_LEFT,  KC_DOWN,  KC_RGHT,   KC_P0,   KC_PDOT, KC_PENT,   KC_PGDN),
 | 
			
		||||
 | 
			
		||||
[_FN] = LAYOUT(
 | 
			
		||||
	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,
 | 
			
		||||
	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,   
 | 
			
		||||
	KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,        KC_TRNS,     RGB_VAI,  KC_TRNS, KC_TRNS, KC_TRNS,            KC_TRNS, 
 | 
			
		||||
	KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,                     KC_TRNS,                     RGB_TOG,  RGB_MOD,    RGB_HUI, RGB_VAD, RGB_HUD,  KC_TRNS, KC_TRNS, KC_TRNS,   KC_TRNS),
 | 
			
		||||
 | 
			
		||||
[_FN1] = LAYOUT(
 | 
			
		||||
	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,
 | 
			
		||||
	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,   
 | 
			
		||||
	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)
 | 
			
		||||
	
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static uint8_t encoder_state[ENCODERS] = {0};
 | 
			
		||||
static keypos_t encoder_cw[ENCODERS] = ENCODERS_CW_KEY;
 | 
			
		||||
static keypos_t encoder_ccw[ENCODERS] = ENCODERS_CCW_KEY;
 | 
			
		||||
 | 
			
		||||
void encoder_action_unregister(void) {
 | 
			
		||||
    for (int index = 0; index < ENCODERS; ++index) {
 | 
			
		||||
        if (encoder_state[index]) {
 | 
			
		||||
            keyevent_t encoder_event = (keyevent_t) {
 | 
			
		||||
                .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
 | 
			
		||||
                .pressed = false,
 | 
			
		||||
                .time = (timer_read() | 1)
 | 
			
		||||
            };
 | 
			
		||||
            encoder_state[index] = 0;
 | 
			
		||||
            action_exec(encoder_event);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void encoder_action_register(uint8_t index, bool clockwise) {
 | 
			
		||||
    keyevent_t encoder_event = (keyevent_t) {
 | 
			
		||||
        .key = clockwise ? encoder_cw[index] : encoder_ccw[index],
 | 
			
		||||
        .pressed = true,
 | 
			
		||||
        .time = (timer_read() | 1)
 | 
			
		||||
    };
 | 
			
		||||
    encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
 | 
			
		||||
    action_exec(encoder_event);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void matrix_scan_user(void) {
 | 
			
		||||
    encoder_action_unregister();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool encoder_update_user(uint8_t index, bool clockwise) {
 | 
			
		||||
    encoder_action_register(index, clockwise);
 | 
			
		||||
    return true;
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										1
									
								
								keyboards/kabedon/kabedon98e/keymaps/via/rules.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								keyboards/kabedon/kabedon98e/keymaps/via/rules.mk
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
			
		||||
VIA_ENABLE = yes
 | 
			
		||||
							
								
								
									
										27
									
								
								keyboards/kabedon/kabedon98e/mcuconf.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								keyboards/kabedon/kabedon98e/mcuconf.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,27 @@
 | 
			
		||||
/* Copyright 2020 QMK
 | 
			
		||||
 *
 | 
			
		||||
 * 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 was auto-generated by:
 | 
			
		||||
 *    `qmk chibios-confmigrate -i keyboards/keyboards/kabedon/kabedon98e/mcuconf.h -r platforms/chibios/STM32_F103_STM32DUINO/configs/mcuconf.h`
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include_next <mcuconf.h>
 | 
			
		||||
 | 
			
		||||
#undef STM32_PWM_USE_TIM3
 | 
			
		||||
#define STM32_PWM_USE_TIM3 TRUE
 | 
			
		||||
							
								
								
									
										17
									
								
								keyboards/kabedon/kabedon98e/readme.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								keyboards/kabedon/kabedon98e/readme.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,17 @@
 | 
			
		||||
# KabeDon 98e
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
A mechanical keyboard PCB similar to 980 layout, it has two encoders.
 | 
			
		||||
This PCB uses kailh hot swap socket.
 | 
			
		||||
Kabedon980 includes RGB underflow.
 | 
			
		||||
 | 
			
		||||
* Keyboard Maintainer: [370490639](https://github.com/370490639)
 | 
			
		||||
* Hardware Supported: f103 KabeDon98e
 | 
			
		||||
* Hardware Availability: [KabeDon98e]https://kabedon.taobao.com
 | 
			
		||||
 | 
			
		||||
Make example for this keyboard (after setting up your build environment):
 | 
			
		||||
 | 
			
		||||
    make kabedon/kabedon98e:default
 | 
			
		||||
 | 
			
		||||
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).
 | 
			
		||||
							
								
								
									
										24
									
								
								keyboards/kabedon/kabedon98e/rules.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								keyboards/kabedon/kabedon98e/rules.mk
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,24 @@
 | 
			
		||||
# MCU name
 | 
			
		||||
MCU = STM32F103
 | 
			
		||||
 | 
			
		||||
# Bootloader selection
 | 
			
		||||
BOOTLOADER = stm32duino
 | 
			
		||||
 | 
			
		||||
# Build Options
 | 
			
		||||
#   change yes to no to disable
 | 
			
		||||
#
 | 
			
		||||
BOOTMAGIC_ENABLE = lite     # Virtual DIP switch configuration
 | 
			
		||||
MOUSEKEY_ENABLE = yes       # Mouse keys
 | 
			
		||||
EXTRAKEY_ENABLE = yes       # Audio control and System control
 | 
			
		||||
CONSOLE_ENABLE = no         # Console for debug
 | 
			
		||||
COMMAND_ENABLE = no         # Commands for debug and configuration
 | 
			
		||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
 | 
			
		||||
SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend
 | 
			
		||||
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
 | 
			
		||||
NKRO_ENABLE = yes           # USB Nkey Rollover
 | 
			
		||||
BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
 | 
			
		||||
RGBLIGHT_ENABLE = yes       # Enable keyboard RGB underglow
 | 
			
		||||
BLUETOOTH_ENABLE = no       # Enable Bluetooth
 | 
			
		||||
AUDIO_ENABLE = no           # Audio output
 | 
			
		||||
WS2812_DRIVER = pwm
 | 
			
		||||
ENCODER_ENABLE = yes
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user