Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0d189582c1 | ||
|
|
c6b667623a | ||
|
|
d96380e654 | ||
|
|
7e80686f1e | ||
|
|
e967471c4f | ||
|
|
eca3f9d935 | ||
|
|
44c62117ee | ||
|
|
f235822fba | ||
|
|
5d5ff807c6 | ||
|
|
1c7c5daad4 | ||
|
|
aeab11da88 | ||
|
|
b53934805a |
No files matched your search
Vendored
+1
@@ -11,6 +11,7 @@
|
|||||||
"files.associations": {
|
"files.associations": {
|
||||||
"*.h": "c",
|
"*.h": "c",
|
||||||
"*.c": "c",
|
"*.c": "c",
|
||||||
|
"*.inc": "c",
|
||||||
"*.cpp": "cpp",
|
"*.cpp": "cpp",
|
||||||
"*.hpp": "cpp",
|
"*.hpp": "cpp",
|
||||||
"xstddef": "c",
|
"xstddef": "c",
|
||||||
|
|||||||
+4
-1
@@ -231,13 +231,16 @@ endif
|
|||||||
# We can assume a ChibiOS target When MCU_FAMILY is defined since it's
|
# We can assume a ChibiOS target When MCU_FAMILY is defined since it's
|
||||||
# not used for LUFA
|
# not used for LUFA
|
||||||
ifdef MCU_FAMILY
|
ifdef MCU_FAMILY
|
||||||
FIRMWARE_FORMAT?=bin
|
|
||||||
PLATFORM=CHIBIOS
|
PLATFORM=CHIBIOS
|
||||||
|
PLATFORM_KEY=chibios
|
||||||
|
FIRMWARE_FORMAT?=bin
|
||||||
else ifdef ARM_ATSAM
|
else ifdef ARM_ATSAM
|
||||||
PLATFORM=ARM_ATSAM
|
PLATFORM=ARM_ATSAM
|
||||||
|
PLATFORM_KEY=arm_atsam
|
||||||
FIRMWARE_FORMAT=bin
|
FIRMWARE_FORMAT=bin
|
||||||
else
|
else
|
||||||
PLATFORM=AVR
|
PLATFORM=AVR
|
||||||
|
PLATFORM_KEY=avr
|
||||||
FIRMWARE_FORMAT?=hex
|
FIRMWARE_FORMAT?=hex
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ all: elf
|
|||||||
|
|
||||||
VPATH += $(COMMON_VPATH)
|
VPATH += $(COMMON_VPATH)
|
||||||
PLATFORM:=TEST
|
PLATFORM:=TEST
|
||||||
|
PLATFORM_KEY:=test
|
||||||
|
|
||||||
ifneq ($(filter $(FULL_TESTS),$(TEST)),)
|
ifneq ($(filter $(FULL_TESTS),$(TEST)),)
|
||||||
include tests/$(TEST)/rules.mk
|
include tests/$(TEST)/rules.mk
|
||||||
|
|||||||
+2
-10
@@ -35,11 +35,7 @@ ifeq ($(strip $(AUDIO_ENABLE)), yes)
|
|||||||
MUSIC_ENABLE := 1
|
MUSIC_ENABLE := 1
|
||||||
SRC += $(QUANTUM_DIR)/process_keycode/process_audio.c
|
SRC += $(QUANTUM_DIR)/process_keycode/process_audio.c
|
||||||
SRC += $(QUANTUM_DIR)/process_keycode/process_clicky.c
|
SRC += $(QUANTUM_DIR)/process_keycode/process_clicky.c
|
||||||
ifeq ($(PLATFORM),AVR)
|
SRC += $(QUANTUM_DIR)/audio/audio_$(PLATFORM_KEY).c
|
||||||
SRC += $(QUANTUM_DIR)/audio/audio.c
|
|
||||||
else
|
|
||||||
SRC += $(QUANTUM_DIR)/audio/audio_arm.c
|
|
||||||
endif
|
|
||||||
SRC += $(QUANTUM_DIR)/audio/voices.c
|
SRC += $(QUANTUM_DIR)/audio/voices.c
|
||||||
SRC += $(QUANTUM_DIR)/audio/luts.c
|
SRC += $(QUANTUM_DIR)/audio/luts.c
|
||||||
endif
|
endif
|
||||||
@@ -315,11 +311,7 @@ ifeq ($(strip $(BACKLIGHT_ENABLE)), yes)
|
|||||||
else
|
else
|
||||||
SRC += $(QUANTUM_DIR)/backlight/backlight_driver_common.c
|
SRC += $(QUANTUM_DIR)/backlight/backlight_driver_common.c
|
||||||
ifeq ($(strip $(BACKLIGHT_DRIVER)), pwm)
|
ifeq ($(strip $(BACKLIGHT_DRIVER)), pwm)
|
||||||
ifeq ($(PLATFORM),AVR)
|
SRC += $(QUANTUM_DIR)/backlight/backlight_$(PLATFORM_KEY).c
|
||||||
SRC += $(QUANTUM_DIR)/backlight/backlight_avr.c
|
|
||||||
else
|
|
||||||
SRC += $(QUANTUM_DIR)/backlight/backlight_arm.c
|
|
||||||
endif
|
|
||||||
else
|
else
|
||||||
SRC += $(QUANTUM_DIR)/backlight/backlight_$(strip $(BACKLIGHT_DRIVER)).c
|
SRC += $(QUANTUM_DIR)/backlight/backlight_$(strip $(BACKLIGHT_DRIVER)).c
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -42,9 +42,13 @@ We've tried to make QMK as easy to set up as possible. You only have to prepare
|
|||||||
You will need to install MSYS2, Git, and the QMK CLI.
|
You will need to install MSYS2, Git, and the QMK CLI.
|
||||||
|
|
||||||
* Follow the installation instructions on the [MSYS2 homepage](http://www.msys2.org).
|
* Follow the installation instructions on the [MSYS2 homepage](http://www.msys2.org).
|
||||||
* Close any open MSYS2 terminals and open a new MSYS2 MinGW 64-bit terminal.
|
* Close any open MSYS2 terminals and open a new MSYS2 MinGW 64-bit terminal. NOTE: This is **not** the same as the MSYS terminal that opens when installation is completed.
|
||||||
|
|
||||||
After opening a new MSYS2 MinGW 64-bit terminal run these commands:
|
After opening a new MSYS2 MinGW 64-bit terminal, make sure `pacman` is up to date with:
|
||||||
|
|
||||||
|
pacman -Syu
|
||||||
|
|
||||||
|
You may be asked to close and reopen the window. Do this and keep running the above command until it says `there is nothing to do`. Then run the following:
|
||||||
|
|
||||||
pacman -S git python3-pip
|
pacman -S git python3-pip
|
||||||
python3 -m pip install qmk
|
python3 -m pip install qmk
|
||||||
|
|||||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -0,0 +1,33 @@
|
|||||||
|
/*
|
||||||
|
This is the c configuration file for the keymap
|
||||||
|
|
||||||
|
Copyright 2012 Jun Wako <[email protected]>
|
||||||
|
Copyright 2015 Jack Humbert
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
|
/* Use I2C or Serial, not both */
|
||||||
|
|
||||||
|
#define USE_SERIAL
|
||||||
|
// #define USE_I2C
|
||||||
|
|
||||||
|
/* Select hand configuration */
|
||||||
|
|
||||||
|
#define MASTER_LEFT
|
||||||
|
// #define MASTER_RIGHT
|
||||||
|
// #define EE_HANDS
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
#include "keymap_german.h"
|
||||||
|
|
||||||
|
enum layers {
|
||||||
|
_QWERTZ,
|
||||||
|
_MOD,
|
||||||
|
};
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[_QWERTZ] = LAYOUT(
|
||||||
|
_______ ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,_______ , KC_RSFT ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,_______ ,
|
||||||
|
KC_ESC ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_BSPC , KC_DEL ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,DE_ADIA ,
|
||||||
|
KC_TAB ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,DE_UNDS , KC_LALT ,KC_H ,KC_J ,KC_K ,KC_L ,DE_EQL ,DE_ODIA ,
|
||||||
|
_______ ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_SPC , KC_ENT ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,DE_SS ,DE_UDIA ,
|
||||||
|
_______ ,_______ ,_______ ,_______ , KC_LCTL ,KC_SPC ,KC_LSFT , MO(_MOD),KC_ENT ,KC_LGUI , _______ ,_______ ,_______ ,_______
|
||||||
|
),
|
||||||
|
[_MOD] = LAYOUT(
|
||||||
|
KC_F11 ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,RGB_MOD , RESET ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_F12 ,
|
||||||
|
DE_CIRC ,DE_QUOT ,DE_DQUO ,DE_LCBR ,DE_RCBR ,DE_GRV ,RGB_TOG , _______ ,DE_PERC ,DE_PLUS ,DE_MINS ,DE_ASTR ,DE_SLSH ,DE_BSLS ,
|
||||||
|
DE_TILD ,DE_EXLM ,DE_DLR ,DE_LPRN ,DE_RPRN ,DE_AMPR ,RGB_M_P , _______ ,KC_LEFT ,KC_DOWN ,KC_UP ,KC_RGHT ,DE_QUES ,DE_PIPE ,
|
||||||
|
_______ ,DE_AT ,DE_EURO ,DE_LBRC ,DE_RBRC ,_______ ,_______ , _______ ,DE_HASH ,DE_LABK ,DE_SCLN ,DE_COLN ,DE_RABK ,DE_SECT ,
|
||||||
|
_______ ,_______ ,_______ ,_______ , _______ ,_______ ,_______ , _______ ,_______ ,_______ , _______ ,_______ ,_______ ,_______
|
||||||
|
),
|
||||||
|
};
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
# Tw1t611 Ergodash Layout
|
||||||
|
|
||||||
|
This is a german layout for the ergodash keyboard. The Umlauts are placed on the right side.
|
||||||
|
It uses two layers and has vim like aligned arrow keys.
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
BACKLIGHT_ENABLE = no
|
||||||
|
RGBLIGHT_ENABLE = no
|
||||||
|
AUDIO_ENABLE = no
|
||||||
@@ -20,11 +20,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#include "config_common.h"
|
#include "config_common.h"
|
||||||
|
|
||||||
/* USB Device descriptor parameter */
|
/* USB Device descriptor parameter */
|
||||||
#define VENDOR_ID 0xFEED
|
#define VENDOR_ID 0x464C // "FL"
|
||||||
#define PRODUCT_ID 0x0000
|
#define PRODUCT_ID 0x0001
|
||||||
#define DEVICE_VER 0x0001
|
#define DEVICE_VER 0x0001
|
||||||
#define MANUFACTURER Fox Lab
|
#define MANUFACTURER Fox Lab
|
||||||
#define PRODUCT Leaf60 Hotswap
|
#define PRODUCT Leaf 60 Hotswap
|
||||||
#define DESCRIPTION A custom hotswap 60% keyboard
|
#define DESCRIPTION A custom hotswap 60% keyboard
|
||||||
|
|
||||||
/* key matrix size */
|
/* key matrix size */
|
||||||
|
|||||||
@@ -0,0 +1,48 @@
|
|||||||
|
/* Copyright 2019 Fox Lab
|
||||||
|
*
|
||||||
|
* 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
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
LAYOUT_60_tsangan_hhkb(
|
||||||
|
KC_ESC, 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_GRV, KC_BSLS,
|
||||||
|
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_BSPC,
|
||||||
|
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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_DEL,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RALT, KC_RCTL),
|
||||||
|
|
||||||
|
LAYOUT_60_tsangan_hhkb(
|
||||||
|
RESET, 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_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, BL_TOGG, BL_DEC, BL_INC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||||
|
|
||||||
|
LAYOUT_60_tsangan_hhkb(
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||||
|
|
||||||
|
LAYOUT_60_tsangan_hhkb(
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
|
||||||
|
|
||||||
|
};
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
VIA_ENABLE = yes
|
||||||
@@ -20,11 +20,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#include "config_common.h"
|
#include "config_common.h"
|
||||||
|
|
||||||
/* USB Device descriptor parameter */
|
/* USB Device descriptor parameter */
|
||||||
#define VENDOR_ID 0xFEED
|
#define VENDOR_ID 0x464C // "FL"
|
||||||
#define PRODUCT_ID 0x0000
|
#define PRODUCT_ID 0x0002
|
||||||
#define DEVICE_VER 0x0001
|
#define DEVICE_VER 0x0001
|
||||||
#define MANUFACTURER Fox Lab
|
#define MANUFACTURER Fox Lab
|
||||||
#define PRODUCT Leaf60 Universal
|
#define PRODUCT Leaf 60 Universal
|
||||||
#define DESCRIPTION A custom 60% keyboard
|
#define DESCRIPTION A custom 60% keyboard
|
||||||
|
|
||||||
/* key matrix size */
|
/* key matrix size */
|
||||||
|
|||||||
@@ -0,0 +1,48 @@
|
|||||||
|
/* Copyright 2019 Fox Lab
|
||||||
|
*
|
||||||
|
* 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
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
LAYOUT_all(
|
||||||
|
KC_ESC, 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_GRV, KC_BSPC,
|
||||||
|
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_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_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_DEL,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL),
|
||||||
|
|
||||||
|
LAYOUT_all(
|
||||||
|
RESET, 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_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, BL_TOGG, BL_DEC, BL_INC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||||
|
|
||||||
|
LAYOUT_all(
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||||
|
|
||||||
|
LAYOUT_all(
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
|
||||||
|
|
||||||
|
};
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
VIA_ENABLE = yes
|
||||||
@@ -14,14 +14,17 @@ GNU General Public License for more details.
|
|||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
#include "config_common.h"
|
#include "config_common.h"
|
||||||
|
|
||||||
/* USB Device descriptor parameter */
|
/* USB Device descriptor parameter */
|
||||||
#define VENDOR_ID 0xFEED
|
#define VENDOR_ID 0x4335 // GEEKhack
|
||||||
#define PRODUCT_ID 0x6060
|
#define PRODUCT_ID 0x0001
|
||||||
#define DEVICE_VER 0x0001
|
#define DEVICE_VER 0x0001
|
||||||
#define MANUFACTURER geekhack
|
#define MANUFACTURER geekhack
|
||||||
#define PRODUCT GH60
|
#define PRODUCT GH60 Rev C
|
||||||
#define DESCRIPTION t.m.k. keyboard firmware for GH60
|
#define DESCRIPTION t.m.k. keyboard firmware for GH60
|
||||||
|
|
||||||
/* key matrix size */
|
/* key matrix size */
|
||||||
|
|||||||
@@ -1,10 +1,7 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "GH60",
|
"keyboard_name": "GH60 Rev C",
|
||||||
"url": "http://qmk.fm/keyboards/gh60",
|
"url": "",
|
||||||
"maintainer": "qmk",
|
"maintainer": "qmk",
|
||||||
"keyboard_folder": "gh60",
|
|
||||||
"processor": "atmega32u4",
|
|
||||||
"manufacturer": "geekhack",
|
|
||||||
"width": 15,
|
"width": 15,
|
||||||
"height": 5,
|
"height": 5,
|
||||||
"layouts": {
|
"layouts": {
|
||||||
|
|||||||
@@ -0,0 +1,53 @@
|
|||||||
|
/* Copyright 2020 Diego Song
|
||||||
|
|
||||||
|
* 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
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
[0] = LAYOUT_all( /* 0: qwerty */
|
||||||
|
KC_ESC, 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_BSLS, KC_GRV,
|
||||||
|
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_BSPC,
|
||||||
|
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_NO, KC_ENT,
|
||||||
|
KC_LSFT, TG(2), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL
|
||||||
|
),
|
||||||
|
|
||||||
|
[1] = LAYOUT_all( /* 1: fn */
|
||||||
|
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_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
),
|
||||||
|
|
||||||
|
[2] = LAYOUT_all( /* 2: arrows */
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
|
||||||
|
[3] = LAYOUT_all(
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
),
|
||||||
|
|
||||||
|
};
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
VIA_ENABLE = yes
|
||||||
@@ -20,11 +20,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#include "config_common.h"
|
#include "config_common.h"
|
||||||
|
|
||||||
/* USB Device descriptor parameter */
|
/* USB Device descriptor parameter */
|
||||||
#define VENDOR_ID 0xFEED
|
#define VENDOR_ID 0x4335
|
||||||
#define PRODUCT_ID 0x6060
|
#define PRODUCT_ID 0x0002
|
||||||
#define DEVICE_VER 0x0003
|
#define DEVICE_VER 0x0003
|
||||||
#define MANUFACTURER SATAN
|
#define MANUFACTURER SATAN
|
||||||
#define PRODUCT GH60
|
#define PRODUCT GH60 Satan
|
||||||
#define DESCRIPTION 60% keyboard with backlight and WS2812 support
|
#define DESCRIPTION 60% keyboard with backlight and WS2812 support
|
||||||
|
|
||||||
/* key matrix size */
|
/* key matrix size */
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "Satan GH60",
|
"keyboard_name": "GH60 Satan",
|
||||||
"url": "",
|
"url": "",
|
||||||
"maintainer": "qmk",
|
"maintainer": "qmk",
|
||||||
"width": 15,
|
"width": 15,
|
||||||
|
|||||||
@@ -0,0 +1,53 @@
|
|||||||
|
/* Copyright 2020 Diego Song
|
||||||
|
|
||||||
|
* 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
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
[0] = LAYOUT_all( /* 0: qwerty */
|
||||||
|
KC_ESC, 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_BSLS, KC_GRV,
|
||||||
|
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_BSPC,
|
||||||
|
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_NO, KC_ENT,
|
||||||
|
KC_LSFT, TG(2), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL
|
||||||
|
),
|
||||||
|
|
||||||
|
[1] = LAYOUT_all( /* 1: fn */
|
||||||
|
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_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
),
|
||||||
|
|
||||||
|
[2] = LAYOUT_all( /* 2: arrows */
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
|
||||||
|
[3] = LAYOUT_all(
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
),
|
||||||
|
|
||||||
|
};
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
VIA_ENABLE = yes
|
||||||
|
LTO_ENABLE = yes
|
||||||
@@ -30,4 +30,4 @@ SRC = keyboards/wilba_tech/wt_main.c \
|
|||||||
keyboards/wilba_tech/wt_rgb_backlight.c \
|
keyboards/wilba_tech/wt_rgb_backlight.c \
|
||||||
drivers/issi/is31fl3733.c \
|
drivers/issi/is31fl3733.c \
|
||||||
quantum/color.c \
|
quantum/color.c \
|
||||||
drivers/arm/i2c_master.c
|
drivers/chibios/i2c_master.c
|
||||||
@@ -28,4 +28,4 @@ SRC = keyboards/wilba_tech/wt_main.c \
|
|||||||
keyboards/wilba_tech/wt_rgb_backlight.c \
|
keyboards/wilba_tech/wt_rgb_backlight.c \
|
||||||
drivers/issi/is31fl3733.c \
|
drivers/issi/is31fl3733.c \
|
||||||
quantum/color.c \
|
quantum/color.c \
|
||||||
drivers/arm/i2c_master.c
|
drivers/chibios/i2c_master.c
|
||||||
@@ -30,4 +30,4 @@ SRC = keyboards/wilba_tech/wt_main.c \
|
|||||||
keyboards/wilba_tech/wt_rgb_backlight.c \
|
keyboards/wilba_tech/wt_rgb_backlight.c \
|
||||||
drivers/issi/is31fl3733.c \
|
drivers/issi/is31fl3733.c \
|
||||||
quantum/color.c \
|
quantum/color.c \
|
||||||
drivers/arm/i2c_master.c
|
drivers/chibios/i2c_master.c
|
||||||
@@ -30,4 +30,4 @@ SRC = keyboards/wilba_tech/wt_main.c \
|
|||||||
keyboards/wilba_tech/wt_rgb_backlight.c \
|
keyboards/wilba_tech/wt_rgb_backlight.c \
|
||||||
drivers/issi/is31fl3733.c \
|
drivers/issi/is31fl3733.c \
|
||||||
quantum/color.c \
|
quantum/color.c \
|
||||||
drivers/arm/i2c_master.c
|
drivers/chibios/i2c_master.c
|
||||||
@@ -41,6 +41,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
/* Encoders */
|
/* Encoders */
|
||||||
#define ENCODERS_PAD_A { F4, F6 }
|
#define ENCODERS_PAD_A { F4, F6 }
|
||||||
#define ENCODERS_PAD_B { F5, F7 }
|
#define ENCODERS_PAD_B { F5, F7 }
|
||||||
|
#define ENCODER_RESOLUTION 2
|
||||||
|
// if you want to reverse encoder direction
|
||||||
|
// #define ENCODER_DIRECTION_FLIP
|
||||||
|
|
||||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||||
#define DEBOUNCE 5
|
#define DEBOUNCE 5
|
||||||
|
|||||||
@@ -116,55 +116,55 @@ void encoder_update_user(uint8_t index, bool clockwise) {
|
|||||||
if (currentLayer % 2 == 0) {
|
if (currentLayer % 2 == 0) {
|
||||||
// default layer
|
// default layer
|
||||||
// Zoom
|
// Zoom
|
||||||
tap_code16(!clockwise ? G(KC_EQL) : G(KC_MINS));
|
tap_code16(!clockwise ? G(KC_MINS) : G(KC_EQL));
|
||||||
} else {
|
} else {
|
||||||
// Fn Layer
|
// Fn Layer
|
||||||
// rotate canvas
|
// rotate canvas
|
||||||
tap_code(!clockwise ? KC_QUOT : KC_MINS);
|
tap_code(!clockwise ? KC_MINS : KC_QUOT);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case MAC_PS_1:
|
case MAC_PS_1:
|
||||||
if (currentLayer % 2 == 0) {
|
if (currentLayer % 2 == 0) {
|
||||||
// default layer
|
// default layer
|
||||||
// Zoom
|
// Zoom
|
||||||
tap_code16(!clockwise ? G(KC_EQL) : G(KC_MINS));
|
tap_code16(!clockwise ? G(KC_MINS) : G(KC_EQL));
|
||||||
} else {
|
} else {
|
||||||
// Fn Layer
|
// Fn Layer
|
||||||
// undo / redo
|
// undo / redo
|
||||||
tap_code16(!clockwise ? S(G(KC_Z)) : G(KC_Z));
|
tap_code16(!clockwise ? G(KC_Z) : S(G(KC_Z)));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case WIN_CS_1:
|
case WIN_CS_1:
|
||||||
if (currentLayer % 2 == 0) {
|
if (currentLayer % 2 == 0) {
|
||||||
// default layer
|
// default layer
|
||||||
// Zoom
|
// Zoom
|
||||||
tap_code16(!clockwise ? C(KC_EQL) : C(KC_MINS));
|
tap_code16(!clockwise ? C(KC_MINS) : C(KC_EQL));
|
||||||
} else {
|
} else {
|
||||||
// Fn Layer
|
// Fn Layer
|
||||||
// rotate canvas
|
// rotate canvas
|
||||||
tap_code(!clockwise ? KC_QUOT : KC_MINS);
|
tap_code(!clockwise ? KC_MINS : KC_QUOT);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case WIN_PS_1:
|
case WIN_PS_1:
|
||||||
if (currentLayer % 2 == 0) {
|
if (currentLayer % 2 == 0) {
|
||||||
// default layer
|
// default layer
|
||||||
// Zoom
|
// Zoom
|
||||||
tap_code16(!clockwise ? C(KC_SCLN) : C(KC_MINS));
|
tap_code16(!clockwise ? C(KC_MINS) : C(KC_SCLN));
|
||||||
} else {
|
} else {
|
||||||
// Fn Layer
|
// Fn Layer
|
||||||
// undo / redo
|
// undo / redo
|
||||||
tap_code16(!clockwise ? C(S(KC_Z)) : C(KC_Z));
|
tap_code16(!clockwise ? C(KC_Z) : C(S(KC_Z)));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case IOS_CS_1:
|
case IOS_CS_1:
|
||||||
if (currentLayer % 2 == 0) {
|
if (currentLayer % 2 == 0) {
|
||||||
// default layer
|
// default layer
|
||||||
// Zoom
|
// Zoom
|
||||||
tap_code16(!clockwise ? G(KC_SCLN) : G(KC_MINS));
|
tap_code16(!clockwise ? G(KC_MINS) : G(KC_SCLN));
|
||||||
} else {
|
} else {
|
||||||
// Fn Layer
|
// Fn Layer
|
||||||
// rotate canvas
|
// rotate canvas
|
||||||
tap_code(!clockwise ? KC_EQL : KC_MINS);
|
tap_code(!clockwise ? KC_MINS : KC_EQL);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@@ -176,55 +176,55 @@ void encoder_update_user(uint8_t index, bool clockwise) {
|
|||||||
if (currentLayer % 2 == 0) {
|
if (currentLayer % 2 == 0) {
|
||||||
// default layer
|
// default layer
|
||||||
// size of brush
|
// size of brush
|
||||||
tap_code(!clockwise ? KC_RBRC : KC_LBRC);
|
tap_code(!clockwise ? KC_LBRC : KC_RBRC);
|
||||||
} else {
|
} else {
|
||||||
// Fn Layer
|
// Fn Layer
|
||||||
// opacity of brush
|
// opacity of brush
|
||||||
tap_code16(!clockwise ? G(KC_RBRC) : G(KC_LBRC));
|
tap_code16(!clockwise ? G(KC_LBRC) : G(KC_RBRC));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case MAC_PS_1:
|
case MAC_PS_1:
|
||||||
if (currentLayer % 2 == 0) {
|
if (currentLayer % 2 == 0) {
|
||||||
// default layer
|
// default layer
|
||||||
// size of brush
|
// size of brush
|
||||||
tap_code(!clockwise ? KC_RBRC : KC_LBRC);
|
tap_code(!clockwise ? KC_LBRC : KC_RBRC);
|
||||||
} else {
|
} else {
|
||||||
// Fn Layer
|
// Fn Layer
|
||||||
// opacity of brush
|
// opacity of brush
|
||||||
tap_code16(!clockwise ? KC_RCBR : KC_LCBR);
|
tap_code16(!clockwise ? KC_LCBR : KC_RCBR);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case WIN_CS_1:
|
case WIN_CS_1:
|
||||||
if (currentLayer % 2 == 0) {
|
if (currentLayer % 2 == 0) {
|
||||||
// default layer
|
// default layer
|
||||||
// rotate canvas
|
// rotate canvas
|
||||||
tap_code(!clockwise ? KC_RBRC : KC_LBRC);
|
tap_code(!clockwise ? KC_LBRC : KC_RBRC);
|
||||||
} else {
|
} else {
|
||||||
// Fn Layer
|
// Fn Layer
|
||||||
// opacity of brush
|
// opacity of brush
|
||||||
tap_code16(!clockwise ? C(KC_RBRC) : C(KC_LBRC));
|
tap_code16(!clockwise ? C(KC_LBRC) : C(KC_RBRC));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case WIN_PS_1:
|
case WIN_PS_1:
|
||||||
if (currentLayer % 2 == 0) {
|
if (currentLayer % 2 == 0) {
|
||||||
// default layer
|
// default layer
|
||||||
// rotate canvas
|
// rotate canvas
|
||||||
tap_code(!clockwise ? KC_RBRC : KC_LBRC);
|
tap_code(!clockwise ? KC_LBRC : KC_RBRC);
|
||||||
} else {
|
} else {
|
||||||
// Fn Layer
|
// Fn Layer
|
||||||
// opacity of brush
|
// opacity of brush
|
||||||
tap_code16(!clockwise ? KC_RCBR : KC_LCBR);
|
tap_code16(!clockwise ? KC_LCBR : KC_RCBR);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case IOS_CS_1:
|
case IOS_CS_1:
|
||||||
if (currentLayer % 2 == 0) {
|
if (currentLayer % 2 == 0) {
|
||||||
// default layer
|
// default layer
|
||||||
// size of brush
|
// size of brush
|
||||||
tap_code(!clockwise ? KC_BSLS : KC_RBRC);
|
tap_code(!clockwise ? KC_RBRC : KC_BSLS);
|
||||||
} else {
|
} else {
|
||||||
// Fn Layer
|
// Fn Layer
|
||||||
// opacity of brush
|
// opacity of brush
|
||||||
tap_code16(!clockwise ? G(KC_BSLS) : G(KC_RBRC));
|
tap_code16(!clockwise ? G(KC_RBRC) : G(KC_BSLS));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ A left hand device with rotary encoder, for artists.
|
|||||||
|
|
||||||
* Keyboard Maintainer: [niltea](https://github.com/niltea)
|
* Keyboard Maintainer: [niltea](https://github.com/niltea)
|
||||||
* Hardware Supported: Palette1202
|
* Hardware Supported: Palette1202
|
||||||
* Hardware Availability: [Pixiv Booth](https://booth.pm/)
|
* Hardware Availability: [Pixiv Booth](https://niltea.booth.pm/)
|
||||||
* [PCB & Case](https://github.com/niltea/Palette1202)
|
* [PCB & Case](https://github.com/niltea/Palette1202)
|
||||||
|
|
||||||
Make example for this keyboard (after setting up your build environment):
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|||||||
@@ -49,7 +49,7 @@
|
|||||||
#else
|
#else
|
||||||
#include "ch.h"
|
#include "ch.h"
|
||||||
#include "hal.h"
|
#include "hal.h"
|
||||||
#include "drivers/arm/i2c_master.h"
|
#include "drivers/chibios/i2c_master.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(RGB_BACKLIGHT_DAWN60)
|
#if defined(RGB_BACKLIGHT_DAWN60)
|
||||||
|
|||||||
@@ -3,18 +3,18 @@
|
|||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
#define LAYOUT( \
|
#define LAYOUT( \
|
||||||
K00, K01, K02, K03, K04, K05, K20, K21, K22, K23, K24, K25, \
|
K00, K01, K02, K03, K04, K05, K40, K41, K42, K43, K44, K45,\
|
||||||
K40, K41, K42, K43, K44, K45, K60, K61, K62, K63, K64, K65, \
|
K10, K11, K12, K13, K14, K15, K50, K51, K52, K53, K54, K55,\
|
||||||
K10, K11, K12, K13, K14, K15, K30, K31, K32, K33, K34, K35, \
|
K20, K21, K22, K23, K24, K25, K60, K61, K62, K63, K64, K65,\
|
||||||
K50, K51, K52, K53, K54, K55, K70, K71, K72, K73, K74, K75 \
|
K30, K31, K32, K33, K34, K35, K70, K71, K72, K73, K74, K75 \
|
||||||
) { \
|
) { \
|
||||||
{ K00, K01, K02, K03, K04, K05 }, \
|
{ K00, K01, K02, K03, K04, K05 }, \
|
||||||
{ K10, K11, K12, K13, K14, K15 }, \
|
{ K10, K11, K12, K13, K14, K15 }, \
|
||||||
{ K20, K21, K22, K23, K24, K25 }, \
|
{ K20, K21, K22, K23, K24, K25 }, \
|
||||||
{ K30, K31, K32, K33, K34, K35 }, \
|
{ K30, K31, K32, K33, K34, K35 }, \
|
||||||
{ K40, K41, K42, K43, K44, K45 }, \
|
{ K40, K41, K42, K43, K44, K45 }, \
|
||||||
{ K50, K51, K52, K53, K54, K55 }, \
|
{ K50, K51, K52, K53, K54, K55 }, \
|
||||||
{ K60, K61, K62, K63, K64, K65 }, \
|
{ K60, K61, K62, K63, K64, K65 }, \
|
||||||
{ K70, K71, K72, K73, K74, K75 } \
|
{ K70, K71, K72, K73, K74, K75 } \
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -24,7 +24,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
||||||
KC_LSFT,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_ENT,
|
KC_LSFT,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_ENT,
|
||||||
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
||||||
KC_LCTL,KC_LGUI,KC_LALT,KC_DEL, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT,KC_DOWN,KC_UP, KC_RGHT
|
KC_LCTL,KC_LGUI,KC_LALT,KC_RALT,LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT,KC_DOWN,KC_UP, KC_RGHT
|
||||||
// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘
|
// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘
|
||||||
),
|
),
|
||||||
|
|
||||||
@@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
||||||
_______,KC_MINS,KC_EQL, KC_LBRC,KC_RBRC,KC_BSLS,KC_GRV, _______,_______,_______,_______,_______,
|
_______,KC_MINS,KC_EQL, KC_LBRC,KC_RBRC,KC_BSLS,KC_GRV, _______,_______,_______,_______,_______,
|
||||||
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
||||||
_______,KC_UNDS,KC_PLUS,KC_LCBR,KC_RCBR,KC_PIPE,KC_TILD,_______,_______,_______,_______,_______,
|
_______,KC_UNDS,KC_PLUS,KC_LCBR,KC_RCBR,KC_PIPE,KC_TILD,KC_CAPS,_______,_______,_______,_______,
|
||||||
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
||||||
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______
|
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______
|
||||||
// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘
|
// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘
|
||||||
@@ -42,13 +42,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
|
|
||||||
[_RAISE] = LAYOUT_ortho_4x12 (
|
[_RAISE] = LAYOUT_ortho_4x12 (
|
||||||
// ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐
|
// ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐
|
||||||
_______,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______,
|
_______,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL,
|
||||||
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
||||||
_______,KC_F11, KC_F12, _______,_______,_______,KC_HOME,KC_PGUP,_______,_______,_______,_______,
|
_______,KC_F11, KC_F12, _______,_______,_______,_______,KC_VOLD,KC_MUTE,KC_VOLU,_______,_______,
|
||||||
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
||||||
_______,_______,_______,KC_CAPS,_______,KC_PGDN,KC_END, KC_PGDN,_______,KC_BTN1,KC_BTN2,_______,
|
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,
|
||||||
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
|
||||||
_______,_______,_______,_______,TGLOWER,_______,_______,_______,KC_MS_L,KC_MS_D,KC_MS_U,KC_MS_R
|
_______,_______,_______,_______,TGLOWER,_______,_______,_______,KC_HOME,KC_PGDN,KC_PGUP,KC_END
|
||||||
// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘
|
// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘
|
||||||
),
|
),
|
||||||
|
|
||||||
|
|||||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -20,55 +20,129 @@
|
|||||||
* note: This website is written in Japanese.
|
* note: This website is written in Japanese.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef KEYMAP_JP_H
|
#pragma once
|
||||||
#define KEYMAP_JP_H
|
|
||||||
|
|
||||||
#include "keymap.h"
|
#include "keymap.h"
|
||||||
|
|
||||||
#define JP_ZHTG KC_GRV // hankaku/zenkaku|kanzi
|
// clang-format off
|
||||||
#define JP_YEN KC_INT3 // yen, |
|
|
||||||
#define JP_CIRC KC_EQL // ^, ~
|
|
||||||
#define JP_AT KC_LBRC // @, `
|
|
||||||
#define JP_LBRC KC_RBRC // [, {
|
|
||||||
#define JP_COLN KC_QUOT // :, *
|
|
||||||
#define JP_RBRC KC_NUHS // ], }
|
|
||||||
#define JP_BSLS KC_INT1 // \, _
|
|
||||||
#define JP_MHEN KC_INT5 // muhenkan
|
|
||||||
#define JP_HENK KC_INT4 // henkan
|
|
||||||
#define JP_KANA KC_INT2 // katakana/hiragana|ro-mazi
|
|
||||||
|
|
||||||
#define JP_MKANA KC_LANG1 // kana on MacOSX
|
/*
|
||||||
#define JP_MEISU KC_LANG2 // eisu on MacOSX
|
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
|
||||||
|
* │Z↔︎H│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ ^ │ ¥ │ │
|
||||||
|
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
|
||||||
|
* │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ @ │ [ │ │
|
||||||
|
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||||
|
* │ Eisū │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ : │ ] │ │
|
||||||
|
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┤
|
||||||
|
* │ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ \ │ │
|
||||||
|
* ├─────┬──┴┬──┴──┬┴───┴┬──┴───┴──┬┴───┴┬──┴┬──┴┬──┴┬──┴┬─────┤
|
||||||
|
* │ │ │ │Muhen│ │ Hen │K↔H│ │ │ │ │
|
||||||
|
* └─────┴───┴─────┴─────┴─────────┴─────┴───┴───┴───┴───┴─────┘
|
||||||
|
*/
|
||||||
|
// Row 1
|
||||||
|
#define JP_ZKHK KC_GRV // Zenkaku ↔︎ Hankaku ↔ Kanji (半角 ↔ 全角 ↔ 漢字)
|
||||||
|
#define JP_1 KC_1 // 1
|
||||||
|
#define JP_2 KC_2 // 2
|
||||||
|
#define JP_3 KC_3 // 3
|
||||||
|
#define JP_4 KC_4 // 4
|
||||||
|
#define JP_5 KC_5 // 5
|
||||||
|
#define JP_6 KC_6 // 6
|
||||||
|
#define JP_7 KC_7 // 7
|
||||||
|
#define JP_8 KC_8 // 8
|
||||||
|
#define JP_9 KC_9 // 9
|
||||||
|
#define JP_0 KC_0 // 0
|
||||||
|
#define JP_MINS KC_MINS // -
|
||||||
|
#define JP_CIRC KC_EQL // ^
|
||||||
|
#define JP_YEN KC_INT3 // ¥
|
||||||
|
// Row 2
|
||||||
|
#define JP_Q KC_Q // Q
|
||||||
|
#define JP_W KC_W // W
|
||||||
|
#define JP_E KC_E // E
|
||||||
|
#define JP_R KC_R // R
|
||||||
|
#define JP_T KC_T // T
|
||||||
|
#define JP_Y KC_Y // Y
|
||||||
|
#define JP_U KC_U // U
|
||||||
|
#define JP_I KC_I // I
|
||||||
|
#define JP_O KC_O // O
|
||||||
|
#define JP_P KC_P // P
|
||||||
|
#define JP_AT KC_LBRC // @
|
||||||
|
#define JP_LBRC KC_RBRC // [
|
||||||
|
// Row 3
|
||||||
|
#define JP_EISU KC_CAPS // Eisū (英数)
|
||||||
|
#define JP_A KC_A // A
|
||||||
|
#define JP_S KC_S // S
|
||||||
|
#define JP_D KC_D // D
|
||||||
|
#define JP_F KC_F // F
|
||||||
|
#define JP_G KC_G // G
|
||||||
|
#define JP_H KC_H // H
|
||||||
|
#define JP_J KC_J // J
|
||||||
|
#define JP_K KC_K // K
|
||||||
|
#define JP_L KC_L // L
|
||||||
|
#define JP_SCLN KC_SCLN // ;
|
||||||
|
#define JP_COLN KC_QUOT // :
|
||||||
|
#define JP_RBRC KC_NUHS // ]
|
||||||
|
// Row 4
|
||||||
|
#define JP_Z KC_Z // Z
|
||||||
|
#define JP_X KC_X // X
|
||||||
|
#define JP_C KC_C // C
|
||||||
|
#define JP_V KC_V // V
|
||||||
|
#define JP_B KC_B // B
|
||||||
|
#define JP_N KC_N // N
|
||||||
|
#define JP_M KC_M // M
|
||||||
|
#define JP_COMM KC_COMM // ,
|
||||||
|
#define JP_DOT KC_DOT // .
|
||||||
|
#define JP_SLSH KC_SLSH // /
|
||||||
|
#define JP_BSLS KC_INT1 // (backslash)
|
||||||
|
// Row 5
|
||||||
|
#define JP_MHEN KC_INT5 // Muhenkan (無変換)
|
||||||
|
#define JP_HENK KC_INT4 // Henkan (変換)
|
||||||
|
#define JP_KANA KC_INT2 // Katakana ↔ Hiragana ↔ Rōmaji (カタカナ ↔ ひらがな ↔ ローマ字)
|
||||||
|
|
||||||
// Aliases for shifted symbols
|
/* Shifted symbols
|
||||||
#define JP_DQT LSFT(KC_2) // "
|
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
|
||||||
#define JP_AMPR LSFT(KC_6) // &
|
* │ │ ! │ " │ # │ $ │ % │ & │ ' │ ( │ ) │ │ = │ ~ │ | │ │
|
||||||
#define JP_QUOT LSFT(KC_7) // '
|
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
|
||||||
#define JP_LPRN LSFT(KC_8) // (
|
* │ │ │ │ │ │ │ │ │ │ │ │ ` │ { │ │
|
||||||
#define JP_RPRN LSFT(KC_9) // )
|
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||||
#define JP_EQL LSFT(KC_MINS) // =
|
* │ Caps │ │ │ │ │ │ │ │ │ │ + │ * │ } │ │
|
||||||
#define JP_TILD LSFT(JP_CIRC) // ~
|
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┤
|
||||||
#define JP_PIPE LSFT(JP_YEN) // |
|
* │ │ │ │ │ │ │ │ │ < │ > │ ? │ _ │ │
|
||||||
#define JP_GRV LSFT(JP_AT) // `
|
* ├─────┬──┴┬──┴──┬┴───┴┬──┴───┴──┬┴───┴┬──┴┬──┴┬──┴┬──┴┬─────┤
|
||||||
#define JP_LCBR LSFT(JP_LBRC) // {
|
* │ │ │ │ │ │ │ │ │ │ │ │
|
||||||
#define JP_PLUS LSFT(KC_SCLN) // +
|
* └─────┴───┴─────┴─────┴─────────┴─────┴───┴───┴───┴───┴─────┘
|
||||||
#define JP_ASTR LSFT(JP_COLN) // *
|
*/
|
||||||
#define JP_RCBR LSFT(JP_RBRC) // }
|
// Row 1
|
||||||
#define JP_UNDS LSFT(JP_BSLS) // _
|
#define JP_EXLM S(JP_1) // !
|
||||||
|
#define JP_DQUO S(JP_2) // "
|
||||||
|
#define JP_HASH S(JP_3) // #
|
||||||
|
#define JP_DLR S(JP_4) // $
|
||||||
|
#define JP_PERC S(JP_5) // %
|
||||||
|
#define JP_AMPR S(JP_6) // &
|
||||||
|
#define JP_QUOT S(JP_7) // '
|
||||||
|
#define JP_LPRN S(JP_8) // (
|
||||||
|
#define JP_RPRN S(JP_9) // )
|
||||||
|
#define JP_EQL S(JP_MINS) // =
|
||||||
|
#define JP_TILD S(JP_CIRC) // ~
|
||||||
|
#define JP_PIPE S(JP_YEN) // |
|
||||||
|
// Row 2
|
||||||
|
#define JP_GRV S(JP_AT) // `
|
||||||
|
#define JP_LCBR S(JP_LBRC) // {
|
||||||
|
// Row 3
|
||||||
|
#define JP_CAPS S(JP_EISU) // Caps Lock
|
||||||
|
#define JP_PLUS S(JP_SCLN) // +
|
||||||
|
#define JP_ASTR S(JP_COLN) // *
|
||||||
|
#define JP_RCBR S(JP_RBRC) // }
|
||||||
|
// Row 4
|
||||||
|
#define JP_LABK S(JP_COMM) // <
|
||||||
|
#define JP_RABK S(JP_DOT) // >
|
||||||
|
#define JP_QUES S(JP_SLSH) // ?
|
||||||
|
#define JP_UNDS S(JP_BSLS) // _
|
||||||
|
|
||||||
// These symbols are correspond to US101-layout.
|
// DEPRECATED
|
||||||
#define JP_MINS KC_MINS // -
|
#define JP_ZHTG JP_ZKHK
|
||||||
#define JP_SCLN KC_SCLN // ;
|
#define JP_DQT JP_DQUO
|
||||||
#define JP_COMM KC_COMM // ,
|
#define JP_LT JP_LABK
|
||||||
#define JP_DOT KC_DOT // .
|
#define JP_GT JP_RABK
|
||||||
#define JP_SLSH KC_SLSH // /
|
|
||||||
// shifted
|
|
||||||
#define JP_EXLM KC_EXLM // !
|
|
||||||
#define JP_HASH KC_HASH // #
|
|
||||||
#define JP_DLR KC_DLR // $
|
|
||||||
#define JP_PERC KC_PERC // %
|
|
||||||
#define JP_LT KC_LT // <
|
|
||||||
#define JP_GT KC_GT // >
|
|
||||||
#define JP_QUES KC_QUES // ?
|
|
||||||
|
|
||||||
#endif
|
#define JP_MEISU KC_LANG2 // Eisū (英数) on macOS
|
||||||
|
#define JP_MKANA KC_LANG1 // Kana (かな) on macOS
|
||||||
@@ -40,7 +40,7 @@ const uint8_t ascii_to_shift_lut[16] PROGMEM = {
|
|||||||
KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0),
|
KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0),
|
||||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||||
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
|
||||||
KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 1, 0),
|
KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 1, 0)
|
||||||
};
|
};
|
||||||
|
|
||||||
const uint8_t ascii_to_keycode_lut[128] PROGMEM = {
|
const uint8_t ascii_to_keycode_lut[128] PROGMEM = {
|
||||||
|
|||||||
+1
-1
@@ -179,7 +179,7 @@ HEX = $(OBJCOPY) -O $(FORMAT)
|
|||||||
EEP =
|
EEP =
|
||||||
BIN = $(OBJCOPY) -O binary
|
BIN = $(OBJCOPY) -O binary
|
||||||
|
|
||||||
COMMON_VPATH += $(DRIVER_PATH)/arm
|
COMMON_VPATH += $(DRIVER_PATH)/chibios
|
||||||
|
|
||||||
THUMBFLAGS = -DTHUMB_PRESENT -mno-thumb-interwork -DTHUMB_NO_INTERWORKING -mthumb -DTHUMB
|
THUMBFLAGS = -DTHUMB_PRESENT -mno-thumb-interwork -DTHUMB_NO_INTERWORKING -mthumb -DTHUMB
|
||||||
|
|
||||||
|
|||||||
+2
-12
@@ -1,13 +1,5 @@
|
|||||||
COMMON_DIR = common
|
COMMON_DIR = common
|
||||||
ifeq ($(PLATFORM),AVR)
|
PLATFORM_COMMON_DIR = $(COMMON_DIR)/$(PLATFORM_KEY)
|
||||||
PLATFORM_COMMON_DIR = $(COMMON_DIR)/avr
|
|
||||||
else ifeq ($(PLATFORM),CHIBIOS)
|
|
||||||
PLATFORM_COMMON_DIR = $(COMMON_DIR)/chibios
|
|
||||||
else ifeq ($(PLATFORM),ARM_ATSAM)
|
|
||||||
PLATFORM_COMMON_DIR = $(COMMON_DIR)/arm_atsam
|
|
||||||
else
|
|
||||||
PLATFORM_COMMON_DIR = $(COMMON_DIR)/test
|
|
||||||
endif
|
|
||||||
|
|
||||||
TMK_COMMON_SRC += $(COMMON_DIR)/host.c \
|
TMK_COMMON_SRC += $(COMMON_DIR)/host.c \
|
||||||
$(COMMON_DIR)/keyboard.c \
|
$(COMMON_DIR)/keyboard.c \
|
||||||
@@ -179,6 +171,4 @@ endif
|
|||||||
|
|
||||||
# Search Path
|
# Search Path
|
||||||
VPATH += $(TMK_PATH)/$(COMMON_DIR)
|
VPATH += $(TMK_PATH)/$(COMMON_DIR)
|
||||||
ifeq ($(PLATFORM),CHIBIOS)
|
VPATH += $(TMK_PATH)/$(PLATFORM_COMMON_DIR)
|
||||||
VPATH += $(TMK_PATH)/$(COMMON_DIR)/chibios
|
|
||||||
endif
|
|
||||||
@@ -562,8 +562,6 @@ void process_action(keyrecord_t *record, action_t action) {
|
|||||||
action_macro_play(action_get_macro(record, action.func.id, action.func.opt));
|
action_macro_play(action_get_macro(record, action.func.id, action.func.opt));
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
case ACT_COMMAND:
|
|
||||||
break;
|
|
||||||
#ifdef SWAP_HANDS_ENABLE
|
#ifdef SWAP_HANDS_ENABLE
|
||||||
case ACT_SWAP_HANDS:
|
case ACT_SWAP_HANDS:
|
||||||
switch (action.swap.code) {
|
switch (action.swap.code) {
|
||||||
@@ -1041,9 +1039,6 @@ void debug_action(action_t action) {
|
|||||||
case ACT_MACRO:
|
case ACT_MACRO:
|
||||||
dprint("ACT_MACRO");
|
dprint("ACT_MACRO");
|
||||||
break;
|
break;
|
||||||
case ACT_COMMAND:
|
|
||||||
dprint("ACT_COMMAND");
|
|
||||||
break;
|
|
||||||
case ACT_FUNCTION:
|
case ACT_FUNCTION:
|
||||||
dprint("ACT_FUNCTION");
|
dprint("ACT_FUNCTION");
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -87,9 +87,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
* 1100|1111| id(8) Macro record?
|
* 1100|1111| id(8) Macro record?
|
||||||
*
|
*
|
||||||
* 1101|xxxx xxxx xxxx (reserved)
|
* 1101|xxxx xxxx xxxx (reserved)
|
||||||
*
|
* 1110|xxxx xxxx xxxx (reserved)
|
||||||
* ACT_COMMAND(1110):
|
|
||||||
* 1110|opt | id(8) Built-in Command exec
|
|
||||||
*
|
*
|
||||||
* ACT_FUNCTION(1111):
|
* ACT_FUNCTION(1111):
|
||||||
* 1111| address(12) Function?
|
* 1111| address(12) Function?
|
||||||
@@ -115,7 +113,6 @@ enum action_kind_id {
|
|||||||
ACT_LAYER_TAP_EXT = 0b1011, /* Layer 16-31 */
|
ACT_LAYER_TAP_EXT = 0b1011, /* Layer 16-31 */
|
||||||
/* Extensions */
|
/* Extensions */
|
||||||
ACT_MACRO = 0b1100,
|
ACT_MACRO = 0b1100,
|
||||||
ACT_COMMAND = 0b1110,
|
|
||||||
ACT_FUNCTION = 0b1111
|
ACT_FUNCTION = 0b1111
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -167,11 +164,6 @@ typedef union {
|
|||||||
uint8_t page : 2;
|
uint8_t page : 2;
|
||||||
uint8_t kind : 4;
|
uint8_t kind : 4;
|
||||||
} usage;
|
} usage;
|
||||||
struct action_command {
|
|
||||||
uint8_t id : 8;
|
|
||||||
uint8_t opt : 4;
|
|
||||||
uint8_t kind : 4;
|
|
||||||
} command;
|
|
||||||
struct action_function {
|
struct action_function {
|
||||||
uint8_t id : 8;
|
uint8_t id : 8;
|
||||||
uint8_t opt : 4;
|
uint8_t opt : 4;
|
||||||
@@ -287,8 +279,6 @@ enum layer_param_tap_op {
|
|||||||
#define ACTION_MACRO(id) ACTION(ACT_MACRO, (id))
|
#define ACTION_MACRO(id) ACTION(ACT_MACRO, (id))
|
||||||
#define ACTION_MACRO_TAP(id) ACTION(ACT_MACRO, FUNC_TAP << 8 | (id))
|
#define ACTION_MACRO_TAP(id) ACTION(ACT_MACRO, FUNC_TAP << 8 | (id))
|
||||||
#define ACTION_MACRO_OPT(id, opt) ACTION(ACT_MACRO, (opt) << 8 | (id))
|
#define ACTION_MACRO_OPT(id, opt) ACTION(ACT_MACRO, (opt) << 8 | (id))
|
||||||
/* Command */
|
|
||||||
#define ACTION_COMMAND(id, opt) ACTION(ACT_COMMAND, (opt) << 8 | (id))
|
|
||||||
/* Function */
|
/* Function */
|
||||||
enum function_opts {
|
enum function_opts {
|
||||||
FUNC_TAP = 0x8, /* indciates function is tappable */
|
FUNC_TAP = 0x8, /* indciates function is tappable */
|
||||||
|
|||||||
+68
-53
@@ -15,66 +15,83 @@ You should have received a copy of the GNU General Public License
|
|||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef REPORT_H
|
#pragma once
|
||||||
#define REPORT_H
|
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include "keycode.h"
|
#include "keycode.h"
|
||||||
|
|
||||||
/* report id */
|
/* HID report IDs */
|
||||||
#define REPORT_ID_KEYBOARD 1
|
enum hid_report_ids {
|
||||||
#define REPORT_ID_MOUSE 2
|
REPORT_ID_KEYBOARD = 1,
|
||||||
#define REPORT_ID_SYSTEM 3
|
REPORT_ID_MOUSE,
|
||||||
#define REPORT_ID_CONSUMER 4
|
REPORT_ID_SYSTEM,
|
||||||
#define REPORT_ID_NKRO 5
|
REPORT_ID_CONSUMER,
|
||||||
|
REPORT_ID_NKRO
|
||||||
|
};
|
||||||
|
|
||||||
/* mouse buttons */
|
/* Mouse buttons */
|
||||||
#define MOUSE_BTN1 (1 << 0)
|
enum mouse_buttons {
|
||||||
#define MOUSE_BTN2 (1 << 1)
|
MOUSE_BTN1 = (1 << 0),
|
||||||
#define MOUSE_BTN3 (1 << 2)
|
MOUSE_BTN2 = (1 << 1),
|
||||||
#define MOUSE_BTN4 (1 << 3)
|
MOUSE_BTN3 = (1 << 2),
|
||||||
#define MOUSE_BTN5 (1 << 4)
|
MOUSE_BTN4 = (1 << 3),
|
||||||
|
MOUSE_BTN5 = (1 << 4)
|
||||||
|
};
|
||||||
|
|
||||||
/* Consumer Page(0x0C)
|
// clang-format off
|
||||||
* following are supported by Windows: http://msdn.microsoft.com/en-us/windows/hardware/gg463372.aspx
|
|
||||||
* see also https://docs.microsoft.com/en-us/windows-hardware/drivers/hid/display-brightness-control
|
/* Consumer Page (0x0C)
|
||||||
|
*
|
||||||
|
* See https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf#page=75
|
||||||
*/
|
*/
|
||||||
#define AUDIO_MUTE 0x00E2
|
enum consumer_usages {
|
||||||
#define AUDIO_VOL_UP 0x00E9
|
// 15.5 Display Controls (https://www.usb.org/sites/default/files/hutrr41_0.pdf)
|
||||||
#define AUDIO_VOL_DOWN 0x00EA
|
BRIGHTNESS_UP = 0x06F,
|
||||||
#define TRANSPORT_NEXT_TRACK 0x00B5
|
BRIGHTNESS_DOWN = 0x070,
|
||||||
#define TRANSPORT_PREV_TRACK 0x00B6
|
// 15.7 Transport Controls
|
||||||
#define TRANSPORT_STOP 0x00B7
|
TRANSPORT_RECORD = 0x0B2,
|
||||||
#define TRANSPORT_STOP_EJECT 0x00CC
|
TRANSPORT_FAST_FORWARD = 0x0B3,
|
||||||
#define TRANSPORT_PLAY_PAUSE 0x00CD
|
TRANSPORT_REWIND = 0x0B4,
|
||||||
#define BRIGHTNESS_UP 0x006F
|
TRANSPORT_NEXT_TRACK = 0x0B5,
|
||||||
#define BRIGHTNESS_DOWN 0x0070
|
TRANSPORT_PREV_TRACK = 0x0B6,
|
||||||
/* application launch */
|
TRANSPORT_STOP = 0x0B7,
|
||||||
#define AL_CC_CONFIG 0x0183
|
TRANSPORT_EJECT = 0x0B8,
|
||||||
#define AL_EMAIL 0x018A
|
TRANSPORT_STOP_EJECT = 0x0CC,
|
||||||
#define AL_CALCULATOR 0x0192
|
TRANSPORT_PLAY_PAUSE = 0x0CD,
|
||||||
#define AL_LOCAL_BROWSER 0x0194
|
// 15.9.1 Audio Controls - Volume
|
||||||
/* application control */
|
AUDIO_MUTE = 0x0E2,
|
||||||
#define AC_SEARCH 0x0221
|
AUDIO_VOL_UP = 0x0E9,
|
||||||
#define AC_HOME 0x0223
|
AUDIO_VOL_DOWN = 0x0EA,
|
||||||
#define AC_BACK 0x0224
|
// 15.15 Application Launch Buttons
|
||||||
#define AC_FORWARD 0x0225
|
AL_CC_CONFIG = 0x183,
|
||||||
#define AC_STOP 0x0226
|
AL_EMAIL = 0x18A,
|
||||||
#define AC_REFRESH 0x0227
|
AL_CALCULATOR = 0x192,
|
||||||
#define AC_BOOKMARKS 0x022A
|
AL_LOCAL_BROWSER = 0x194,
|
||||||
/* supplement for Bluegiga iWRAP HID(not supported by Windows?) */
|
AL_LOCK = 0x19E,
|
||||||
#define AL_LOCK 0x019E
|
// 15.16 Generic GUI Application Controls
|
||||||
#define TRANSPORT_RECORD 0x00B2
|
AC_MINIMIZE = 0x206,
|
||||||
#define TRANSPORT_FAST_FORWARD 0x00B3
|
AC_SEARCH = 0x221,
|
||||||
#define TRANSPORT_REWIND 0x00B4
|
AC_HOME = 0x223,
|
||||||
#define TRANSPORT_EJECT 0x00B8
|
AC_BACK = 0x224,
|
||||||
#define AC_MINIMIZE 0x0206
|
AC_FORWARD = 0x225,
|
||||||
|
AC_STOP = 0x226,
|
||||||
|
AC_REFRESH = 0x227,
|
||||||
|
AC_BOOKMARKS = 0x22A
|
||||||
|
};
|
||||||
|
|
||||||
/* Generic Desktop Page(0x01) - system power control */
|
/* Generic Desktop Page (0x01)
|
||||||
#define SYSTEM_POWER_DOWN 0x0081
|
*
|
||||||
#define SYSTEM_SLEEP 0x0082
|
* See https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf#page=26
|
||||||
#define SYSTEM_WAKE_UP 0x0083
|
*/
|
||||||
|
enum desktop_usages {
|
||||||
|
// 4.5.1 System Controls - Power Controls
|
||||||
|
SYSTEM_POWER_DOWN = 0x81,
|
||||||
|
SYSTEM_SLEEP = 0x82,
|
||||||
|
SYSTEM_WAKE_UP = 0x83
|
||||||
|
};
|
||||||
|
|
||||||
|
// clang-format on
|
||||||
|
|
||||||
#define NKRO_SHARED_EP
|
#define NKRO_SHARED_EP
|
||||||
/* key report size(NKRO or boot mode) */
|
/* key report size(NKRO or boot mode) */
|
||||||
@@ -253,5 +270,3 @@ void clear_keys_from_report(report_keyboard_t* keyboard_report);
|
|||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
|
||||||
Reference in new issue
Block a user