Compare commits

...
34 Commits
Author SHA1 Message Date
yiancar a7df902734 Addition of hard brigtness limit for RGB_Matrix (#3299)
* Addition of hard brigtness limit for RGB_Matrix

- Added a define "RGB_MATRIX_MAXIMUM_BRIGHTNESS" to enable hard limiting the maximum brightness for rgb_matrix
- Used the above define to limit the maximum brigthness of HS60 for better stability

* Added docs for new rgb_matrix define

* Addition of check for maximum brightness
2018-07-03 12:52:04 -04:00
noroadsleft dad851d47d Phantom refactor and Configurator update (#3285)
* Matrix refactor

* Keymap refactor

* Add iso_uk keymap

* Configurator update

* Add LAYOUTS = tkl_ansi tkl_iso to rules.mk
2018-07-01 20:18:50 -07:00
Mikkel Jeppesen a3c7f30971 Fixed pin for RGB on lets_split/sockets keyboard (#3284) 2018-07-01 20:17:35 -07:00
Campbell Barton f8f1b6fac8 qwerty_code_friendly: update for renamed macro (#3283) 2018-07-01 11:10:27 -07:00
MakotoKurauchi c3d429bcb6 defaulted to 5 rows when HELIX_ROWS is not defined (#3282) 2018-07-01 11:09:06 -07:00
noroadsleft 90c384f650 Omnikey Blackheart refactor (#3280) 2018-07-01 11:08:29 -07:00
noroadsleft 47957c3f77 OK60 Refactor and Configurator support (#3279)
* Matrix refactor

* Keymap refactor

* Configurator support

* Readme formatting fix
2018-07-01 11:07:48 -07:00
noroadsleft 63b0290708 Nyquist Configurator support and keymap refactor (#3278)
* Configurator support

* Keymap refactor to QMK_KEYBOARD_H
2018-07-01 11:06:57 -07:00
noroadsleft e8d2f4f891 Novelpad refactor and Configurator support (#3276)
* Matrix refactor

* Keymap refactor

* Configurator support

* Add LAYOUTS = ortho_5x4 to rules.mk

* Readme formatting fix

* #include != #define

* Removed an extra comma
2018-07-01 11:06:00 -07:00
noroadsleft 29954efd06 Nano refactor and Configurator update (#3275)
* Matrix refactor

* Keymap refactor

* Configurator support
2018-07-01 11:05:10 -07:00
marksard 738eab0bb1 Helix five rows jis (#3274)
* Added keymap for Helix like Japanese JIS keyboard.

* * Refactored
* Supported to display of exchange layer
2018-07-01 11:04:34 -07:00
noroadsleft 0470017c21 Miuni32 refactor and Configurator support (#3273)
* Matrix refactor

* Keymap refactor

* Configurator support

* Readme formatting update
2018-07-01 11:02:26 -07:00
noroadsleft 585f753ffe Mitosis refactor and Configurator support (#3271)
* Matrix refactor

* Configurator support

* Keymap refactor
2018-06-30 19:42:06 -07:00
MakotoKurauchi c8e1397e08 Helix fix configrator problem (#3270)
* Fix problem with configrator

* Edit keyboard info
2018-06-30 18:08:52 -07:00
omkbd 87d9bb461b ErgoDash Hardware Update (#3269)
* Hardware update

Backlight enable
Change pin
Add 2keys (68→70)

* change readme

* support rev1

change keymap path

* move ergodash.h
2018-06-30 13:13:34 -07:00
MakotoKurauchi 155375ea32 Helix shrink config (#3268)
* add some comment about Helix customize and auto-setup RGBLIGHT_LIMIT_VAL

* add define USB_MAX_POWER_CONSUMPTION

* Helix keyboard OLED, RGBLIGHT enable/disable control integrate into rules.mk

rules.mk: add 4 Variables for compile control.

   # Helix keyboard customize
   # you can edit follows 4 Variables
   #  jp: 以下の4つの変数を必要に応じて編集します。
   OLED_ENABLE = no            # OLED_ENABLE
   LED_BACK_ENABLE = no        # LED backlight (Enable WS2812 RGB underlight.)
   LED_UNDERGLOW_ENABLE = no   # LED underglow (Enable WS2812 RGB underlight.)
   LED_ANIMATIONS = yes        # LED animations

config.h: auto set RGBLED_NUM by HELIX_ROWS and rules.mk's define

* HELIX_ROWS define move from config.h to rules.mk

* add readme.md

* rename readme.md to readme_jp.md

* add readme.md and modify readme_jp.md

* change helix/ssd1306.c for select glcdfont.c position

* add variable LOCAL_GLCDFONT into each keymaps rules.mk

* Add iPhone/iPad LED support to Helix default keymap

* renumber _ADJUST for shrink program size

* Fix Helix i2c wrong bit rate

* add helix serial debug code

* serial debug macro move from config.h to serial.h

* helix serial.c debugging...

* refine debug macros

* add some comments

* add SELECT_SERIAL_SPEED

* add comments

* debugging sync_send/sync_recv

* add very high speed

* fix sync_send/sync_recv

* fix com. start and switch send/recv

* debug mode off

* remove debug codes

* Shrinked config.h
2018-06-30 13:12:17 -07:00
wanleg dca2c2a439 readme update to wanleg layout (#3266) 2018-06-30 06:35:45 -07:00
Max Rumpf 701fed2e15 Maxr1998's contra layout (#3267) 2018-06-30 06:31:26 -07:00
Markus Weimar 1230ecb73d Add XD75 keymap (#3263) 2018-06-29 15:05:05 -07:00
wanleg b79c324642 add QMK DFU make option to gherkin, and bootloader replacement instructions (#3253)
* add QMK DFU make option, bootloader replacement instructions

in wanleg readme: update flashing instructions, add bootloader replacement instructions (replace default Caterina with QMK DFU).

add make option for QMK DFU

* suggested revisions made

* formatting changes
2018-06-29 14:58:38 -07:00
Cory Shaw 5709e1b602 Fix Mbsurfer deltasplit75 keymap (#3262)
* Add mbsurfer keymap for DeltaSplit75 with ANSI split backspace

* Update mbsurfer DeltaSplit75 keymap to include right hand arrow cluster

* Update mbsurfer DS75 keymap, move volume down to be symmetrical

* Add readme to Mbsurfer DS75 keymap

* Fix Mbsurfer DS75 keymap image

* Clean up mbsurfer DeltaSplit75 keymap, add layer overview comments

* Fix volume down and add mute to fn layer
2018-06-29 08:22:23 -07:00
MechMerlin 1499dffb07 Support KBD75 rev 2 (#3261)
* Restructure kbd75 to support multiple revs

* add rev2 files

* fix config comments

* try and avoid duplicate code for LAYOUT macros

* keep the same layouts for rev2 for info.json

* Add QMK Configurator support for the numpad layout

* update readme to talk about rev2
2018-06-28 22:44:49 -07:00
noroadsleft b4888eee14 Levinson Configurator support (#3260)
* Configurator support

* Deleted deprecated KC_LAYOUT_ortho_4x12 matrix alias

* Refactor valgrahf keymap for new matrix name
2018-06-28 22:24:23 -07:00
noroadsleft 91e8e8d916 Let's Split refactor and Configurator support (#3259)
* Matrix refactor: deleted KC_LAYOUT_ortho_4x12 alias

* Keymap refactor: bbaserdem_right keymap updated to use new matrix name

* Configurator support
2018-06-28 22:23:41 -07:00
MechMerlin 09bb020a55 update to mechmerlin keymaps (#3258) 2018-06-28 22:23:14 -07:00
Evgeniy Petukhov 03381962ac Diagonal micro move fix 2018-06-28 22:10:53 -04:00
adamws a980a7972c removed unused boxes (qmk won't compile with them anyway), updated welcome message 2018-06-28 22:09:38 -04:00
Drashna Jaelre 526eabb6f8 Make sure that both RGBLIGHT_ENABLE is defined, for RGBLIGHT_SLEEP 2018-06-28 22:08:26 -04:00
noroadsleft e448ef0b1a Kitten Paw refactor and Configurator update (#3248)
* Matrix refactor

* Keymap refactor

* Add fullsize_ansi layout to rules.mk

* Configurator support

* Readme cleanup

* Add matrix_init_user and matrix_scan_user functions to kitten_paw.c
2018-06-28 12:40:40 -07:00
noroadsleft ded51136ce Laplace Refactor (#3252) 2018-06-28 06:56:14 -07:00
MakotoKurauchi 1038bbef40 Helix serial bugfix (#3255)
* add helix serial debug code

* serial debug macro move from config.h to serial.h

* helix serial.c debugging...

* refine debug macros

* add some comments

* add SELECT_SERIAL_SPEED

* add comments

* debugging sync_send/sync_recv

* add very high speed

* fix sync_send/sync_recv

* fix com. start and switch send/recv

* debug mode off

* remove debug codes
2018-06-28 06:55:15 -07:00
noroadsleft d80774027e Knops Configurator update (#3249) 2018-06-28 06:53:23 -07:00
sgugler f5f0e93230 added a description how to flash jj40 in windows (#3247) 2018-06-28 06:52:24 -07:00
fauxpark 6590f3c811 Clean up SEND_STRING keycodes and add media keys (#3214)
* Clean up SEND_STRING keycodes and add media keys

* Remove stray define

* Add missing SEND_STRING keycodes for completeness

Also, add KC_EJCT to the keycode references
2018-06-28 08:55:04 -04:00
139 changed files with 4160 additions and 1848 deletions

No files matched your search

Vendored
+8 -29
View File
@@ -2,27 +2,8 @@
# vi: set ft=ruby : # vi: set ft=ruby :
Vagrant.configure(2) do |config| Vagrant.configure(2) do |config|
# You can only have one config.vm.box uncommented at a time
# Comment this and uncomment another if you don't want to use the minimal Arch box
#config.vm.box = "dragon788/arch-ala-elasticdog"
# VMware/Virtualbox 64 bit # VMware/Virtualbox 64 bit
config.vm.box = "phusion/ubuntu-14.04-amd64" config.vm.box = "phusion/ubuntu-14.04-amd64"
#
# VMware/Virtualbox 64 bit
#config.vm.box = "puphpet/centos65-x64"
#
# The opensuse boxes don't have dfu-util in their default repositories
#
# The virtualbox version has tools issues
# VMware/Virtualbox 64 bit
#config.vm.box = "bento/opensuse-13.2-x86_64"
#
# Virtualbox only
#config.vm.box = "bento/opensuse-13.2-i386"
# config.vm.box = ""
# config.vm.box = ""
# This section allows you to customize the Virtualbox VM # This section allows you to customize the Virtualbox VM
# settings, ie showing the GUI or upping the memory # settings, ie showing the GUI or upping the memory
@@ -81,18 +62,16 @@ Vagrant.configure(2) do |config|
config.vm.provision "shell", run: "always", path: "./util/install_dependencies.sh", args: "-update" config.vm.provision "shell", run: "always", path: "./util/install_dependencies.sh", args: "-update"
config.vm.post_up_message = <<-EOT config.vm.post_up_message = <<-EOT
Log into the VM using 'vagrant ssh' on OSX or from Git Bash (Win)
or 'vagrant ssh-config' and Putty or Bitvise SSH or another SSH tool
Change directory (cd) to the keyboard you wish to program Log into the VM using 'vagrant ssh'. QMK directory synchronized with host is
(Optionally) modify your layout, located at /vagrant
then run 'make clean' To compile the .hex files use make command inside this directory.
and then 'make' to compile the .eep and .hex files.
Or you can copy and paste the example line below.
cd /vagrant; cd keyboards; cd ergodox; make clean; make
QMK's make format recently changed to use folder locations and colons:
make project_folder:keymap[:target]
Examples:
make planck/rev4:default:dfu
make planck:default
EOT EOT
end end
+1
View File
@@ -119,6 +119,7 @@ A similar function works in the keymap as `rgb_matrix_indicators_user`.
#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects #define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
#define RGB_DISABLE_WHEN_USB_SUSPENDED false // turn off effects when suspended #define RGB_DISABLE_WHEN_USB_SUSPENDED false // turn off effects when suspended
#define RGB_MATRIX_SKIP_FRAMES 1 // number of frames to skip when displaying animations (0 is full effect) if not defined defaults to 1 #define RGB_MATRIX_SKIP_FRAMES 1 // number of frames to skip when displaying animations (0 is full effect) if not defined defaults to 1
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255
## EEPROM storage ## EEPROM storage
+1
View File
@@ -167,6 +167,7 @@ This is a reference only. Each group of keys links to the page documenting their
|`KC_MEDIA_STOP` |`KC_MSTP` |Stop Track | |`KC_MEDIA_STOP` |`KC_MSTP` |Stop Track |
|`KC_MEDIA_PLAY_PAUSE` |`KC_MPLY` |Play/Pause Track | |`KC_MEDIA_PLAY_PAUSE` |`KC_MPLY` |Play/Pause Track |
|`KC_MEDIA_SELECT` |`KC_MSEL` | | |`KC_MEDIA_SELECT` |`KC_MSEL` | |
|`KC_MEDIA_EJECT` |`KC_EJCT` |Eject (macOS) |
|`KC_NUMLOCK` |`KC_NLCK` |Keypad Num Lock and Clear | |`KC_NUMLOCK` |`KC_NLCK` |Keypad Num Lock and Clear |
|`KC_KP_SLASH` |`KC_PSLS` |Keypad `/` | |`KC_KP_SLASH` |`KC_PSLS` |Keypad `/` |
|`KC_KP_ASTERISK` |`KC_PAST` |Keypad `*` | |`KC_KP_ASTERISK` |`KC_PAST` |Keypad `*` |
+1
View File
@@ -194,6 +194,7 @@ Windows and macOS use different keycodes for "next track" and "previous track".
|`KC_MEDIA_STOP` |`KC_MSTP`|Stop Track | |`KC_MEDIA_STOP` |`KC_MSTP`|Stop Track |
|`KC_MEDIA_PLAY_PAUSE` |`KC_MPLY`|Play/Pause Track | |`KC_MEDIA_PLAY_PAUSE` |`KC_MPLY`|Play/Pause Track |
|`KC_MEDIA_SELECT` |`KC_MSEL`| | |`KC_MEDIA_SELECT` |`KC_MSEL`| |
|`KC_MEDIA_EJECT` |`KC_EJCT`|Eject (macOS) |
## Number Pad ## Number Pad
@@ -0,0 +1,15 @@
#ifndef CONFIG_USER_H
#define CONFIG_USER_H
#include "config_common.h"
#define TAPPING_TOGGLE 2
#define RGB_DI_PIN F7 // pin the DI on the WS2812B is hooked-up to
#define RGBLIGHT_ANIMATIONS // run RGB animations
#define RGBLED_NUM 12 // number of LEDs
#define RGBLIGHT_HUE_STEP 12 // units to step when in/decreasing hue
#define RGBLIGHT_SAT_STEP 25 // units to step when in/decresing saturation
#define RGBLIGHT_VAL_STEP 12 // units to step when in/decreasing value (brightness)
#endif
+143
View File
@@ -0,0 +1,143 @@
/* Copyright 2015-2017 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/>.
*/
#include "contra.h"
#include "keymap_german.h"
enum contra_layers {
_QWERTZ,
_FUNC,
_NUMPAD,
_NUMROW
};
#define FUN MO(_FUNC)
#define NPK TT(_NUMPAD)
//#define SPEC_S LM(_NUMROW, (KC_LSFT))
//#define SPEC_L3 LM(_NUMROW, (DE_ALGR))
enum custom_keycodes {
SPEC_S = SAFE_RANGE,
SPEC_L3
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Qwertz
* ,-----------------------------------------------------------------------------------.
* | Esc | Q | W | E | R | T | Z | U | I | O | P | Bksp |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | Tab | A | S | D | F | G | H | J | K | L | +* ~ | Enter|
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | Shift| Y | X | C | V | B | N | M | , | . | Up | Shift|
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Ctrl | Sup | Alt | NumP | Spec | Space | Sp_A | Fun | Left | Down | Right|
* `-----------------------------------------------------------------------------------'
*/
[_QWERTZ] = {
{KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
{KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, DE_PLUS, KC_ENT },
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_RSFT},
{KC_LCTL, KC_LGUI, KC_LALT, NPK, SPEC_S, KC_SPC, KC_SPC, SPEC_L3, FUN, KC_LEFT, KC_DOWN, KC_RGHT}
},
/* Function layer
* ,-----------------------------------------------------------------------------------.
* | | | | | | | | Ü | | Ö | | Del |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | Lock | Ä | | | | | | RGBS | RGBB | RGBS | | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | | | | | | | RGBH-| RGBT | RGBH+| PgUp | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | ---- | ---- | | | ---- | ---- | Home | PgDn | End |
* `-----------------------------------------------------------------------------------'
*/
[_FUNC] = {
{_______, _______, _______, _______, _______, _______, _______, DE_UE, _______, DE_OE, _______, KC_DEL },
{KC_LOCK, DE_AE, _______, _______, _______, _______, _______, RGB_M_P, RGB_M_B, RGB_M_SW,_______, _______},
{_______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_TOG, RGB_HUI, KC_PGUP, _______},
{_______, _______, _______, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDN, KC_END }
},
/* Numrow layer (special characters with Shift and ISO_L3_Shift)
* ,-----------------------------------------------------------------------------------.
* | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | ß |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | | | | | | | | | | | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | ><| | | | | | | | | | _ - | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | ---- | ---- | | | ---- | ---- | | | |
* `-----------------------------------------------------------------------------------'
*/
[_NUMROW] = {
{_______, DE_1, DE_2, DE_3, DE_4, DE_5, DE_6, DE_7, DE_8, DE_9, DE_0, DE_SS },
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
{_______, DE_LESS, _______, _______, _______, _______, _______, _______, _______, _______, DE_MINS, _______},
{_______, _______, _______, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, _______, _______, _______}
},
/* Numpad layer
* ,-----------------------------------------------------------------------------------.
* | | + | 7 | 8 | 9 | | | | | | | |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | - | 4 | 5 | 6 | | | | | | | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | * | 1 | 2 | 3 | | | | | | | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | / | 0 | ---- | ---- | | | ---- | ---- | | | |
* `-----------------------------------------------------------------------------------'
*/
[_NUMPAD] = {
{DEBUG, KC_PPLS, KC_P7, KC_P8, KC_P9, _______, _______, _______, _______, _______, _______, _______},
{_______, KC_PMNS, KC_P4, KC_P5, KC_P6, _______, _______, _______, _______, _______, _______, _______},
{_______, KC_PAST, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______, _______, _______},
{_______, KC_PSLS, KC_P0, _______, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, _______, _______, _______}
}
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case SPEC_S:
if (record->event.pressed) {
register_code(KC_LSFT);
layer_on(_NUMROW);
} else {
layer_off(_NUMROW);
unregister_code(KC_LSFT);
}
return false;
case SPEC_L3:
if (record->event.pressed) {
register_code(DE_ALGR);
layer_on(_NUMROW);
} else {
layer_off(_NUMROW);
unregister_code(DE_ALGR);
}
return false;
default:
return true;
}
}
void led_set_user(uint8_t usb_led) {
// Force-enable Numlock
if (!(usb_led & (1<<USB_LED_NUM_LOCK))) {
register_code(KC_NUMLOCK);
unregister_code(KC_NUMLOCK);
}
}
@@ -0,0 +1 @@
# Contra Layout by Maxr1998
@@ -0,0 +1,9 @@
RGBLIGHT_ENABLE = yes
KEY_LOCK_ENABLE = yes
### Debugging ###
#CONSOLE_ENABLE = yes
ifndef QUANTUM_DIR
include ../../../../Makefile
endif
@@ -10,22 +10,53 @@ extern keymap_config_t keymap_config;
// entirely and just use numbers. // entirely and just use numbers.
// Fillers to make layering more clear // Fillers to make layering more clear
#define _______ KC_TRNS
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KEYMAP_V2( /* Layer 0: Default Layer
* ,---------------------------- ----------------------------------------.
* |Esc| F1| F2| F3| F4| F5| F6| |F7| F8| F9| F10| F11| F12|Prnt|Ins|Home|
* |---------------------------- ----------------------------------------|
* | `| 1| 2| 3| 4| 5| 6| | 7| 8| 9| 0| -| =| \| Del| End|
* |-------------------------- ------------------------------------------|
* |Tab | Q| W| E| R| T| | Y| U| I| O| P| [| ]| BkSp | PgUp|
* |-------------------------- ------------------------------------------|
* |Ctrl| A| S| D| F| G| | H| J| K| L| ;| '| Enter | PgDn|
* |---------------------------- -----------------------------------------|
* |Shift | Z| X| C| V| B| | N| M| ,| .| /| Shift | Up| FN1|
* |----------------------------- ----------------------------------------|
* |Ctrl |Gui |Alt |Space |FN1 | | Space | Alt| Gui| Ctrl| Lef | Dow |Rig|
* `---------------------------- ----------------------------------------'
*/
LAYOUT_v2(
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_INS, KC_PAUSE, KC_HOME, 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_INS, KC_PAUSE, KC_HOME,
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_BSLS, KC_DEL, KC_END, 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_BSLS, KC_DEL, KC_END,
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_PGUP, 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_PGUP,
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_TRNS, KC_ENT, KC_PGDN, //modify KC_TRNS to enable ISO Support KC_LCTL, 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_PGDN, //modify _______ to enable ISO Support
KC_LSFT, KC_TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_TRNS, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, MO(1), //modify KC_TRNS to enable ISO Support KC_LSFT, _______, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, MO(1), //modify _______ to enable ISO Support
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
KEYMAP_V2( /* Layer 1: FN1 Layer
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, * ,---------------------------- -------------------------------------.
KC_BSLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, * | | | | | | | | | | | | | | | |Reset|
KC_CAPSLOCK, KC_VOLU, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, * |---------------------------- -------------------------------------|
M(1), KC_LEFT, KC_DOWN, KC_RGHT, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, * | \ | | | | | | | | | | | | | | | |
KC_TRNS, KC_VOLD, KC_TRNS, M(0), KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DOWN, KC_TRNS, KC_TRNS, KC_TRNS, * |---------------------------- ---------------------------------------|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), * |Caps|VolUp| Up | | | | | | | | | Up| | | |
* |--------------------------- ---------------------------------------|
* | |Lft|Dwn|Rig| | | | | | |Lft|Rig| | |
* |---------------------------- -------------------------------------|
* | |VolDn|Mute| | | | | | | |Dwn| | | |
* |---------------------------- ----------------------------------------|
* | | | | | | | | | | | | |
* `--------------------------- ----------------------------------------'
*/
LAYOUT_v2(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET,
KC_BSLS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
KC_CAPSLOCK, KC_VOLU, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______,
M(1), KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_RIGHT, _______, _______, _______,
_______, _______, KC_VOLD, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
}; };
+8 -3
View File
@@ -1,13 +1,18 @@
# ErgoDash # ErgoDash
![ErgoDash](https://i.imgur.com/ZyI592o.jpg) ![ErgoDash](https://github.com/omkbd/picture/blob/master/IMG_20180630_1702141.jpg)
Keyboard Maintainer: [omkbd](https://github.com/omkbd) [@omkbd](https://twitter.com/omkbd) Keyboard Maintainer: [omkbd](https://github.com/omkbd) [@omkbd](https://twitter.com/omkbd)
Hardware Supported: ErgoDash PCB, Pro Micro ATmega32u4 Hardware Supported: ErgoDash PCB, Pro Micro ATmega32u4
Hardware Availability: In preparation Hardware Availability: Order your own [yourself](https://github.com/omkbd/ErgoDash)
Make example for this keyboard (after setting up your build environment): Make example for this keyboard (after setting up your build environment):
make ergodash/rev1:default make ergodash/rev2:default
See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
# Layout
![layout](https://github.com/omkbd/picture/blob/master/ergodash-layout.png)
![PCB](https://github.com/omkbd/picture/blob/master/IMG_20180630_2022231.jpg)
@@ -7,7 +7,6 @@
#include "rev1.h" #include "rev1.h"
#endif #endif
// Used to create a keymap using only KC_ prefixed keys // Used to create a keymap using only KC_ prefixed keys
#define LAYOUT_kc( \ #define LAYOUT_kc( \
L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \ L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \
+95
View File
@@ -0,0 +1,95 @@
/*
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/>.
*/
#ifndef REV2_CONFIG_H
#define REV2_CONFIG_H
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x6060
#define DEVICE_VER 0x0100
#define MANUFACTURER Omkbd
#define PRODUCT ErgoDash
#define DESCRIPTION Power
/* key matrix size */
// Rows are doubled-up
#define MATRIX_ROWS 10
#define MATRIX_COLS 7
// wiring of each half
#define MATRIX_ROW_PINS { D4, D7, E6, B4, B5 }
#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2 }
// #define MATRIX_COL_PINS { B2, B3, B1, F7, F6, F5, F4 } //uncomment this line and comment line above if you need to reverse left-to-right key order
/* define tapping term */
#define TAPPING_TERM 120
/* define if matrix has ghost */
//#define MATRIX_HAS_GHOST
/* number of backlight levels */
#ifdef BACKLIGHT_ENABLE
#define BACKLIGHT_PIN B6
#define BACKLIGHT_LEVELS 7
#define BACKLIGHT_BREATHING
#define BREATHING_PERIOD 4
#endif
/* Set 0 if debouncing isn't needed */
#define DEBOUNCING_DELAY 5
/* 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
/* key combination for command */
#define IS_COMMAND() ( \
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
/* ws2812 RGB LED */
#define RGB_DI_PIN D3
#define RGBLIGHT_TIMER
#define RGBLED_NUM 24 // Number of LEDs
#define ws2812_PORTREG PORTD
#define ws2812_DDRREG DDRD
/*
* Feature disable options
* These options are also useful to firmware size reduction.
*/
/* disable debug print */
// #define NO_DEBUG
/* disable print */
// #define NO_PRINT
/* disable action features */
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION
#endif
+26
View File
@@ -0,0 +1,26 @@
#ifndef ERGODASH_H
#define ERGODASH_H
#include "quantum.h"
#ifdef KEYBOARD_ergodash_rev2
#include "rev2.h"
#endif
// Used to create a keymap using only KC_ prefixed keys
#define LAYOUT_kc( \
L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \
L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, \
L20, L21, L22, L23, L24, L25, L26, R20, R21, R22, R23, R24, R25, R26, \
L30, L31, L32, L33, L34, L35, L36, R30, R31, R32, R33, R34, R35, R36, \
L40, L41, L42, L43, L44, L45, L46, R40, R41, R42, R43, R44, R45, R46 \
) \
LAYOUT( \
KC_##L00, KC_##L01, KC_##L02, KC_##L03, KC_##L04, KC_##L05, KC_##L06, KC_##R00, KC_##R01, KC_##R02, KC_##R03, KC_##R04, KC_##R05, KC_##R06, \
KC_##L10, KC_##L11, KC_##L12, KC_##L13, KC_##L14, KC_##L15, KC_##L16, KC_##R10, KC_##R11, KC_##R12, KC_##R13, KC_##R14, KC_##R15, KC_##R16, \
KC_##L20, KC_##L21, KC_##L22, KC_##L23, KC_##L24, KC_##L25, KC_##L26, KC_##R20, KC_##R21, KC_##R22, KC_##R23, KC_##R24, KC_##R25, KC_##R26, \
KC_##L30, KC_##L31, KC_##L32, KC_##L33, KC_##L34, KC_##L35, KC_##L36, KC_##R30, KC_##R31, KC_##R32, KC_##R33, KC_##R34, KC_##R35, KC_##R36, \
KC_##L40, KC_##L41, KC_##L42, KC_##L43, KC_##L44, KC_##L45, KC_##L46, KC_##R40, KC_##R41, KC_##R42, KC_##R43, KC_##R44, KC_##R45, KC_##R46 \
)
#endif
@@ -0,0 +1,44 @@
/*
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/>.
*/
#ifndef CONFIG_USER_H
#define CONFIG_USER_H
#include "../../config.h"
/* Use I2C or Serial, not both */
#define USE_SERIAL
// #define USE_I2C
/* Select hand configuration */
#define MASTER_LEFT
// #define MASTER_RIGHT
// #define EE_HANDS
#endif
#undef RGBLED_NUM
#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 24
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17
#define RGBLIGHT_VAL_STEP 17
@@ -0,0 +1,159 @@
#include QMK_KEYBOARD_H
#include "action_layer.h"
#include "eeconfig.h"
extern keymap_config_t keymap_config;
#define _QWERTY 0
#define _LOWER 1
#define _RAISE 2
#define _ADJUST 16
enum custom_keycodes {
QWERTY = SAFE_RANGE,
LOWER,
RAISE,
ADJUST,
};
// Fillers to make layering more clear
#define _______ KC_TRNS
#define XXXXXXX KC_NO
#define KC_JPN LALT(KC_GRV)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Qwerty
* ,----------------------------------------------------------------------------------------------------------------------.
* | ESC | 1 | 2 | 3 | 4 | 5 | [ | | ] | 6 | 7 | 8 | 9 | 0 | Caps |
* |------+------+------+------+------+------+------+--------------------+------+------+------+------+------+------+------|
* | ` | Q | W | E | R | T | - | | = | Y | U | I | O | P | \ |
* |------+------+------+------+------+------+------+--------------------+------+------+------+------+------+------+------|
* | Tab | A | S | D | F | G | Del | | Bksp | H | J | K | L | ; | " |
* |------+------+------+------+------+------+---------------------------+------+------+------+------+------+------+------|
* | Shift| Z | X | C | V | B | JPN | | Enter| N | M | , | . | / | Shift|
* |-------------+------+------+------+------+------+------+------+------+------+------+------+------+------+-------------|
* | Ctrl | GUI | ALt |Adjust|||||||| Lower| Space| |||||||| | Enter| Raise|||||||| Left | Down | Up | Right|
* ,----------------------------------------------------------------------------------------------------------------------.
*/
[_QWERTY] = LAYOUT( \
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LBRC, KC_RBRC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_CAPS, \
KC_GRV, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_MINS, KC_EQL , KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, \
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_DEL , KC_BSPC, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_JPN , KC_ENT , KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \
KC_LCTL, KC_LGUI, KC_LALT, ADJUST, LOWER, KC_SPC ,_______, _______,KC_ENT , RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
),
/* Lower
* ,----------------------------------------------------------------------------------------------------------------------.
* | F11 | F1 | F2 | F3 | F4 | F5 | { | | } | F6 | F7 | F8 | F9 | F10 | F12 |
* |------+------+------+------+------+------+------+--------------------+------+------+------+------+------+------+------|
* | ~ | ! | @ | # | $ | % | _ | | + | ^ | & | * | ( | ) | | |
* |------+------+------+------+------+------+------+--------------------+------+------+------+------+------+------+------|
* | Tab | 1 | 2 | 3 | 4 | 5 | Del | | Bksp | H | J | K | L | : | " |
* |------+------+------+------+------+------+---------------------------+------+------+------+------+------+------+------|
* | Shift| 6 | 7 | 8 | 9 | 0 | JPN | | Enter| N | M | < | > | ? | Shift|
* |-------------+------+------+------+------+------+------+------+------+------+------+------+------+------+-------------|
* | Ctrl | GUI | ALt |Adjust|||||||| Lower| Space| |||||||| | Enter| Raise|||||||| Home |PageDn|PageUp| End |
* ,----------------------------------------------------------------------------------------------------------------------.
*/
[_LOWER] = LAYOUT(
KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_LCBR, KC_RCBR, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12, \
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_UNDS, KC_PLUS, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE, \
KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_DEL , KC_BSPC, KC_H, KC_J, KC_K, KC_L, KC_COLN, KC_DQT , \
KC_LSFT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_JPN , KC_ENT , KC_N, KC_M, KC_LT, KC_GT, KC_QUES, KC_RSFT, \
KC_LCTL, KC_LGUI, KC_LALT, ADJUST, LOWER, KC_SPC ,_______, _______,KC_ENT , RAISE, KC_HOME, KC_PGDN, KC_PGUP, KC_END \
),
/* Raise
* ,----------------------------------------------------------------------------------------------------------------------.
* | F11 | F1 | F2 | F3 | F4 | F5 | { | | } | F6 | F7 | F8 | F9 | F10 | F12 |
* |------+------+------+------+------+------+------+--------------------+------+------+------+------+------+------+------|
* | ~ | ! | @ | # | $ | % | _ | | + | ^ | & | * | ( | ) | | |
* |------+------+------+------+------+------+------+--------------------+------+------+------+------+------+------+------|
* | Tab | 1 | 2 | 3 | 4 | 5 | Del | | Bksp | H | J | K | L | : | " |
* |------+------+------+------+------+------+---------------------------+------+------+------+------+------+------+------|
* | Shift| 6 | 7 | 8 | 9 | 0 | JPN | | Enter| N | M | < | > | ? | Shift|
* |-------------+------+------+------+------+------+------+------+------+------+------+------+------+------+-------------|
* | Ctrl | GUI | ALt |Adjust|||||||| Lower| Space| |||||||| | Enter| Raise|||||||| Home |PageDn|PageUp| End |
* ,----------------------------------------------------------------------------------------------------------------------.
*/
[_RAISE] = LAYOUT(
KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_LCBR, KC_RCBR, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12, \
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_UNDS, KC_PLUS, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE, \
KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_DEL , KC_BSPC, KC_H, KC_J, KC_K, KC_L, KC_COLN, KC_DQT , \
KC_LSFT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_JPN , KC_ENT , KC_N, KC_M, KC_LT, KC_GT, KC_QUES, KC_RSFT, \
KC_LCTL, KC_LGUI, KC_LALT, ADJUST, LOWER, KC_SPC ,_______, _______,KC_ENT , RAISE, KC_HOME, KC_PGDN, KC_PGUP, KC_END \
),
/* Adjust
* ,----------------------------------------------------------------------------------------------------------------------.
* | | | | | | | | | | | | | | | |
* |------+------+------+------+------+------+---------------------------+------+------+------+------+------+------+------|
* | | Reset|RGB ON| MODE| HUE-| HUE+| | | | SAT-| SAT+| VAL-| VAL+| | |
* |------+------+------+------+------+------+---------------------------+------+------+------+------+------+------+------|
* | | | | | | | | | | | | | | | |
* |------+------+------+------+------+------+---------------------------+------+------+------+------+------+------+------|
* | | | | | | | | | | | | | | | |
* |-------------+------+------+------+------+------+------+------+------+------+------+------+------+------+-------------|
* | | | | |||||||| | | |||||||| | | |||||||| | | | |
* ,----------------------------------------------------------------------------------------------------------------------.
*/
[_ADJUST] = LAYOUT(
_______, _______, _______, _______, _______, _______,_______, _______, _______, _______, _______, _______, _______, _______, \
_______, RESET , RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI,_______, _______, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, _______, _______, \
_______, _______, BL_TOGG, BL_BRTG, BL_INC , BL_DEC ,_______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______,_______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______,_______,_______, _______,_______, _______, _______, _______, _______, _______ \
)
};
#ifdef AUDIO_ENABLE
float tone_qwerty[][2] = SONG(QWERTY_SOUND);
#endif
void persistent_default_layer_set(uint16_t default_layer) {
eeconfig_update_default_layer(default_layer);
default_layer_set(default_layer);
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case QWERTY:
if (record->event.pressed) {
print("mode just switched to qwerty and this is a huge string\n");
set_single_persistent_default_layer(_QWERTY);
}
return false;
break;
case LOWER:
if (record->event.pressed) {
layer_on(_LOWER);
update_tri_layer(_LOWER, _RAISE, _ADJUST);
} else {
layer_off(_LOWER);
update_tri_layer(_LOWER, _RAISE, _ADJUST);
}
return false;
break;
case RAISE:
if (record->event.pressed) {
layer_on(_RAISE);
update_tri_layer(_LOWER, _RAISE, _ADJUST);
} else {
layer_off(_RAISE);
update_tri_layer(_LOWER, _RAISE, _ADJUST);
}
return false;
break;
case ADJUST:
if (record->event.pressed) {
layer_on(_ADJUST);
} else {
layer_off(_ADJUST);
}
return false;
break;
}
return true;
}
Whitespace-only changes.
+39
View File
@@ -0,0 +1,39 @@
#include "ergodash.h"
#ifdef AUDIO_ENABLE
float tone_startup[][2] = SONG(STARTUP_SOUND);
float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
#endif
#ifdef SSD1306OLED
void led_set_kb(uint8_t usb_led) {
// put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
led_set_user(usb_led);
}
#endif
void matrix_init_kb(void) {
#ifdef AUDIO_ENABLE
_delay_ms(20); // gets rid of tick
PLAY_SONG(tone_startup);
#endif
// // green led on
// DDRD |= (1<<5);
// PORTD &= ~(1<<5);
// // orange led on
// DDRB |= (1<<0);
// PORTB &= ~(1<<0);
matrix_init_user();
};
void shutdown_user(void) {
#ifdef AUDIO_ENABLE
PLAY_SONG(tone_goodbye);
_delay_ms(150);
stop_all_notes();
#endif
}
+66
View File
@@ -0,0 +1,66 @@
#ifndef REV1_H
#define REV1_H
#include "ergodash.h"
//void promicro_bootloader_jmp(bool program);
#include "quantum.h"
#ifdef USE_I2C
#include <stddef.h>
#ifdef __AVR__
#include <avr/io.h>
#include <avr/interrupt.h>
#endif
#endif
//void promicro_bootloader_jmp(bool program);
#ifndef FLIP_HALF
// Standard Keymap
// (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left)
#define LAYOUT( \
L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \
L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, \
L20, L21, L22, L23, L24, L25, L26, R20, R21, R22, R23, R24, R25, R26, \
L30, L31, L32, L33, L34, L35, L36, R30, R31, R32, R33, R34, R35, R36, \
L40, L41, L42, L43, L44, L45, L46, R40, R41, R42, R43, R44, R45, R46 \
) \
{ \
{ L00, L01, L02, L03, L04, L05, L06 }, \
{ L10, L11, L12, L13, L14, L15, L16 }, \
{ L20, L21, L22, L23, L24, L25, L26 }, \
{ L30, L31, L32, L33, L34, L35, L36 }, \
{ L40, L41, L42, L43, L44, L45, L46 }, \
{ R06, R05, R04, R03, R02, R01, R00 }, \
{ R16, R15, R14, R13, R12, R11, R10 }, \
{ R26, R25, R24, R23, R22, R21, R20 }, \
{ R36, R35, R34, R33, R32, R31, R30 }, \
{ R46, R45, R44, R43, R42, R41, R40 } \
}
#else
// Keymap with right side flipped
// (TRRS jack on both halves are to the right)
#define LAYOUT( \
L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \
L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, \
L20, L21, L22, L23, L24, L25, L26, R20, R21, R22, R23, R24, R25, R26, \
L30, L31, L32, L33, L34, L35, L36, R30, R31, R32, R33, R34, R35, R36, \
L40, L41, L42, L43, L44, L45, L46, R40, R41, R42, R43, R44, R45, R46 \
) \
{ \
{ L00, L01, L02, L03, L04, L05, L06 }, \
{ L10, L11, L12, L13, L14, L15, L16 }, \
{ L20, L21, L22, L23, L24, L25, L26 }, \
{ L30, L31, L32, L33, L34, L35, L36 }, \
{ L40, L41, L42, L43, L44, L45, L46 }, \
{ R00, R01, R02, R03, R04, R05, R06 }, \
{ R10, R11, R12, R13, R14, R15, R16 }, \
{ R20, R21, R22, R23, R24, R25, R26 }, \
{ R30, R31, R32, R33, R34, R35, R36 }, \
{ R40, R41, R42, R43, R44, R45, R46 } \
}
#endif
#endif
+1
View File
@@ -0,0 +1 @@
BACKLIGHT_ENABLE = yes
+1 -1
View File
@@ -72,4 +72,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
CUSTOM_MATRIX = yes CUSTOM_MATRIX = yes
DEFAULT_FOLDER = ergodash/rev1 DEFAULT_FOLDER = ergodash/rev2
+13 -57
View File
@@ -1,68 +1,24 @@
#ifndef CONFIG_H #ifndef CONFIG_USER_H
#define CONFIG_H #define CONFIG_USER_H
#include "config_common.h" #include "../../config.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x6060
#define DEVICE_VER 0x0001
#define MANUFACTURER 40 Percent Club
#define PRODUCT Gherkin
#define DESCRIPTION A 30 key ortholinear keyboard
/* key matrix size */
#define MATRIX_ROWS 5
#define MATRIX_COLS 6
/* key matrix pins */
#define MATRIX_ROW_PINS { F7, B1, B3, B2, B6 }
#define MATRIX_COL_PINS { B4, E6, D7, C6, D4, D0 }
#define UNUSED_PINS
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
/* number of backlight levels */
#define BACKLIGHT_PIN B5
#ifdef BACKLIGHT_PIN
#define BACKLIGHT_LEVELS 3
#endif #endif
/* Set 0 if debouncing isn't needed */
#define DEBOUNCING_DELAY 5
/* 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
/* key combination for command */
#define IS_COMMAND() ( \
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
/* prevent stuck modifiers */
#define PREVENT_STUCK_MODIFIERS #define PREVENT_STUCK_MODIFIERS
/*tap dance definition */ //Tap Dance Prerequisite
#define TAPPING_TERM 200 #define TAPPING_TERM 200
//Mousekeys Settings //Mousekeys Settings
#define MOUSEKEY_INTERVAL 1 #define MOUSEKEY_INTERVAL 16
#define MOUSEKEY_DELAY 0 #define MOUSEKEY_DELAY 0
#define MOUSEKEY_TIME_TO_MAX 1 #define MOUSEKEY_TIME_TO_MAX 60
#define MOUSEKEY_MAX_SPEED 15 #define MOUSEKEY_MAX_SPEED 7
#define MOUSEKEY_WHEEL_DELAY 0 #define MOUSEKEY_WHEEL_DELAY 0
/* for QMK DFU bootloader */
#ifdef RGB_DI_PIN /* not required if using default ProMicro bootloader */
#define RGBLIGHT_ANIMATIONS /* set top left key as bootloader mode escape key */
#define RGBLED_NUM 0 #define QMK_ESC_OUTPUT B4 // usually COL
#define RGBLIGHT_HUE_STEP 8 #define QMK_ESC_INPUT F7 // usually ROW
#define RGBLIGHT_SAT_STEP 8 #define QMK_LED B0
#define RGBLIGHT_VAL_STEP 8
#endif
#endif
+1 -1
View File
@@ -153,7 +153,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* .-----------------------------------------------------------------------------------------. * .-----------------------------------------------------------------------------------------.
* | Q//ESC | W | E | R | T | Y | U | I | O | P | * | Q//ESC | W | E | R | T | Y | U | I | O | P |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
* | A | S | D | F | G | H | J | K | L | ENTER | * | A | S | D | F | G | H | J | K | L | SPACE |
* | | | | | | | | | |SFThold | * | | | | | | | | | |SFThold |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
* | Z | X | C | V/NUM | B/ETC | N | M/DIR | ,/GUI | ./ALT | BKSC | * | Z | X | C | V/NUM | B/ETC | N | M/DIR | ,/GUI | ./ALT | BKSC |
+74 -35
View File
@@ -1,9 +1,8 @@
![Gherkin Wanleg Layout Image](https://i.imgur.com/nCPog2W.png) ![Gherkin Wanleg Layout Image](https://i.imgur.com/nCPog2W.png)
# Gherkin Wanleg Layout # Gherkin Wanleg Layout
Here is the layout I came up with to preserve a standard QWERTY layout as much as possible, in as few layers as possible for a 30 key board. This is the layout I came up with to preserve a standard QWERTY 104 key ANSI layout as much as possible, in as few layers as possible for a 30 key board.
I originally set up a few Tap Dance keys, but dropped half of them in favor of chorded versions, since in actual use, they tended to impede typing speed more than their current two-key versions. I originally set up a few Tap Dance keys, but dropped half of them in favor of chorded versions since in actual use, they tended to impede typing speed more than their current two-key versions.
I've left them in my layout ready for use if anyone wants to try them out: I've left them in my `keymap.c` ready for use if anyone wants to try them out:
Legend Name | Single Tap | Double Tap | Hold Legend Name | Single Tap | Double Tap | Hold
--- | --- | --- | --- --- | --- | --- | ---
@@ -13,35 +12,75 @@ Sft//Cp | shift | caps lock | *null*
Q//Esc | KC_Q | escape | *null* Q//Esc | KC_Q | escape | *null*
# Gherkin Flashing # Gherkin Flashing
## Linux
The ProMicro doesn't like dfu-programmer, so we have to use AVRdude. What follows below are instructions for Linux taken from https://deskthority.net/workshop-f7/how-to-use-a-pro-micro-as-a-cheap-controller-converter-like-soarer-s-t8448.html
`ls /dev/tty*`
Next, plug in your device and re-run the command, the same as before:
`ls /dev/tty*`
There should be one more output device than was seen previously. For me, it's /dev/ttyACM0.
To flash the device, you need to have AVRdude installed. On Linux, you can do this with your normal package manager.
Once you have AVRdude set up, navigate to the directory with your .hex file in it. Then, run the following:
`avrdude -p atmega32u4 -P YOUR_SERIAL_PORT -c avr109 -U flash:w:YOUR_FILENAME.hex`
Of course, replace YOUR_SERIAL_PORT with your serial port's device name, and YOUR_FILENAME.hex with the appropriate filename. For me, this line looks like this:
`avrdude -p atmega32u4 -P /dev/ttyACM0 -c avr109 -U flash:w:Soarer_at2usb_v1.12_atmega32u4.hex`
If it says ''device not in sync'' or similar, your device is no longer in bootloader mode. Unplug it, and get it back into bootloader mode like you did in the previous step (or short the reset pin), and try again.
If this still doesn't work, try running the command again as root
`sudo avrdude -p atmega32u4 -P /dev/ttyACM0 -c avr109 -U flash:w:Soarer_at2usb_v1.12_atmega32u4.hex`
## Windows ## Windows
1. Install the latest version of AVRdude for Windows from http://savannah.nongnu.org/projects/avrdude/ 1. The standard Gherkin uses a ProMicro (or clone) microcontroller, which has the Caterina bootloader by default.
Test that it installed correctly by running "avrdude" from Command Prompt. It should display a usage message with version information at the end 2. If you have never flashed your ProMicro with QMK before, you will need to short the RST pin to GND to put it into bootloader mode (you only have 7 seconds to flash once it enters bootloader mode). You may need to touch the RST pin to GND **TWICE** in quick succession if it doesn't flash with just one touch.
2. Open Device Manager and take a look at your "Ports (COM & LPT)" section 3. Once connected to your computer, you should be able to flash using
3. Plug in the Gherkin and short the RESET pin on the microcontroller to Ground to put it into bootloader mode. Take note of the new COM device that shows up. After 8 seconds or so the microcontroller will leave bootloader mode and it will disappear from that section `make gherkin:wanleg:avrdude`
4. Open Command Prompt and run the following (substituting "com7" with whatever port you saw earlier) 4. Once you've been able to successfully flash the ProMicro, you should be able to use the `RESET` key for future flashes instead of shorting the RST pin.
`avrdude -p atmega32u4 -P com7 -c avr109 -U flash:w:YOURHEX.hex` ## Linux
### First Flash with QMK
The built-in `:avrdude` QMK target in Linux doesn't work with the default Caterina bootloader on the ProMicro, so we have to use avrdude separately. The instructions below are adapted from https://deskthority.net/workshop-f7/how-to-use-a-pro-micro-as-a-cheap-controller-converter-like-soarer-s-t8448.html
1. To flash the device, you need to have AVRdude installed. You can do this via your distro's package manager (or compile from source if needed).
2. Once avrdude has been installed, open a terminal and run
`ls /dev/tty*`
3. Next, plug in your device and re-run `ls /dev/tty*`
There should be one more device than was seen previously. Make a note of it. For me, it's `/dev/ttyACM0`.
4. Navigate to the directory with your `.hex` file in it. Touch the RST pin to GND **TWICE** in quick succession, then run the following within 7 seconds:
`sudo avrdude -p m32u4 -P YOUR_SERIAL_PORT -c avr109 -U flash:w:YOUR_FILENAME.hex`
Replace YOUR_SERIAL_PORT with your serial port's device name, and YOUR_FILENAME.hex with the appropriate filename. For me, it looks like this:
`sudo avrdude -p m32u4 -P /dev/ttyACM0 -c avr109 -U flash:w:gherkin_wanleg.hex`
If you miss the 7 second window, the ProMicro will leave bootloader mode and the flash will fail. Hit `Control` + `C` to exit the `avrdude` command, connect RST to GND twice quickly, and try the `avrdude` command again.
### Subsequent Flashes with QMK
1. Re-flashing is similar to the initial flash procedure. Plug in your keyboard, open a terminal and run
`ls /dev/tty*`
2. Next, hit the `RESET` key on your keyboard and re-run the `ls /dev/tty*` command to find your keyboard's serial port.
3. Flash your keyboard with the avrdude command you used for the initial flash within 7 seconds after hitting `RESET`.
# ProMicro Bootloader Replacement (Caterina to QMK DFU)
If you have an Arduino (or clone), you can replace the bootloader for a few extra features (e.g. no more 7 second "flash window", simplified Linux flashing, blinking LED when the ProMicro is in bootloader mode, ability to exit bootloader mode without unplugging your keyboard, among others).
The instructions below have been adapted from https://www.reddit.com/r/olkb/comments/8sxgzb/replace_pro_micro_bootloader_with_qmk_dfu/)
## Arduino Setup
1. Upload the ArduinoISP sketch onto your Arduino board (https://www.arduino.cc/en/Tutorial/ArduinoISP).
2. Wire the Arduino to the ProMicro
| Arduino | ProMicro |
| --- | --- |
| 10 | RST |
| 11 | 16 |
| 12 | 14 |
| 13 | 15 |
| GND | GND |
| 5V | VCC |
## Make the QMK DFU .hex
3. In `config.h` add the following. This is already set up in `qmk_firmware/keyboards/gherkin/wanleg`. You only need to do this on other keymaps.
```
#define QMK_ESC_OUTPUT B4
#define QMK_ESC_INPUT F7
#define QMK_LED B0
```
The `QMK_ESC_` lines define where the bootloader escape key is. Refer to the `MATRIX_ROW_PINS` and `MATRIX_COL_PINS` lines in your keyboard's `config.h` to choose your preferred key.
You hit the bootloader escape key to exit bootloader mode after you've hit the RESET key to enter bootloader mode (e.g. if you change your mind and don't want to flash just then).
On a Gherkin, B4/F7 corresponds to the top-left corner key.
`B0` is an indicator light on one of the ProMicro's onboard LEDs. With QMK DFU, it will flash to indicate the ProMicro is in bootloader mode.
You can add `#define QMK_SPEAKER C6` if you have a speaker hooked up to pin C6. The Gherkin PCB already uses pin C6 in its switch layout, so you cannot use a speaker on a standard Gherkin.
4. Also, you should add `BOOTLOADER = qmk-dfu` to your `rules.mk` file, so it is flagged properly. Again, this is already set up in `qmk_firmware/keyboards/gherkin/wanleg`.
5. Once you've made the required edits, it's time to compile the firmware. If you use the `:production` target when compiling, it will produce the usual `.hex` file as well as `_bootloader.hex` and `_production.hex` files. The `_production.hex` will be what we want. This contains the bootloader and the firmware, so we only have to flash once (rather than flash the bootloader, and THEN flash the firmware).
For example
`make <keyboard>:<keymap>:production`
For my particular keymap, for reasons listed in the **Using QMK DFU** section, you should use the following to ensure the bootloader is set properly
`make gherkin:wanleg:production dfu=qmk`
## Burn QMK DFU
6. Navigate to the directory with your `_production.hex` file, and burn it with the following command
`avrdude -b 19200 -c avrisp -p m32u4 -v -e -U lock:w:0x3F:m -U efuse:w:0xC3:m -U hfuse:w:0xD9:m -U lfuse:w:0x5E:m -U YOUR_production.hex -P comPORT`
Change `comPORT` to whatever port is used by the Arduino (e.g. `com11` in Windows or `/dev/ttyACM0` in Linux). Use Device Manager in Windows to find the port being used. Use `ls /dev/tty*` in Linux. Change `YOUR_production.hex` to whatever you've created in the previous step.
## Using QMK DFU
7. Once QMK DFU is burned to your ProMicro, you can then flash subsequent hex files with
`make gherkin:<keymap>:dfu dfu=qmk`
The `dfu=qmk` conditional will set `BOOTLOADER = qmk-dfu` instead of `BOOTLOADER = caterina`
+6 -62
View File
@@ -1,63 +1,7 @@
# MCU name TAP_DANCE_ENABLE = yes # Enable Tap Dance (comment if not being implemented)
MCU = atmega32u4
# Processor frequency. #If ProMicro has QMK DFU bootloader instead of Caterina,
# This will define a symbol, F_CPU, in all source code files equal to the #run "make <keyboard>:<keymap> dfu=qmk" when compiling to ensure it is flagged properly after being flashed
# processor frequency in Hz. You can then use this symbol in your source code to ifeq ($(strip $(dfu)), qmk)
# calculate timings. Do NOT tack on a 'UL' at the end, this will be done BOOTLOADER = qmk-dfu
# automatically to create a 32-bit value in your source code. endif
#
# This will be an integer division of F_USB below, as it is sourced by
# F_USB after it has run through any CPU prescalers. Note that this value
# does not *change* the processor frequency - it should merely be updated to
# reflect the processor speed set externally so that the code can use accurate
# software delays.
F_CPU = 16000000
#
# LUFA specific
#
# Target architecture (see library "Board Types" documentation).
ARCH = AVR8
# Input clock frequency.
# This will define a symbol, F_USB, in all source code files equal to the
# input clock frequency (before any prescaling is performed) in Hz. This value may
# differ from F_CPU if prescaling is used on the latter, and is required as the
# raw input clock is fed directly to the PLL sections of the AVR for high speed
# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
# at the end, this will be done automatically to create a 32-bit value in your
# source code.
#
# If no clock division is performed on the input clock inside the AVR (via the
# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
F_USB = $(F_CPU)
# Interrupt driven control endpoint task(+60)
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
# Boot Section Size in *bytes*
OPT_DEFS += -DBOOTLOADER_SIZE=4096
# Bootloader
# This definition is optional, and if your keyboard supports multiple bootloaders of
# different sizes, comment this out, and the correct address will be loaded
# automatically (+60). See bootloader.mk for all options.
BOOTLOADER = caterina
# Build Options
# comment out to disable the options.
#
BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE = no # Console for debug(+400)
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
AUDIO_ENABLE = no
RGBLIGHT_ENABLE = no
TAP_DANCE_ENABLE = yes # Enable Tap Dance (comment if not being implemented)
+1 -3
View File
@@ -33,7 +33,7 @@
KC_##L20, KC_##L21, KC_##L22, KC_##L23, KC_##L24, KC_##L25, KC_##R20, KC_##R21, KC_##R22, KC_##R23, KC_##R24, KC_##R25, \ KC_##L20, KC_##L21, KC_##L22, KC_##L23, KC_##L24, KC_##L25, KC_##R20, KC_##R21, KC_##R22, KC_##R23, KC_##R24, KC_##R25, \
KC_##L30, KC_##L31, KC_##L32, KC_##L33, KC_##L34, KC_##L35, KC_##R30, KC_##R31, KC_##R32, KC_##R33, KC_##R34, KC_##R35 \ KC_##L30, KC_##L31, KC_##L32, KC_##L33, KC_##L34, KC_##L35, KC_##R30, KC_##R31, KC_##R32, KC_##R33, KC_##R34, KC_##R35 \
) )
#elif HELIX_ROWS == 5 #else
#define LAYOUT_kc( \ #define LAYOUT_kc( \
L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \ L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \ L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
@@ -48,8 +48,6 @@
KC_##L30, KC_##L31, KC_##L32, KC_##L33, KC_##L34, KC_##L35, KC_##R30, KC_##R31, KC_##R32, KC_##R33, KC_##R34, KC_##R35, \ KC_##L30, KC_##L31, KC_##L32, KC_##L33, KC_##L34, KC_##L35, KC_##R30, KC_##R31, KC_##R32, KC_##R33, KC_##R34, KC_##R35, \
KC_##L40, KC_##L41, KC_##L42, KC_##L43, KC_##L44, KC_##L45, KC_##R40, KC_##R41, KC_##R42, KC_##R43, KC_##R44, KC_##R45 \ KC_##L40, KC_##L41, KC_##L42, KC_##L43, KC_##L44, KC_##L45, KC_##R40, KC_##R41, KC_##R42, KC_##R43, KC_##R44, KC_##R45 \
) )
#else
#error "expected HELIX_ROWS 3 or 4 or 5"
#endif #endif
#include "quantum.h" #include "quantum.h"
+2 -2
View File
@@ -1,7 +1,7 @@
{ {
"keyboard_name": "Helix", "keyboard_name": "Helix",
"url": "", "url": "https://github.com/MakotoKurauchi/helix",
"maintainer": "qmk", "maintainer": "MakotoKurauchi",
"width": 15, "width": 15,
"height": 5, "height": 5,
"layouts": { "layouts": {
+5 -6
View File
@@ -1,9 +1,9 @@
{ {
"keyboard_name": "Helix rev. 1", "keyboard_name": "Helix rev. 1",
"url": "", "url": "https://github.com/MakotoKurauchi/helix",
"maintainer": "qmk", "maintainer": "MakotoKurauchi",
"width": 13, "width": 13,
"height": 5, "height": 5,
"layouts": { "layouts": {
"LAYOUT": { "LAYOUT": {
"key_count": 60, "key_count": 60,
@@ -11,4 +11,3 @@
} }
} }
} }
+89
View File
@@ -30,7 +30,43 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DESCRIPTION A split keyboard for the cheap makers #define DESCRIPTION A split keyboard for the cheap makers
#define PREVENT_STUCK_MODIFIERS
#define TAPPING_FORCE_HOLD
#define TAPPING_TERM 100
/* Use I2C or Serial */
#define USE_I2C
#define USE_SERIAL
#define USE_SERIAL_PD2
//#define USE_MATRIX_I2C
/* Select hand configuration */
#define MASTER_LEFT
// #define MASTER_RIGHT
// #define EE_HANDS
// Helix keyboard OLED support
// see ./rules.mk: OLED_ENABLE=yes or no
#ifdef OLED_ENABLE
#define SSD1306OLED
#endif
/* Select rows configuration */
// Rows are 4 or 5
// #define HELIX_ROWS 5 see ./rules.mk
/* key matrix size */
// Rows are doubled-up
#if HELIX_ROWS == 4
#define MATRIX_ROWS 8
#define MATRIX_ROW_PINS { D4, C6, D7, E6 }
#else
#define MATRIX_ROWS 10
#define MATRIX_ROW_PINS { D4, C6, D7, E6, B4 }
#endif
// wiring of each half // wiring of each half
#define MATRIX_COLS 7
#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2 } #define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2 }
// #define MATRIX_COL_PINS { B2, B3, B1, F7, F6, F5, F4 } //uncomment this line and comment line above if you need to reverse left-to-right key order // #define MATRIX_COL_PINS { B2, B3, B1, F7, F6, F5, F4 } //uncomment this line and comment line above if you need to reverse left-to-right key order
@@ -60,6 +96,59 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define ws2812_PORTREG PORTD #define ws2812_PORTREG PORTD
#define ws2812_DDRREG DDRD #define ws2812_DDRREG DDRD
// Helix keyboard RGB LED support
//#define RGBLIGHT_ANIMATIONS : see ./rules.mk: LED_ANIMATIONS = yes or no
// see ./rules.mk: LED_BACK_ENABLE or LED_UNDERGLOW_ENABLE set yes
#ifdef RGBLED_BACK
#if HELIX_ROWS == 4
#define RGBLED_NUM 25
#else
#define RGBLED_NUM 32
#endif
#else
#define RGBLED_NUM 6
#endif
#ifndef IOS_DEVICE_ENABLE
#if RGBLED_NUM <= 6
#define RGBLIGHT_LIMIT_VAL 255
#else
#if HELIX_ROWS == 4
#define RGBLIGHT_LIMIT_VAL 130
#else
#define RGBLIGHT_LIMIT_VAL 120
#endif
#endif
#define RGBLIGHT_VAL_STEP 17
#else
#if RGBLED_NUM <= 6
#define RGBLIGHT_LIMIT_VAL 90
#else
#if HELIX_ROWS == 4
#define RGBLIGHT_LIMIT_VAL 45
#else
#define RGBLIGHT_LIMIT_VAL 35
#endif
#endif
#define RGBLIGHT_VAL_STEP 4
#endif
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17
#if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE)
// USB_MAX_POWER_CONSUMPTION value for Helix keyboard
// 120 RGBoff, OLEDoff
// 120 OLED
// 330 RGB 6
// 300 RGB 32
// 310 OLED & RGB 32
#define USB_MAX_POWER_CONSUMPTION 400
#else
// fix iPhone and iPad power adapter issue
// iOS device need lessthan 100
#define USB_MAX_POWER_CONSUMPTION 100
#endif
/* /*
* Feature disable options * Feature disable options
* These options are also useful to firmware size reduction. * These options are also useful to firmware size reduction.
+2 -2
View File
@@ -1,7 +1,7 @@
{ {
"keyboard_name": "Helix rev. 2", "keyboard_name": "Helix rev. 2",
"url": "", "url": "https://github.com/MakotoKurauchi/helix",
"maintainer": "qmk", "maintainer": "MakotoKurauchi",
"width": 15, "width": 15,
"height": 5, "height": 5,
"layouts": { "layouts": {
+1 -94
View File
@@ -23,99 +23,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "../../config.h" #include "../../config.h"
/* Use I2C or Serial */ // place overrides here
#define USE_I2C
#define USE_SERIAL
//#define USE_MATRIX_I2C
/* Select hand configuration */
#define MASTER_LEFT
// #define MASTER_RIGHT
// #define EE_HANDS
// Helix keyboard OLED support
// see ./rules.mk: OLED_ENABLE=yes or no
#ifdef OLED_ENABLE
#define SSD1306OLED
#endif
/* Select rows configuration */
// Rows are 4 or 5
// #define HELIX_ROWS 5 see ./rules.mk
/* key matrix size */
// Rows are doubled-up
#if HELIX_ROWS == 4
#define MATRIX_ROWS 8
#define MATRIX_COLS 7
#define MATRIX_ROW_PINS { D4, C6, D7, E6 }
#elif HELIX_ROWS == 5
#define MATRIX_ROWS 10
#define MATRIX_COLS 7
#define MATRIX_ROW_PINS { D4, C6, D7, E6, B4 }
#else
#error "expected HELIX_ROWS 4 or 5"
#endif
#define USE_SERIAL_PD2
#define PREVENT_STUCK_MODIFIERS
#define TAPPING_FORCE_HOLD
#define TAPPING_TERM 100
// Helix keyboard RGB LED support
//#define RGBLIGHT_ANIMATIONS : see ./rules.mk: LED_ANIMATIONS = yes or no
// see ./rules.mk: LED_BACK_ENABLE or LED_UNDERGLOW_ENABLE set yes
#ifdef RGBLED_BACK
#if HELIX_ROWS == 4
#define RGBLED_NUM 25
#elif HELIX_ROWS == 5
#define RGBLED_NUM 32
#endif
#else
#define RGBLED_NUM 6
#endif
#ifndef IOS_DEVICE_ENABLE
#if RGBLED_NUM <= 6
#define RGBLIGHT_LIMIT_VAL 255
#else
#if HELIX_ROWS == 5
#define RGBLIGHT_LIMIT_VAL 120
#else
#define RGBLIGHT_LIMIT_VAL 130
#endif
#endif
#define RGBLIGHT_VAL_STEP 17
#else
#if RGBLED_NUM <= 6
#define RGBLIGHT_LIMIT_VAL 90
#else
#if HELIX_ROWS == 5
#define RGBLIGHT_LIMIT_VAL 35
#else
#define RGBLIGHT_LIMIT_VAL 45
#endif
#endif
#define RGBLIGHT_VAL_STEP 4
#endif
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17
#if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE)
// USB_MAX_POWER_CONSUMPTION value for Helix keyboard
// 120 RGBoff, OLEDoff
// 120 OLED
// 330 RGB 6
// 300 RGB 32
// 310 OLED & RGB 32
#define USB_MAX_POWER_CONSUMPTION 400
#else
// fix iPhone and iPad power adapter issue
// iOS device need lessthan 100
#define USB_MAX_POWER_CONSUMPTION 100
#endif
#endif /* CONFIG_USER_H */ #endif /* CONFIG_USER_H */
@@ -23,100 +23,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "../../config.h" #include "../../config.h"
/* Use I2C or Serial */ // place overrides here
#define USE_I2C
#define USE_SERIAL
//#define USE_MATRIX_I2C
/* Select hand configuration */
#define MASTER_LEFT
// #define MASTER_RIGHT
// #define EE_HANDS
// Helix keyboard OLED support
// see ./rules.mk: OLED_ENABLE=yes or no
#ifdef OLED_ENABLE
#define SSD1306OLED
#endif
/* Select rows configuration */
#define HELIX_ROWS 5
/* key matrix size */
// Rows are doubled-up
#if HELIX_ROWS == 4
#define MATRIX_ROWS 8
#define MATRIX_COLS 7
#define MATRIX_ROW_PINS { D4, C6, D7, E6 }
#elif HELIX_ROWS == 5
#define MATRIX_ROWS 10
#define MATRIX_COLS 7
#define MATRIX_ROW_PINS { D4, C6, D7, E6, B4 }
#else
#error "expected HELIX_ROWS 4 or 5"
#endif
#define USE_SERIAL_PD2
#define PREVENT_STUCK_MODIFIERS
#define TAPPING_FORCE_HOLD
#define TAPPING_TERM 100
#undef RGBLED_NUM
// Helix keyboard RGB LED support
//#define RGBLIGHT_ANIMATIONS : see ./rules.mk: LED_ANIMATIONS = yes or no
// see ./rules.mk: LED_BACK_ENABLE or LED_UNDERGLOW_ENABLE set yes
#ifdef RGBLED_BACK
#if HELIX_ROWS == 4
#define RGBLED_NUM 25
#elif HELIX_ROWS == 5
#define RGBLED_NUM 32
#endif
#else
#define RGBLED_NUM 6
#endif
#ifndef IOS_DEVICE_ENABLE
#if RGBLED_NUM <= 6
#define RGBLIGHT_LIMIT_VAL 255
#else
#if HELIX_ROWS == 5
#define RGBLIGHT_LIMIT_VAL 120
#else
#define RGBLIGHT_LIMIT_VAL 130
#endif
#endif
#define RGBLIGHT_VAL_STEP 17
#else
#if RGBLED_NUM <= 6
#define RGBLIGHT_LIMIT_VAL 90
#else
#if HELIX_ROWS == 5
#define RGBLIGHT_LIMIT_VAL 35
#else
#define RGBLIGHT_LIMIT_VAL 45
#endif
#endif
#define RGBLIGHT_VAL_STEP 4
#endif
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17
#if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE)
// USB_MAX_POWER_CONSUMPTION value for Helix keyboard
// 120 RGBoff, OLEDoff
// 120 OLED
// 330 RGB 6
// 300 RGB 32
// 310 OLED & RGB 32
#define USB_MAX_POWER_CONSUMPTION 400
#else
// fix iPhone and iPad power adapter issue
// iOS device need lessthan 100
#define USB_MAX_POWER_CONSUMPTION 100
#endif
#endif /* CONFIG_USER_H */ #endif /* CONFIG_USER_H */
@@ -27,8 +27,9 @@ define HELIX_CUSTOMISE_MSG
endef endef
# Helix keyboard customize # Helix keyboard customize
# you can edit follows 6 Variables # you can edit follows 7 Variables
# jp: 以下の6つの変数を必要に応じて編集します。 # jp: 以下の7つの変数を必要に応じて編集します。
HELIX_ROWS = 5 # Helix Rows is 4 or 5
OLED_ENABLE = no # OLED_ENABLE OLED_ENABLE = no # OLED_ENABLE
LOCAL_GLCDFONT = no # use each keymaps "helixfont.h" insted of "common/glcdfont.c" LOCAL_GLCDFONT = no # use each keymaps "helixfont.h" insted of "common/glcdfont.c"
LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.) LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.)
@@ -73,6 +74,13 @@ endif
# $(eval $(call HELIX_CUSTOMISE_MSG)) # $(eval $(call HELIX_CUSTOMISE_MSG))
# $(info ) # $(info )
ifneq ($(strip $(HELIX_ROWS)), 4)
ifneq ($(strip $(HELIX_ROWS)), 5)
$(error HELIX_ROWS = $(strip $(HELIX_ROWS)) is unexpected value)
endif
endif
OPT_DEFS += -DHELIX_ROWS=$(strip $(HELIX_ROWS))
ifeq ($(strip $(LED_BACK_ENABLE)), yes) ifeq ($(strip $(LED_BACK_ENABLE)), yes)
RGBLIGHT_ENABLE = yes RGBLIGHT_ENABLE = yes
OPT_DEFS += -DRGBLED_BACK OPT_DEFS += -DRGBLED_BACK
@@ -0,0 +1,121 @@
/*
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/>.
*/
#ifndef CONFIG_USER_H
#define CONFIG_USER_H
#include "../../config.h"
/* Use I2C or Serial */
#define USE_I2C
#define USE_SERIAL
//#define USE_MATRIX_I2C
/* Select hand configuration */
#define MASTER_LEFT
// #define MASTER_RIGHT
// #define EE_HANDS
// Helix keyboard OLED support
// see ./rules.mk: OLED_ENABLE=yes or no
#ifdef OLED_ENABLE
#define SSD1306OLED
#endif
/* Select rows configuration */
// Rows are 4 or 5
// #define HELIX_ROWS 5 see ./rules.mk
/* key matrix size */
// Rows are doubled-up
#if HELIX_ROWS == 4
#define MATRIX_ROWS 8
#define MATRIX_COLS 7
#define MATRIX_ROW_PINS { D4, C6, D7, E6 }
#elif HELIX_ROWS == 5
#define MATRIX_ROWS 10
#define MATRIX_COLS 7
#define MATRIX_ROW_PINS { D4, C6, D7, E6, B4 }
#else
#error "expected HELIX_ROWS 4 or 5"
#endif
#define USE_SERIAL_PD2
#define PREVENT_STUCK_MODIFIERS
#define TAPPING_FORCE_HOLD
#define TAPPING_TERM 100
// Helix keyboard RGB LED support
//#define RGBLIGHT_ANIMATIONS : see ./rules.mk: LED_ANIMATIONS = yes or no
// see ./rules.mk: LED_BACK_ENABLE or LED_UNDERGLOW_ENABLE set yes
#ifdef RGBLED_BACK
#if HELIX_ROWS == 4
#define RGBLED_NUM 25
#elif HELIX_ROWS == 5
#define RGBLED_NUM 32
#endif
#else
#define RGBLED_NUM 6
#endif
#ifndef IOS_DEVICE_ENABLE
#if RGBLED_NUM <= 6
#define RGBLIGHT_LIMIT_VAL 255
#else
#if HELIX_ROWS == 5
#define RGBLIGHT_LIMIT_VAL 120
#else
#define RGBLIGHT_LIMIT_VAL 130
#endif
#endif
#define RGBLIGHT_VAL_STEP 17
#else
#if RGBLED_NUM <= 6
#define RGBLIGHT_LIMIT_VAL 90
#else
#if HELIX_ROWS == 5
#define RGBLIGHT_LIMIT_VAL 35
#else
#define RGBLIGHT_LIMIT_VAL 45
#endif
#endif
#define RGBLIGHT_VAL_STEP 4
#endif
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17
#if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE)
// USB_MAX_POWER_CONSUMPTION value for Helix keyboard
// 120 RGBoff, OLEDoff
// 120 OLED
// 330 RGB 6
// 300 RGB 32
// 310 OLED & RGB 32
#define USB_MAX_POWER_CONSUMPTION 400
#else
// fix iPhone and iPad power adapter issue
// iOS device need lessthan 100
#define USB_MAX_POWER_CONSUMPTION 100
#endif
#endif /* CONFIG_USER_H */
@@ -0,0 +1,551 @@
#include "helix.h"
#include "bootloader.h"
#include "action_layer.h"
#include "eeconfig.h"
#ifdef PROTOCOL_LUFA
#include "lufa.h"
#include "split_util.h"
#endif
#include "LUFA/Drivers/Peripheral/TWI.h"
#ifdef AUDIO_ENABLE
#include "audio.h"
#endif
#ifdef SSD1306OLED
#include "ssd1306.h"
#endif
// * If you want to recognize that you pressed the Adjust key with the Lower / Raise key you can enable this comment out. However, the binary size may be over. *
// #define ADJUST_MACRO_ENABLE
// * If you want to use the Kana key you can enable this comment out. However, the binary size may be over. *
// #define KANA_ENABLE
extern keymap_config_t keymap_config;
#ifdef RGBLIGHT_ENABLE
//Following line allows macro to read current RGB settings
extern rgblight_config_t rgblight_config;
#endif
extern uint8_t is_master;
// Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
// Layer names don't all need to be of the same length, obviously, and you can also skip them
// entirely and just use numbers.
enum layer_number {
_BASE = 0,
_BAS_E,
_LOWER,
_LOW_E,
_RAISE,
_RAI_E,
_ADJUST,
};
enum custom_keycodes {
BASE = SAFE_RANGE,
BAS_E,
LOWER,
LOW_E,
RAISE,
RAI_E,
ADJUST,
EISU,
#ifdef KANA_ENABLE
KANA,
#endif
RGBRST
};
// JIS key aliases
#define JP_CFTD KC_EQL // ^ and ~ Circumflex (Hat) and Tilde
#define JP_ATBQ KC_LBRC // @ and ` Atmark and Back-quote
#define JP_CLAS KC_QUOT // : and * Colon and Asterisk
#define JP_BSVL KC_JYEN // \ and | Back slash and and Vertical-line)
#define JP_LBRC KC_RBRC // [ and { Left-bracket
#define JP_RBRC KC_BSLS // ] and } Right-bracket
#define JP_BSUS KC_RO // \ and _ Back slash and Under-score
// Fillers to make layering more clear
#define _______ KC_TRNS
#define XXXXXXX KC_NO
#if HELIX_ROWS == 5
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Qwerty JIS Normal
* ,-----------------------------------------. ,-----------------------------------------.
* | Esc | 1! | 2" | 3# | 4$ | 5% | | 6& | 7' | 8( | 9) | 0 | -= |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | KANJI| Q | W | E | R | T | | Y | U | I | O | P | @` |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | Tab | A | S | D | F | G | | H | J | K | L | ;+ | :* |
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
* | Shift| Z | X | C | V | B | N | B | N | M | ,< | .> | Up |Enter |
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
* | Ctrl | GUI | Alt |Adjust|Lower |Space |Bksp |Space |Space |Raise | APP | Left | Down |Right |
* `-------------------------------------------------------------------------------------------------'
*/
[_BASE] = LAYOUT( \
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, \
EISU, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, JP_ATBQ, \
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, JP_CLAS, \
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT, \
KC_LCTL, KC_LALT, KC_LGUI, ADJUST, LOWER, KC_SPC, KC_BSPC, KC_SPC, KC_SPC, RAISE, KC_APP, KC_LEFT, KC_DOWN, KC_RGHT \
),
/* Qwerty JIS Exchange L and R
* ,-----------------------------------------. ,-----------------------------------------.
* | 6& | 7' | 8( | 9) | 0 | -= | | Esc | 1! | 2" | 3# | 4$ | 5% |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | Y | U | I | O | P | @` | | Tab | Q | W | E | R | T |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | H | J | K | L | ;+ | :* | | | A | S | D | F | G |
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
* | N | M | ,< | .> | /? | Up |Enter |KANJI | Shift| Z | X | C | V | B |
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
* |Space |Raise | }] | APP | Left | Down |Right |Adjust| Ctrl | GUI | Alt | [{ |Lower | Bksp |
* `-------------------------------------------------------------------------------------------------'
*/
[_BAS_E] = LAYOUT( \
KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, \
KC_Y, KC_U, KC_I, KC_O, KC_P, JP_ATBQ, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, \
KC_H, KC_J, KC_K, KC_L, KC_SCLN, JP_CLAS, XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, \
KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_ENT, EISU, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, \
KC_SPC, RAI_E, JP_RBRC, KC_APP, KC_LEFT, KC_DOWN, KC_RGHT, ADJUST, KC_LCTL, KC_LALT, KC_LGUI, JP_LBRC, LOW_E, KC_BSPC \
),
/* Lower JIS Normal
* ,-----------------------------------------. ,-----------------------------------------.
* | | | | | | | | | | | -= | ^~ | \| |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | | | | | | | | | | | | @` | [{ |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | | | | | | | | | | | ;+ | :* | ]} |
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | | | | ,< | .> | /? | \_ |
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | Del | | | | | | | |
* `-------------------------------------------------------------------------------------------------'
*/
[_LOWER] = LAYOUT( \
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, JP_CFTD, JP_BSVL, \
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, JP_ATBQ, JP_LBRC, \
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SCLN, JP_CLAS, JP_RBRC, \
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_COMM, KC_DOT, KC_SLSH, JP_BSUS, \
_______, _______, _______, _______, XXXXXXX, XXXXXXX, KC_DEL, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \
),
/* Lower JIS Exchange L and R
* ,-----------------------------------------. ,-----------------------------------------.
* | | | | -= | ^~ | \| | | | | | | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | | | | | @` | [{ | | | | | | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | | | | ;+ | :* | ]} | | | | | | | |
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
* | | ,< | .> | /? | \_ |PageUp| | | | | | | | |
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | Home |PageDn| End | | | | | | | Del |
* `-------------------------------------------------------------------------------------------------'
*/
[_LOW_E] = LAYOUT( \
_______, XXXXXXX, XXXXXXX, KC_MINS, JP_CFTD, JP_BSVL, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
_______, XXXXXXX, XXXXXXX, XXXXXXX, JP_ATBQ, JP_LBRC, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
_______, XXXXXXX, XXXXXXX, KC_SCLN, JP_CLAS, JP_RBRC, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
_______, KC_COMM, KC_DOT, KC_SLSH, JP_BSUS, KC_PGUP, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
_______, _______, XXXXXXX, _______, KC_HOME, KC_PGDN, KC_END, _______, _______, _______, _______, XXXXXXX, _______, KC_DEL \
),
/* Raise JIS Normal
* ,-----------------------------------------. ,-----------------------------------------.
* | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | | | | | | | | | | | | Home |PageUp|
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | | | | | | | | | | | | End |PageDn|
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
* | |MsBtn1|MsBtn2| | | | | | | | | | MsUp | |
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | | | | |MsLeft|MsDown|MsRght|
* `-------------------------------------------------------------------------------------------------'
*/
[_RAISE] = LAYOUT( \
KC_F1 , KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGUP, \
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_END, KC_PGDN, \
_______, KC_BTN1, KC_BTN2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_U, XXXXXXX, \
_______, _______, _______, _______, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_R \
),
/* Raise JIS Exchange L and R
* ,-----------------------------------------. ,-----------------------------------------.
* | F7 | F8 | F9 | F10 | F11 | F12 | | F1 | F2 | F3 | F4 | F5 | F6 |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | | | | | | | | | | | | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | | | | | | | | | | | | | |
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | MsUp | | | |MsBtn1|MsBtn2| | | |
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | |MsLeft|MsDown|MsRght| | | | | | | |
* `-------------------------------------------------------------------------------------------------'
*/
[_RAI_E] = LAYOUT( \
KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F1 , KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_U, XXXXXXX, XXXXXXX, _______, KC_BTN1, KC_BTN2, XXXXXXX, XXXXXXX, XXXXXXX, \
_______, _______, XXXXXXX, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, _______, _______, XXXXXXX, _______, XXXXXXX \
),
/* Adjust (Lower + Raise) Common map for Normal and Exchange
* ,-----------------------------------------. ,-----------------------------------------.
* | | Reset|RGBRST|Aud on|Audoff| | | | Reset|RGBRST|Aud on|Audoff| |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | |ModNrm|ModExc| Mac | Win | | | |ModNrm|ModExc| Mac | Win | |
* |------+------+------+------+------+------| |------+------+------+------+------|------+
* | |RGB ON| HUE+ | SAT+ | VAL+ | | | |RGB ON| HUE+ | SAT+ | VAL+ | |
* |------+------+------+------+------+------+------+------+------+------+------+------+------|------+
* | | MODE | HUE- | SAT- | VAL- | | | | | MODE | HUE- | SAT- | VAL- | |
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | | | | | | | |
* `-------------------------------------------------------------------------------------------------'
*/
[_ADJUST] = LAYOUT( \
XXXXXXX, RESET, RGBRST, AU_ON, AU_OFF, XXXXXXX, XXXXXXX, RESET, RGBRST, AU_ON, AU_OFF, XXXXXXX, \
XXXXXXX, BASE, BAS_E, AG_NORM, AG_SWAP, XXXXXXX, XXXXXXX, BASE, BAS_E, AG_NORM, AG_SWAP, XXXXXXX, \
XXXXXXX, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, \
XXXXXXX, RGB_SMOD,RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_SMOD,RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
),
};
#elif HELIX_ROWS == 4
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Do it yourself :)
};
#else
#error "undefined keymaps"
#endif
#ifdef AUDIO_ENABLE
float tone_qwerty[][2] = SONG(QWERTY_SOUND);
float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
#endif
// define variables for reactive RGB
bool TOG_STATUS = false;
int RGB_current_mode;
void persistent_default_layer_set(uint16_t default_layer) {
eeconfig_update_default_layer(default_layer);
default_layer_set(default_layer);
}
#ifdef ADJUST_MACRO_ENABLE
// Setting ADJUST layer RGB back to default
void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) {
if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) {
#ifdef RGBLIGHT_ENABLE
rgblight_mode(RGB_current_mode);
#endif
layer_on(layer3);
} else {
layer_off(layer3);
}
}
#endif
void toggle_lower_raise_layer(bool pressed, uint16_t dist_layer, uint16_t lower_layer, uint16_t raise_layer) {
if (pressed) {
//not sure how to have keyboard check mode and set it to a variable, so my work around
//uses another variable that would be set to true after the first time a reactive key is pressed.
if (!TOG_STATUS) { //TOG_STATUS checks is another reactive key currently pressed, only changes RGB mode if returns false
TOG_STATUS = !TOG_STATUS;
#ifdef RGBLIGHT_ENABLE
if (dist_layer == _LOWER || dist_layer == _LOW_E) {
rgblight_mode(16);
} else {
rgblight_mode(15);
}
#endif
}
layer_on(dist_layer);
#ifdef ADJUST_MACRO_ENABLE
update_tri_layer_RGB(lower_layer, raise_layer, _ADJUST);
#endif
} else {
#ifdef RGBLIGHT_ENABLE
rgblight_mode(RGB_current_mode); // revert RGB to initial mode prior to RGB mode change
#endif
TOG_STATUS = false;
layer_off(dist_layer);
#ifdef ADJUST_MACRO_ENABLE
update_tri_layer_RGB(lower_layer, raise_layer, _ADJUST);
#endif
}
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case BASE:
if (record->event.pressed) {
#ifdef AUDIO_ENABLE
PLAY_SONG(tone_qwerty);
#endif
persistent_default_layer_set(1UL<<_BASE);
}
return false;
break;
case BAS_E:
if (record->event.pressed) {
#ifdef AUDIO_ENABLE
PLAY_SONG(tone_qwerty);
#endif
persistent_default_layer_set(1UL<<_BAS_E);
}
return false;
break;
case LOWER:
toggle_lower_raise_layer(record->event.pressed, _LOWER, _LOWER, _RAISE);
return false;
break;
case LOW_E:
toggle_lower_raise_layer(record->event.pressed, _LOW_E, _LOW_E, _RAI_E);
return false;
break;
case RAISE:
toggle_lower_raise_layer(record->event.pressed, _RAISE, _LOWER, _RAISE);
return false;
break;
case RAI_E:
toggle_lower_raise_layer(record->event.pressed, _RAI_E, _LOW_E, _RAI_E);
return false;
break;
case ADJUST:
if (record->event.pressed) {
#ifdef RGBLIGHT_ENABLE
rgblight_mode(14);
#endif
layer_on(_ADJUST);
} else {
#ifdef RGBLIGHT_ENABLE
rgblight_mode(RGB_current_mode);
#endif
layer_off(_ADJUST);
}
return false;
break;
//led operations - RGB mode change now updates the RGB_current_mode to allow the right RGB mode to be set after reactive keys are released
case RGB_MOD:
#ifdef RGBLIGHT_ENABLE
if (record->event.pressed) {
rgblight_mode(RGB_current_mode);
rgblight_step();
RGB_current_mode = rgblight_config.mode;
}
#endif
return false;
break;
case EISU:
if (record->event.pressed) {
if (keymap_config.swap_lalt_lgui==false) {
register_code(KC_LANG2);
} else {
SEND_STRING(SS_LALT("`"));
}
} else {
unregister_code(KC_LANG2);
}
return false;
break;
#ifdef KANA_ENABLE
case KANA:
if (record->event.pressed) {
if(keymap_config.swap_lalt_lgui==false){
register_code(KC_LANG1);
}else{
SEND_STRING(SS_LALT("`"));
}
} else {
unregister_code(KC_LANG1);
}
return false;
break;
#endif
case RGBRST:
#ifdef RGBLIGHT_ENABLE
if (record->event.pressed) {
eeconfig_update_rgblight_default();
rgblight_enable();
RGB_current_mode = rgblight_config.mode;
}
#endif
break;
}
return true;
// return process_layer_control(keycode, record, false) ? process_layer_control(keycode, record, true) : true;
}
void matrix_init_user(void) {
#ifdef AUDIO_ENABLE
startup_user();
#endif
#ifdef RGBLIGHT_ENABLE
RGB_current_mode = rgblight_config.mode;
#endif
//SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h
#ifdef SSD1306OLED
TWI_Init(TWI_BIT_PRESCALE_1, TWI_BITLENGTH_FROM_FREQ(1, 800000));
iota_gfx_init(!has_usb()); // turns on the display
#endif
}
#ifdef AUDIO_ENABLE
void startup_user()
{
_delay_ms(20); // gets rid of tick
}
void shutdown_user()
{
_delay_ms(150);
stop_all_notes();
}
void music_on_user(void)
{
music_scale_user();
}
void music_scale_user(void)
{
PLAY_SONG(music_scale);
}
#endif
//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h
#ifdef SSD1306OLED
void matrix_scan_user(void) {
iota_gfx_task(); // this is what updates the display continuously
}
void matrix_update(struct CharacterMatrix *dest,
const struct CharacterMatrix *source) {
if (memcmp(dest->display, source->display, sizeof(dest->display))) {
memcpy(dest->display, source->display, sizeof(dest->display));
dest->dirty = true;
}
}
//assign the right code to your layers for OLED display
#define L_BASE _BASE
#define L_LOWER (1<<_LOWER)
#define L_RAISE (1<<_RAISE)
#define L_ADJUST (1<<_ADJUST)
#define L_ADJUST_TRI (L_ADJUST|L_RAISE|L_LOWER)
#define L_LOW_E (1<<_LOW_E)
#define L_RAI_E (1<<_RAI_E)
#define L_ADJUST_TRIE (L_ADJUST|L_RAI_E|L_LOW_E)
static void render_logo(struct CharacterMatrix *matrix) {
static char logo[]={
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,
0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,
0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,
0};
matrix_write(matrix, logo);
//matrix_write_P(&matrix, PSTR(" Split keyboard kit"));
}
void render_status(struct CharacterMatrix *matrix) {
// Render to mode icon
static char logo[][2][3]={{{0x95,0x96,0},{0xb5,0xb6,0}},{{0x97,0x98,0},{0xb7,0xb8,0}}};
if(keymap_config.swap_lalt_lgui==false){
matrix_write(matrix, logo[0][0]);
matrix_write_P(matrix, PSTR("\n"));
matrix_write(matrix, logo[0][1]);
} else {
matrix_write(matrix, logo[1][0]);
matrix_write_P(matrix, PSTR("\n"));
matrix_write(matrix, logo[1][1]);
}
// Define layers here, Have not worked out how to have text displayed for each layer. Copy down the number you see and add a case for it below
char buf[16];
matrix_write_P(matrix, PSTR("\nLayer: "));
switch (layer_state) {
case L_BASE:
if (default_layer_state == (1UL<<_BAS_E)) {
matrix_write_P(matrix, PSTR("Base_Ex"));
} else {
matrix_write_P(matrix, PSTR("Base"));
}
break;
case L_RAISE:
matrix_write_P(matrix, PSTR("Raise"));
break;
case L_RAI_E:
matrix_write_P(matrix, PSTR("Raise_Ex"));
break;
case L_LOWER:
matrix_write_P(matrix, PSTR("Lower"));
break;
case L_LOW_E:
matrix_write_P(matrix, PSTR("Lower_Ex"));
break;
case L_ADJUST:
case L_ADJUST_TRI:
case L_ADJUST_TRIE:
matrix_write_P(matrix, PSTR("Adjust"));
break;
default:
snprintf(buf, sizeof(buf), "Undef-%d", (short)layer_state);
matrix_write(matrix, buf);
}
// Host Keyboard LED Status
char led[32];
snprintf(led, sizeof(led), "\n%s %s %s",
(host_keyboard_leds() & (1<<USB_LED_NUM_LOCK)) ? "NUMLOCK" : " ",
(host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) ? "CAPS" : " ",
(host_keyboard_leds() & (1<<USB_LED_SCROLL_LOCK)) ? "SCLK" : " ");
matrix_write(matrix, led);
}
void iota_gfx_task_user(void) {
struct CharacterMatrix matrix;
#if DEBUG_TO_SCREEN
if (debug_enable) {
return;
}
#endif
matrix_clear(&matrix);
if (is_master) {
render_status(&matrix);
} else {
render_logo(&matrix);
}
matrix_update(&display, &matrix);
}
#endif
@@ -0,0 +1,150 @@
# Helix 5 rows JIS layout
This keymap was created with the concept that users using Japanese JIS keyboard layout can operate without difficulty. It has the following features.
* We are considering to be able to input long Japanese notes without moving the layer
* We are arranging the relation of symbols that can not fit in the Lower layer keeping the positional relationship
* The four-way key is in a convex arrangement
* Ctrl, Shift, Tab, Kanji, Esc, GUI (Win), App keys are arranged keeping positional relationship
* Lower / Raise keymap is considering easy placement so that it can be used without memorizing
This keymap also includes a "NORMAL" keymap that uses Helix's split keyboard as usual, and an "EXCHANGE" key that exchanges left and right sides of Helix's split keyboard for key position optimization I am trying to switch maps. These have the following additional features.
## NORMAL Keymap
* It is possible to press the N key with the left index finger and the B key with the right index finger
## EXCHANGE Keymap
* By using the 2 key under Pro micro effectively add `` `[{` `` `` `]]` ``, `` `/?` `` Keys to NORMAL's base keymap And make inputs other than the `` `\ _` `` key possible with the base map
* To avoid mistakes in pressing the Kanji key and the Enter key, we are moving to the 2 key.
## 配列
### NORMAL Keymap
Adjust + ModExc key switches to the NORMAL keymap.
Base Layer
```
,-----------------------------------------. ,-----------------------------------------.
| Esc | 1! | 2" | 3# | 4$ | 5% | | 6& | 7' | 8( | 9) | 0 | -= |
|------+------+------+------+------+------| |------+------+------+------+------+------|
| KANJI| Q | W | E | R | T | | Y | U | I | O | P | @` |
|------+------+------+------+------+------| |------+------+------+------+------+------|
| Tab | A | S | D | F | G | | H | J | K | L | ;+ | :* |
|------+------+------+------+------+------+------+------+------+------+------+------+------+------|
| Shift| Z | X | C | V | B | N | B | N | M | ,< | .> | Up |Enter |
|------+------+------+------+------+------+------+------+------+------+------+------+------+------|
| Ctrl | GUI | Alt |Adjust|Lower |Space |Bksp |Space |Space |Raise | APP | Left | Down |Right |
`-------------------------------------------------------------------------------------------------'
```
Lower Layer
```
,-----------------------------------------. ,-----------------------------------------.
| | | | | | | | | | | -= | ^~ | \| |
|------+------+------+------+------+------| |------+------+------+------+------+------|
| | | | | | | | | | | | @` | [{ |
|------+------+------+------+------+------| |------+------+------+------+------+------|
| | | | | | | | | | | ;+ | :* | ]} |
|------+------+------+------+------+------+------+------+------+------+------+------+------+------|
| | | | | | | | | | | ,< | .> | /? | \_ |
|------+------+------+------+------+------+------+------+------+------+------+------+------+------|
| | | | | | | Del | | | | | | | |
`-------------------------------------------------------------------------------------------------'
```
Raise Layer
```
,-----------------------------------------. ,-----------------------------------------.
| F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 |
|------+------+------+------+------+------| |------+------+------+------+------+------|
| | | | | | | | | | | | Home |PageUp|
|------+------+------+------+------+------| |------+------+------+------+------+------|
| | | | | | | | | | | | End |PageDn|
|------+------+------+------+------+------+------+------+------+------+------+------+------+------|
| |MsBtn1|MsBtn2| | | | | | | | | | MsUp | |
|------+------+------+------+------+------+------+------+------+------+------+------+------+------|
| | | | | | | | | | | |MsLeft|MsDown|MsRght|
`-------------------------------------------------------------------------------------------------'
```
### EXCHANGE Keymap
Adjust + ModExc key switches to the EXCHANGE keymap.
Base Layer
```
,-----------------------------------------.,-----------------------------------------.
| Esc | 1! | 2" | 3# | 4$ | 5% || 6& | 7' | 8( | 9) | 0 | -= |
|------+------+------+------+------+------||------+------+------+------+------+------|
| Tab | Q | W | E | R | T || Y | U | I | O | P | @` |
|------+------+------+------+------+------||------+------+------+------+------+------|
| | A | S | D | F | G || H | J | K | L | ;+ | :* |
,------+------+------+------+------+------+------||------+------+------+------+------+------+------.
|KANJI | Shift| Z | X | C | V | B || N | M | ,< | .> | /? | Up |Enter |
|------+------+------+------+------+------+------||------+------+------+------+------+------+------|
|Adjust| Ctrl | GUI | Alt | [{ |Lower | Bksp ||Space |Raise | }] | APP | Left | Down |Right |
`------------------------------------------------'`------------------------------------------------'
```
Lower Layer
```
,-----------------------------------------.,-----------------------------------------.
| | | | | | || | | | -= | ^~ | \| |
|------+------+------+------+------+------||------+------+------+------+------+------|
| | | | | | || | | | | @` | [{ |
|------+------+------+------+------+------||------+------+------+------+------+------|
| | | | | | || | | | ;+ | :* | ]} |
,------+------+------+------+------+------+------||------+------+------+------+------+------+------.
| | | | | | | || | ,< | .> | /? | \_ |PageUp| |
|------+------+------+------+------+------+------||------+------+------+------+------+------+------|
| | | | | | | Del || | | | | Home |PageDn| End |
`------------------------------------------------'`------------------------------------------------'
```
Raise Layer
```
,-----------------------------------------.,-----------------------------------------.
| F1 | F2 | F3 | F4 | F5 | F6 || F7 | F8 | F9 | F10 | F11 | F12 |
|------+------+------+------+------+------||------+------+------+------+------+------|
| | | | | | || | | | | | |
|------+------+------+------+------+------||------+------+------+------+------+------|
| | | | | | || | | | | | |
,------+------+------+------+------+------+------||------+------+------+------+------+------+------.
| | |MsBtn1|MsBtn2| | | || | | | | | MsUp | |
|------+------+------+------+------+------+------||------+------+------+------+------+------+------|
| | | | | | | || | | | |MsLeft|MsDown|MsRght|
`------------------------------------------------'`------------------------------------------------'
```
### NORMAL/EXCHANGE common Layer
Adjust Layer
NORMAL / EXCHANGE This layer is used in common. The same items are arranged in the same row on both sides so that they can be used in common.
```
,-----------------------------------------. ,-----------------------------------------.
| | Reset|RGBRST|Aud on|Audoff| | | | Reset|RGBRST|Aud on|Audoff| |
|------+------+------+------+------+------| |------+------+------+------+------+------|
| |ModNrm|ModExc| Mac | Win | | | |ModNrm|ModExc| Mac | Win | |
|------+------+------+------+------+------| |------+------+------+------+------|------+
| |RGB ON| HUE+ | SAT+ | VAL+ | | | |RGB ON| HUE+ | SAT+ | VAL+ | |
|------+------+------+------+------+------+------+------+------+------+------+------+------|------+
| | MODE | HUE- | SAT- | VAL- | | | | | MODE | HUE- | SAT- | VAL- | |
|------+------+------+------+------+------+------+------+------+------+------+------+------+------|
| | | | | | | | | | | | | | |
`-------------------------------------------------------------------------------------------------'
```
## How to compile these program
See the readme of the Default keymap.
@@ -0,0 +1,166 @@
# Helix 5 rows JIS layout
このキーマップは日本語JISキーボード配列を利用しているユーザーが無理なく操作出来るというコンセプトで作成しました。以下の特徴があります。
* 日本語の長音記号をレイヤーを移動せずに入力可能なように考慮しています
* 入りきらない記号関連をLowerレイヤーに位置関係を維持して配置しています
* 十字キーを凸配置にしています
* Ctrl,Shift,Tab,漢字,Esc,GUI(Win),Appの各キーは位置関係を維持して配置しています
* Lower/Raiseキーマップは暗記しないでも使えるようにわかりやすい配置を考慮しています
 またこのキーマップにはHelixの分割されたキーボードを通常通りに使用する「NORMAL」キーマップと、キー位置の最適化のためにHelixの分割されたキーボードの左右を交換して使う「EXCHANGE」キーマップを切り替えられるようにしています。これらにはさらに以下の特徴があります。
## NORMALキーマップ
* Nキーを左人差し指で、Bキーを右人差し指で押下することが可能
## EXCHANGEキーマップ
* Pro micro下の2キーを有効に使うことにより、NORMALのベースキーマップに```[{```,```}]```,```/?```の各キーを追加し、```\_```キー以外の入力をベースマップで可能にしています
* 漢字キー,Enterキーの押し間違いを避けるためPro micro下の2キーに移動しています
## 配列
### NORMALキーマップ
 Adjust + ModNrmキーでNORMALキーマップに切り替わります。
Baseレイヤー
```
,-----------------------------------------. ,-----------------------------------------.
| Esc | 1! | 2" | 3# | 4$ | 5% | | 6& | 7' | 8( | 9) | 0 | -= |
|------+------+------+------+------+------| |------+------+------+------+------+------|
| KANJI| Q | W | E | R | T | | Y | U | I | O | P | @` |
|------+------+------+------+------+------| |------+------+------+------+------+------|
| Tab | A | S | D | F | G | | H | J | K | L | ;+ | :* |
|------+------+------+------+------+------+------+------+------+------+------+------+------+------|
| Shift| Z | X | C | V | B | N | B | N | M | ,< | .> | Up |Enter |
|------+------+------+------+------+------+------+------+------+------+------+------+------+------|
| Ctrl | GUI | Alt |Adjust|Lower |Space |Bksp |Space |Space |Raise | APP | Left | Down |Right |
`-------------------------------------------------------------------------------------------------'
```
Lowerレイヤー
 記号キーと、BackSpace位置にDeleteキーを配置しています。
 例えば```|```キーを入力する場合、Lower + Shift + \キーで入力することが出来ます。
```
,-----------------------------------------. ,-----------------------------------------.
| | | | | | | | | | | -= | ^~ | \| |
|------+------+------+------+------+------| |------+------+------+------+------+------|
| | | | | | | | | | | | @` | [{ |
|------+------+------+------+------+------| |------+------+------+------+------+------|
| | | | | | | | | | | ;+ | :* | ]} |
|------+------+------+------+------+------+------+------+------+------+------+------+------+------|
| | | | | | | | | | | ,< | .> | /? | \_ |
|------+------+------+------+------+------+------+------+------+------+------+------+------+------|
| | | | | | | Del | | | | | | | |
`-------------------------------------------------------------------------------------------------'
```
Raiseレイヤー
 rules.mkのMOUSEKEY_ENABLEをyesにした場合マウスキーを利用できます。ただしバイナリ容量を食いますのでmakeした時に確認できるバイナリサイズがオーバーしていないことに十分注意してください。
 また、F1-F12キーをHHKBライクに使えるように横並びにしました。
```
,-----------------------------------------. ,-----------------------------------------.
| F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 |
|------+------+------+------+------+------| |------+------+------+------+------+------|
| | | | | | | | | | | | Home |PageUp|
|------+------+------+------+------+------| |------+------+------+------+------+------|
| | | | | | | | | | | | End |PageDn|
|------+------+------+------+------+------+------+------+------+------+------+------+------+------|
| |MsBtn1|MsBtn2| | | | | | | | | | MsUp | |
|------+------+------+------+------+------+------+------+------+------+------+------+------+------|
| | | | | | | | | | | |MsLeft|MsDown|MsRght|
`-------------------------------------------------------------------------------------------------'
```
### EXCHANGEキーマップ
 Adjust + ModExcキーでEXCHANGEキーマップに切り替わります。
 HelixのUSBやフォンケーブルの接続は変更せず、分割された左右のキーボードを入れ替えて使います。
Baseレイヤー
 ちょっと無理やりですが```[{```,```}]```キーを突っ込んでいます。
```
,-----------------------------------------.,-----------------------------------------.
| Esc | 1! | 2" | 3# | 4$ | 5% || 6& | 7' | 8( | 9) | 0 | -= |
|------+------+------+------+------+------||------+------+------+------+------+------|
| Tab | Q | W | E | R | T || Y | U | I | O | P | @` |
|------+------+------+------+------+------||------+------+------+------+------+------|
| | A | S | D | F | G || H | J | K | L | ;+ | :* |
,------+------+------+------+------+------+------||------+------+------+------+------+------+------.
|KANJI | Shift| Z | X | C | V | B || N | M | ,< | .> | /? | Up |Enter |
|------+------+------+------+------+------+------||------+------+------+------+------+------+------|
|Adjust| Ctrl | GUI | Alt | [{ |Lower | Bksp ||Space |Raise | }] | APP | Left | Down |Right |
`------------------------------------------------'`------------------------------------------------'
```
Lowerレイヤー
 記号キーと、BackSpace位置にDeleteキーを配置しています。
 PageDown/Up, Home/EndをCtrl+十字キーの延長線上で使用できるように配置しています。
```
,-----------------------------------------.,-----------------------------------------.
| | | | | | || | | | -= | ^~ | \| |
|------+------+------+------+------+------||------+------+------+------+------+------|
| | | | | | || | | | | @` | [{ |
|------+------+------+------+------+------||------+------+------+------+------+------|
| | | | | | || | | | ;+ | :* | ]} |
,------+------+------+------+------+------+------||------+------+------+------+------+------+------.
| | | | | | | || | ,< | .> | /? | \_ |PageUp| |
|------+------+------+------+------+------+------||------+------+------+------+------+------+------|
| | | | | | | Del || | | | | Home |PageDn| End |
`------------------------------------------------'`------------------------------------------------'
```
Raiseレイヤー
 rules.mkのMOUSEKEY_ENABLEをyesにした場合マウスキーを利用できます。ただしバイナリ容量を食いますのでmakeした時に確認できるバイナリサイズがオーバーしていないことに十分注意してください。
 また、F1-F12キーをHHKBライクに使えるように横並びにしました。
 マウスキーは十字キーの延長線上で使用できるように配置しています。
```
,-----------------------------------------.,-----------------------------------------.
| F1 | F2 | F3 | F4 | F5 | F6 || F7 | F8 | F9 | F10 | F11 | F12 |
|------+------+------+------+------+------||------+------+------+------+------+------|
| | | | | | || | | | | | |
|------+------+------+------+------+------||------+------+------+------+------+------|
| | | | | | || | | | | | |
,------+------+------+------+------+------+------||------+------+------+------+------+------+------.
| | |MsBtn1|MsBtn2| | | || | | | | | MsUp | |
|------+------+------+------+------+------+------||------+------+------+------+------+------+------|
| | | | | | | || | | | |MsLeft|MsDown|MsRght|
`------------------------------------------------'`------------------------------------------------'
```
### NORMAL/EXCHANGE共通レイヤー
Adjustレイヤー
 NORMAL/EXCHANGE共通で利用するレイヤーです。共通で使えるように両側同じ並びで同じものを配置しています。
```
,-----------------------------------------. ,-----------------------------------------.
| | Reset|RGBRST|Aud on|Audoff| | | | Reset|RGBRST|Aud on|Audoff| |
|------+------+------+------+------+------| |------+------+------+------+------+------|
| |ModNrm|ModExc| Mac | Win | | | |ModNrm|ModExc| Mac | Win | |
|------+------+------+------+------+------| |------+------+------+------+------|------+
| |RGB ON| HUE+ | SAT+ | VAL+ | | | |RGB ON| HUE+ | SAT+ | VAL+ | |
|------+------+------+------+------+------+------+------+------+------+------+------+------|------+
| | MODE | HUE- | SAT- | VAL- | | | | | MODE | HUE- | SAT- | VAL- | |
|------+------+------+------+------+------+------+------+------+------+------+------+------+------|
| | | | | | | | | | | | | | |
`-------------------------------------------------------------------------------------------------'
```
## コンパイルの仕方
 Defaultキーマップのreadmeを参照してください。
@@ -0,0 +1,123 @@
# Build Options
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE = no # Mouse keys(+4700)
EXTRAKEY_ENABLE = no # Audio control and System control(+450)
CONSOLE_ENABLE = no # Console for debug(+400)
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
SWAP_HANDS_ENABLE = no # Enable one-hand typing
define HELIX_CUSTOMISE_MSG
$(info Helix customize)
$(info - OLED_ENABLE=$(OLED_ENABLE))
$(info - LED_BACK_ENABLE=$(LED_BACK_ENABLE))
$(info - LED_UNDERGLOW_ENABLE=$(LED_UNDERGLOW_ENABLE))
$(info - LED_ANIMATION=$(LED_ANIMATIONS))
$(info - IOS_DEVICE_ENABLE=$(IOS_DEVICE_ENABLE))
endef
# Helix keyboard customize
# you can edit follows 7 Variables
# jp: 以下の7つの変数を必要に応じて編集します。
HELIX_ROWS = 5 # Helix Rows is 4 or 5
OLED_ENABLE = no # OLED_ENABLE
LOCAL_GLCDFONT = no # use each keymaps "helixfont.h" insted of "common/glcdfont.c"
LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.)
LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.)
LED_ANIMATIONS = yes # LED animations
IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone)
#### LED_BACK_ENABLE and LED_UNDERGLOW_ENABLE.
#### Do not enable these with audio at the same time.
### Helix keyboard 'default' keymap: convenient command line option
## make HELIX=<options> helix:defualt
## option= oled | back | under | na | ios
## ex.
## make HELIX=oled helix:defualt
## make HELIX=oled,back helix:defualt
## make HELIX=oled,under helix:defualt
## make HELIX=oled,back,na helix:defualt
## make HELIX=oled,back,ios helix:defualt
##
ifneq ($(strip $(HELIX)),)
ifeq ($(findstring oled,$(HELIX)), oled)
OLED_ENABLE = yes
endif
ifeq ($(findstring back,$(HELIX)), back)
LED_BACK_ENABLE = yes
else ifeq ($(findstring under,$(HELIX)), under)
LED_UNDERGLOW_ENABLE = yes
endif
ifeq ($(findstring na,$(HELIX)), na)
LED_ANIMATIONS = no
endif
ifeq ($(findstring ios,$(HELIX)), ios)
IOS_DEVICE_ENABLE = yes
endif
$(eval $(call HELIX_CUSTOMISE_MSG))
$(info )
endif
# Uncomment these for checking
# jp: コンパイル時にカスタマイズの状態を表示したい時はコメントをはずします。
# $(eval $(call HELIX_CUSTOMISE_MSG))
# $(info )
ifneq ($(strip $(HELIX_ROWS)), 4)
ifneq ($(strip $(HELIX_ROWS)), 5)
$(error HELIX_ROWS = $(strip $(HELIX_ROWS)) is unexpected value)
endif
endif
OPT_DEFS += -DHELIX_ROWS=$(strip $(HELIX_ROWS))
ifeq ($(strip $(LED_BACK_ENABLE)), yes)
RGBLIGHT_ENABLE = yes
OPT_DEFS += -DRGBLED_BACK
ifeq ($(strip $(LED_UNDERGLOW_ENABLE)), yes)
$(eval $(call HELIX_CUSTOMISE_MSG))
$(error LED_BACK_ENABLE and LED_UNDERGLOW_ENABLE both 'yes')
endif
else ifeq ($(strip $(LED_UNDERGLOW_ENABLE)), yes)
RGBLIGHT_ENABLE = yes
else
RGBLIGHT_ENABLE = no
endif
ifeq ($(strip $(IOS_DEVICE_ENABLE)), yes)
OPT_DEFS += -DIOS_DEVICE_ENABLE
endif
ifeq ($(strip $(LED_ANIMATIONS)), yes)
OPT_DEFS += -DRGBLIGHT_ANIMATIONS
endif
ifeq ($(strip $(OLED_ENABLE)), yes)
OPT_DEFS += -DOLED_ENABLE
endif
ifeq ($(strip $(LOCAL_GLCDFONT)), yes)
OPT_DEFS += -DLOCAL_GLCDFONT
endif
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
ifndef QUANTUM_DIR
include ../../../../Makefile
endif
# Uncomment these for debugging
# $(info -- RGBLIGHT_ENABLE=$(RGBLIGHT_ENABLE))
# $(info -- OPT_DEFS=$(OPT_DEFS))
# $(info )
+3 -95
View File
@@ -23,101 +23,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "../../config.h" #include "../../config.h"
/* Use I2C or Serial */ #undef TAPPING_TERM
#define USE_I2C
#define USE_SERIAL
//#define USE_MATRIX_I2C
/* Select hand configuration */
#define MASTER_LEFT
// #define MASTER_RIGHT
// #define EE_HANDS
// Helix keyboard OLED support
// see ./rules.mk: OLED_ENABLE=yes or no
#ifdef OLED_ENABLE
#define SSD1306OLED
#endif
/* Select rows configuration */
// Rows are 4 or 5
// #define HELIX_ROWS 5 see ./rules.mk
/* key matrix size */
// Rows are doubled-up
#if HELIX_ROWS == 4
#define MATRIX_ROWS 8
#define MATRIX_COLS 7
#define MATRIX_ROW_PINS { D4, C6, D7, E6 }
#elif HELIX_ROWS == 5
#define MATRIX_ROWS 10
#define MATRIX_COLS 7
#define MATRIX_ROW_PINS { D4, C6, D7, E6, B4 }
#else
#error "expected HELIX_ROWS 4 or 5"
#endif
#define USE_SERIAL_PD2
#define PREVENT_STUCK_MODIFIERS
#define TAPPING_FORCE_HOLD
#define TAPPING_TERM 200 #define TAPPING_TERM 200
#define ONESHOT_TAP_TOGGLE 5 /* Tapping this number of times holds the key until tapped this number of times again. */ #define ONESHOT_TAP_TOGGLE 5 /* Tapping this number of times holds the key until tapped this number of times again. */
#define ONESHOT_TIMEOUT 5000 /* Time (in ms) before the one shot key is released */ #define ONESHOT_TIMEOUT 5000 /* Time (in ms) before the one shot key is released */
// Helix keyboard RGB LED support
//#define RGBLIGHT_ANIMATIONS : see ./rules.mk: LED_ANIMATIONS = yes or no
// see ./rules.mk: LED_BACK_ENABLE or LED_UNDERGLOW_ENABLE set yes
#ifdef RGBLED_BACK
#if HELIX_ROWS == 4
#define RGBLED_NUM 25
#elif HELIX_ROWS == 5
#define RGBLED_NUM 32
#endif
#else
#define RGBLED_NUM 6
#endif
#ifndef IOS_DEVICE_ENABLE
#if RGBLED_NUM <= 6
#define RGBLIGHT_LIMIT_VAL 255
#else
#if HELIX_ROWS == 5
#define RGBLIGHT_LIMIT_VAL 120
#else
#define RGBLIGHT_LIMIT_VAL 130
#endif
#endif
#define RGBLIGHT_VAL_STEP 17
#else
#if RGBLED_NUM <= 6
#define RGBLIGHT_LIMIT_VAL 90
#else
#if HELIX_ROWS == 5
#define RGBLIGHT_LIMIT_VAL 35
#else
#define RGBLIGHT_LIMIT_VAL 45
#endif
#endif
#define RGBLIGHT_VAL_STEP 4
#endif
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17
#if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE)
// USB_MAX_POWER_CONSUMPTION value for Helix keyboard
// 120 RGBoff, OLEDoff
// 120 OLED
// 330 RGB 6
// 300 RGB 32
// 310 OLED & RGB 32
#define USB_MAX_POWER_CONSUMPTION 400
#else
// fix iPhone and iPad power adapter issue
// iOS device need lessthan 100
#define USB_MAX_POWER_CONSUMPTION 100
#endif
#endif /* CONFIG_USER_H */ #endif /* CONFIG_USER_H */
+2 -71
View File
@@ -23,75 +23,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "../../config.h" #include "../../config.h"
/* Use I2C or Serial */ // place overrides here
#define USE_I2C #endif /* CONFIG_USER_H */
#define USE_SERIAL
//#define USE_MATRIX_I2C
/* Select hand configuration */
#define MASTER_LEFT
// #define MASTER_RIGHT
// #define EE_HANDS
// Helix keyboard OLED support
#define SSD1306OLED
/* Select rows configuration */
// Rows are 4 or 5
#define HELIX_ROWS 5
/* key matrix size */
// Rows are doubled-up
#if HELIX_ROWS == 4
#define MATRIX_ROWS 8
#define MATRIX_COLS 7
#define MATRIX_ROW_PINS { D4, C6, D7, E6 }
#elif HELIX_ROWS == 5
#define MATRIX_ROWS 10
#define MATRIX_COLS 7
#define MATRIX_ROW_PINS { D4, C6, D7, E6, B4 }
#else
#error "expected HELIX_ROWS 4 or 5"
#endif
#define USE_SERIAL_PD2
#define PREVENT_STUCK_MODIFIERS
#define TAPPING_FORCE_HOLD
#define TAPPING_TERM 100
#undef RGBLED_NUM
#define RGBLIGHT_ANIMATIONS
// Helix keyboard : see ./rules.mk: RGBLIGHT_ENABLE = yes or no
// Helix keyboard : RGBLED_NUM 6 or 32
#define RGBLED_NUM 32
#if RGBLED_NUM <= 6
#define RGBLIGHT_LIMIT_VAL 255
#else
#if HELIX_ROWS == 5
#define RGBLIGHT_LIMIT_VAL 120
#else
#define RGBLIGHT_LIMIT_VAL 130
#endif
#endif
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17
#define RGBLIGHT_VAL_STEP 17
#endif
#ifdef RGBLIGHT_ENABLE
// USB_MAX_POWER_CONSUMPTION value for Helix keyboard
// 120 RGBoff, OLEDoff
// 120 OLED
// 330 RGB 6
// 300 RGB 32
// 310 OLED & RGB 32
#define USB_MAX_POWER_CONSUMPTION 330
#else
// fix iPhone and iPad power adapter issue
// iOS device need lessthan 100
#define USB_MAX_POWER_CONSUMPTION 100
#endif
+99 -14
View File
@@ -14,10 +14,101 @@ MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE = no # Audio output on port C6 AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE = no # Unicode UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
# Helix keyboard : see ./config.h: RGBLED_NUM 6 or 32 RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
# Helix keyboard : RGBLIGHT_ENABLE = no or yes SWAP_HANDS_ENABLE = no # Enable one-hand typing
RGBLIGHT_ENABLE = yes-but-local # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
ONEHAND_ENABLE = no # Enable one-hand typing define HELIX_CUSTOMISE_MSG
$(info Helix customize)
$(info - OLED_ENABLE=$(OLED_ENABLE))
$(info - LED_BACK_ENABLE=$(LED_BACK_ENABLE))
$(info - LED_UNDERGLOW_ENABLE=$(LED_UNDERGLOW_ENABLE))
$(info - LED_ANIMATION=$(LED_ANIMATIONS))
$(info - IOS_DEVICE_ENABLE=$(IOS_DEVICE_ENABLE))
endef
# Helix keyboard customize
# you can edit follows 7 Variables
# jp: 以下の7つの変数を必要に応じて編集します。
HELIX_ROWS = 5 # Helix Rows is 4 or 5
OLED_ENABLE = yes # OLED_ENABLE
LOCAL_GLCDFONT = no # use each keymaps "helixfont.h" insted of "common/glcdfont.c"
LED_BACK_ENABLE = yes # LED backlight (Enable WS2812 RGB underlight.)
LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.)
LED_ANIMATIONS = yes # LED animations
IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone)
#### LED_BACK_ENABLE and LED_UNDERGLOW_ENABLE.
#### Do not enable these with audio at the same time.
### Helix keyboard 'default' keymap: convenient command line option
## make HELIX=<options> helix:defualt
## option= oled | back | under | na | ios
## ex.
## make HELIX=oled helix:defualt
## make HELIX=oled,back helix:defualt
## make HELIX=oled,under helix:defualt
## make HELIX=oled,back,na helix:defualt
## make HELIX=oled,back,ios helix:defualt
##
ifneq ($(strip $(HELIX)),)
ifeq ($(findstring oled,$(HELIX)), oled)
OLED_ENABLE = yes
endif
ifeq ($(findstring back,$(HELIX)), back)
LED_BACK_ENABLE = yes
else ifeq ($(findstring under,$(HELIX)), under)
LED_UNDERGLOW_ENABLE = yes
endif
ifeq ($(findstring na,$(HELIX)), na)
LED_ANIMATIONS = no
endif
ifeq ($(findstring ios,$(HELIX)), ios)
IOS_DEVICE_ENABLE = yes
endif
$(eval $(call HELIX_CUSTOMISE_MSG))
$(info )
endif
# Uncomment these for checking
# jp: コンパイル時にカスタマイズの状態を表示したい時はコメントをはずします。
# $(eval $(call HELIX_CUSTOMISE_MSG))
# $(info )
ifneq ($(strip $(HELIX_ROWS)), 4)
ifneq ($(strip $(HELIX_ROWS)), 5)
$(error HELIX_ROWS = $(strip $(HELIX_ROWS)) is unexpected value)
endif
endif
OPT_DEFS += -DHELIX_ROWS=$(strip $(HELIX_ROWS))
ifeq ($(strip $(LED_BACK_ENABLE)), yes)
RGBLIGHT_ENABLE = yes
OPT_DEFS += -DRGBLED_BACK
ifeq ($(strip $(LED_UNDERGLOW_ENABLE)), yes)
$(eval $(call HELIX_CUSTOMISE_MSG))
$(error LED_BACK_ENABLE and LED_UNDERGLOW_ENABLE both 'yes')
endif
else ifeq ($(strip $(LED_UNDERGLOW_ENABLE)), yes)
RGBLIGHT_ENABLE = yes
else
RGBLIGHT_ENABLE = no
endif
ifeq ($(strip $(IOS_DEVICE_ENABLE)), yes)
OPT_DEFS += -DIOS_DEVICE_ENABLE
endif
ifeq ($(strip $(LED_ANIMATIONS)), yes)
OPT_DEFS += -DRGBLIGHT_ANIMATIONS
endif
ifeq ($(strip $(OLED_ENABLE)), yes)
OPT_DEFS += -DOLED_ENABLE
endif
ifeq ($(strip $(LOCAL_GLCDFONT)), yes)
OPT_DEFS += -DLOCAL_GLCDFONT
endif
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -26,13 +117,7 @@ ifndef QUANTUM_DIR
include ../../../../Makefile include ../../../../Makefile
endif endif
#copy from common_features.mk and modify rgblight.c # Uncomment these for debugging
OPT_DEFS += -DRGBLIGHT_ENABLE # $(info -- RGBLIGHT_ENABLE=$(RGBLIGHT_ENABLE))
SRC += rgblight.c # $(info -- OPT_DEFS=$(OPT_DEFS))
CIE1931_CURVE = yes # $(info )
LED_BREATHING_TABLE = yes
ifeq ($(strip $(RGBLIGHT_CUSTOM_DRIVER)), yes)
OPT_DEFS += -DRGBLIGHT_CUSTOM_DRIVER
else
SRC += ws2812.c
endif
+102 -47
View File
@@ -14,9 +14,45 @@
#ifdef USE_SERIAL #ifdef USE_SERIAL
// Serial pulse period in microseconds. Its probably a bad idea to lower this #define _delay_sub_us(x) __builtin_avr_delay_cycles(x)
// value.
#define SERIAL_DELAY 30 // Serial pulse period in microseconds.
#define SELECT_SERIAL_SPEED 1
#if SELECT_SERIAL_SPEED == 0
// Very High speed
#define SERIAL_DELAY 4 // micro sec
#define READ_WRITE_START_ADJUST 30 // cycles
#define READ_WRITE_WIDTH_ADJUST 10 // cycles
#elif SELECT_SERIAL_SPEED == 1
// High speed
#define SERIAL_DELAY 6 // micro sec
#define READ_WRITE_START_ADJUST 23 // cycles
#define READ_WRITE_WIDTH_ADJUST 10 // cycles
#elif SELECT_SERIAL_SPEED == 2
// Middle speed
#define SERIAL_DELAY 12 // micro sec
#define READ_WRITE_START_ADJUST 25 // cycles
#define READ_WRITE_WIDTH_ADJUST 10 // cycles
#elif SELECT_SERIAL_SPEED == 3
// Low speed
#define SERIAL_DELAY 24 // micro sec
#define READ_WRITE_START_ADJUST 25 // cycles
#define READ_WRITE_WIDTH_ADJUST 10 // cycles
#elif SELECT_SERIAL_SPEED == 4
// Very Low speed
#define SERIAL_DELAY 50 // micro sec
#define READ_WRITE_START_ADJUST 25 // cycles
#define READ_WRITE_WIDTH_ADJUST 10 // cycles
#else
#error Illegal Serial Speed
#endif
#define SERIAL_DELAY_HALF1 (SERIAL_DELAY/2)
#define SERIAL_DELAY_HALF2 (SERIAL_DELAY - SERIAL_DELAY/2)
#define SLAVE_INT_WIDTH 1
#define SLAVE_INT_RESPONSE_TIME SERIAL_DELAY
uint8_t volatile serial_slave_buffer[SERIAL_SLAVE_BUFFER_LENGTH] = {0}; uint8_t volatile serial_slave_buffer[SERIAL_SLAVE_BUFFER_LENGTH] = {0};
uint8_t volatile serial_master_buffer[SERIAL_MASTER_BUFFER_LENGTH] = {0}; uint8_t volatile serial_master_buffer[SERIAL_MASTER_BUFFER_LENGTH] = {0};
@@ -28,9 +64,17 @@ inline static
void serial_delay(void) { void serial_delay(void) {
_delay_us(SERIAL_DELAY); _delay_us(SERIAL_DELAY);
} }
void serial_delay_short(void) {
_delay_us(SERIAL_DELAY-1); inline static
void serial_delay_half1(void) {
_delay_us(SERIAL_DELAY_HALF1);
} }
inline static
void serial_delay_half2(void) {
_delay_us(SERIAL_DELAY_HALF2);
}
inline static inline static
void serial_output(void) { void serial_output(void) {
SERIAL_PIN_DDR |= SERIAL_PIN_MASK; SERIAL_PIN_DDR |= SERIAL_PIN_MASK;
@@ -38,7 +82,7 @@ void serial_output(void) {
// make the serial pin an input with pull-up resistor // make the serial pin an input with pull-up resistor
inline static inline static
void serial_input(void) { void serial_input_with_pullup(void) {
SERIAL_PIN_DDR &= ~SERIAL_PIN_MASK; SERIAL_PIN_DDR &= ~SERIAL_PIN_MASK;
SERIAL_PIN_PORT |= SERIAL_PIN_MASK; SERIAL_PIN_PORT |= SERIAL_PIN_MASK;
} }
@@ -64,7 +108,7 @@ void serial_master_init(void) {
} }
void serial_slave_init(void) { void serial_slave_init(void) {
serial_input(); serial_input_with_pullup();
#ifndef USE_SERIAL_PD2 #ifndef USE_SERIAL_PD2
// Enable INT0 // Enable INT0
@@ -79,25 +123,21 @@ void serial_slave_init(void) {
#endif #endif
} }
// Used by the master to synchronize timing with the slave. // Used by the sender to synchronize timing with the reciver.
static static
void sync_recv(void) { void sync_recv(void) {
serial_input(); for (int i = 0; i < SERIAL_DELAY*5 && serial_read_pin(); i++ ) {
}
// This shouldn't hang if the slave disconnects because the // This shouldn't hang if the slave disconnects because the
// serial line will float to high if the slave does disconnect. // serial line will float to high if the slave does disconnect.
while (!serial_read_pin()); while (!serial_read_pin());
//serial_delay();
_delay_us(SERIAL_DELAY-5);
} }
// Used by the slave to send a synchronization signal to the master. // Used by the reciver to send a synchronization signal to the sender.
static static
void sync_send(void) { void sync_send(void) {
serial_output();
serial_low(); serial_low();
serial_delay(); serial_delay();
serial_high(); serial_high();
} }
@@ -105,66 +145,70 @@ void sync_send(void) {
static static
uint8_t serial_read_byte(void) { uint8_t serial_read_byte(void) {
uint8_t byte = 0; uint8_t byte = 0;
serial_input(); _delay_sub_us(READ_WRITE_START_ADJUST);
for ( uint8_t i = 0; i < 8; ++i) { for ( uint8_t i = 0; i < 8; ++i) {
serial_delay_half1(); // read the middle of pulses
byte = (byte << 1) | serial_read_pin(); byte = (byte << 1) | serial_read_pin();
serial_delay(); _delay_sub_us(READ_WRITE_WIDTH_ADJUST);
_delay_us(1); serial_delay_half2();
} }
return byte; return byte;
} }
// Sends a byte with MSB ordering // Sends a byte with MSB ordering
static static
void serial_write_byte(uint8_t data) { void serial_write_byte(uint8_t data) {
uint8_t b = 8; uint8_t b = 1<<7;
serial_output(); while( b ) {
while( b-- ) { if(data & b) {
if(data & (1 << b)) {
serial_high(); serial_high();
} else { } else {
serial_low(); serial_low();
} }
b >>= 1;
serial_delay(); serial_delay();
} }
serial_low(); // sync_send() / senc_recv() need raise edge
} }
// interrupt handle to be used by the slave device // interrupt handle to be used by the slave device
ISR(SERIAL_PIN_INTERRUPT) { ISR(SERIAL_PIN_INTERRUPT) {
sync_send(); serial_output();
// slave send phase
uint8_t checksum = 0; uint8_t checksum = 0;
for (int i = 0; i < SERIAL_SLAVE_BUFFER_LENGTH; ++i) { for (int i = 0; i < SERIAL_SLAVE_BUFFER_LENGTH; ++i) {
serial_write_byte(serial_slave_buffer[i]);
sync_send(); sync_send();
serial_write_byte(serial_slave_buffer[i]);
checksum += serial_slave_buffer[i]; checksum += serial_slave_buffer[i];
} }
serial_write_byte(checksum);
sync_send(); sync_send();
serial_write_byte(checksum);
// wait for the sync to finish sending // slave switch to input
serial_delay(); sync_send(); //0
serial_delay_half1(); //1
// read the middle of pulses serial_low(); //2
_delay_us(SERIAL_DELAY/2); serial_input_with_pullup(); //2
serial_delay_half1(); //3
// slave recive phase
uint8_t checksum_computed = 0; uint8_t checksum_computed = 0;
for (int i = 0; i < SERIAL_MASTER_BUFFER_LENGTH; ++i) { for (int i = 0; i < SERIAL_MASTER_BUFFER_LENGTH; ++i) {
sync_recv();
serial_master_buffer[i] = serial_read_byte(); serial_master_buffer[i] = serial_read_byte();
sync_send();
checksum_computed += serial_master_buffer[i]; checksum_computed += serial_master_buffer[i];
} }
sync_recv();
uint8_t checksum_received = serial_read_byte(); uint8_t checksum_received = serial_read_byte();
sync_send();
serial_input(); // end transaction
if ( checksum_computed != checksum_received ) { if ( checksum_computed != checksum_received ) {
status |= SLAVE_DATA_CORRUPT; status |= SLAVE_DATA_CORRUPT;
} else { } else {
status &= ~SLAVE_DATA_CORRUPT; status &= ~SLAVE_DATA_CORRUPT;
} }
sync_recv(); //weit master output to high
} }
inline inline
@@ -178,6 +222,7 @@ bool serial_slave_DATA_CORRUPT(void) {
// Returns: // Returns:
// 0 => no error // 0 => no error
// 1 => slave did not respond // 1 => slave did not respond
// 2 => checksum error
int serial_update_buffers(void) { int serial_update_buffers(void) {
// this code is very time dependent, so we need to disable interrupts // this code is very time dependent, so we need to disable interrupts
cli(); cli();
@@ -185,51 +230,61 @@ int serial_update_buffers(void) {
// signal to the slave that we want to start a transaction // signal to the slave that we want to start a transaction
serial_output(); serial_output();
serial_low(); serial_low();
_delay_us(1); _delay_us(SLAVE_INT_WIDTH);
// wait for the slaves response // wait for the slaves response
serial_input(); serial_input_with_pullup();
serial_high(); _delay_us(SLAVE_INT_RESPONSE_TIME);
_delay_us(SERIAL_DELAY);
// check if the slave is present // check if the slave is present
if (serial_read_pin()) { if (serial_read_pin()) {
// slave failed to pull the line low, assume not present // slave failed to pull the line low, assume not present
serial_output();
serial_high();
sei(); sei();
return 1; return 1;
} }
// master recive phase
// if the slave is present syncronize with it // if the slave is present syncronize with it
sync_recv();
uint8_t checksum_computed = 0; uint8_t checksum_computed = 0;
// receive data from the slave // receive data from the slave
for (int i = 0; i < SERIAL_SLAVE_BUFFER_LENGTH; ++i) { for (int i = 0; i < SERIAL_SLAVE_BUFFER_LENGTH; ++i) {
serial_slave_buffer[i] = serial_read_byte();
sync_recv(); sync_recv();
serial_slave_buffer[i] = serial_read_byte();
checksum_computed += serial_slave_buffer[i]; checksum_computed += serial_slave_buffer[i];
} }
uint8_t checksum_received = serial_read_byte();
sync_recv(); sync_recv();
uint8_t checksum_received = serial_read_byte();
if (checksum_computed != checksum_received) { if (checksum_computed != checksum_received) {
serial_output();
serial_high();
sei(); sei();
return 2; return 2;
} }
// master switch to output
sync_recv(); //0
serial_delay(); //1
serial_low(); //3
serial_output(); // 3
serial_delay_half1(); //4
// master send phase
uint8_t checksum = 0; uint8_t checksum = 0;
// send data to the slave
for (int i = 0; i < SERIAL_MASTER_BUFFER_LENGTH; ++i) { for (int i = 0; i < SERIAL_MASTER_BUFFER_LENGTH; ++i) {
sync_send();
serial_write_byte(serial_master_buffer[i]); serial_write_byte(serial_master_buffer[i]);
sync_recv();
checksum += serial_master_buffer[i]; checksum += serial_master_buffer[i];
} }
sync_send();
serial_write_byte(checksum); serial_write_byte(checksum);
sync_recv();
// always, release the line when not in use // always, release the line when not in use
serial_output(); sync_send();
serial_high();
sei(); sei();
return 0; return 0;
+1
View File
@@ -127,6 +127,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects #define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
#define RGB_DISABLE_WHEN_USB_SUSPENDED false // turn off effects when suspended #define RGB_DISABLE_WHEN_USB_SUSPENDED false // turn off effects when suspended
#define RGB_MATRIX_SKIP_FRAMES 0 #define RGB_MATRIX_SKIP_FRAMES 0
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 215
#define DRIVER_ADDR_1 0b1110100 #define DRIVER_ADDR_1 0b1110100
#define DRIVER_ADDR_2 0b1110101 #define DRIVER_ADDR_2 0b1110101
+7
View File
@@ -52,6 +52,13 @@ $ make jj40
$ bootloadHID -r jj40_default.hex $ bootloadHID -r jj40_default.hex
``` ```
For Windows 10:
Windows sometimes doesn't recognize the jj40. The easiest way of flashing a new layout is probably using [HIDBootFlash](http://vusb.wikidot.com/project:hidbootflash).
1. Go to Windows Device Manager and find the keyboard (plug it in while holding down `Backspace` (`Top Right Key`)). It can be found under Human Interface Devices or under Keyboards.
2. Go to properties and the Details tab to find the hardware ID. You want the VID and the PID (code after the underscore). Plug them into HIDBootFlash and hit Find Device.
3. Use `make jj40:<keymap-name>` to generate the .hex file in the qmk basis folder. Select the .hex file in HIDBootFlash and press Flash Device.
## Troubleshooting ## Troubleshooting
1. Try plugging the board in while pressing `Backspace` (`Top Right Key`). This will force it 1. Try plugging the board in while pressing `Backspace` (`Top Right Key`). This will force it
+1 -1
View File
@@ -9,7 +9,7 @@
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER qmkbuilder #define MANUFACTURER qmkbuilder
#define PRODUCT KBD75 #define PRODUCT KBD75
#define DESCRIPTION QMK keyboard firmware for KBD75 R3 or later #define DESCRIPTION QMK keyboard firmware for KBD75
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 6 #define MATRIX_ROWS 6
+9 -111
View File
@@ -1,117 +1,15 @@
#ifndef KB_H #ifndef KBD75_H
#define KB_H #define KBD75_H
#include "quantum.h" #include "quantum.h"
/* LAYOUT #ifdef KEYBOARD_kbd75_rev1
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ #include "rev1.h"
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ #endif
* ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
* │1.5U │ │ │ │ │ │ │ │ │ │ │ │ │1.5U │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
* │1.75U │ │ │ │ │ │ │ │ │ │ │ │2.25U │ │
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
* │2.25U │ │ │ │ │ │ │ │ │ │ │1.75U │ │ │
* ├────┬───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤
* │1.25│1.25│1.25│2.25U │1.25│2.75U │ │ │ │ │ │ │
* └────┴────┴────┴────────┴────┴──────────┴───┴───┴───┴───┴───┴───┘
*/
// LAYOUT for all possible switch positions on a KBD75 #ifdef KEYBOARD_kbd75_rev2
#define LAYOUT( \ #include "../rev1/rev1.h"
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \ #include "rev2.h"
K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, \ #endif
K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \
K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K315, \
K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K414, K415, \
K500, K501, K503, K504, K506, K508, K510, K511, K512, K513, K514, K515 \
) { \
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115 }, \
{ K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \
{ K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, K315 }, \
{ K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, K414, K415 }, \
{ K500, K501, KC_NO, K503, K504, KC_NO, K506, KC_NO, K508, KC_NO, K510, K511, K512, K513, K514, K515 } \
}
/* 1U bottom row ─────────────────────────── ↓ ─ ↓ ─ ↓
* ┌────┬────┬────┬────────────────────────┬───┬───┬───┬───┬───┬───┐
* │1.25│1.25│1.25│6.25U │1U │1U │1U │1U │1U │1U │
* └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘
*/
#define LAYOUT_ansi_1u( \
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K114, K115, \
K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \
K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K315, \
K400, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K414, K415, \
K500, K501, K503, K506, K510, K511, K512, K513, K514, K515 \
) { \
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115 }, \
{ K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \
{ K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, K315 }, \
{ K400, KC_NO, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, K414, K415 }, \
{ K500, K501, KC_NO, K503, KC_NO, KC_NO, K506, KC_NO, KC_NO, KC_NO, K510, K511, K512, K513, K514, K515 } \
}
#define LAYOUT_iso_1u( \
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K114, K115, \
K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K313, K215, \
K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K214, K315, \
K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K414, K415, \
K500, K501, K503, K506, K510, K511, K512, K513, K514, K515 \
) { \
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, KC_NO, K114, K115 }, \
{ K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \
{ K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, K315 }, \
{ K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, K414, K415 }, \
{ K500, K501, KC_NO, K503, KC_NO, KC_NO, K506, KC_NO, KC_NO, KC_NO, K510, K511, K512, K513, K514, K515 } \
}
/* normal bottom row ──────────────────────── ↓ ─── ↓
* ┌────┬────┬────┬────────────────────────┬─────┬─────┬───┬───┬───┐
* │1.25│1.25│1.25│6.25U │1.5U │1.5U │1U │1U │1U │
* └────┴────┴────┴────────────────────────┴─────┴─────┴───┴───┴───┘
*/
#define LAYOUT_ansi( \
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K114, K115, \
K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \
K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K315, \
K400, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K414, K415, \
K500, K501, K503, K506, K510, K512, K513, K514, K515 \
) { \
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, KC_NO, K114, K115 }, \
{ K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \
{ K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, K315 }, \
{ K400, KC_NO, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, K414, K415 }, \
{ K500, K501, KC_NO, K503, KC_NO, KC_NO, K506, KC_NO, KC_NO, KC_NO, K510, KC_NO, K512, K513, K514, K515 } \
}
#define LAYOUT_iso( \
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K114, K115, \
K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K313, K215, \
K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K214, K315, \
K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K414, K415, \
K500, K501, K503, K506, K510, K512, K513, K514, K515 \
) { \
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, KC_NO, K114, K115 }, \
{ K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \
{ K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, K315 }, \
{ K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, K414, K415 }, \
{ K500, K501, KC_NO, K503, KC_NO, KC_NO, K506, KC_NO, KC_NO, KC_NO, K510, KC_NO, K512, K513, K514, K515 } \
}
#endif #endif
+8 -2
View File
@@ -2,11 +2,17 @@ KBD75
=== ===
Keyboard Maintainer: QMK Community Keyboard Maintainer: QMK Community
Hardware Supported: KBD75 PCB Hardware Supported: KBD75 PCB rev 1 and 2
Hardware Availability: https://kbdfans.myshopify.com/products/kbd75-keyboard-set?variant=35638534029 Hardware Availability: https://kbdfans.myshopify.com/products/kbd75-keyboard-set?variant=35638534029
The KBD75 has two revisions. Revision 2 has a USB C port and allows a numpad layout. `.hex` files made
for KBD75 revision 1, will still work for revision 2. `.hex` files made for revision 2 (excluding the numpad)
will also still work on revision 1. Both revisions share the same switch matrix but have switch holes in
different areas.
Make example for this keyboard (after setting up your build environment): Make example for this keyboard (after setting up your build environment):
make kbd75:default make kbd75/rev1:default
make kbd75/rev2:default
See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.
File renamed without changes.
+1
View File
@@ -0,0 +1 @@
#include "rev1.h"
+118
View File
@@ -0,0 +1,118 @@
#ifndef REV1_H
#define REV1_H
#include "quantum.h"
#include "../kbd75.h"
/* LAYOUT
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
* ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
* │1.5U │ │ │ │ │ │ │ │ │ │ │ │ │1.5U │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
* │1.75U │ │ │ │ │ │ │ │ │ │ │ │2.25U │ │
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
* │2.25U │ │ │ │ │ │ │ │ │ │ │1.75U │ │ │
* ├────┬───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤
* │1.25│1.25│1.25│2.25U │1.25│2.75U │ │ │ │ │ │ │
* └────┴────┴────┴────────┴────┴──────────┴───┴───┴───┴───┴───┴───┘
*/
// LAYOUT for all possible switch positions on a KBD75
#define LAYOUT( \
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, \
K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \
K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K315, \
K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K414, K415, \
K500, K501, K503, K504, K506, K508, K510, K511, K512, K513, K514, K515 \
) { \
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115 }, \
{ K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \
{ K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, K315 }, \
{ K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, K414, K415 }, \
{ K500, K501, KC_NO, K503, K504, KC_NO, K506, KC_NO, K508, KC_NO, K510, K511, K512, K513, K514, K515 } \
}
/* 1U bottom row ─────────────────────────── ↓ ─ ↓ ─ ↓
* ┌────┬────┬────┬────────────────────────┬───┬───┬───┬───┬───┬───┐
* │1.25│1.25│1.25│6.25U │1U │1U │1U │1U │1U │1U │
* └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘
*/
#define LAYOUT_ansi_1u( \
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K114, K115, \
K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \
K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K315, \
K400, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K414, K415, \
K500, K501, K503, K506, K510, K511, K512, K513, K514, K515 \
) { \
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115 }, \
{ K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \
{ K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, K315 }, \
{ K400, KC_NO, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, K414, K415 }, \
{ K500, K501, KC_NO, K503, KC_NO, KC_NO, K506, KC_NO, KC_NO, KC_NO, K510, K511, K512, K513, K514, K515 } \
}
#define LAYOUT_iso_1u( \
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K114, K115, \
K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K313, K215, \
K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K214, K315, \
K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K414, K415, \
K500, K501, K503, K506, K510, K511, K512, K513, K514, K515 \
) { \
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, KC_NO, K114, K115 }, \
{ K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \
{ K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, K315 }, \
{ K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, K414, K415 }, \
{ K500, K501, KC_NO, K503, KC_NO, KC_NO, K506, KC_NO, KC_NO, KC_NO, K510, K511, K512, K513, K514, K515 } \
}
/* normal bottom row ──────────────────────── ↓ ─── ↓
* ┌────┬────┬────┬────────────────────────┬─────┬─────┬───┬───┬───┐
* │1.25│1.25│1.25│6.25U │1.5U │1.5U │1U │1U │1U │
* └────┴────┴────┴────────────────────────┴─────┴─────┴───┴───┴───┘
*/
#define LAYOUT_ansi( \
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K114, K115, \
K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \
K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K315, \
K400, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K414, K415, \
K500, K501, K503, K506, K510, K512, K513, K514, K515 \
) { \
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, KC_NO, K114, K115 }, \
{ K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \
{ K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, K315 }, \
{ K400, KC_NO, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, K414, K415 }, \
{ K500, K501, KC_NO, K503, KC_NO, KC_NO, K506, KC_NO, KC_NO, KC_NO, K510, KC_NO, K512, K513, K514, K515 } \
}
#define LAYOUT_iso( \
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K114, K115, \
K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K313, K215, \
K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K214, K315, \
K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K414, K415, \
K500, K501, K503, K506, K510, K512, K513, K514, K515 \
) { \
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, KC_NO, K114, K115 }, \
{ K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \
{ K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, K315 }, \
{ K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, K414, K415 }, \
{ K500, K501, KC_NO, K503, KC_NO, KC_NO, K506, KC_NO, KC_NO, KC_NO, K510, KC_NO, K512, K513, K514, K515 } \
}
#endif
+56
View File
@@ -0,0 +1,56 @@
# MCU name
MCU = atmega32u4
# Processor frequency.
# This will define a symbol, F_CPU, in all source code files equal to the
# processor frequency in Hz. You can then use this symbol in your source code to
# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
# automatically to create a 32-bit value in your source code.
#
# This will be an integer division of F_USB below, as it is sourced by
# F_USB after it has run through any CPU prescalers. Note that this value
# does not *change* the processor frequency - it should merely be updated to
# reflect the processor speed set externally so that the code can use accurate
# software delays.
F_CPU = 16000000
#
# LUFA specific
#
# Target architecture (see library "Board Types" documentation).
ARCH = AVR8
# Input clock frequency.
# This will define a symbol, F_USB, in all source code files equal to the
# input clock frequency (before any prescaling is performed) in Hz. This value may
# differ from F_CPU if prescaling is used on the latter, and is required as the
# raw input clock is fed directly to the PLL sections of the AVR for high speed
# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
# at the end, this will be done automatically to create a 32-bit value in your
# source code.
#
# If no clock division is performed on the input clock inside the AVR (via the
# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
F_USB = $(F_CPU)
# Interrupt driven control endpoint task(+60)
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
# Boot Section Size in *bytes*
OPT_DEFS += -DBOOTLOADER_SIZE=4096
# Build Options
# comment out to disable the options.
#
BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE = no # Console for debug(+400)
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
AUDIO_ENABLE = no
RGBLIGHT_ENABLE = yes
+37
View File
@@ -0,0 +1,37 @@
{
"keyboard_name": "KBD75",
"url": "",
"maintainer": "qmk",
"width": 16,
"height": 6,
"layouts": {
"LAYOUT": {
"key_count": 88,
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1, "y":0}, {"label":"F2", "x":2, "y":0}, {"label":"F3", "x":3, "y":0}, {"label":"F4", "x":4, "y":0}, {"label":"F5", "x":5, "y":0}, {"label":"F6", "x":6, "y":0}, {"label":"F7", "x":7, "y":0}, {"label":"F8", "x":8, "y":0}, {"label":"F9", "x":9, "y":0}, {"label":"F10", "x":10, "y":0}, {"label":"F11", "x":11, "y":0}, {"label":"F12", "x":12, "y":0}, {"label":"PrtSc", "x":13, "y":0}, {"label":"Pause", "x":14, "y":0}, {"label":"Delete", "x":15, "y":0}, {"label":"~", "x":0, "y":1}, {"label":"1", "x":1, "y":1}, {"label":"2", "x":2, "y":1}, {"label":"3", "x":3, "y":1}, {"label":"4", "x":4, "y":1}, {"label":"5", "x":5, "y":1}, {"label":"6", "x":6, "y":1}, {"label":"7", "x":7, "y":1}, {"label":"8", "x":8, "y":1}, {"label":"9", "x":9, "y":1}, {"label":"0", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"label":"Home", "x":15, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"|", "x":13.5, "y":2, "w":1.5}, {"label":"Page Up", "x":15, "y":2}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"\"", "x":11.75, "y":3}, {"label":"Enter", "x":12.75, "y":3, "w":2.25}, {"label":"Page Down", "x":15, "y":3}, {"label":"Shift", "x":0, "y":4, "w":1.25}, {"x":1.25, "y":4}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"<", "x":9.25, "y":4}, {"label":">", "x":10.25, "y":4}, {"label":"?", "x":11.25, "y":4}, {"label":"Shift", "x":12.25, "y":4, "w":1.75}, {"label":"\u2191", "x":14, "y":4}, {"label":"End", "x":15, "y":4}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"x":3.75, "y":5, "w":2.25}, {"x":6, "y":5}, {"x":7, "y":5, "w":3}, {"label":"Alt", "x":10, "y":5}, {"label":"Fn", "x":11, "y":5}, {"label":"Ctrl", "x":12, "y":5}, {"label":"\u2190", "x":13, "y":5}, {"label":"\u2193", "x":14, "y":5}, {"label":"\u2192", "x":15, "y":5}]
},
"LAYOUT_ansi_1u": {
"key_count": 84,
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1, "y":0}, {"label":"F2", "x":2, "y":0}, {"label":"F3", "x":3, "y":0}, {"label":"F4", "x":4, "y":0}, {"label":"F5", "x":5, "y":0}, {"label":"F6", "x":6, "y":0}, {"label":"F7", "x":7, "y":0}, {"label":"F8", "x":8, "y":0}, {"label":"F9", "x":9, "y":0}, {"label":"F10", "x":10, "y":0}, {"label":"F11", "x":11, "y":0}, {"label":"F12", "x":12, "y":0}, {"label":"PrtSc", "x":13, "y":0}, {"label":"Pause", "x":14, "y":0}, {"label":"Delete", "x":15, "y":0}, {"label":"~", "x":0, "y":1}, {"label":"1", "x":1, "y":1}, {"label":"2", "x":2, "y":1}, {"label":"3", "x":3, "y":1}, {"label":"4", "x":4, "y":1}, {"label":"5", "x":5, "y":1}, {"label":"6", "x":6, "y":1}, {"label":"7", "x":7, "y":1}, {"label":"8", "x":8, "y":1}, {"label":"9", "x":9, "y":1}, {"label":"0", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"label":"delete", "x":13, "y":1, "w":2}, {"label":"Home", "x":15, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"|", "x":13.5, "y":2, "w":1.5}, {"label":"Page Up", "x":15, "y":2}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"\"", "x":11.75, "y":3}, {"label":"Enter", "x":12.75, "y":3, "w":2.25}, {"label":"Page Down", "x":15, "y":3}, {"label":"Shift", "x":0, "y":4, "w":2.25}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"<", "x":9.25, "y":4}, {"label":">", "x":10.25, "y":4}, {"label":"?", "x":11.25, "y":4}, {"label":"Shift", "x":12.25, "y":4, "w":1.75}, {"label":"\u2191", "x":14, "y":4}, {"label":"End", "x":15, "y":4}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"x":3.75, "y":5, "w":6.25}, {"label":"Alt", "x":10, "y":5}, {"label":"Fn", "x":11, "y":5}, {"label":"Ctrl", "x":12, "y":5}, {"label":"\u2190", "x":13, "y":5}, {"label":"\u2193", "x":14, "y":5}, {"label":"\u2192", "x":15, "y":5}]
},
"LAYOUT_iso_1u": {
"key_count": 85,
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1, "y":0}, {"label":"F2", "x":2, "y":0}, {"label":"F3", "x":3, "y":0}, {"label":"F4", "x":4, "y":0}, {"label":"F5", "x":5, "y":0}, {"label":"F6", "x":6, "y":0}, {"label":"F7", "x":7, "y":0}, {"label":"F8", "x":8, "y":0}, {"label":"F9", "x":9, "y":0}, {"label":"F10", "x":10, "y":0}, {"label":"F11", "x":11, "y":0}, {"label":"F12", "x":12, "y":0}, {"label":"PrtSc", "x":13, "y":0}, {"label":"Pause", "x":14, "y":0}, {"label":"Delete", "x":15, "y":0}, {"label":"~", "x":0, "y":1}, {"label":"1", "x":1, "y":1}, {"label":"2", "x":2, "y":1}, {"label":"3", "x":3, "y":1}, {"label":"4", "x":4, "y":1}, {"label":"5", "x":5, "y":1}, {"label":"6", "x":6, "y":1}, {"label":"7", "x":7, "y":1}, {"label":"8", "x":8, "y":1}, {"label":"9", "x":9, "y":1}, {"label":"0", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"label":"delete", "x":13, "y":1, "w":2}, {"label":"Home", "x":15, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25, "h":2}, {"label":"Page Up", "x":15, "y":2}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"@", "x":11.75, "y":3}, {"label":"~", "x":12.75, "y":3}, {"label":"Page Down", "x":15, "y":3}, {"label":"Shift", "x":0, "y":4, "w":1.25}, {"x":1.25, "y":4}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"<", "x":9.25, "y":4}, {"label":">", "x":10.25, "y":4}, {"label":"?", "x":11.25, "y":4}, {"label":"Shift", "x":12.25, "y":4, "w":1.75}, {"label":"\u2191", "x":14, "y":4}, {"label":"End", "x":15, "y":4}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"x":3.75, "y":5, "w":6.25}, {"label":"Alt", "x":10, "y":5}, {"label":"Fn", "x":11, "y":5}, {"label":"Ctrl", "x":12, "y":5}, {"label":"\u2190", "x":13, "y":5}, {"label":"\u2193", "x":14, "y":5}, {"label":"\u2192", "x":15, "y":5}]
},
"LAYOUT_ansi": {
"key_count": 83,
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1, "y":0}, {"label":"F2", "x":2, "y":0}, {"label":"F3", "x":3, "y":0}, {"label":"F4", "x":4, "y":0}, {"label":"F5", "x":5, "y":0}, {"label":"F6", "x":6, "y":0}, {"label":"F7", "x":7, "y":0}, {"label":"F8", "x":8, "y":0}, {"label":"F9", "x":9, "y":0}, {"label":"F10", "x":10, "y":0}, {"label":"F11", "x":11, "y":0}, {"label":"F12", "x":12, "y":0}, {"label":"PrtSc", "x":13, "y":0}, {"label":"Pause", "x":14, "y":0}, {"label":"Delete", "x":15, "y":0}, {"label":"~", "x":0, "y":1}, {"label":"1", "x":1, "y":1}, {"label":"2", "x":2, "y":1}, {"label":"3", "x":3, "y":1}, {"label":"4", "x":4, "y":1}, {"label":"5", "x":5, "y":1}, {"label":"6", "x":6, "y":1}, {"label":"7", "x":7, "y":1}, {"label":"8", "x":8, "y":1}, {"label":"9", "x":9, "y":1}, {"label":"0", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"label":"delete", "x":13, "y":1, "w":2}, {"label":"Home", "x":15, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"|", "x":13.5, "y":2, "w":1.5}, {"label":"Page Up", "x":15, "y":2}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"\"", "x":11.75, "y":3}, {"label":"Enter", "x":12.75, "y":3, "w":2.25}, {"label":"Page Down", "x":15, "y":3}, {"label":"Shift", "x":0, "y":4, "w":2.25}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"<", "x":9.25, "y":4}, {"label":">", "x":10.25, "y":4}, {"label":"?", "x":11.25, "y":4}, {"label":"Shift", "x":12.25, "y":4, "w":1.75}, {"label":"\u2191", "x":14, "y":4}, {"label":"End", "x":15, "y":4}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"x":3.75, "y":5, "w":6.25}, {"label":"Alt", "x":10, "y":5, "w":1.5}, {"label":"Ctrl", "x":11.5, "y":5, "w":1.5}, {"label":"\u2190", "x":13, "y":5}, {"label":"\u2193", "x":14, "y":5}, {"label":"\u2192", "x":15, "y":5}]
},
"LAYOUT_iso": {
"key_count": 84,
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1, "y":0}, {"label":"F2", "x":2, "y":0}, {"label":"F3", "x":3, "y":0}, {"label":"F4", "x":4, "y":0}, {"label":"F5", "x":5, "y":0}, {"label":"F6", "x":6, "y":0}, {"label":"F7", "x":7, "y":0}, {"label":"F8", "x":8, "y":0}, {"label":"F9", "x":9, "y":0}, {"label":"F10", "x":10, "y":0}, {"label":"F11", "x":11, "y":0}, {"label":"F12", "x":12, "y":0}, {"label":"PrtSc", "x":13, "y":0}, {"label":"Pause", "x":14, "y":0}, {"label":"Delete", "x":15, "y":0}, {"label":"\u00ac", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"\"", "x":2, "y":1}, {"label":"\u00a3", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"label":"Backspace", "x":13, "y":1, "w":2}, {"label":"Home", "x":15, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25, "h":2}, {"label":"Page Up", "x":15, "y":2}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"@", "x":11.75, "y":3}, {"label":"~", "x":12.75, "y":3}, {"label":"Page Down", "x":15, "y":3}, {"label":"Shift", "x":0, "y":4, "w":1.25}, {"label":"|", "x":1.25, "y":4}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"<", "x":9.25, "y":4}, {"label":">", "x":10.25, "y":4}, {"label":"?", "x":11.25, "y":4}, {"label":"Shift", "x":12.25, "y":4, "w":1.75}, {"label":"\u2191", "x":14, "y":4}, {"label":"End", "x":15, "y":4}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"x":3.75, "y":5, "w":6.25}, {"label":"AltGr", "x":10, "y":5, "w":1.5}, {"label":"Ctrl", "x":11.5, "y":5, "w":1.5}, {"label":"\u2190", "x":13, "y":5}, {"label":"\u2193", "x":14, "y":5}, {"label":"\u2192", "x":15, "y":5}]
},
"LAYOUT_numpad": {
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1, "y":0}, {"label":"F2", "x":2, "y":0}, {"label":"F3", "x":3, "y":0}, {"label":"F4", "x":4, "y":0}, {"label":"F5", "x":5, "y":0}, {"label":"F6", "x":6, "y":0}, {"label":"F7", "x":7, "y":0}, {"label":"F8", "x":8, "y":0}, {"label":"F9", "x":9, "y":0}, {"label":"F10", "x":10, "y":0}, {"label":"F11", "x":11, "y":0}, {"label":"F12", "x":12, "y":0}, {"label":"PrtSc", "x":13, "y":0}, {"label":"Pause", "x":14, "y":0}, {"label":"Delete", "x":15, "y":0}, {"label":"~", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"@", "x":2, "y":1}, {"label":"#", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"x":11, "y":1}, {"x":12, "y":1}, {"label":"Home", "x":13, "y":1}, {"label":"_", "x":14, "y":1}, {"label":"+", "x":15, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"|", "x":11.5, "y":2, "w":1.5}, {"label":"Page Up", "x":13, "y":2}, {"label":"{", "x":14, "y":2}, {"label":"}", "x":15, "y":2}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":"Enter", "x":10.75, "y":3, "w":2.25}, {"label":"Page Down", "x":13, "y":3}, {"label":":", "x":14, "y":3}, {"label":"\"", "x":15, "y":3}, {"label":"Shift", "x":0, "y":4, "w":1.25}, {"x":1.25, "y":4}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"?", "x":9.25, "y":4}, {"label":"Shift", "x":10.25, "y":4, "w":1.75}, {"label":"\u2191", "x":12, "y":4}, {"label":"End", "x":13, "y":4}, {"label":"<", "x":14, "y":4}, {"label":">", "x":15, "y":4}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"x":3.75, "y":5, "w":1.25}, {"x":5, "y":5, "w":2.25}, {"x":7.25, "y":5, "w":1.75}, {"x":9, "y":5}, {"label":"Alt", "x":10, "y":5}, {"label":"\u2190", "x":11, "y":5}, {"label":"\u2193", "x":12, "y":5}, {"label":"\u2192", "x":13, "y":5}, {"label":"Fn", "x":14, "y":5}, {"label":"Ctrl", "x":15, "y":5}]
}
}
}
+1
View File
@@ -0,0 +1 @@
#include "rev2.h"
+25
View File
@@ -0,0 +1,25 @@
#ifndef REV2_H
#define REV2_H
#include "quantum.h"
#include "../kbd75.h"
// LAYOUT for all possible switch positions on a KBD75 rev 2
#define LAYOUT_numpad( \
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, \
K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \
K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K315, \
K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K414, K415, \
K500, K501, K503, K504, K506, K508, K509, K510, K511, K512, K513, K514, K515 \
) { \
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115 }, \
{ K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \
{ K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, K315 }, \
{ K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, K414, K415 }, \
{ K500, K501, KC_NO, K503, K504, KC_NO, K506, KC_NO, K508, K509, K510, K511, K512, K513, K514, K515 } \
}
#endif
+56
View File
@@ -0,0 +1,56 @@
# MCU name
MCU = atmega32u4
# Processor frequency.
# This will define a symbol, F_CPU, in all source code files equal to the
# processor frequency in Hz. You can then use this symbol in your source code to
# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
# automatically to create a 32-bit value in your source code.
#
# This will be an integer division of F_USB below, as it is sourced by
# F_USB after it has run through any CPU prescalers. Note that this value
# does not *change* the processor frequency - it should merely be updated to
# reflect the processor speed set externally so that the code can use accurate
# software delays.
F_CPU = 16000000
#
# LUFA specific
#
# Target architecture (see library "Board Types" documentation).
ARCH = AVR8
# Input clock frequency.
# This will define a symbol, F_USB, in all source code files equal to the
# input clock frequency (before any prescaling is performed) in Hz. This value may
# differ from F_CPU if prescaling is used on the latter, and is required as the
# raw input clock is fed directly to the PLL sections of the AVR for high speed
# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
# at the end, this will be done automatically to create a 32-bit value in your
# source code.
#
# If no clock division is performed on the input clock inside the AVR (via the
# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
F_USB = $(F_CPU)
# Interrupt driven control endpoint task(+60)
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
# Boot Section Size in *bytes*
OPT_DEFS += -DBOOTLOADER_SIZE=4096
# Build Options
# comment out to disable the options.
#
BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE = no # Console for debug(+400)
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
AUDIO_ENABLE = no
RGBLIGHT_ENABLE = yes
+1 -56
View File
@@ -1,56 +1 @@
# MCU name DEFAULT_FOLDER = kbd75/rev1
MCU = atmega32u4
# Processor frequency.
# This will define a symbol, F_CPU, in all source code files equal to the
# processor frequency in Hz. You can then use this symbol in your source code to
# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
# automatically to create a 32-bit value in your source code.
#
# This will be an integer division of F_USB below, as it is sourced by
# F_USB after it has run through any CPU prescalers. Note that this value
# does not *change* the processor frequency - it should merely be updated to
# reflect the processor speed set externally so that the code can use accurate
# software delays.
F_CPU = 16000000
#
# LUFA specific
#
# Target architecture (see library "Board Types" documentation).
ARCH = AVR8
# Input clock frequency.
# This will define a symbol, F_USB, in all source code files equal to the
# input clock frequency (before any prescaling is performed) in Hz. This value may
# differ from F_CPU if prescaling is used on the latter, and is required as the
# raw input clock is fed directly to the PLL sections of the AVR for high speed
# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
# at the end, this will be done automatically to create a 32-bit value in your
# source code.
#
# If no clock division is performed on the input clock inside the AVR (via the
# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
F_USB = $(F_CPU)
# Interrupt driven control endpoint task(+60)
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
# Boot Section Size in *bytes*
OPT_DEFS += -DBOOTLOADER_SIZE=4096
# Build Options
# comment out to disable the options.
#
BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE = no # Console for debug(+400)
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
AUDIO_ENABLE = no
RGBLIGHT_ENABLE = yes
+18
View File
@@ -0,0 +1,18 @@
{
"keyboard_name": "Kitten Paw",
"url": "",
"maintainer": "qmk",
"width": 22.5,
"height": 6.5,
"layouts": {
"LAYOUT": {
"key_count": 105,
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "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":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "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":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, {"label":"PgUp", "x":17.25, "y":1.5}, {"label":"Num Lock", "x":18.5, "y":1.5}, {"label":"/", "x":19.5, "y":1.5}, {"label":"*", "x":20.5, "y":1.5}, {"label":"-", "x":21.5, "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":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, {"label":"7", "x":18.5, "y":2.5}, {"label":"8", "x":19.5, "y":2.5}, {"label":"9", "x":20.5, "y":2.5}, {"label":"+", "x":21.5, "y":2.5, "h":2}, {"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":18.5, "y":3.5}, {"label":"5", "x":19.5, "y":3.5}, {"label":"6", "x":20.5, "y":3.5}, {"label":"Shift", "x":0, "y":4.5, "w":1.25}, {"label":"KC_NUBS", "x":1.25, "y":4.5}, {"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":2.75}, {"label":"\u2191", "x":16.25, "y":4.5}, {"label":"1", "x":18.5, "y":4.5}, {"label":"2", "x":19.5, "y":4.5}, {"label":"3", "x":20.5, "y":4.5}, {"label":"Enter", "x":21.5, "y":4.5, "h":2}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"label":"Alt", "x":10, "y":5.5, "w":1.25}, {"label":"Win", "x":11.25, "y":5.5, "w":1.25}, {"label":"Menu", "x":12.5, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}, {"label":"0", "x":18.5, "y":5.5, "w":2}, {"label":".", "x":20.5, "y":5.5}]
},
"LAYOUT_fullsize_ansi": {
"key_count": 104,
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "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":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "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":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, {"label":"PgUp", "x":17.25, "y":1.5}, {"label":"Num Lock", "x":18.5, "y":1.5}, {"label":"/", "x":19.5, "y":1.5}, {"label":"*", "x":20.5, "y":1.5}, {"label":"-", "x":21.5, "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":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, {"label":"7", "x":18.5, "y":2.5}, {"label":"8", "x":19.5, "y":2.5}, {"label":"9", "x":20.5, "y":2.5}, {"label":"+", "x":21.5, "y":2.5, "h":2}, {"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":18.5, "y":3.5}, {"label":"5", "x":19.5, "y":3.5}, {"label":"6", "x":20.5, "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":2.75}, {"label":"\u2191", "x":16.25, "y":4.5}, {"label":"1", "x":18.5, "y":4.5}, {"label":"2", "x":19.5, "y":4.5}, {"label":"3", "x":20.5, "y":4.5}, {"label":"Enter", "x":21.5, "y":4.5, "h":2}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"label":"Alt", "x":10, "y":5.5, "w":1.25}, {"label":"Win", "x":11.25, "y":5.5, "w":1.25}, {"label":"Menu", "x":12.5, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}, {"label":"0", "x":18.5, "y":5.5, "w":2}, {"label":".", "x":20.5, "y":5.5}]
}
}
}
@@ -1,11 +1,11 @@
#include "kitten_paw.h" #include QMK_KEYBOARD_H
enum layers { enum layers {
DEFAULT, DEFAULT,
}; };
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[DEFAULT] = KEYMAP(\ [DEFAULT] = 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_PSCR,KC_SLCK,KC_PAUS, \ 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_PSCR,KC_SLCK,KC_PAUS, \
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_INS,KC_HOME,KC_PGUP, KC_NLCK,KC_PSLS,KC_PAST,KC_PMNS, \ 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_INS,KC_HOME,KC_PGUP, KC_NLCK,KC_PSLS,KC_PAST,KC_PMNS, \
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_DEL, KC_END,KC_PGDN, KC_P7, KC_P8, KC_P9,KC_PPLS, \ 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_DEL, KC_END,KC_PGDN, KC_P7, KC_P8, KC_P9,KC_PPLS, \
@@ -1,4 +1,4 @@
#include "kitten_paw.h" #include QMK_KEYBOARD_H
#include "mousekey.h" #include "mousekey.h"
#define _______ KC_TRNS #define _______ KC_TRNS
@@ -38,7 +38,7 @@ enum macro_id {
}; };
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[DEFAULT] = KEYMAP(\ [DEFAULT] = 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_PSCR,KC_SLCK,KC_PAUS, \ 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_PSCR,KC_SLCK,KC_PAUS, \
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_INS,KC_HOME,KC_PGUP, KC_NLCK,KC_PSLS,KC_PAST,KC_PMNS, \ 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_INS,KC_HOME,KC_PGUP, KC_NLCK,KC_PSLS,KC_PAST,KC_PMNS, \
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_DEL, KC_END,KC_PGDN, KC_P7, KC_P8, KC_P9,KC_PPLS, \ 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_DEL, KC_END,KC_PGDN, KC_P7, KC_P8, KC_P9,KC_PPLS, \
@@ -46,7 +46,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
F(8),KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M,KC_COMM, KC_DOT,KC_SLSH, F(9), KC_UP, KC_P1, KC_P2, KC_P3,KC_PENT, \ F(8),KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M,KC_COMM, KC_DOT,KC_SLSH, F(9), KC_UP, KC_P1, KC_P2, KC_P3,KC_PENT, \
F(1),KC_LGUI, F(3), LT(MISC, KC_SPC), F(4), F(5), MEDAPP, F(2), KC_LEFT,KC_DOWN,KC_RGHT, KC_P0,KC_PDOT), F(1),KC_LGUI, F(3), LT(MISC, KC_SPC), F(4), F(5), MEDAPP, F(2), KC_LEFT,KC_DOWN,KC_RGHT, KC_P0,KC_PDOT),
/* Layer 1: Programming Layer 1, emulating US l ayout */ /* Layer 1: Programming Layer 1, emulating US l ayout */
[PROG1] = KEYMAP(\ [PROG1] = LAYOUT(\
KC_ESC,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, \ KC_ESC,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, \
M(GRV),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,KC_SLSH, S(0),_______, _______,_______,_______, _______,_______,_______,_______, \ M(GRV),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,KC_SLSH, S(0),_______, _______,_______,_______, _______,_______,_______,_______, \
_______,_______,_______,_______,_______,_______, KC_Z,_______,_______,_______,_______, RA(8), RA(9),RA(MINS), _______,_______,_______, _______,_______,_______,_______, \ _______,_______,_______,_______,_______,_______, KC_Z,_______,_______,_______,_______, RA(8), RA(9),RA(MINS), _______,_______,_______, _______,_______,_______,_______, \
@@ -56,7 +56,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Layer 2: programming layer 2 /* Layer 2: programming layer 2
all keys that are not FN keys are sent as LSFT+key on this layer all keys that are not FN keys are sent as LSFT+key on this layer
*/ */
[PROG2] = KEYMAP(\ [PROG2] = LAYOUT(\
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, \ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, \
RA(RBRC),_______, RA(Q),KC_BSLS,_______,_______,M(CFLEX), S(6),S(RBRC), S(8), S(9),S(SLSH),KC_RBRC,_______, _______,_______,_______, _______,_______,_______,_______, \ RA(RBRC),_______, RA(Q),KC_BSLS,_______,_______,M(CFLEX), S(6),S(RBRC), S(8), S(9),S(SLSH),KC_RBRC,_______, _______,_______,_______, _______,_______,_______,_______, \
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, RA(7), RA(0),RA(NUBS), _______,_______,_______, _______,_______,_______,_______, \ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, RA(7), RA(0),RA(NUBS), _______,_______,_______, _______,_______,_______,_______, \
@@ -64,7 +64,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______,S(NUBS),_______,_______,_______,_______,_______,_______,_______,KC_NUBS,S(NUBS),S(MINS), _______, _______, _______,_______,_______,_______, \ _______,S(NUBS),_______,_______,_______,_______,_______,_______,_______,KC_NUBS,S(NUBS),S(MINS), _______, _______, _______,_______,_______,_______, \
_______,_______,_______, _______, _______,_______,_______,_______, _______,_______,_______, _______,_______), _______,_______,_______, _______, _______,_______,_______,_______, _______,_______,_______, _______,_______),
/* Layer 3: media layer */ /* Layer 3: media layer */
[MEDIA] = KEYMAP(\ [MEDIA] = LAYOUT(\
KC_PWR,KC_SLEP,KC_WAKE,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, XXXXXXX,XXXXXXX,XXXXXXX, \ KC_PWR,KC_SLEP,KC_WAKE,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, XXXXXXX,XXXXXXX,XXXXXXX, \
XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, KC_MPRV,KC_MPLY,KC_MNXT, XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, \ XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, KC_MPRV,KC_MPLY,KC_MNXT, XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, \
XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, KC_VOLD,KC_MUTE,KC_VOLU, XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, \ XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, KC_VOLD,KC_MUTE,KC_VOLU, XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, \
@@ -72,7 +72,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, XXXXXXX, KC_EJCT, XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, \ XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, XXXXXXX, KC_EJCT, XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, \
XXXXXXX,XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX,XXXXXXX,_______,XXXXXXX, KC_MRWD,KC_MSTP,KC_MFFD, XXXXXXX,XXXXXXX), XXXXXXX,XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX,XXXXXXX,_______,XXXXXXX, KC_MRWD,KC_MSTP,KC_MFFD, XXXXXXX,XXXXXXX),
/* Layer 4: Mouse layer */ /* Layer 4: Mouse layer */
[MOUSE1] = KEYMAP(\ [MOUSE1] = LAYOUT(\
F(6),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, \ F(6),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, \
_______,KC_ACL0,KC_ACL1,KC_ACL2,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, _______,_______,_______,_______, \ _______,KC_ACL0,KC_ACL1,KC_ACL2,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, _______,_______,_______,_______, \
_______,KC_BTN4,KC_WH_D,KC_MS_U,KC_WH_U,_______, C(Z),_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, _______,_______,_______,_______, \ _______,KC_BTN4,KC_WH_D,KC_MS_U,KC_WH_U,_______, C(Z),_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, _______,_______,_______,_______, \
@@ -80,7 +80,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
MO(MOUSE2),_______, C(Y), C(X), C(C), C(V),_______,KC_BTN2,KC_BTN3,C(PGUP),C(PGDN),_______, KC_RSFT, _______, _______,_______,_______,_______, \ MO(MOUSE2),_______, C(Y), C(X), C(C), C(V),_______,KC_BTN2,KC_BTN3,C(PGUP),C(PGDN),_______, KC_RSFT, _______, _______,_______,_______,_______, \
KC_LCTL,_______,KC_LALT, KC_BTN1, KC_RALT,KC_RGUI, KC_APP,KC_RCTL, _______,_______,_______, _______,_______), KC_LCTL,_______,KC_LALT, KC_BTN1, KC_RALT,KC_RGUI, KC_APP,KC_RCTL, _______,_______,_______, _______,_______),
/* Layer 5: Mouse layer 2*/ /* Layer 5: Mouse layer 2*/
[MOUSE2] = KEYMAP(\ [MOUSE2] = LAYOUT(\
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, \ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, \
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, _______,_______,_______,_______, \ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, _______,_______,_______,_______, \
_______,_______,KC_BTN2,KC_WH_U,KC_BTN3,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, _______,_______,_______,_______, \ _______,_______,KC_BTN2,KC_WH_U,KC_BTN3,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, _______,_______,_______,_______, \
@@ -88,7 +88,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______,_______,_______, \ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______,_______,_______, \
_______,_______,_______, _______, _______,_______,_______,_______, _______,_______,_______, _______,_______), _______,_______,_______, _______, _______,_______,_______,_______, _______,_______,_______, _______,_______),
/* Layer 6: Misc layer */ /* Layer 6: Misc layer */
[MISC] = KEYMAP(\ [MISC] = LAYOUT(\
_______, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, _______,_______,_______, \ _______, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, _______,_______,_______, \
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, _______,_______,_______,_______, \ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, _______,_______,_______,_______, \
_______,KC_SLCT, C(W), KC_UP,_______,_______,_______,_______,KC_BSPC, KC_DEL,_______,_______,_______,_______, _______,_______,_______, _______,_______,_______,_______, \ _______,KC_SLCT, C(W), KC_UP,_______,_______,_______,_______,KC_BSPC, KC_DEL,_______,_______,_______,_______, _______,_______,_______, _______,_______,_______,_______, \
+8
View File
@@ -14,6 +14,14 @@ void matrix_scan_kb(void) {
matrix_scan_user(); matrix_scan_user();
} }
__attribute__ ((weak))
void matrix_init_user(void) {
}
__attribute__ ((weak))
void matrix_scan_user(void) {
}
bool process_record_kb(uint16_t keycode, keyrecord_t *record) { bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
// put your per-action keyboard code here // put your per-action keyboard code here
// runs for every action, just before processing by the firmware // runs for every action, just before processing by the firmware
+22 -3
View File
@@ -19,7 +19,7 @@
// The second converts the arguments into a two-dimensional array // The second converts the arguments into a two-dimensional array
/* /*
Matrix col/row mapping Matrix col/row mapping
,----. ,-------------------. ,-------------------. ,-------------------. ,--------------. ,----. ,-------------------. ,-------------------. ,-------------------. ,--------------.
| J6 | | I4 | H4 | H2 | H6 | | A7 | E6 | D2 | D4 | | B4 | B7 | B6 | B0 | | C7 | C5 | A5 | | J6 | | I4 | H4 | H2 | H6 | | A7 | E6 | D2 | D4 | | B4 | B7 | B6 | B0 | | C7 | C5 | A5 |
`----' `-------------------' `-------------------' `-------------------' `--------------' `----' `-------------------' `-------------------' `-------------------' `--------------'
@@ -30,13 +30,13 @@
|-------------------------------------------------------------------------| '--------------' |-------------- | |-------------------------------------------------------------------------| '--------------' |-------------- |
| O5 | J3 | I3 | H3 | G3 | G6 | F6 | F3 | E3 | D3 | R3 | R6 | B1 | | K2 | L2 | Q2 | | | O5 | J3 | I3 | H3 | G3 | G6 | F6 | F3 | E3 | D3 | R3 | R6 | B1 | | K2 | L2 | Q2 | |
|-------------------------------------------------------------------------| ,----. |-------------------| |-------------------------------------------------------------------------| ,----. |-------------------|
| N2 | J1 | I1 | H1 | G1 | G0 | F0 | F1 | E1 | D1 | R0 | N3 | | O6 | | K3 | L3 | Q3 | O3 | | N2 | I6 | J1 | I1 | H1 | G1 | G0 | F0 | F1 | E1 | D1 | R0 | N3 | | O6 | | K3 | L3 | Q3 | O3 |
|-------------------------------------------------------------------------| ,--------------. |-------------- | |-------------------------------------------------------------------------| ,--------------. |-------------- |
| A4 | P2 | C6 | K6 | C0 | M3 | D0 | A1 | | O0 | K0 | L0 | | L6 | Q6 | | | A4 | P2 | C6 | K6 | C0 | M3 | D0 | A1 | | O0 | K0 | L0 | | L6 | Q6 | |
`-------------------------------------------------------------------------' `--------------' `-------------------' `-------------------------------------------------------------------------' `--------------' `-------------------'
*/ */
#define KEYMAP( \ #define LAYOUT( \
KJ6, KI4, KH4, KH2, KH6, KA7, KE6, KD2, KD4, KB4, KB7, KB6, KB0, KC7, KC5, KA5, \ KJ6, KI4, KH4, KH2, KH6, KA7, KE6, KD2, KD4, KB4, KB7, KB6, KB0, KC7, KC5, KA5, \
KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2, KL4, KO4, KQ4, KK1, KL1, KQ1, KQ0, \ KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2, KL4, KO4, KQ4, KK1, KL1, KQ1, KQ0, \
KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3, KK4, KO7, KQ7, KK5, KL5, KQ5, KO5, \ KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3, KK4, KO7, KQ7, KK5, KL5, KQ5, KO5, \
@@ -55,4 +55,23 @@
{ KA7, KB7, KC7, KD7, KE7, KF7, KG7, KH7, KI7, KJ7,KC_NO,KC_NO,KC_NO,KC_NO, KO7,KC_NO, KQ7, KR7} \ { KA7, KB7, KC7, KD7, KE7, KF7, KG7, KH7, KI7, KJ7,KC_NO,KC_NO,KC_NO,KC_NO, KO7,KC_NO, KQ7, KR7} \
} }
#define LAYOUT_fullsize_ansi( \
KJ6, KI4, KH4, KH2, KH6, KA7, KE6, KD2, KD4, KB4, KB7, KB6, KB0, KC7, KC5, KA5, \
KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2, KL4, KO4, KQ4, KK1, KL1, KQ1, KQ0, \
KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3, KK4, KO7, KQ7, KK5, KL5, KQ5, KO5, \
KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6, KB1, KK2, KL2, KQ2, \
KN2, KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0, KN3, KO6, KK3, KL3, KQ3, KO3, \
KA4, KP2, KC6, KK6, KC0, KM3, KD0, KA1, KO0, KK0, KL0, KL6, KQ6 \
) \
{ \
{KC_NO, KB0, KC0, KD0,KC_NO, KF0, KG0,KC_NO,KC_NO,KC_NO, KK0, KL0,KC_NO,KC_NO, KO0,KC_NO, KQ0, KR0}, \
{ KA1, KB1,KC_NO, KD1, KE1, KF1, KG1, KH1, KI1, KJ1, KK1, KL1,KC_NO,KC_NO,KC_NO,KC_NO, KQ1,KC_NO}, \
{KC_NO, KB2,KC_NO, KD2, KE2, KF2, KG2, KH2, KI2, KJ2, KK2, KL2,KC_NO, KN2,KC_NO, KP2, KQ2, KR2}, \
{KC_NO, KB3,KC_NO, KD3, KE3, KF3, KG3, KH3, KI3, KJ3, KK3, KL3, KM3, KN3, KO3,KC_NO, KQ3, KR3}, \
{ KA4, KB4,KC_NO, KD4, KE4, KF4, KG4, KH4, KI4, KJ4, KK4, KL4,KC_NO,KC_NO, KO4,KC_NO, KQ4, KR4}, \
{ KA5,KC_NO, KC5, KD5, KE5, KF5, KG5, KH5, KI5, KJ5, KK5, KL5,KC_NO,KC_NO, KO5,KC_NO, KQ5, KR5}, \
{KC_NO, KB6, KC6,KC_NO, KE6, KF6, KG6, KH6, KC_NO,KJ6, KK6, KL6,KC_NO,KC_NO, KO6,KC_NO, KQ6, KR6}, \
{ KA7, KB7, KC7, KD7, KE7, KF7, KG7, KH7, KI7, KJ7,KC_NO,KC_NO,KC_NO,KC_NO, KO7,KC_NO, KQ7, KR7} \
}
#endif #endif
+2 -2
View File
@@ -5,8 +5,8 @@ This is the firmware for the 2016 revision of the Kitten Paw controller by Bathr
NKRO doesn't work at the moment, I don't know if I will take the time to find out how to fix this, so far 6KRO is enough for me. NKRO doesn't work at the moment, I don't know if I will take the time to find out how to fix this, so far 6KRO is enough for me.
Keyboard Maintainer: QMK Community Keyboard Maintainer: QMK Community
Hardware Supported: Kitten Paw PCB Hardware Supported: Kitten Paw PCB
Hardware Availability: https://geekhack.org/index.php?topic=46700.0 Hardware Availability: https://geekhack.org/index.php?topic=46700.0
Make example for this keyboard (after setting up your build environment): Make example for this keyboard (after setting up your build environment):
+2
View File
@@ -70,3 +70,5 @@ AUDIO_ENABLE = no # Audio output on port C6
CUSTOM_MATRIX = yes CUSTOM_MATRIX = yes
SRC += matrix.c SRC += matrix.c
LAYOUTS = fullsize_ansi
+1 -1
View File
@@ -6,7 +6,7 @@
"width": 3, "width": 3,
"height": 2, "height": 2,
"layouts": { "layouts": {
"KEYMAP": { "LAYOUT": {
"layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}] "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}]
} }
} }
+4 -4
View File
@@ -1,4 +1,4 @@
#include "laplace.h" #include QMK_KEYBOARD_H
#define _BASE 0 #define _BASE 0
#define _FN1 1 #define _FN1 1
@@ -25,7 +25,7 @@
#define KC_RVAD RGB_VAD #define KC_RVAD RGB_VAD
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = KC_KEYMAP( [_BASE] = LAYOUT_kc(
//,----+----+----+----+----+----+----+----+----+----+----+----+----. //,----+----+----+----+----+----+----+----+----+----+----+----+----.
ESC , Q , W , E , R , T , Y , U , I , O , P ,DEL ,BSPC, ESC , Q , W , E , R , T , Y , U , I , O , P ,DEL ,BSPC,
//|----`----`----`----`----`----`----`----`----`----`----`----`----+ //|----`----`----`----`----`----`----`----`----`----`----`----`----+
@@ -37,7 +37,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//`-----+----+-----+----+--------+--------+-----+-----+-----+------' //`-----+----+-----+----+--------+--------+-----+-----+-----+------'
), ),
[_FN1] = KC_KEYMAP( [_FN1] = LAYOUT_kc(
//,----+----+----+----+----+----+----+----+----+----+----+----+----. //,----+----+----+----+----+----+----+----+----+----+----+----+----.
GRV , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,MINS,EQL , GRV , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,MINS,EQL ,
//|----`----`----`----`----`----`----`----`----`----`----`----`----+ //|----`----`----`----`----`----`----`----`----`----`----`----`----+
@@ -49,7 +49,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//`-----+----+-----+----+--------+--------+-----+-----+-----+------' //`-----+----+-----+----+--------+--------+-----+-----+-----+------'
), ),
[_FN2] = KC_KEYMAP( [_FN2] = LAYOUT_kc(
//,----+----+----+----+----+----+----+----+----+----+----+----+----. //,----+----+----+----+----+----+----+----+----+----+----+----+----.
TILD,EXLM, AT ,HASH,DLR ,PERC,CIRC,AMPR,ASTR,LPRN,RPRN,UNDS,PLUS, TILD,EXLM, AT ,HASH,DLR ,PERC,CIRC,AMPR,ASTR,LPRN,RPRN,UNDS,PLUS,
//|----`----`----`----`----`----`----`----`----`----`----`----`----+ //|----`----`----`----`----`----`----`----`----`----`----`----`----+
+24 -48
View File
@@ -1,63 +1,39 @@
#include "laplace.h" #include QMK_KEYBOARD_H
#define _BASE 0 #define _BASE 0
#define _FN1 1 #define _FN1 1
#define _FN2 2 #define _FN2 2
#define KC_ KC_TRNS
#define _______ KC_TRNS #define _______ KC_TRNS
#define XXXXXXX KC_NO #define XXXXXXX KC_NO
#define KC_FN1 MO(_FN1)
#define KC_FN2 MO(_FN2) #define FN1 MO(_FN1)
#define KC_SPFN1 LT(_FN1, KC_SPACE) #define FN2 MO(_FN2)
#define KC_SPFN2 LT(_FN2, KC_SPACE) #define SP_FN1 LT(_FN1, KC_SPACE)
#define KC_BSFN1 LT(_FN1, KC_BSPC) #define SP_FN2 LT(_FN2, KC_SPACE)
#define KC_BSFN2 LT(_FN2, KC_BSPC) #define BS_FN1 LT(_FN1, KC_BSPC)
#define KC_RST RESET #define BS_FN2 LT(_FN2, KC_BSPC)
#define KC_DBUG DEBUG
#define KC_RTOG RGB_TOG
#define KC_RMOD RGB_MOD
#define KC_RHUI RGB_HUI
#define KC_RHUD RGB_HUD
#define KC_RSAI RGB_SAI
#define KC_RSAD RGB_SAD
#define KC_RVAI RGB_VAI
#define KC_RVAD RGB_VAD
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = KC_KEYMAP(
//,----+----+----+----+----+----|----+----+----+----+----+----+----. [_BASE] = LAYOUT(
ESC , Q , W , E , R , T , Y , U , I , O , P ,DEL ,BSPC, KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_BSPC,
//|----`----`----`----`----`----`----`----`----`----`----`----`----+ KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT,
TAB , A , S , D , F , G , H , J , K , L ,QUOT, ENTER , 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_LCTL, KC_LALT, KC_LGUI, FN1, SP_FN1, BS_FN2, KC_RGUI, KC_RALT, FN2, KC_RCTL
LSFT , Z , X , C , V , B , N , M ,COMM,DOT ,SLSH, RSFT ,
//|-------`----`----`----`----`----`----`----`----`----`----`------|
LCTL ,LALT,LGUI ,FN1 , SPFN1 , BSFN2 ,RGUI ,RALT , FN2 , RCTL
//`-----+----+-----+----+--------`--------+-----+-----+-----+------'
), ),
[_FN1] = KC_KEYMAP( [_FN1] = LAYOUT(
//,----+----+----+----+----+----+----+----+----+----+----+----+----. 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,
GRV , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,MINS,EQL , RESET, RGB_HUI, RGB_SAI, RGB_VAI, KC_VOLU, KC_LBRC, KC_RBRC, KC_4, KC_5, KC_6, KC_SCLN, _______,
//|----`----`----`----`----`----`----`----`----`----`----`----`----+ RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, KC_VOLD, KC_LCBR, KC_RCBR, KC_1, KC_2, KC_3, KC_UP, _______,
RST ,RHUI,RSAI,RVAI,VOLU,LBRC,RBRC, 4 , 5 , 6 ,SCLN, , RGB_TOG, _______, _______, _______, _______, KC_DEL, KC_0, KC_LEFT, KC_DOWN, KC_RGHT
//|-----`----`----`----`----`----`----`----`----`----`----`--------+
RMOD ,RHUD,RSAD,RVAD,VOLD,LCBR,RCBR, 1 , 2 , 3 , UP , ,
//|-------`----`----`----`----`----`----`----`----`----`----`------+
RTOG , , , , , DEL , 0 ,LEFT ,DOWN , RGHT
//`-----+----+-----+----+--------+--------+-----+-----+-----+------'
), ),
[_FN2] = KC_KEYMAP( [_FN2] = LAYOUT(
//,----+----+----+----+----+----+----+----+----+----+----+----+----. KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_UNDS, KC_PLUS,
TILD,EXLM, AT ,HASH,DLR ,PERC,CIRC,AMPR,ASTR,LPRN,RPRN,UNDS,PLUS, _______, _______, _______, KC_INS, KC_PGUP, KC_HOME, _______, _______, _______, _______, KC_COLN, _______,
//|----`----`----`----`----`----`----`----`----`----`----`----`----+ _______, _______, _______, KC_DEL, KC_PGDN, KC_END, _______, _______, _______, _______, _______, _______,
, , ,INS ,PGUP,HOME, , , , ,COLN, , _______, _______, _______, _______, KC_DEL, _______, _______, _______, _______, _______
//|-----`----`----`----`----`----`----`----`----`----`----`--------+
, , ,DEL ,PGDN,END , , , , , , ,
//|-------`----`----`----`----`----`----`----`----`----`----`------+
, , , , DEL , , , , ,
//`-----+----+-----+----+--------+--------+-----+-----+-----+------'
) )
}; };
+3 -3
View File
@@ -3,7 +3,7 @@
#include "quantum.h" #include "quantum.h"
#define KEYMAP( \ #define LAYOUT( \
A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, \ A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, \
B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B13, \ B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B13, \
C1, C2, C3, C4, C5, C6, C7, C9, C10, C11, C12, C13, \ C1, C2, C3, C4, C5, C6, C7, C9, C10, C11, C12, C13, \
@@ -20,13 +20,13 @@
} }
// Used to create a keymap using only KC_ prefixed keys // Used to create a keymap using only KC_ prefixed keys
#define KC_KEYMAP( \ #define LAYOUT_kc( \
A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, \ A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, \
B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B13, \ B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B13, \
C1, C2, C3, C4, C5, C6, C7, C9, C10, C11, C12, C13, \ C1, C2, C3, C4, C5, C6, C7, C9, C10, C11, C12, C13, \
D1, D2, D3, D4, D5, D7, D10, D11, D12, D13 \ D1, D2, D3, D4, D5, D7, D10, D11, D12, D13 \
) \ ) \
KEYMAP( \ LAYOUT( \
KC_##A1, KC_##A2, KC_##A3, KC_##A4, KC_##A5, KC_##A6, KC_##A7, KC_##A8, KC_##A9, KC_##A10, KC_##A11, KC_##A12, KC_##A13, \ KC_##A1, KC_##A2, KC_##A3, KC_##A4, KC_##A5, KC_##A6, KC_##A7, KC_##A8, KC_##A9, KC_##A10, KC_##A11, KC_##A12, KC_##A13, \
KC_##B1, KC_##B2, KC_##B3, KC_##B4, KC_##B5, KC_##B6, KC_##B7, KC_##B8, KC_##B9, KC_##B10, KC_##B11, KC_##B13, \ KC_##B1, KC_##B2, KC_##B3, KC_##B4, KC_##B5, KC_##B6, KC_##B7, KC_##B8, KC_##B9, KC_##B10, KC_##B11, KC_##B13, \
KC_##C1, KC_##C2, KC_##C3, KC_##C4, KC_##C5, KC_##C6, KC_##C7, KC_##C9, KC_##C10, KC_##C11, KC_##C12, KC_##C13, \ KC_##C1, KC_##C2, KC_##C3, KC_##C4, KC_##C5, KC_##C6, KC_##C7, KC_##C9, KC_##C10, KC_##C11, KC_##C12, KC_##C13, \
+12
View File
@@ -0,0 +1,12 @@
{
"keyboard_name": "Let's Split",
"url": "",
"maintainer": "qmk",
"width": 13,
"height": 4,
"layouts": {
"LAYOUT": {
"layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":12, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":12, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}, {"x":12, "y":3}]
}
}
}
@@ -10,26 +10,22 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Navigation All Supered) Numpad
/* Navigation All Supered) Numpad * ,-----------------------. ,-----------------------.
* ,-----------------------. ,-----------------------. * | F4| ` | Q |Alt| L | > | | ) | - | + | = |Ent|Bkp|
* | F4| ` | Q |Alt| L | > | | ) | - | + | = |Ent|Bkp| * |---+---+---+---+---+---| |---+---+---+---+---+---|
* |---+---+---+---+---+---| |---+---+---+---+---+---| * | F3| M |Ent|Ctl| K | ^ | | ( | * | 9 | 6 | 3 | . |
* | F3| M |Ent|Ctl| K | ^ | | ( | * | 9 | 6 | 3 | . | * |---+---+---+---+---+---| |---+---+---+---+---+---|
* |---+---+---+---+---+---| |---+---+---+---+---+---| * | F2| T |Spc|Shf| J | v | | % | / | 8 | 5 | 2 | , |
* | F2| T |Spc|Shf| J | v | | % | / | 8 | 5 | 2 | , | * |---+---+---+---+---+---| |---+---+---+---+---+---|
* |---+---+---+---+---+---| |---+---+---+---+---+---| * | F1| F | P |Tab| H | < | |Nlc|Tab| 7 | 4 | 1 | 0 |
* | F1| F | P |Tab| H | < | |Nlc|Tab| 7 | 4 | 1 | 0 | * `-----------------------' `-----------------------'
* `-----------------------' `-----------------------' */
*/ // Main Dvorak layer
// Main Dvorak layer [0] = LAYOUT(
[0] = KEYMAP( LCTL(LALT(KC_DEL)), LGUI(KC_GRV), LGUI(KC_Q), LGUI(KC_LALT), LGUI(KC_L), LGUI(KC_RGHT), KC_RPRN, KC_PMNS, KC_PPLS, KC_PEQL, KC_PENT, KC_BSPC,
LGUI(KC_F4), LGUI(KC_GRV), LGUI(KC_Q), LGUI(KC_LALT), LGUI(KC_L), LGUI(KC_RGHT), LGUI(KC_F3), LGUI(KC_M), LGUI(KC_ENT), LGUI(KC_LCTL), LGUI(KC_K), LGUI(KC_UP), KC_LPRN, KC_PAST, KC_P9, KC_P6, KC_P3, KC_PDOT,
KC_RPRN, KC_PMNS, KC_PPLS, KC_PEQL, KC_PENT, KC_BSPC, LGUI(KC_F2), LGUI(KC_T), LGUI(KC_SPC), LGUI(KC_LSFT), LGUI(KC_J), LGUI(KC_DOWN), KC_PERC, KC_PSLS, KC_P8, KC_P5, KC_P2, KC_PCMM,
LGUI(KC_F3), LGUI(KC_M), LGUI(KC_ENT), LGUI(KC_LCTL), LGUI(KC_K), LGUI(KC_UP), LGUI(KC_F1), LGUI(KC_F), LGUI(KC_P), LGUI(KC_TAB), LGUI(KC_H), LGUI(KC_LEFT), KC_NLCK, KC_TAB, KC_P7, KC_P4, KC_P1, KC_P0
KC_LPRN, KC_PAST, KC_P9, KC_P6, KC_P3, KC_PDOT, )
LGUI(KC_F2), LGUI(KC_T), LGUI(KC_SPC), LGUI(KC_LSFT), LGUI(KC_J), LGUI(KC_DOWN),
KC_PERC, KC_PSLS, KC_P8, KC_P5, KC_P2, KC_PCMM,
LGUI(KC_F1), LGUI(KC_F), LGUI(KC_P), LGUI(KC_TAB), LGUI(KC_H), LGUI(KC_LEFT),
KC_NLCK, KC_TAB, KC_P7, KC_P4, KC_P1, KC_P0 )
}; };
-1
View File
@@ -26,7 +26,6 @@
KC_##L30, KC_##L31, KC_##L32, KC_##L33, KC_##L34, KC_##L35, KC_##R30, KC_##R31, KC_##R32, KC_##R33, KC_##R34, KC_##R35 \ KC_##L30, KC_##L31, KC_##L32, KC_##L33, KC_##L34, KC_##L35, KC_##R30, KC_##R31, KC_##R32, KC_##R33, KC_##R34, KC_##R35 \
) )
#define KC_LAYOUT_ortho_4x12 LAYOUT_kc
#define LAYOUT_kc_ortho_4x12 LAYOUT_kc #define LAYOUT_kc_ortho_4x12 LAYOUT_kc
#endif #endif
+1 -1
View File
@@ -59,7 +59,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
) )
/* ws2812 RGB LED */ /* ws2812 RGB LED */
#define RGB_DI_PIN D1 #define RGB_DI_PIN D4
#define RGBLIGHT_TIMER #define RGBLIGHT_TIMER
#define RGBLED_NUM 12 // Number of LEDs #define RGBLED_NUM 12 // Number of LEDs
#define ws2812_PORTREG PORTD #define ws2812_PORTREG PORTD
+12
View File
@@ -0,0 +1,12 @@
{
"keyboard_name": "Levinson",
"url": "",
"maintainer": "qmk",
"width": 13,
"height": 4,
"layouts": {
"LAYOUT": {
"layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":12, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":12, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}, {"x":12, "y":3}]
}
}
}
+3 -3
View File
@@ -26,7 +26,7 @@ extern keymap_config_t keymap_config;
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = KC_LAYOUT_ortho_4x12( [_BASE] = LAYOUT_kc_ortho_4x12(
//,----+----+----+----+----+----. ,----+----+----+----+----+----. //,----+----+----+----+----+----. ,----+----+----+----+----+----.
TAB, Q , W , E , R , T , Y , U , I , O , P ,BSPC, TAB, Q , W , E , R , T , Y , U , I , O , P ,BSPC,
//|----+----+----+----+----+----| |----+----+----+----+----+----| //|----+----+----+----+----+----| |----+----+----+----+----+----|
@@ -38,7 +38,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//`----+----+----+----+----+----' `----+----+----+----+----+----' //`----+----+----+----+----+----' `----+----+----+----+----+----'
), ),
[_FN1] = KC_LAYOUT_ortho_4x12( [_FN1] = LAYOUT_kc_ortho_4x12(
//,----+----+----+----+----+----. ,----+----+----+----+----+----. //,----+----+----+----+----+----. ,----+----+----+----+----+----.
GRV, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 , , GRV, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 , ,
//|----+----+----+----+----+----| |----+----+----+----+----+----| //|----+----+----+----+----+----| |----+----+----+----+----+----|
@@ -50,7 +50,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//`----+----+----+----+----+----' `----+----+----+----+----+----' //`----+----+----+----+----+----' `----+----+----+----+----+----'
), ),
[_FN2] = KC_LAYOUT_ortho_4x12( [_FN2] = LAYOUT_kc_ortho_4x12(
//,----+----+----+----+----+----. ,----+----+----+----+----+----. //,----+----+----+----+----+----. ,----+----+----+----+----+----.
TILD,EXLM, AT ,HASH,DLR ,PERC, CIRC,AMPR,ASTR,LPRN,RPRN, , TILD,EXLM, AT ,HASH,DLR ,PERC, CIRC,AMPR,ASTR,LPRN,RPRN, ,
//|----+----+----+----+----+----| |----+----+----+----+----+----| //|----+----+----+----+----+----| |----+----+----+----+----+----|
-1
View File
@@ -23,7 +23,6 @@
KC_##L30, KC_##L31, KC_##L32, KC_##L33, KC_##L34, KC_##L35, KC_##R30, KC_##R31, KC_##R32, KC_##R33, KC_##R34, KC_##R35 \ KC_##L30, KC_##L31, KC_##L32, KC_##L33, KC_##L34, KC_##L35, KC_##R30, KC_##R31, KC_##R32, KC_##R33, KC_##R34, KC_##R35 \
) )
#define KC_LAYOUT_ortho_4x12 LAYOUT_kc
#define LAYOUT_kc_ortho_4x12 LAYOUT_kc #define LAYOUT_kc_ortho_4x12 LAYOUT_kc
#endif #endif
+12
View File
@@ -0,0 +1,12 @@
{
"keyboard_name": "Mitosis",
"url": "",
"maintainer": "qmk",
"width": 12,
"height": 5.75,
"layouts": {
"LAYOUT": {
"layout": [{"x":0, "y":0.75}, {"x":1, "y":0.25}, {"x":2, "y":0}, {"x":3, "y":0.25}, {"x":4, "y":0.125}, {"x":7, "y":0.125}, {"x":8, "y":0.25}, {"x":9, "y":0}, {"x":10, "y":0.25}, {"x":11, "y":0.75}, {"x":0, "y":1.75}, {"x":1, "y":1.25}, {"x":2, "y":1}, {"x":3, "y":1.25}, {"x":4, "y":1.125}, {"x":7, "y":1.125}, {"x":8, "y":1.25}, {"x":9, "y":1}, {"x":10, "y":1.25}, {"x":11, "y":1.75}, {"x":0, "y":2.75}, {"x":1, "y":2.25}, {"x":2, "y":2}, {"x":3, "y":2.25}, {"x":4, "y":2.125}, {"x":7, "y":2.125}, {"x":8, "y":2.25}, {"x":9, "y":2}, {"x":10, "y":2.25}, {"x":11, "y":2.75}, {"x":1.5, "y":3.75}, {"x":2.5, "y":3.75}, {"x":3.5, "y":3.75}, {"x":4.5, "y":3.75}, {"x":6.5, "y":3.75}, {"x":7.5, "y":3.75}, {"x":8.5, "y":3.75}, {"x":9.5, "y":3.75}, {"x":1.5, "y":4.75}, {"x":2.5, "y":4.75}, {"x":3.5, "y":4.75}, {"x":4.5, "y":4.75}, {"x":6.5, "y":4.75}, {"x":7.5, "y":4.75}, {"x":8.5, "y":4.75}, {"x":9.5, "y":4.75}]
}
}
}
+76 -79
View File
@@ -3,7 +3,7 @@
// number layer with all the numbers on the home row, and a function layer // number layer with all the numbers on the home row, and a function layer
// that provides mouse keys among other things. // that provides mouse keys among other things.
#include "mitosis.h" #include QMK_KEYBOARD_H
enum mitosis_layers enum mitosis_layers
{ {
@@ -27,93 +27,90 @@ enum mitosis_layers
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* QWERTY /* QWERTY
* .--------------------------------------------..--------------------------------------------. * .--------------------------------------------..--------------------------------------------.
* | Q | W | E | R | T || Y | U | I | O | P | * | Q | W | E | R | T || Y | U | I | O | P |
* |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------| * |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------|
* | A | S | D | F | G || J | H | K | L | ; | * | A | S | D | F | G || J | H | K | L | ; |
* |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------| * |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------|
* | Z | X | C | V | B || N | M | , | . | / | * | Z | X | C | V | B || N | M | , | . | / |
* '--------+--------+--------+--------+--------||--------+--------+--------+--------+--------' * '--------+--------+--------+--------+--------||--------+--------+--------+--------+--------'
* | PGUP | TAB | LCTRL | SPACE || LSHIFT | ENTER | UP | PSCR | * | PGUP | TAB | LCTRL | SPACE || LSHIFT | ENTER | UP | PSCR |
* |--------+--------+--------+--------||--------+--------+--------+--------| * |--------+--------+--------+--------||--------+--------+--------+--------|
* | PGDN | LGUI | LALT | FN || NUM | LEFT | DOWN | RIGHT | * | PGDN | LGUI | LALT | FN || NUM | LEFT | DOWN | RIGHT |
* '-----------------------------------''-----------------------------------' * '-----------------------------------''-----------------------------------'
*/ */
[_STD] = LAYOUT( /* Standard; as compatible with dvorak and qwerty as possible */
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
KC_PGUP, KC_TAB, KC_LCTL, KC_SPC, KC_LSFT, KC_ENT, KC_UP, KC_PSCR,
KC_PGDN, KC_LGUI, KC_LALT, MO(_FN), MO(_NUM), KC_LEFT, KC_DOWN, KC_RGHT
),
[_STD] = { /* Standard; as compatible with dvorak and qwerty as possible */ /* Number layout, for data entry and programming purposes (Dvorak result in parens)
{KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P }, * .--------------------------------------------..--------------------------------------------.
{KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN }, * | TAB | (,<) | (.>) | - ([{) | = (]}) || ] (=+) | pad * | pad + | pad - | [ (/?) |
{KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH }, * |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------|
{XXXXXXX, KC_PGUP, KC_TAB, KC_LCTL, KC_SPC, KC_LSFT, KC_ENT, KC_UP, KC_PSCR, XXXXXXX }, * | 1 | 2 | 3 | 4 | 5 || 6 | 7 | 8 | 9 | 0 |
{XXXXXXX, KC_PGDN, KC_LGUI, KC_LALT, MO(_FN), MO(_NUM), KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX } * |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------|
}, * | F1 | F2 | F3 | F4 | F5 || F6 | F7 | F8 | F9 | F10 |
* '--------+--------+--------+--------+--------||--------+--------+--------+--------+--------'
/* Number layout, for data entry and programming purposes (Dvorak result in parens) * | F11 | F12 | | || | | | |
* .--------------------------------------------..--------------------------------------------. * |--------+--------+--------+--------||--------+--------+--------+--------|
* | TAB | (,<) | (.>) | - ([{) | = (]}) || ] (=+) | pad * | pad + | pad - | [ (/?) | * | | | | || | | | |
* |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------| * '-----------------------------------''-----------------------------------'
* | 1 | 2 | 3 | 4 | 5 || 6 | 7 | 8 | 9 | 0 | */
* |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------| [_NUM] = LAYOUT( /* Number layout along the home row for maximum speed*/
* | F1 | F2 | F3 | F4 | F5 || F6 | F7 | F8 | F9 | F10 | KC_TAB, _______, _______, KC_MINS, KC_EQL, KC_RBRC, KC_PAST, KC_PPLS, KC_PMNS, KC_LBRC,
* '--------+--------+--------+--------+--------||--------+--------+--------+--------+--------' KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
* | F11 | F12 | | || | | | | KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
* |--------+--------+--------+--------||--------+--------+--------+--------| KC_F11, KC_F12, _______, _______, _______, _______, _______, _______,
* | | | | || | | | | _______, _______, _______, _______, _______, _______, _______, _______
* '-----------------------------------''-----------------------------------' ),
*/
[_NUM] = { /* Number layout along the home row for maximum speed*/
{KC_TAB, _______, _______, KC_MINS, KC_EQL, KC_RBRC, KC_PAST, KC_PPLS, KC_PMNS, KC_LBRC },
{KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0 },
{KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10 },
{XXXXXXX, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, XXXXXXX },
{XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX }
},
/* Fn layout, for typing purposes (Dvorak result in parens) /* Fn layout, for typing purposes (Dvorak result in parens)
* .--------------------------------------------..--------------------------------------------. * .--------------------------------------------..--------------------------------------------.
* | ` | | MS_U | | || WH_U | WH_L | BTN3 | WH_R | [ (/?) | * | ` | | MS_U | | || WH_U | WH_L | BTN3 | WH_R | [ (/?) |
* |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------| * |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------|
* | ESC | MS_L | MS_D | MS_R | || WH_D | BTN1 | BTN2 | | ' (-_) | * | ESC | MS_L | MS_D | MS_R | || WH_D | BTN1 | BTN2 | | ' (-_) |
* |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------| * |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------|
* | APP | MPRV | MPLY | MSTP | MNXT || | BSPC | DEL | INS | \ | * | APP | MPRV | MPLY | MSTP | MNXT || | BSPC | DEL | INS | \ |
* '--------+--------+--------+--------+--------||--------+--------+--------+--------+--------' * '--------+--------+--------+--------+--------||--------+--------+--------+--------+--------'
* | VOLU | | | || | | PGUP | | * | VOLU | | | || | | PGUP | |
* |--------+--------+--------+--------||--------+--------+--------+--------| * |--------+--------+--------+--------||--------+--------+--------+--------|
* | VOLD | | | || | HOME | PGDN | END | * | VOLD | | | || | HOME | PGDN | END |
* '-----------------------------------''-----------------------------------' * '-----------------------------------''-----------------------------------'
*/ */
[_FN] = LAYOUT( /* Function Layer, primary alternative layer featuring numpad on right hand,
cursor keys on left hand, and all symbols*/
KC_GRV, _______, KC_MS_U, _______, _______, KC_WH_U, KC_WH_L, KC_BTN3, KC_WH_R, KC_LBRC,
KC_ESC, KC_MS_L, KC_MS_D, KC_MS_R, _______, KC_WH_D, KC_BTN1, KC_BTN2, _______, KC_QUOT,
KC_APP, KC_MPRV, KC_MPLY, KC_MSTP, KC_MNXT, _______, KC_BSPC, KC_DEL, KC_INS, KC_BSLS,
KC_VOLU, _______, _______, _______, _______, _______, KC_PGUP, _______,
KC_VOLD, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
),
[_FN] = { /* Function Layer, primary alternative layer featuring numpad on right hand, /* blank key layout template
cursor keys on left hand, and all symbols*/ * .--------------------------------------------..--------------------------------------------.
{KC_GRV, _______, KC_MS_U, _______, _______, KC_WH_U, KC_WH_L, KC_BTN3, KC_WH_R, KC_LBRC }, * | | | | | || | | | | |
{KC_ESC, KC_MS_L, KC_MS_D, KC_MS_R, _______, KC_WH_D, KC_BTN1, KC_BTN2, _______, KC_QUOT }, * |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------|
{KC_APP, KC_MPRV, KC_MPLY, KC_MSTP, KC_MNXT, _______, KC_BSPC, KC_DEL, KC_INS, KC_BSLS }, * | | | | | || | | | | |
{XXXXXXX, KC_VOLU, _______, _______, _______, _______, _______, KC_PGUP, _______, XXXXXXX }, * |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------|
{XXXXXXX, KC_VOLD, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END, XXXXXXX } * | | | | | || | | | | |
}, * '--------+--------+--------+--------+--------||--------+--------+--------+--------+--------'
* | | | | || | | | |
/* blank key layout template * |--------+--------+--------+--------||--------+--------+--------+--------|
* .--------------------------------------------..--------------------------------------------. * | | | | || | | | |
* | | | | | || | | | | | * '-----------------------------------''-----------------------------------'
* |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------| */
* | | | | | || | | | | |
* |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------|
* | | | | | || | | | | |
* '--------+--------+--------+--------+--------||--------+--------+--------+--------+--------'
* | | | | || | | | |
* |--------+--------+--------+--------||--------+--------+--------+--------|
* | | | | || | | | |
* '-----------------------------------''-----------------------------------'
*/
}; };
void matrix_scan_user(void) { void matrix_scan_user(void) {
uint8_t layer = biton32(layer_state); uint8_t layer = biton32(layer_state);
switch (layer) { switch (layer) {
case _STD: case _STD:
set_led_off; set_led_off;
+36 -36
View File
@@ -1,4 +1,4 @@
#include "mitosis.h" #include QMK_KEYBOARD_H
enum mitosis_layers enum mitosis_layers
{ {
@@ -26,41 +26,41 @@ enum mitosis_layers
// other is released. Which doesn't bother me. // other is released. Which doesn't bother me.
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_xQ] = { [_xQ] = LAYOUT(
{KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P}, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
{KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN}, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
{KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_QUOT}, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_QUOT,
{XXXXXXX, KC_LSUP, KC_LCTL, MO(_xN), SFT_T(KC_TAB), KC_RSFT, MO(_xN), KC_RCTL, KC_RSUP, XXXXXXX}, KC_LSUP, KC_LCTL, MO(_xN), SFT_T(KC_TAB), KC_RSFT, MO(_xN), KC_RCTL, KC_RSUP,
{XXXXXXX, KC_LHYP, KC_LMTA, MO(_xS), KC_BSPC, KC_SPC, MO(_xS), KC_RMTA, KC_RHYP, XXXXXXX} KC_LHYP, KC_LMTA, MO(_xS), KC_BSPC, KC_SPC, MO(_xS), KC_RMTA, KC_RHYP
}, ),
[_xW] = { [_xW] = LAYOUT(
{KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN}, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN,
{KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I}, KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I,
{KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_QUOT}, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_QUOT,
{XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX}, _______, _______, _______, _______, _______, _______, _______, _______,
{XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX} _______, _______, _______, _______, _______, _______, _______, _______
}, ),
[_xS] = { [_xS] = LAYOUT(
{KC_ESC, _______, KC_UP, _______, _______, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_TILD}, KC_ESC, _______, KC_UP, _______, _______, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_TILD,
{KC_TAB, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_CIRC, KC_AMPR, KC_PIPE, KC_GRV, KC_UNDS}, KC_TAB, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_CIRC, KC_AMPR, KC_PIPE, KC_GRV, KC_UNDS,
{KC_BSLS, KC_RPRN, KC_RCBR, KC_RBRC, KC_RABK, KC_LABK, KC_LBRC, KC_LCBR, KC_LPRN, KC_SLSH}, KC_BSLS, KC_RPRN, KC_RCBR, KC_RBRC, KC_RABK, KC_LABK, KC_LBRC, KC_LCBR, KC_LPRN, KC_SLSH,
{XXXXXXX, _______, _______, MO(_xF), _______, _______, MO(_xF), _______, _______, XXXXXXX}, _______, _______, MO(_xF), _______, _______, MO(_xF), _______, _______,
{XXXXXXX, _______, _______, _______, KC_DEL, KC_ENT, _______, _______, _______, XXXXXXX}, _______, _______, _______, KC_DEL, KC_ENT, _______, _______, _______
}, ),
[_xN] = { [_xN] = LAYOUT(
{_______, _______, _______, _______, KC_NLCK, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_P0}, _______, _______, _______, _______, KC_NLCK, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_P0,
{_______, _______, _______, _______, _______, KC_PAST, KC_P4, KC_P5, KC_P6, KC_PPLS}, _______, _______, _______, _______, _______, KC_PAST, KC_P4, KC_P5, KC_P6, KC_PPLS,
{_______, _______, _______, _______, _______, KC_PMNS, KC_P1, KC_P2, KC_P3, KC_PEQL}, _______, _______, _______, _______, _______, KC_PMNS, KC_P1, KC_P2, KC_P3, KC_PEQL,
{XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX}, _______, _______, _______, _______, _______, _______, _______, _______,
{XXXXXXX, _______, _______, MO(_xF), _______, KC_PENT, MO(_xF), _______, _______, XXXXXXX}, _______, _______, MO(_xF), _______, KC_PENT, MO(_xF), _______, _______
}, ),
[_xF] = { [_xF] = LAYOUT(
{_______, _______, KC_PGUP, _______, KC_VOLU, KC_F13, KC_F7, KC_F8, KC_F9, KC_F10}, _______, _______, KC_PGUP, _______, KC_VOLU, KC_F13, KC_F7, KC_F8, KC_F9, KC_F10,
{_______, KC_HOME, KC_PGDN, KC_END, KC_VOLD, KC_F14, KC_F4, KC_F5, KC_F6, KC_F11}, _______, KC_HOME, KC_PGDN, KC_END, KC_VOLD, KC_F14, KC_F4, KC_F5, KC_F6, KC_F11,
{TG(_xW), KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_F15, KC_F1, KC_F2, KC_F3, KC_F12}, TG(_xW), KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_F15, KC_F1, KC_F2, KC_F3, KC_F12,
{XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX}, _______, _______, _______, _______, _______, _______, _______, _______,
{XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX}, _______, _______, _______, _______, _______, _______, _______, _______
}, ),
}; };
// This is a hack to place <question mark> on <shift-comma> and <exclaimation // This is a hack to place <question mark> on <shift-comma> and <exclaimation
+37 -36
View File
@@ -1,7 +1,7 @@
// this is the style you want to emulate. // this is the style you want to emulate.
// This is the canonical layout file for the Quantum project. If you want to add another keyboard, // This is the canonical layout file for the Quantum project. If you want to add another keyboard,
#include "mitosis.h" #include QMK_KEYBOARD_H
// Each layer gets a name for readability, which is then used in the keymap matrix below. // Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name. // The underscores don't mean anything - you can have a layer called STUFF or any other name.
@@ -15,7 +15,7 @@ enum mitosis_layers
_FUNCSHIFT _FUNCSHIFT
}; };
enum mitosis_keycodes enum mitosis_keycodes
{ {
FNKEY = SAFE_RANGE, FNKEY = SAFE_RANGE,
SHIFT SHIFT
@@ -38,44 +38,45 @@ enum mitosis_macros
#define XXXXXXX KC_NO #define XXXXXXX KC_NO
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_MALT] = { /* Malt Layout, customised for reduced columns (ex: quote and shift locations) */
{KC_Q, KC_P, KC_Y, KC_C, KC_B, KC_V, KC_M, KC_U, KC_Z, KC_L }, [_MALT] = LAYOUT( /* Malt Layout, customised for reduced columns (ex: quote and shift locations) */
{KC_A, KC_N, KC_I, KC_S, KC_F, KC_D, KC_T, KC_H, KC_O, KC_R }, KC_Q, KC_P, KC_Y, KC_C, KC_B, KC_V, KC_M, KC_U, KC_Z, KC_L,
{KC_COMM, KC_DOT, KC_J, KC_G, KC_SLSH, KC_SCLN, KC_W, KC_K, KC_QUOT, KC_X }, KC_A, KC_N, KC_I, KC_S, KC_F, KC_D, KC_T, KC_H, KC_O, KC_R,
{XXXXXXX, M(VOLU), M(ESCM), KC_TAB, KC_LCTL, KC_LALT, KC_ENT, KC_DEL, KC_PGUP, XXXXXXX }, KC_COMM, KC_DOT, KC_J, KC_G, KC_SLSH, KC_SCLN, KC_W, KC_K, KC_QUOT, KC_X,
{XXXXXXX, M(VOLD), KC_LGUI, KC_E, FNKEY, SHIFT, KC_SPC, KC_BSPC, KC_PGDN, XXXXXXX } M(VOLU), M(ESCM), KC_TAB, KC_LCTL, KC_LALT, KC_ENT, KC_DEL, KC_PGUP,
}, M(VOLD), KC_LGUI, KC_E, FNKEY, SHIFT, KC_SPC, KC_BSPC, KC_PGDN
),
[_SHIFTED] = { /* Shifted Layer, layered so that tri_layer can be used, or selectively [_SHIFTED] = LAYOUT( /* Shifted Layer, layered so that tri_layer can be used, or selectively
able to modify individual key's shifted behaviour */ able to modify individual key's shifted behaviour */
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
{XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX }, _______, _______, _______, _______, _______, _______, _______, _______,
{XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX } _______, _______, _______, _______, _______, _______, _______, _______
}, ),
[_FUNCTION] = { /* Function Layer, primary alternative layer featuring numpad on right hand, [_FUNCTION] = LAYOUT( /* Function Layer, primary alternative layer featuring numpad on right hand,
cursor keys on left hand, and all symbols*/ cursor keys on left hand, and all symbols*/
{KC_AMPR, KC_PERC, KC_UP, KC_CIRC, KC_PIPE, KC_LBRC, KC_7, KC_8, KC_9, KC_MINS }, KC_AMPR, KC_PERC, KC_UP, KC_CIRC, KC_PIPE, KC_LBRC, KC_7, KC_8, KC_9, KC_MINS,
{KC_AT, KC_LEFT, KC_DOWN, KC_RGHT, KC_HASH, KC_LPRN, KC_4, KC_5, KC_6, KC_PLUS }, KC_AT, KC_LEFT, KC_DOWN, KC_RGHT, KC_HASH, KC_LPRN, KC_4, KC_5, KC_6, KC_PLUS,
{KC_ASTR, KC_UNDS, KC_EXLM, KC_DLR, KC_BSLS, KC_LCBR, KC_1, KC_2, KC_3, KC_ENT }, KC_ASTR, KC_UNDS, KC_EXLM, KC_DLR, KC_BSLS, KC_LCBR, KC_1, KC_2, KC_3, KC_ENT,
{XXXXXXX, KC_HOME, KC_GRV, KC_PWR, _______, _______, KC_EQL, KC_TILD, KC_DOT, XXXXXXX }, KC_HOME, KC_GRV, KC_PWR, _______, _______, KC_EQL, KC_TILD, KC_DOT,
{XXXXXXX, KC_END, _______, _______, _______, _______, KC_0, _______, KC_PSCR, XXXXXXX } KC_END, _______, _______, _______, _______, KC_0, _______, KC_PSCR
}, ),
[_FUNCSHIFT] = { /* Function Shifted Layer, secondary alternative layer with closing brackets, [_FUNCSHIFT] = LAYOUT( /* Function Shifted Layer, secondary alternative layer with closing brackets,
and F-keys under their numpad equivalents*/ and F-keys under their numpad equivalents*/
{_______, _______, _______, _______, _______, KC_RBRC, KC_F7, KC_F8, KC_F9, KC_F10 }, _______, _______, _______, _______, _______, KC_RBRC, KC_F7, KC_F8, KC_F9, KC_F10,
{_______, _______, _______, _______, _______, KC_RPRN, KC_F4, KC_F5, KC_F6, KC_F11 }, _______, _______, _______, _______, _______, KC_RPRN, KC_F4, KC_F5, KC_F6, KC_F11,
{_______, _______, _______, _______, _______, KC_RCBR, KC_F1, KC_F2, KC_F3, KC_F12 }, _______, _______, _______, _______, _______, KC_RCBR, KC_F1, KC_F2, KC_F3, KC_F12,
{XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX }, _______, _______, _______, _______, _______, _______, _______, _______,
{XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX } _______, _______, _______, _______, _______, _______, _______, _______
} )
}; };
@@ -128,7 +129,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
return MACRO(T(ESC), END); return MACRO(T(ESC), END);
} }
} }
break; break;
break; break;
} }
@@ -183,7 +184,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
//FUNCSHIFT has been shifted by the SHIFT handling, some keys need to be excluded //FUNCSHIFT has been shifted by the SHIFT handling, some keys need to be excluded
if (layer == _FUNCSHIFT) { if (layer == _FUNCSHIFT) {
//F1-F12 should be sent as unshifted keycodes, //F1-F12 should be sent as unshifted keycodes,
//and ] needs to be unshifted or it is sent as } //and ] needs to be unshifted or it is sent as }
if ( (keycode >= KC_F1 && keycode <= KC_F12) if ( (keycode >= KC_F1 && keycode <= KC_F12)
|| keycode == KC_RBRC ) { || keycode == KC_RBRC ) {
@@ -200,7 +201,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
void matrix_scan_user(void) { void matrix_scan_user(void) {
uint8_t layer = biton32(layer_state); uint8_t layer = biton32(layer_state);
switch (layer) { switch (layer) {
case _MALT: case _MALT:
set_led_off; set_led_off;
+44 -45
View File
@@ -1,11 +1,10 @@
// this is the style you want to emulate. // this is the style you want to emulate.
// This is the canonical layout file for the Quantum project. If you want to add another keyboard, // This is the canonical layout file for the Quantum project. If you want to add another keyboard,
#include "mitosis.h" #include QMK_KEYBOARD_H
#ifdef AUDIO_ENABLE #ifdef AUDIO_ENABLE
#include "audio.h" #include "audio.h"
#endif #endif
#include "eeconfig.h"
// Each layer gets a name for readability, which is then used in the keymap matrix below. // Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name. // The underscores don't mean anything - you can have a layer called STUFF or any other name.
@@ -53,57 +52,57 @@ enum mitosis_macros
#define XXXXXXX KC_NO #define XXXXXXX KC_NO
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = { /* QWERTY adapted to this crazy thing */ [_QWERTY] = LAYOUT( /* QWERTY adapted to this crazy thing */
{KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P }, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
{KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN }, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
{SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, SFT_T(KC_SLSH) }, SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, SFT_T(KC_SLSH),
{XXXXXXX, KC_LCTL, M(ESCM), KC_TAB, KC_QUOT, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, XXXXXXX }, KC_LCTL, M(ESCM), KC_TAB, KC_QUOT, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT,
{XXXXXXX, KC_LALT, KC_LGUI, KC_SPC, SHIFT, FNKEY, KC_BSPC, KC_ENT, MO(_ADJUST), XXXXXXX } KC_LALT, KC_LGUI, KC_SPC, SHIFT, FNKEY, KC_BSPC, KC_ENT, MO(_ADJUST)
}, ),
[_SHIFTED] = { /* Shifted Layer, layered so that tri_layer can be used, or selectively [_SHIFTED] = LAYOUT( /* Shifted Layer, layered so that tri_layer can be used, or selectively
able to modify individual key's shifted behaviour */ able to modify individual key's shifted behaviour */
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
{XXXXXXX, __MOD__, KC_DEL, _______, _______, _______, _______, _______, _______, XXXXXXX }, __MOD__, KC_DEL, _______, _______, _______, _______, _______, _______,
{XXXXXXX, __MOD__, __MOD__, _______, __MOD__, __MOD__, _______, _______, KC_NO, XXXXXXX } __MOD__, __MOD__, _______, __MOD__, __MOD__, _______, _______, XXXXXXX
}, ),
[_FUNCTIONPC] = { /* Function Layer mimicks planck's raise layer somewhat */ [_FUNCTIONPC] = LAYOUT( /* Function Layer mimicks planck's raise layer somewhat */
{KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0 }, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
{LCTL(KC_A), LCTL(KC_S), _______, LCTL(KC_F),_______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC }, LCTL(KC_A), LCTL(KC_S), _______, LCTL(KC_F),_______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC,
{LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V),_______, _______, KC_BSLS, _______, _______, KC_QUOT }, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V),_______, _______, KC_BSLS, _______, _______, KC_QUOT,
{XXXXXXX, __MOD__, KC_DEL, _______, KC_GRV, KC_HOME, KC_PGDN, KC_PGUP, KC_END, XXXXXXX }, __MOD__, KC_DEL, _______, KC_GRV, KC_HOME, KC_PGDN, KC_PGUP, KC_END,
{XXXXXXX, __MOD__, __MOD__, _______, __MOD__, __MOD__, _______, KC_PSCR, KC_NO, XXXXXXX } __MOD__, __MOD__, _______, __MOD__, __MOD__, _______, KC_PSCR, XXXXXXX
}, ),
[_FUNCTIONMAC] = { /* Function Layer mimicks planck's raise layer somewhat */ [_FUNCTIONMAC] = LAYOUT( /* Function Layer mimicks planck's raise layer somewhat */
{KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0 }, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
{LGUI(KC_A), LGUI(KC_S), _______, LGUI(KC_F),_______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC }, LGUI(KC_A), LGUI(KC_S), _______, LGUI(KC_F),_______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC,
{LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V),_______, _______, KC_BSLS, _______, _______, KC_QUOT }, LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V),_______, _______, KC_BSLS, _______, _______, KC_QUOT,
{XXXXXXX, __MOD__, KC_DEL, _______, KC_GRV, KC_HOME, KC_PGDN, KC_PGUP, KC_END, XXXXXXX }, __MOD__, KC_DEL, _______, KC_GRV, KC_HOME, KC_PGDN, KC_PGUP, KC_END,
{XXXXXXX, __MOD__, __MOD__, _______, __MOD__, __MOD__, _______, KC_PSCR, KC_NO, XXXXXXX } __MOD__, __MOD__, _______, __MOD__, __MOD__, _______, KC_PSCR, XXXXXXX
}, ),
[_FUNCSHIFT] = { /* Function Shifted Layer mimicks planck's lower layer somewhat */ [_FUNCSHIFT] = LAYOUT( /* Function Shifted Layer mimicks planck's lower layer somewhat */
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
{KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, _______, KC_LCBR, KC_RCBR }, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, _______, KC_LCBR, KC_RCBR,
{KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______ }, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______,
{XXXXXXX, __MOD__, KC_DEL, _______, KC_TILD, _______, _______, _______, _______, XXXXXXX }, __MOD__, KC_DEL, _______, KC_TILD, _______, _______, _______, _______,
{XXXXXXX, __MOD__, __MOD__, _______, __MOD__, __MOD__, _______, _______, _______, XXXXXXX } __MOD__, __MOD__, _______, __MOD__, __MOD__, _______, _______, _______
}, ),
[_ADJUST] = { /* Adjust layer for fancy stuff and macros */ [_ADJUST] = LAYOUT( /* Adjust layer for fancy stuff and macros */
{RESET, FNPC, _______, _______, _______, _______, DYN_REC_START1, DYN_REC_START2, _______, _______ }, RESET, FNPC, _______, _______, _______, _______, DYN_REC_START1, DYN_REC_START2, _______, _______,
{FNMAC, _______, AU_ON, AU_OFF, _______, _______, _______, _______, MACSLEEP, _______ }, FNMAC, _______, AU_ON, AU_OFF, _______, _______, _______, _______, MACSLEEP, _______,
{MUV_DE, MUV_IN, MU_ON, MU_OFF, _______, _______, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY }, MUV_DE, MUV_IN, MU_ON, MU_OFF, _______, _______, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY,
{XXXXXXX, __MOD__, _______, _______, _______, _______, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, _______, XXXXXXX }, __MOD__, _______, _______, _______, _______, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, _______,
{XXXXXXX, __MOD__, __MOD__, _______, __MOD__, __MOD__, _______, _______, __MOD__, XXXXXXX } __MOD__, __MOD__, _______, __MOD__, __MOD__, _______, _______, __MOD__
} )
}; };
+146 -146
View File
@@ -1,6 +1,6 @@
#include "mitosis.h" #include QMK_KEYBOARD_H
enum mitosis_layers enum mitosis_layers
{ {
@@ -25,154 +25,154 @@ enum mitosis_layers
#define MOUSEKEY_WHEEL_TIME_TO_MAX 40 #define MOUSEKEY_WHEEL_TIME_TO_MAX 40
// Fillers to make layering more clear // Fillers to make layering more clear
#define ___ KC_TRNS #define _______ KC_TRNS
#define XXX KC_NO #define XXX KC_NO
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// https://github.com/nhou7/qmk_firmware_amj40/blob/master/doc/keycode.txt // https://github.com/nhou7/qmk_firmware_amj40/blob/master/doc/keycode.txt
/* QWERTY /* QWERTY
['Q', 'W', 'E', 'R', 'T',// 'Y', 'U', 'I', 'O', 'P' ], ['Q', 'W', 'E', 'R', 'T',// 'Y', 'U', 'I', 'O', 'P' ],
['A', 'S', 'D', 'F', 'G',// 'H', 'J', 'K', 'L', '; :' ], ['A', 'S', 'D', 'F', 'G',// 'H', 'J', 'K', 'L', '; :' ],
['Z', 'X', 'C', 'V', 'B',// 'N', 'M', ', <', '. >', '\' "' ], ['Z', 'X', 'C', 'V', 'B',// 'N', 'M', ', <', '. >', '\' "' ],
[ 'back', 'del', 'ctrl', 'L_n',// 'L_p', 'ctrl', 'ent', 'back', ], [ 'back', 'del', 'ctrl', 'L_n',// 'L_p', 'ctrl', 'ent', 'back', ],
[ 'alt', '0', 'shif', 'spac',// 'spac', 'shif', 'cap', 'alt', ] [ 'alt', '0', 'shif', 'spac',// 'spac', 'shif', 'cap', 'alt', ]
*/ */
[_QWERTY] = { [_QWERTY] = LAYOUT(
{KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P}, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
{KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCOLON}, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCOLON,
{KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_QUOTE}, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_QUOTE,
{XXX, KC_BSPACE, KC_DELETE, KC_LCTRL, TG( 2 ), TG( 3 ), KC_RCTRL, KC_ENTER, KC_BSPACE, XXX}, KC_BSPACE, KC_DELETE, KC_LCTRL, TG( 2 ), TG( 3 ), KC_RCTRL, KC_ENTER, KC_BSPACE,
{XXX, KC_LALT, KC_0, KC_LSHIFT, KC_SPACE, KC_SPACE, KC_RSHIFT, KC_CAPSLOCK, KC_RALT, XXX} KC_LALT, KC_0, KC_LSHIFT, KC_SPACE, KC_SPACE, KC_RSHIFT, KC_CAPSLOCK, KC_RALT
}, ),
/* /*
['Q', 'D', 'R', 'W', 'B',/ ** / 'J', 'F', 'U', 'P', '; :' ], ['Q', 'D', 'R', 'W', 'B',/ ** / 'J', 'F', 'U', 'P', '; :' ],
['A', 'S', 'H', 'T', 'G',/ ** / 'Y', 'N', 'E', 'O', 'I' ], ['A', 'S', 'H', 'T', 'G',/ ** / 'Y', 'N', 'E', 'O', 'I' ],
['Z', 'X', 'M', 'C', 'V',/ ** / 'K', 'L', ', <', '. >', '\' "' ], ['Z', 'X', 'M', 'C', 'V',/ ** / 'K', 'L', ', <', '. >', '\' "' ],
[ '', '', '', '',/ ** / '', '', '', '', ], [ '', '', '', '',/ ** / '', '', '', '', ],
[ '', '4', '', '',/ ** / '', '', '', '', ] [ '', '4', '', '',/ ** / '', '', '', '', ]
*/ */
[_WORKMAN] = { [_WORKMAN] = LAYOUT(
{KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCOLON}, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCOLON,
{KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I}, KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I,
{KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMMA, KC_DOT, KC_QUOTE}, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMMA, KC_DOT, KC_QUOTE,
{XXX, ___, ___, ___, ___, ___, ___, ___, ___, XXX}, _______, _______, _______, _______, _______, _______, _______, _______,
{XXX, ___, KC_1, ___, ___, ___, ___, ___, ___, XXX} _______, KC_1, _______, _______, _______, _______, _______, _______
}, ),
/* /*
['9', '8', '7', '6', '5',/ ** / 'F2', 'pDn', *up* /, '*tab* /, 'pUp' ], ['9', '8', '7', '6', '5',/ ** / 'F2', 'pDn', *up* /, '*tab* /, 'pUp' ],
[' 4', ' 3', ' 2', ' 1', ' 0',/ ** / 'home', *lf* /, '*dn* /, *rt* /, 'end' ], [' 4', ' 3', ' 2', ' 1', ' 0',/ ** / 'home', *lf* /, '*dn* /, *rt* /, 'end' ],
['undo', 'cut', 'copy', 'paste', 'os',/ ** / 'D', '_', ',', '-', '.' ], ['undo', 'cut', 'copy', 'paste', 'os',/ ** / 'D', '_', ',', '-', '.' ],
// -- // --
[ '', '', '', 'L_=6',/ ** / 'L_7', '', '', '', ], [ '', '', '', 'L_=6',/ ** / 'L_7', '', '', '', ],
[ '', '6', '', '',/ ** / '', '', '', '', ] [ '', '6', '', '',/ ** / '', '', '', '', ]
*/ */
[_NUMBERS] = { [_NUMBERS] = LAYOUT(
{KC_9, KC_8, KC_7, KC_6, KC_5, KC_F2, KC_PGDOWN, KC_UP, KC_TAB, KC_PGUP}, KC_9, KC_8, KC_7, KC_6, KC_5, KC_F2, KC_PGDOWN, KC_UP, KC_TAB, KC_PGUP,
{KC_4, KC_3, KC_2, KC_1, KC_0, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_END}, KC_4, KC_3, KC_2, KC_1, KC_0, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_END,
{LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), KC_LGUI, KC_D, KC_UNDERSCORE, KC_COMMA, KC_MINUS, KC_DOT}, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), KC_LGUI, KC_D, KC_UNDERSCORE, KC_COMMA, KC_MINUS, KC_DOT,
{XXX, ___, ___, ___, TG( 2 ), TG( 3 ), ___, ___, ___, XXX}, _______, _______, _______, TG( 2 ), TG( 3 ), _______, _______, _______,
{XXX, ___, KC_2, ___, ___, ___, ___, ___, ___, XXX} _______, KC_2, _______, _______, _______, _______, _______, _______
}, ),
/* /*
[ '#', '@', '&', '.', ';',/ ** / '_', ',', '|', '^', '%' ], [ '#', '@', '&', '.', ';',/ ** / '_', ',', '|', '^', '%' ],
[ '*', '+', '{', '(', ':',/ ** / '"', ')', '}', '-', '=' ], [ '*', '+', '{', '(', ':',/ ** / '"', ')', '}', '-', '=' ],
[ '\\', '?', '<', '[', '$',/ ** / '~', ']', '>', '!', '/' ], [ '\\', '?', '<', '[', '$',/ ** / '~', ']', '>', '!', '/' ],
// -- // --
['', '', '', 'L_8',/ ** / 'L_=7', '', '', '', ], ['', '', '', 'L_8',/ ** / 'L_=7', '', '', '', ],
['', '7', '', '',/ ** / '', '', '', '', ] ['', '7', '', '',/ ** / '', '', '', '', ]
*/ */
[_PUNCT] = { [_PUNCT] = LAYOUT(
{KC_HASH, KC_AT, KC_AMPERSAND, KC_DOT, KC_SCOLON, KC_UNDERSCORE, KC_COMMA, KC_PIPE, KC_CIRCUMFLEX, KC_PERCENT}, KC_HASH, KC_AT, KC_AMPERSAND, KC_DOT, KC_SCOLON, KC_UNDERSCORE, KC_COMMA, KC_PIPE, KC_CIRCUMFLEX, KC_PERCENT,
{KC_ASTERISK, KC_PLUS, KC_LCBR, KC_LPRN, KC_COLON, KC_DQUO, KC_RPRN, KC_RCBR, KC_MINUS, KC_EQUAL}, KC_ASTERISK, KC_PLUS, KC_LCBR, KC_LPRN, KC_COLON, KC_DQUO, KC_RPRN, KC_RCBR, KC_MINUS, KC_EQUAL,
{KC_BSLASH, KC_QUESTION, KC_LT, KC_LBRACKET, KC_DOLLAR, KC_TILDE, KC_RBRACKET, KC_GT, KC_EXCLAIM, KC_SLASH}, KC_BSLASH, KC_QUESTION, KC_LT, KC_LBRACKET, KC_DOLLAR, KC_TILDE, KC_RBRACKET, KC_GT, KC_EXCLAIM, KC_SLASH,
{XXX, ___, ___, ___, TG( 4 ), TG( 3 ), ___, ___, ___, XXX}, _______, _______, _______, TG( 4 ), TG( 3 ), _______, _______, _______,
{XXX, ___, KC_3, ___, ___, ___, ___, ___, ___, XXX} _______, KC_3, _______, _______, _______, _______, _______, _______
}, ),
/* /*
['F6', 'F7', 'F8', 'F9', 'F10',/ ** / 'app', 'mb1', 'mmU', 'mb2', 'mwU' ], ['F6', 'F7', 'F8', 'F9', 'F10',/ ** / 'app', 'mb1', 'mmU', 'mb2', 'mwU' ],
['F1', 'F2', 'F3', 'F4', 'F5',/ ** / 'mnu', 'mmL', 'mmD', 'mmR', 'mwD' ], ['F1', 'F2', 'F3', 'F4', 'F5',/ ** / 'mnu', 'mmL', 'mmD', 'mmR', 'mwD' ],
['F11', 'F12', '`', 'mute', 'ESC',/ ** / 'prtSc', 'scrLk', 'mwL', 'mwR', 'mb3' ], ['F11', 'F12', '`', 'mute', 'ESC',/ ** / 'prtSc', 'scrLk', 'mwL', 'mwR', 'mb3' ],
// -- // --
[ '', '', '', 'L_=8',/ ** / 'L_9', '', '', '', ], [ '', '', '', 'L_=8',/ ** / 'L_9', '', '', '', ],
[ '', '8', '', '',/ ** / '', '', '', '', ] [ '', '8', '', '',/ ** / '', '', '', '', ]
*/ */
[_MOUSE] = { [_MOUSE] = LAYOUT(
{KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_MENU, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, KC_MS_WH_UP}, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_MENU, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, KC_MS_WH_UP,
{KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_MENU, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_MS_WH_DOWN}, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_MENU, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_MS_WH_DOWN,
{KC_F11, KC_F12, KC_GRAVE, KC__MUTE, KC_ESCAPE, KC_PSCREEN, KC_SLCK, KC_MS_WH_LEFT, KC_MS_WH_RIGHT, KC_MS_BTN3}, KC_F11, KC_F12, KC_GRAVE, KC__MUTE, KC_ESCAPE, KC_PSCREEN, KC_SLCK, KC_MS_WH_LEFT, KC_MS_WH_RIGHT, KC_MS_BTN3,
{XXX, ___, ___, ___, TG( 4 ), TG( 5 ), ___, ___, ___, XXX}, _______, _______, _______, TG( 4 ), TG( 5 ), _______, _______, _______,
{XXX, ___, KC_4, ___, ___, ___, ___, ___, ___, XXX} _______, KC_4, _______, _______, _______, _______, _______, _______
}, ),
/* /*
['L_ma1', '!', 'L_dv2', '!', 'L_cl3',/ ** / 'L_wk4', '!', 'L_ar5', '!', '!' ], ['L_ma1', '!', 'L_dv2', '!', 'L_cl3',/ ** / 'L_wk4', '!', 'L_ar5', '!', '!' ],
['!', '!', '!', '!', '!',/ ** / '!', '!', '!', '!', '!' ], ['!', '!', '!', '!', '!',/ ** / '!', '!', '!', '!', '!' ],
['L_gmA', '!', 'L_ucB', '!', 'L_npC',/ ** / '!', '!', '!', '!', '!' ], ['L_gmA', '!', 'L_ucB', '!', 'L_npC',/ ** / '!', '!', '!', '!', '!' ],
// -- // --
[ '', '', '', 'L_=9',/ ** / 'L_=9', '', '', '', ], [ '', '', '', 'L_=9',/ ** / 'L_=9', '', '', '', ],
[ '', '9', '', '',/ ** / '', '', '', '', ] [ '', '9', '', '',/ ** / '', '', '', '', ]
*/ */
[_LAYERS] = { [_LAYERS] = LAYOUT(
{KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, TG( 1 ), KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM}, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, TG( 1 ), KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM,
{KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM}, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM,
{TG( 6 ), KC_EXCLAIM, TG( 7 ), KC_EXCLAIM, TG( 8 ), KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM}, TG( 6 ), KC_EXCLAIM, TG( 7 ), KC_EXCLAIM, TG( 8 ), KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM,
{XXX, ___, ___, ___, TG( 5 ), TG( 5 ), ___, ___, ___, XXX}, _______, _______, _______, TG( 5 ), TG( 5 ), _______, _______, _______,
{XXX, ___, KC_5, ___, ___, ___, ___, ___, ___, XXX} _______, KC_5, _______, _______, _______, _______, _______, _______
}, ),
/* /*
['Q', 'W', 'E', 'R', 'T',/ ** / 'P', 'Y', '\u2191'*up* /, 'K', '1' ], ['Q', 'W', 'E', 'R', 'T',/ ** / 'P', 'Y', '\u2191'*up* /, 'K', '1' ],
['A', 'S', 'D', 'F', 'G',/ ** / 'H', '\u2190'*lf* /, '\u2193'*dn* /, '\u2192'*rt* /, '2' ], ['A', 'S', 'D', 'F', 'G',/ ** / 'H', '\u2190'*lf* /, '\u2193'*dn* /, '\u2192'*rt* /, '2' ],
['Z', 'X', 'C', 'V', 'B',/ ** / 'M', '*', '*', '*', '3' ], ['Z', 'X', 'C', 'V', 'B',/ ** / 'M', '*', '*', '*', '3' ],
// -- // --
[ '', '', '', 'L_=A',/ ** / 'A', '', '', '', ], [ '', '', '', 'L_=A',/ ** / 'A', '', '', '', ],
[ '', 'A', '', '',/ ** / '', '', '', '', ] [ '', 'A', '', '',/ ** / '', '', '', '', ]
*/ */
[_GAMING] = { [_GAMING] = LAYOUT(
{KC_Q, KC_W, KC_E, KC_R, KC_T, KC_P, KC_Y, KC_UP, KC_K, KC_1}, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_P, KC_Y, KC_UP, KC_K, KC_1,
{KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_LEFT, KC_DOWN, KC_RIGHT, KC_2}, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_LEFT, KC_DOWN, KC_RIGHT, KC_2,
{KC_Z, KC_X, KC_C, KC_V, KC_B, KC_M, KC_ASTERISK, KC_ASTERISK, KC_ASTERISK, KC_3}, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_M, KC_ASTERISK, KC_ASTERISK, KC_ASTERISK, KC_3,
{XXX, ___, ___, ___, TG( 6 ), KC_6, ___, ___, ___, XXX}, _______, _______, _______, TG( 6 ), KC_6, _______, _______, _______,
{XXX, ___, KC_6, ___, ___, ___, ___, ___, ___, XXX} _______, KC_6, _______, _______, _______, _______, _______, _______
}, ),
/* /*
['\u00a2'cent* /, '\u00bc'1/4* /, '\u00bd'1/2* /, '\u03a3'sum* /, '\u00d8'Oslash* /,/ ** / '\u250f'box ul* /, '\u2533'box um* /, '\u2513'box ur* /, '\u03bb'lambda* /, '\u2018'sm'dn* / ], ['\u00a2'cent* /, '\u00bc'1/4* /, '\u00bd'1/2* /, '\u03a3'sum* /, '\u00d8'Oslash* /,/ ** / '\u250f'box ul* /, '\u2533'box um* /, '\u2513'box ur* /, '\u03bb'lambda* /, '\u2018'sm'dn* / ],
['\u00F1'n~* /, '\u00a9'&copy* /, '\u00b0'degrees* /, '\u00b1'+-* /, '\u2b0f'arrow up* /,/ ** / '\u2523'box ml* /, '\u254B'box mm* /, '\u252B'box mr* /, '\u0394'delta* /, '\u2019'sm'up* / ], ['\u00F1'n~* /, '\u00a9'&copy* /, '\u00b0'degrees* /, '\u00b1'+-* /, '\u2b0f'arrow up* /,/ ** / '\u2523'box ml* /, '\u254B'box mm* /, '\u252B'box mr* /, '\u0394'delta* /, '\u2019'sm'up* / ],
['\u00a1'down !* /, '\u00bf'down ?* /, '\u00d7'mult x* /, '\u00f7'div/ * /, '\u03c0'pi* /,/ ** / '\u2517'box ll* /, '\u253b'bos lm* /, '\u251b'box lr* /, '\u201c'sm"dn* /, '\u201d'sm"up* / ], ['\u00a1'down !* /, '\u00bf'down ?* /, '\u00d7'mult x* /, '\u00f7'div/ * /, '\u03c0'pi* /,/ ** / '\u2517'box ll* /, '\u253b'bos lm* /, '\u251b'box lr* /, '\u201c'sm"dn* /, '\u201d'sm"up* / ],
// -- // --
[ '', '', '', 'L_=B',/ ** / 'B', '', '', '', ], [ '', '', '', 'L_=B',/ ** / 'B', '', '', '', ],
[ '', 'B', '', '',/ ** / '', '', '', '', ] [ '', 'B', '', '',/ ** / '', '', '', '', ]
*/ */
[_UNICODE] = { [_UNICODE] = LAYOUT(
{UC(0x00A2), UC(0x00BC), UC(0x00BD), UC(0x03A3), UC(0x00D8), UC(0x250F), UC(0x2533), UC(0x2513), UC(0x03BB), UC(0x2018)}, UC(0x00A2), UC(0x00BC), UC(0x00BD), UC(0x03A3), UC(0x00D8), UC(0x250F), UC(0x2533), UC(0x2513), UC(0x03BB), UC(0x2018),
{UC(0x00F1), UC(0x00A9), UC(0x00B0), UC(0x00B1), UC(0x2B0F), UC(0x2523), UC(0x254B), UC(0x252B), UC(0x0394), UC(0x2019)}, UC(0x00F1), UC(0x00A9), UC(0x00B0), UC(0x00B1), UC(0x2B0F), UC(0x2523), UC(0x254B), UC(0x252B), UC(0x0394), UC(0x2019),
{UC(0x00A1), UC(0x00BF), UC(0x00D7), UC(0x00F7), UC(0x03C0), UC(0x2517), UC(0x253B), UC(0x251B), UC(0x201C), UC(0x201D)}, UC(0x00A1), UC(0x00BF), UC(0x00D7), UC(0x00F7), UC(0x03C0), UC(0x2517), UC(0x253B), UC(0x251B), UC(0x201C), UC(0x201D),
{XXX, ___, ___, ___, TG( 7 ), KC_7, ___, ___, ___, XXX}, _______, _______, _______, TG( 7 ), KC_7, _______, _______, _______,
{XXX, ___, KC_7, ___, ___, ___, ___, ___, ___, XXX} _______, KC_7, _______, _______, _______, _______, _______, _______
}, ),
/* /*
['n-.', 'n-7', 'n-8', 'n-9', 'n--',/ ** / 'n-=', 'volU', 'volD', 'volU', 'volD' ], ['n-.', 'n-7', 'n-8', 'n-9', 'n--',/ ** / 'n-=', 'volU', 'volD', 'volU', 'volD' ],
['n-0', 'n-4', 'n-5', 'n-6', 'n-+',/ ** / 'N-lck', 'BACK', 'MUTE', 'RGUI', 'paus' ], ['n-0', 'n-4', 'n-5', 'n-6', 'n-+',/ ** / 'N-lck', 'BACK', 'MUTE', 'RGUI', 'paus' ],
['n -*', 'n-1', 'n-2', 'n-3', 'n-/',/ ** / 'n-ent', 'PLAY', 'PREV', 'NEXT', 'insr' ], ['n -*', 'n-1', 'n-2', 'n-3', 'n-/',/ ** / 'n-ent', 'PLAY', 'PREV', 'NEXT', 'insr' ],
// -- // --
[ '', '', '', 'L_=C',/ ** / 'C', '', '', '', ], [ '', '', '', 'L_=C',/ ** / 'C', '', '', '', ],
[ '', 'C', '', '',/ ** / '', '', '', '', ] [ '', 'C', '', '',/ ** / '', '', '', '', ]
*/ */
[_NUMPAD] = { [_NUMPAD] = LAYOUT(
{KC_KP_DOT, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_MINUS, KC_KP_EQUAL, KC_AUDIO_VOL_UP, KC_AUDIO_VOL_DOWN, KC__VOLUP, KC__VOLDOWN/*sic on double underscore here*/}, KC_KP_DOT, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_MINUS, KC_KP_EQUAL, KC_AUDIO_VOL_UP, KC_AUDIO_VOL_DOWN, KC__VOLUP, KC__VOLDOWN,
{KC_KP_0, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_PLUS, KC_NUMLOCK, KC_WWW_BACK, KC_AUDIO_MUTE, KC_RGUI, KC_PAUSE}, KC_KP_0, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_PLUS, KC_NUMLOCK, KC_WWW_BACK, KC_AUDIO_MUTE, KC_RGUI, KC_PAUSE,
{KC_KP_ASTERISK, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_SLASH, KC_KP_ENTER, KC_MEDIA_PLAY_PAUSE, KC_MEDIA_PREV_TRACK, KC_MEDIA_NEXT_TRACK, KC_INSERT}, KC_KP_ASTERISK, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_SLASH, KC_KP_ENTER, KC_MEDIA_PLAY_PAUSE, KC_MEDIA_PREV_TRACK, KC_MEDIA_NEXT_TRACK, KC_INSERT,
{XXX, ___, ___, ___, TG( 8 ), KC_8, ___, ___, ___, XXX}, _______, _______, _______, TG( 8 ), KC_8, _______, _______, _______,
{XXX, ___, KC_8, ___, ___, ___, ___, ___, ___, XXX} _______, KC_8, _______, _______, _______, _______, _______, _______
}// , )// ,
/* /*
* / * /
[_] = { [_] = LAYOUT(
{, , , , , , , , ,}, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
{, , , , , , , , ,}, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
{, , , , , , , , ,}, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
{XXX, ___, ___, ___, TG( ), TG( ), ___, ___, ___, XXX}, _______, _______, _______, _______, _______, _______, _______, _______,
{XXX, ___, KC_, ___, ___, ___, ___, ___, ___, XXX} _______, _______, _______, _______, _______, _______, _______, _______
} )
*/ */
}; };
void matrix_scan_user(void) { void matrix_scan_user(void) {
+1 -1
View File
@@ -18,7 +18,7 @@ Bottom cluster is the same on all levels and mostly symmetric. The 'ring fingers
* back del/enter ctrl toggle-layer * back del/enter ctrl toggle-layer
* alt N/caps shift space * alt N/caps shift space
You can preview the layout by cloning [https://gitlab.com/Nzen/impatient-broth-nenem](this webpage). The page imitates qmk's fallthrough. You can preview the layout by cloning [this webpage](https://gitlab.com/Nzen/impatient-broth-nenem). The page imitates qmk's fallthrough.
['Q', 'W', 'E', 'R', 'T',// 'Y', 'U', 'I', 'O', 'P' ['Q', 'W', 'E', 'R', 'T',// 'Y', 'U', 'I', 'O', 'P'
['A', 'S', 'D', 'F', 'G',// 'H', 'J', 'K', 'L', '; :' ['A', 'S', 'D', 'F', 'G',// 'H', 'J', 'K', 'L', '; :'
+1 -1
View File
@@ -49,7 +49,7 @@
// This a shortcut to help you visually see your layout. // This a shortcut to help you visually see your layout.
// The first section contains all of the arguments // The first section contains all of the arguments
// The second converts the arguments into a two-dimensional array // The second converts the arguments into a two-dimensional array
#define KEYMAP( \ #define LAYOUT( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \
+17
View File
@@ -0,0 +1,17 @@
{
"keyboard_name": "miuni32",
"url": "",
"maintainer": "qmk",
"width": 11,
"height": 3,
"layouts": {
"LAYOUT": {
"key_count": 32,
"layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2, "w":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}]
},
"LAYOUT_ortho_3x11": {
"key_count": 33,
"layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}]
}
}
}
+47 -44
View File
@@ -1,4 +1,7 @@
#include "miuni32.h" #include QMK_KEYBOARD_H
#define _______ KC_TRNS
#define XXXXXXX KC_NO
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Level 0: Default Layer /* Level 0: Default Layer
@@ -7,56 +10,56 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |---------------------------------------------------------------------------------------| * |---------------------------------------------------------------------------------------|
* | A | S | D | F | G | H | J | K | L | ENT |LT(1|,)| * | A | S | D | F | G | H | J | K | L | ENT |LT(1|,)|
* |---------------------------------------------------------------------------------------| * |---------------------------------------------------------------------------------------|
* |LT(3|Z)| X | C | V | NO | SPC | B | N | M | RSFT |LT(2|.)| * |LT(3|Z)| X | C | V | SPC | B | N | M | RSFT |LT(2|.)|
* |---------------------------------------------------------------------------------------| * |---------------------------------------------------------------------------------------|
*/ */
[0] ={ [0] = LAYOUT(
{KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
{KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, LT(1, KC_COMMA)}, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, LT(1, KC_COMMA),
{LT(3, KC_Z), KC_X, KC_C, KC_V, KC_NO, KC_SPC, KC_B, KC_N, KC_M, KC_RSFT, LT(2, KC_DOT)} LT(3, KC_Z), KC_X, KC_C, KC_V, KC_SPC, KC_B, KC_N, KC_M, KC_RSFT, LT(2, KC_DOT)
}, ),
/* Level 1: Numbers Layer /* Level 1: Numbers Layer
* ,---------------------------------------------------------------------------------------. * ,---------------------------------------------------------------------------------------.
* | ESC | 7 | 8 | 9 | / | * | . | , | ( | ) | DEL | * | ESC | 7 | 8 | 9 | / | * | . | , | ( | ) | DEL |
* |---------------------------------------------------------------------------------------| * |---------------------------------------------------------------------------------------|
* | TAB | 4 | 5 | 6 | - | + | HOME | UP | END | PGUP | TRNS | * | TAB | 4 | 5 | 6 | - | + | HOME | UP | END | PGUP | TRNS |
* |---------------------------------------------------------------------------------------| * |---------------------------------------------------------------------------------------|
* | LATL | 1 | 2 | 3 | 0 | NO | LEFT | DOWN | RGHT | PGDN | RSHFT | * | LATL | 1 | 2 | 3 | 0 | LEFT | DOWN | RGHT | PGDN | RSHFT |
* |---------------------------------------------------------------------------------------| * |---------------------------------------------------------------------------------------|
*/ */
[1] ={ [1] = LAYOUT(
{KC_ESC, KC_7, KC_8, KC_9, KC_SLSH, KC_ASTR, KC_DOT, KC_COMM, KC_LPRN, KC_RPRN, KC_DEL}, KC_ESC, KC_7, KC_8, KC_9, KC_SLSH, KC_ASTR, KC_DOT, KC_COMM, KC_LPRN, KC_RPRN, KC_DEL,
{KC_TAB, KC_4, KC_5, KC_6, KC_MINS, KC_PLUS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS}, KC_TAB, KC_4, KC_5, KC_6, KC_MINS, KC_PLUS, KC_HOME, KC_UP, KC_END, KC_PGUP, _______,
{KC_LALT, KC_1, KC_2, KC_3, KC_0, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_RSFT} KC_LALT, KC_1, KC_2, KC_3, KC_0, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_RSFT
}, ),
/* Level 2: Symbols Layer /* Level 2: Symbols Layer
* ,---------------------------------------------------------------------------------------. * ,---------------------------------------------------------------------------------------.
* | ! | @ | # | $ | % | ^ | & | * | - | + | = | * | ! | @ | # | $ | % | ^ | & | * | - | + | = |
* |---------------------------------------------------------------------------------------| * |---------------------------------------------------------------------------------------|
* | { | } | [ | ] | TRNS | TRNS | \ | ; | : | ` | ? | * | { | } | [ | ] | TRNS | TRNS | \ | ; | : | ` | ? |
* |---------------------------------------------------------------------------------------| * |---------------------------------------------------------------------------------------|
* | LSFT | LCTL | L | T | TRNS | TAB | N | TRNS | TRNS | RCTL | TRNS | * | LSFT | LCTL | L | T | TAB | N | TRNS | TRNS | RCTL | TRNS |
* |---------------------------------------------------------------------------------------| * |---------------------------------------------------------------------------------------|
*/ */
[2] ={ [2] = LAYOUT(
{KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_MINS, KC_PLUS, KC_EQL}, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_MINS, KC_PLUS, KC_EQL,
{KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, KC_TRNS, KC_TRNS, KC_BSLS, KC_SCLN, KC_COLN, KC_GRV, KC_QUES}, KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, _______, _______, KC_BSLS, KC_SCLN, KC_COLN, KC_GRV, KC_QUES,
{KC_LSFT, KC_LCTL, KC_L, KC_T, KC_TRNS, KC_TAB, KC_N, KC_TRNS, KC_TRNS, KC_RCTL, KC_TRNS} KC_LSFT, KC_LCTL, KC_L, KC_T, KC_TAB, KC_N, _______, _______, KC_RCTL, _______
}, ),
/* Level 3: RGB Layer /* Level 3: RGB Layer
* ,---------------------------------------------------------------------------------------. * ,---------------------------------------------------------------------------------------.
* | RESET | TRNS | TRNS | TRNS | TRNS | F1 | F2 | F3 | F4 | F5 | F6 | * | RESET | TRNS | TRNS | TRNS | TRNS | F1 | F2 | F3 | F4 | F5 | F6 |
* |---------------------------------------------------------------------------------------| * |---------------------------------------------------------------------------------------|
* |RGB_TOG|RGB_MOD|RGB_HUI|RGB_HUD| NO |RGB_SAI|RGB_SAD|RGB_VAI|RGB_VAD| TRNS | TRNS | * |RGB_TOG|RGB_MOD|RGB_HUI|RGB_HUD| NO |RGB_SAI|RGB_SAD|RGB_VAI|RGB_VAD| TRNS | TRNS |
* |---------------------------------------------------------------------------------------| * |---------------------------------------------------------------------------------------|
* | TRNS | TRNS | TRNS | TRNS | NO | F7 | F8 | F9 | F10 | F11 | F12 | * | TRNS | TRNS | TRNS | TRNS | F7 | F8 | F9 | F10 | F11 | F12 |
* |---------------------------------------------------------------------------------------| * |---------------------------------------------------------------------------------------|
*/ */
[3] ={ [3] = LAYOUT(
{RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6}, RESET, _______, _______, _______, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
{RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, KC_NO, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS}, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, KC_NO, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______,
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12} _______, _______, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12
} )
}; };
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
@@ -81,39 +84,39 @@ void matrix_scan_user(void) {
} }
bool process_record_user(uint16_t keycode, keyrecord_t *record) { bool process_record_user(uint16_t keycode, keyrecord_t *record) {
return true; return true;
} }
void led_set_user(uint8_t usb_led) { void led_set_user(uint8_t usb_led) {
if (usb_led & (1 << USB_LED_NUM_LOCK)) { if (usb_led & (1 << USB_LED_NUM_LOCK)) {
} else { } else {
} }
if (usb_led & (1 << USB_LED_CAPS_LOCK)) { if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
} else { } else {
} }
if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
} else { } else {
} }
if (usb_led & (1 << USB_LED_COMPOSE)) { if (usb_led & (1 << USB_LED_COMPOSE)) {
} else { } else {
} }
if (usb_led & (1 << USB_LED_KANA)) { if (usb_led & (1 << USB_LED_KANA)) {
} else { } else {
} }
} }
+47 -44
View File
@@ -1,4 +1,7 @@
#include "miuni32.h" #include QMK_KEYBOARD_H
#define _______ KC_TRNS
#define XXXXXXX KC_NO
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Level 0: Default Layer /* Level 0: Default Layer
@@ -7,56 +10,56 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |---------------------------------------------------------------------------------------| * |---------------------------------------------------------------------------------------|
* | A | S | D | F | G | H | J | K | L | ENT |LT(1|,)| * | A | S | D | F | G | H | J | K | L | ENT |LT(1|,)|
* |---------------------------------------------------------------------------------------| * |---------------------------------------------------------------------------------------|
* |LT(3|Z)| X | C | V | NO | SPC | B | N | M | RSFT |LT(2|.)| * |LT(3|Z)| X | C | V | SPC | B | N | M | RSFT |LT(2|.)|
* |---------------------------------------------------------------------------------------| * |---------------------------------------------------------------------------------------|
*/ */
[0] ={ [0] = LAYOUT(
{KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
{KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, LT(1, KC_COMMA)}, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, LT(1, KC_COMMA),
{LT(3, KC_Z), KC_X, KC_C, KC_V, KC_NO, KC_SPC, KC_B, KC_N, KC_M, KC_RSFT, LT(2, KC_DOT)} LT(3, KC_Z), KC_X, KC_C, KC_V, KC_SPC, KC_B, KC_N, KC_M, KC_RSFT, LT(2, KC_DOT)
}, ),
/* Level 1: Numbers Layer /* Level 1: Numbers Layer
* ,---------------------------------------------------------------------------------------. * ,---------------------------------------------------------------------------------------.
* | ESC | 7 | 8 | 9 | / | * | . | , | ( | ) | DEL | * | ESC | 7 | 8 | 9 | / | * | . | , | ( | ) | DEL |
* |---------------------------------------------------------------------------------------| * |---------------------------------------------------------------------------------------|
* | TAB | 4 | 5 | 6 | - | + | HOME | UP | END | PGUP | TRNS | * | TAB | 4 | 5 | 6 | - | + | HOME | UP | END | PGUP | TRNS |
* |---------------------------------------------------------------------------------------| * |---------------------------------------------------------------------------------------|
* | LATL | 1 | 2 | 3 | 0 | NO | LEFT | DOWN | RGHT | PGDN | RSHFT | * | LATL | 1 | 2 | 3 | 0 | LEFT | DOWN | RGHT | PGDN | RSHFT |
* |---------------------------------------------------------------------------------------| * |---------------------------------------------------------------------------------------|
*/ */
[1] ={ [1] = LAYOUT(
{KC_ESC, KC_7, KC_8, KC_9, KC_SLSH, KC_ASTR, KC_DOT, KC_COMM, KC_LPRN, KC_RPRN, KC_DEL}, KC_ESC, KC_7, KC_8, KC_9, KC_SLSH, KC_ASTR, KC_DOT, KC_COMM, KC_LPRN, KC_RPRN, KC_DEL,
{KC_TAB, KC_4, KC_5, KC_6, KC_MINS, KC_PLUS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS}, KC_TAB, KC_4, KC_5, KC_6, KC_MINS, KC_PLUS, KC_HOME, KC_UP, KC_END, KC_PGUP, _______,
{KC_LALT, KC_1, KC_2, KC_3, KC_0, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_RSFT} KC_LALT, KC_1, KC_2, KC_3, KC_0, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_RSFT
}, ),
/* Level 2: Symbols Layer /* Level 2: Symbols Layer
* ,---------------------------------------------------------------------------------------. * ,---------------------------------------------------------------------------------------.
* | ! | @ | # | $ | % | ^ | & | * | - | + | = | * | ! | @ | # | $ | % | ^ | & | * | - | + | = |
* |---------------------------------------------------------------------------------------| * |---------------------------------------------------------------------------------------|
* | { | } | [ | ] | TRNS | TRNS | \ | ; | : | ` | ? | * | { | } | [ | ] | TRNS | TRNS | \ | ; | : | ` | ? |
* |---------------------------------------------------------------------------------------| * |---------------------------------------------------------------------------------------|
* | LSFT | LCTL | L | T | TRNS | TAB | N | TRNS | TRNS | RCTL | TRNS | * | LSFT | LCTL | L | T | TAB | N | TRNS | TRNS | RCTL | TRNS |
* |---------------------------------------------------------------------------------------| * |---------------------------------------------------------------------------------------|
*/ */
[2] ={ [2] = LAYOUT(
{KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_MINS, KC_PLUS, KC_EQL}, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_MINS, KC_PLUS, KC_EQL,
{KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, KC_TRNS, KC_TRNS, KC_BSLS, KC_SCLN, KC_COLN, KC_GRV, KC_QUES}, KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, _______, _______, KC_BSLS, KC_SCLN, KC_COLN, KC_GRV, KC_QUES,
{KC_LSFT, KC_LCTL, KC_L, KC_T, KC_TRNS, KC_TAB, KC_N, KC_TRNS, KC_TRNS, KC_RCTL, KC_TRNS} KC_LSFT, KC_LCTL, KC_L, KC_T, KC_TAB, KC_N, _______, _______, KC_RCTL, _______
}, ),
/* Level 3: RGB Layer /* Level 3: RGB Layer
* ,---------------------------------------------------------------------------------------. * ,---------------------------------------------------------------------------------------.
* | RESET | TRNS | TRNS | TRNS | TRNS | F1 | F2 | F3 | F4 | F5 | F6 | * | RESET | TRNS | TRNS | TRNS | TRNS | F1 | F2 | F3 | F4 | F5 | F6 |
* |---------------------------------------------------------------------------------------| * |---------------------------------------------------------------------------------------|
* |RGB_TOG|RGB_MOD|RGB_HUI|RGB_HUD| NO |RGB_SAI|RGB_SAD|RGB_VAI|RGB_VAD| TRNS | TRNS | * |RGB_TOG|RGB_MOD|RGB_HUI|RGB_HUD| NO |RGB_SAI|RGB_SAD|RGB_VAI|RGB_VAD| TRNS | TRNS |
* |---------------------------------------------------------------------------------------| * |---------------------------------------------------------------------------------------|
* | TRNS | TRNS | TRNS | TRNS | NO | F7 | F8 | F9 | F10 | F11 | F12 | * | TRNS | TRNS | TRNS | TRNS | F7 | F8 | F9 | F10 | F11 | F12 |
* |---------------------------------------------------------------------------------------| * |---------------------------------------------------------------------------------------|
*/ */
[3] ={ [3] = LAYOUT(
{RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6}, RESET, _______, _______, _______, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
{RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, KC_NO, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS}, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, KC_NO, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______,
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12} _______, _______, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12
} )
}; };
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
@@ -81,39 +84,39 @@ void matrix_scan_user(void) {
} }
bool process_record_user(uint16_t keycode, keyrecord_t *record) { bool process_record_user(uint16_t keycode, keyrecord_t *record) {
return true; return true;
} }
void led_set_user(uint8_t usb_led) { void led_set_user(uint8_t usb_led) {
if (usb_led & (1 << USB_LED_NUM_LOCK)) { if (usb_led & (1 << USB_LED_NUM_LOCK)) {
} else { } else {
} }
if (usb_led & (1 << USB_LED_CAPS_LOCK)) { if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
} else { } else {
} }
if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
} else { } else {
} }
if (usb_led & (1 << USB_LED_COMPOSE)) { if (usb_led & (1 << USB_LED_COMPOSE)) {
} else { } else {
} }
if (usb_led & (1 << USB_LED_KANA)) { if (usb_led & (1 << USB_LED_KANA)) {
} else { } else {
} }
} }
+57 -54
View File
@@ -1,4 +1,7 @@
#include "miuni32.h" #include QMK_KEYBOARD_H
#define _______ KC_TRNS
#define XXXXXXX KC_NO
// Keyboard layer definitions // Keyboard layer definitions
#define BASE 0 #define BASE 0
@@ -22,12 +25,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |LT(2|Z)|LT(3|X)| C | V | B | SPC | N | M | , |LT(1|.)| RCTL | * |LT(2|Z)|LT(3|X)| C | V | B | SPC | N | M | , |LT(1|.)| RCTL |
* |---------------------------------------------------------------------------------------| * |---------------------------------------------------------------------------------------|
*/ */
[BASE] ={ [BASE] = LAYOUT_ortho_3x11(
{KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
{KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, KC_RSFT}, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, KC_RSFT,
{LT(2, KC_Z), LT(3, KC_X), KC_C, KC_V, KC_B, KC_SPC, KC_N, KC_M, KC_COMMA, LT(1, KC_DOT), KC_RCTL} LT(2, KC_Z), LT(3, KC_X), KC_C, KC_V, KC_B, KC_SPC, KC_N, KC_M, KC_COMMA, LT(1, KC_DOT), KC_RCTL
}, ),
/* Level 1: Numbers Layer /* Level 1: Numbers Layer
* ,---------------------------------------------------------------------------------------. * ,---------------------------------------------------------------------------------------.
* | ESC | 7 | 8 | 9 | / | * | . | , | ( | ) | DEL | * | ESC | 7 | 8 | 9 | / | * | . | , | ( | ) | DEL |
* |---------------------------------------------------------------------------------------| * |---------------------------------------------------------------------------------------|
@@ -36,12 +39,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | LATL | 1 | 2 | 3 | 0 | ENT | LEFT | DOWN | RGHT | !TRNS!| PGDN | * | LATL | 1 | 2 | 3 | 0 | ENT | LEFT | DOWN | RGHT | !TRNS!| PGDN |
* |---------------------------------------------------------------------------------------| * |---------------------------------------------------------------------------------------|
*/ */
[NUMBERS] ={ [NUMBERS] = LAYOUT_ortho_3x11(
{KC_ESC, KC_7, KC_8, KC_9, KC_SLSH, KC_ASTR, KC_DOT, KC_COMM, KC_LPRN, KC_RPRN, KC_DEL}, KC_ESC, KC_7, KC_8, KC_9, KC_SLSH, KC_ASTR, KC_DOT, KC_COMM, KC_LPRN, KC_RPRN, KC_DEL,
{KC_TAB, KC_4, KC_5, KC_6, KC_MINS, KC_PLUS, KC_HOME, KC_UP, KC_END, KC_INSERT, KC_PGUP}, KC_TAB, KC_4, KC_5, KC_6, KC_MINS, KC_PLUS, KC_HOME, KC_UP, KC_END, KC_INSERT, KC_PGUP,
{KC_LALT, KC_1, KC_2, KC_3, KC_0, KC_ENT, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_PGDN} KC_LALT, KC_1, KC_2, KC_3, KC_0, KC_ENT, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_PGDN
}, ),
/* Level 2: Symbols Layer /* Level 2: Symbols Layer
* ,---------------------------------------------------------------------------------------. * ,---------------------------------------------------------------------------------------.
* | ! | @ | # | $ | % | ^ | & | * | _ | = | ? | * | ! | @ | # | $ | % | ^ | & | * | _ | = | ? |
* |---------------------------------------------------------------------------------------| * |---------------------------------------------------------------------------------------|
@@ -50,25 +53,25 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | !TRNS!| LCTL | TRNS | [ | ] | TAB | < | > | TRNS | RCTL | TRNS | * | !TRNS!| LCTL | TRNS | [ | ] | TAB | < | > | TRNS | RCTL | TRNS |
* |---------------------------------------------------------------------------------------| * |---------------------------------------------------------------------------------------|
*/ */
[SYMBOLS] ={ [SYMBOLS] = LAYOUT_ortho_3x11(
{KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_UNDS, KC_EQL, KC_QUES}, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_UNDS, KC_EQL, KC_QUES,
{RESET, KC_LSFT, KC_TILD, KC_LCBR, KC_RCBR, KC_BSLS, KC_PIPE, KC_SCLN, KC_COLN, KC_GRV, KC_DQUO}, RESET, KC_LSFT, KC_TILD, KC_LCBR, KC_RCBR, KC_BSLS, KC_PIPE, KC_SCLN, KC_COLN, KC_GRV, KC_DQUO,
{KC_TRNS, KC_LCTL, KC_TRNS, KC_LBRC, KC_RBRC, KC_TAB, KC_LABK, KC_RABK, KC_TRNS, KC_RCTL, KC_TRNS} _______, KC_LCTL, _______, KC_LBRC, KC_RBRC, KC_TAB, KC_LABK, KC_RABK, _______, KC_RCTL, _______
}, ),
/* Level 3: Media Layer /* Level 3: Media Layer
* ,---------------------------------------------------------------------------------------. * ,---------------------------------------------------------------------------------------.
* |RGB_TOG|RGB_HUI|RGB_SAI|RGB_VAI| GIT_CM| CALC | WREF | WFAV | MUTE | VOLD | VOLU | * |RGB_TOG|RGB_HUI|RGB_SAI|RGB_VAI| GIT_CM| CALC | WREF | WFAV | MUTE | VOLD | VOLU |
* |---------------------------------------------------------------------------------------| * |---------------------------------------------------------------------------------------|
* |RGB_MOD|RGB_HUD|RGB_SAD|RGB_VAD| GIT_ST| WHOM | WBAK | WFWD | TRNS | STOP | PLAY | * |RGB_MOD|RGB_HUD|RGB_SAD|RGB_VAD| GIT_ST| WHOM | WBAK | WFWD | TRNS | STOP | PLAY |
* |---------------------------------------------------------------------------------------| * |---------------------------------------------------------------------------------------|
* | TRNS | !TRNS!| TRNS | HM_DIR| GIT_PU| MYCM | WSTP | WSCH | MSEL | MPRV | MNXT | * | TRNS | !TRNS!| TRNS | HM_DIR| GIT_PU| MYCM | WSTP | WSCH | MSEL | MPRV | MNXT |
* |---------------------------------------------------------------------------------------| * |---------------------------------------------------------------------------------------|
*/ */
[MEDIA] ={ [MEDIA] = LAYOUT_ortho_3x11(
{RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, GIT_CM, KC_CALC, KC_WREF, KC_WFAV, KC_MUTE, KC_VOLD, KC_VOLU}, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, GIT_CM, KC_CALC, KC_WREF, KC_WFAV, KC_MUTE, KC_VOLD, KC_VOLU,
{RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, GIT_ST, KC_WHOM, KC_WBAK, KC_WFWD, KC_TRNS, KC_MSTP, KC_MPLY}, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, GIT_ST, KC_WHOM, KC_WBAK, KC_WFWD, _______, KC_MSTP, KC_MPLY,
{KC_TRNS, KC_TRNS, KC_TRNS, HM_DIR, GIT_PU, KC_MYCM, KC_WSTP, KC_WSCH, KC_MSEL, KC_MPRV, KC_MNXT} _______, _______, _______, HM_DIR, GIT_PU, KC_MYCM, KC_WSTP, KC_WSCH, KC_MSEL, KC_MPRV, KC_MNXT
} )
}; };
void press_and_release_key(uint8_t code) void press_and_release_key(uint8_t code)
@@ -88,31 +91,31 @@ void press_and_release_mod_key(uint8_t mod, uint8_t code)
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{ {
// MACRODOWN only works in this function // MACRODOWN only works in this function
switch(id) switch(id)
{ {
case 0: case 0:
if (record->event.pressed) if (record->event.pressed)
{ {
return MACRO(T(G), T(I), T(T), T(SPC), return MACRO(T(G), T(I), T(T), T(SPC),
T(S), T(T), T(A), T(T), T(U), T(S), END); T(S), T(T), T(A), T(T), T(U), T(S), END);
} }
break; break;
case 1: case 1:
if (record->event.pressed) if (record->event.pressed)
{ {
return MACRO(T(G), T(I), T(T), T(SPC), return MACRO(T(G), T(I), T(T), T(SPC),
T(P), T(U), T(L), T(L), END); T(P), T(U), T(L), T(L), END);
} }
break; break;
case 2: case 2:
if (record->event.pressed) if (record->event.pressed)
{ {
return MACRO(T(G), T(I), T(T), T(SPC), return MACRO(T(G), T(I), T(T), T(SPC),
T(C), T(O), T(M), T(M), T(I), T(T), END); T(C), T(O), T(M), T(M), T(I), T(T), END);
} }
break; break;
case 3: case 3:
if (record->event.pressed) if (record->event.pressed)
{ {
/*press_and_release_key(KC_C); /*press_and_release_key(KC_C);
press_and_release_key(KC_D); press_and_release_key(KC_D);
@@ -128,7 +131,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
D(LSFT), T(GRV), U(LSFT), T(SLSH), D(LSFT), T(GRV), U(LSFT), T(SLSH),
T(Q), T(M), T(K), D(LSFT), T(MINS), U(LSFT), T(Q), T(M), T(K), D(LSFT), T(MINS), U(LSFT),
T(F), T(I), T(R), T(M), T(W), T(A), T(R), T(E), T(SLSH), T(F), T(I), T(R), T(M), T(W), T(A), T(R), T(E), T(SLSH),
T(K), T(E), T(Y), T(B), T(O), T(A), T(R), T(D), T(S), T(SLSH), T(K), T(E), T(Y), T(B), T(O), T(A), T(R), T(D), T(S), T(SLSH),
T(M), T(I), T(U), T(N), T(I), T(3), T(2), T(SLSH), T(M), T(I), T(U), T(N), T(I), T(3), T(2), T(SLSH),
T(K), T(E), T(Y), T(M), T(A), T(P), T(S), END); T(K), T(E), T(Y), T(M), T(A), T(P), T(S), END);
} }
@@ -143,39 +146,39 @@ void matrix_scan_user(void) {
} }
bool process_record_user(uint16_t keycode, keyrecord_t *record) { bool process_record_user(uint16_t keycode, keyrecord_t *record) {
return true; return true;
} }
void led_set_user(uint8_t usb_led) { void led_set_user(uint8_t usb_led) {
if (usb_led & (1 << USB_LED_NUM_LOCK)) { if (usb_led & (1 << USB_LED_NUM_LOCK)) {
} else { } else {
} }
if (usb_led & (1 << USB_LED_CAPS_LOCK)) { if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
} else { } else {
} }
if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
} else { } else {
} }
if (usb_led & (1 << USB_LED_COMPOSE)) { if (usb_led & (1 << USB_LED_COMPOSE)) {
} else { } else {
} }
if (usb_led & (1 << USB_LED_KANA)) { if (usb_led & (1 << USB_LED_KANA)) {
} else { } else {
} }
} }
+52 -50
View File
@@ -1,5 +1,7 @@
#include "miuni32.h" #include QMK_KEYBOARD_H
#include "action_layer.h"
#define _______ KC_TRNS
#define XXXXXXX KC_NO
enum miuni32_layers { enum miuni32_layers {
_BEAKL, _BEAKL,
@@ -17,21 +19,21 @@ enum miuni32_keycodes {
#define SPC_SHF SFT_T(KC_SPC) #define SPC_SHF SFT_T(KC_SPC)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Level 0: BEAKL /* Level 0: BEAKL
* ,---------------------------------------------------------------------------------------. * ,---------------------------------------------------------------------------------------.
* | J | H | O | U | K | LOWER | G | C | R | F | Z | * | J | H | O | U | K | LOWER | G | C | R | F | Z |
* |---------------------------------------------------------------------------------------| * |---------------------------------------------------------------------------------------|
* | Q | I | E | A | Y | RAISE | D | S | T | N | B | * | Q | I | E | A | Y | RAISE | D | S | T | N | B |
* |---------------------------------------------------------------------------------------| * |---------------------------------------------------------------------------------------|
* | / | , | ' | . | X |SPC\SHF| W | M | L | P | V | * | / | , | ' | . | X |SPC\SHF| W | M | L | P | V |
* |---------------------------------------------------------------------------------------| * |---------------------------------------------------------------------------------------|
*/ */
[_BEAKL] ={ [_BEAKL] = LAYOUT_ortho_3x11(
{KC_J, KC_H, KC_O, KC_U, KC_K, KC_NO, KC_G, KC_C, KC_R, KC_F, KC_Z}, KC_J, KC_H, KC_O, KC_U, KC_K, LOWER, KC_G, KC_C, KC_R, KC_F, KC_Z,
{KC_Q, KC_I, KC_E, KC_A, KC_Y, RAISE, KC_D, KC_S, KC_T, KC_N, KC_B}, KC_Q, KC_I, KC_E, KC_A, KC_Y, RAISE, KC_D, KC_S, KC_T, KC_N, KC_B,
{KC_SLSH, KC_COMM, KC_QUOT, KC_DOT, KC_X, SPC_SHF, KC_W, KC_M, KC_L, KC_P, KC_V} KC_SLSH, KC_COMM, KC_QUOT, KC_DOT, KC_X, SPC_SHF, KC_W, KC_M, KC_L, KC_P, KC_V
}, ),
/* Lower /* Lower
* ,---------------------------------------------------------------------------------------. * ,---------------------------------------------------------------------------------------.
* | Tab | { | _ | } | & | | Gui | [ | % | ] | Bkspc | * | Tab | { | _ | } | & | | Gui | [ | % | ] | Bkspc |
* |---------------------------------------------------------------------------------------| * |---------------------------------------------------------------------------------------|
@@ -40,12 +42,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | 5 | 4 | 3 | 2 | Ctl | | Alt | 9 | 8 | 7 | 6 | * | 5 | 4 | 3 | 2 | Ctl | | Alt | 9 | 8 | 7 | 6 |
* |---------------------------------------------------------------------------------------| * |---------------------------------------------------------------------------------------|
*/ */
[_LOWER] ={ [_LOWER] = LAYOUT_ortho_3x11(
{KC_TAB, KC_LCBR, KC_UNDS, KC_RBRC, KC_AMPR, _______, KC_RGUI, KC_LBRC, KC_PERC, KC_RBRC, KC_BSPC}, KC_TAB, KC_LCBR, KC_UNDS, KC_RBRC, KC_AMPR, _______, KC_RGUI, KC_LBRC, KC_PERC, KC_RBRC, KC_BSPC,
{KC_BSLS, KC_LPRN, KC_1, KC_RPRN, KC_HASH, _______, KC_DLR, KC_LT, KC_0, KC_GT, KC_PIPE}, KC_BSLS, KC_LPRN, KC_1, KC_RPRN, KC_HASH, _______, KC_DLR, KC_LT, KC_0, KC_GT, KC_PIPE,
{KC_5, KC_4, KC_3, KC_2, KC_LCTL, _______, KC_RALT, KC_9, KC_8, KC_7, KC_6} KC_5, KC_4, KC_3, KC_2, KC_LCTL, _______, KC_RALT, KC_9, KC_8, KC_7, KC_6
}, ),
/* Raise /* Raise
* ,---------------------------------------------------------------------------------------. * ,---------------------------------------------------------------------------------------.
* | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | * | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 |
* |---------------------------------------------------------------------------------------| * |---------------------------------------------------------------------------------------|
@@ -54,12 +56,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | % | $ | # | @ | | | | ( | * | & | ^ | * | % | $ | # | @ | | | | ( | * | & | ^ |
* |---------------------------------------------------------------------------------------| * |---------------------------------------------------------------------------------------|
*/ */
[_RAISE] ={ [_RAISE] = LAYOUT_ortho_3x11(
{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_F11, KC_F12, KC_EXLM, KC_MINS, KC_PLUS, _______, KC_EQL, KC_SCLN, KC_RPRN, KC_GRV, KC_QUES}, KC_F11, KC_F12, KC_EXLM, KC_MINS, KC_PLUS, _______, KC_EQL, KC_SCLN, KC_RPRN, KC_GRV, KC_QUES,
{KC_PERC, KC_DLR, KC_HASH, KC_AT, _______, _______, _______, KC_LPRN, KC_ASTR, KC_AMPR, KC_CIRC} KC_PERC, KC_DLR, KC_HASH, KC_AT, _______, _______, _______, KC_LPRN, KC_ASTR, KC_AMPR, KC_CIRC
}, ),
/* Union /* Union
* ,---------------------------------------------------------------------------------------. * ,---------------------------------------------------------------------------------------.
* | RESET | | | | | | | | | | Del | * | RESET | | | | | | | | | | Del |
* |---------------------------------------------------------------------------------------| * |---------------------------------------------------------------------------------------|
@@ -68,11 +70,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | | | | | | | * | | | | | | | | | | | |
* |---------------------------------------------------------------------------------------| * |---------------------------------------------------------------------------------------|
*/ */
[_UNION] ={ [_UNION] = LAYOUT_ortho_3x11(
{RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL,
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
} )
}; };
void matrix_init_user(void) { void matrix_init_user(void) {
@@ -111,39 +113,39 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
return false; return false;
break; break;
} }
return true; return true;
} }
void led_set_user(uint8_t usb_led) { void led_set_user(uint8_t usb_led) {
if (usb_led & (1 << USB_LED_NUM_LOCK)) { if (usb_led & (1 << USB_LED_NUM_LOCK)) {
} else { } else {
} }
if (usb_led & (1 << USB_LED_CAPS_LOCK)) { if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
} else { } else {
} }
if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
} else { } else {
} }
if (usb_led & (1 << USB_LED_COMPOSE)) { if (usb_led & (1 << USB_LED_COMPOSE)) {
} else { } else {
} }
if (usb_led & (1 << USB_LED_KANA)) { if (usb_led & (1 << USB_LED_KANA)) {
} else { } else {
} }
} }
+18 -5
View File
@@ -3,13 +3,26 @@
#include "quantum.h" #include "quantum.h"
#define KEYMAP( \ #define LAYOUT( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
K20, K21, K22, K23, K25, K26, K27, K28, K29, K2A ) { \ K20, K21, K22, K23, K25, K26, K27, K28, K29, K2A \
{ KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A }, \ ) { \
{ KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A }, \ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A }, \
{ KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_NO, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A } \ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A }, \
{ K20, K21, K22, K23, KC_NO, K25, K26, K27, K28, K29, K2A } \
} }
#define LAYOUT_ortho_3x11( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
) { \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A }, \
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A }, \
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A } \
}
#define LAYOUT_all LAYOUT_ortho_3x11
#endif #endif
+2 -2
View File
@@ -3,8 +3,8 @@ miuni32
A compact 30% keyboard. A compact 30% keyboard.
Keyboard Maintainer: QMK Community Keyboard Maintainer: QMK Community
Hardware Supported: miuni32 PCB Hardware Supported: miuni32 PCB
Hardware Availability: https://zealpc.net/products/miuni32 Hardware Availability: https://zealpc.net/products/miuni32
Make example for this keyboard (after setting up your build environment): Make example for this keyboard (after setting up your build environment):
+12
View File
@@ -0,0 +1,12 @@
{
"keyboard_name": "Nano",
"url": "",
"maintainer": "qmk",
"width": 4,
"height": 2,
"layouts": {
"LAYOUT": {
"layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}]
}
}
}
+6 -10
View File
@@ -1,23 +1,19 @@
#include "nano.h" #include QMK_KEYBOARD_H
#define _MAIN 0 #define _MAIN 0
#define _FN 1 #define _FN 1
#define KC_ KC_TRNS #define _______ KC_TRNS
#define KC_X0 LT(_FN, KC_ESC) #define KC_X0 LT(_FN, KC_ESC)
#define KC_RTOG RGB_TOG
#define KC_RMOD RGB_MOD
#define KC_RHUI RGB_HUI
#define KC_RHUD RGB_HUD
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_MAIN] = LAYOUT( [_MAIN] = LAYOUT(
VOLU,MPLY,MPRV,PGUP, KC_VOLU, KC_MPLY, KC_MPRV, KC_PGUP,
VOLD,MUTE,MNXT,PGDN KC_VOLD, KC_MUTE, KC_MNXT, KC_PGDN
), ),
[_FN] = LAYOUT( [_FN] = LAYOUT(
F , ,RHUI, , KC_F, _______, RGB_HUI, _______,
RTOG,RMOD,RHUD, RGB_TOG, RGB_MOD, RGB_HUD, _______
) )
}; };
+6 -4
View File
@@ -3,10 +3,12 @@
#include "quantum.h" #include "quantum.h"
#define LAYOUT(k01, k02, k03, k04, k05, k06, k07, k08) \ #define LAYOUT( \
{ \ k01, k02, k03, k04, \
{KC_##k01, KC_##k02, KC_##k03, KC_##k04}, \ k05, k06, k07, k08 \
{KC_##k05, KC_##k06, KC_##k07, KC_##k08} \ ) { \
{ k01, k02, k03, k04 }, \
{ k05, k06, k07, k08 } \
} }
#endif #endif
+12
View File
@@ -0,0 +1,12 @@
{
"keyboard_name": "NovelPad",
"url": "",
"maintainer": "qmk",
"width": 4,
"height": 5,
"layouts": {
"LAYOUT_ortho_5x4": {
"layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":0, "y":4}, {"x":1, "y":4}, {"x":2, "y":4}, {"x":3, "y":4}]
}
}
}
+15 -12
View File
@@ -16,6 +16,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#include QMK_KEYBOARD_H #include QMK_KEYBOARD_H
#define _______ KC_TRNS
enum custom_keycodes { enum custom_keycodes {
BL = SAFE_RANGE, BL = SAFE_RANGE,
WK_RED, WK_RED,
@@ -25,20 +27,21 @@ enum custom_keycodes {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KEYMAP( [0] = LAYOUT(
KC_NLCK, KC_PSLS, KC_PAST, KC_ESC, KC_NLCK, KC_PSLS, KC_PAST, KC_ESC,
KC_P7, KC_P8, KC_P9, KC_PMNS, KC_P7, KC_P8, KC_P9, KC_PMNS,
KC_P4, KC_P5, KC_P6, KC_PPLS, KC_P4, KC_P5, KC_P6, KC_PPLS,
KC_P1, KC_P2, KC_P3, KC_TAB, KC_P1, KC_P2, KC_P3, KC_TAB,
MO(1), KC_P0, KC_PDOT, KC_ENT), MO(1), KC_P0, KC_PDOT, KC_ENT
),
KEYMAP( [1] = LAYOUT(
KC_TRNS, BL, RGB_MODE_SWIRL, RESET, \ _______, BL, RGB_MODE_SWIRL, RESET,
RGB_TOG, RGB_MOD, RGB_MODE_PLAIN, RGB_MODE_SNAKE, \ RGB_TOG, RGB_MOD, RGB_MODE_PLAIN, RGB_MODE_SNAKE,
RGB_HUI, RGB_SAI, RGB_VAI, RGB_MODE_KNIGHT, \ RGB_HUI, RGB_SAI, RGB_VAI, RGB_MODE_KNIGHT,
RGB_HUD , RGB_SAD, RGB_VAD, RGB_MODE_XMAS, \ RGB_HUD, RGB_SAD, RGB_VAD, RGB_MODE_XMAS,
KC_TRNS, WK_RED, WK_GREEN, WK_BLUE \ _______, WK_RED, WK_GREEN, WK_BLUE
), ),
}; };
+3 -1
View File
@@ -19,7 +19,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "quantum.h" #include "quantum.h"
#define KEYMAP( \ #define LAYOUT_ortho_5x4( \
K00, K01, K02, K03, \ K00, K01, K02, K03, \
K10, K11, K12, K13, \ K10, K11, K12, K13, \
K20, K21, K22, K23, \ K20, K21, K22, K23, \
@@ -33,4 +33,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
{ K40, K41, K42, K43 } \ { K40, K41, K42, K43 } \
} }
#define LAYOUT LAYOUT_ortho_5x4
#endif #endif
+1 -1
View File
@@ -4,7 +4,7 @@
A 5x4 macropad/numpad, sold by NovelKeys.xyz. There are two versions of the PCB, the NovelPad for MX switches and the NumChoc for Kailh Choc low profile switches. Both utilize the same firmware with no changes required. A 5x4 macropad/numpad, sold by NovelKeys.xyz. There are two versions of the PCB, the NovelPad for MX switches and the NumChoc for Kailh Choc low profile switches. Both utilize the same firmware with no changes required.
Keyboard Maintainer: [Cole Markham](https://github.com/colemarkham) / [Woodkeys.click](https://woodkeys.click) Keyboard Maintainer: [Cole Markham](https://github.com/colemarkham) / [Woodkeys.click](https://woodkeys.click)
Hardware Supported: NovelPad Hardware Supported: NovelPad
Hardware Availability: [Novelkeys.xyz](https://novelkeys.xyz) Hardware Availability: [Novelkeys.xyz](https://novelkeys.xyz)
+3 -1
View File
@@ -53,4 +53,6 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work NKRO_ENABLE = no # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # In-switch LEDs BACKLIGHT_ENABLE = yes # In-switch LEDs
AUDIO_ENABLE = no # There is no available timer or pin for audio on the NovelPad AUDIO_ENABLE = no # There is no available timer or pin for audio on the NovelPad
RGBLIGHT_ENABLE = yes # RGB LEDs for underglow, installed and enabled by default for the NovelPad RGBLIGHT_ENABLE = yes # RGB LEDs for underglow, installed and enabled by default for the NovelPad
LAYOUTS = ortho_5x4
+12
View File
@@ -0,0 +1,12 @@
{
"keyboard_name": "Nyquist",
"url": "",
"maintainer": "qmk",
"width": 13,
"height": 5,
"layouts": {
"LAYOUT": {
"layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":12, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":12, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}, {"x":12, "y":3}, {"x":0, "y":4}, {"x":1, "y":4}, {"x":2, "y":4}, {"x":3, "y":4}, {"x":4, "y":4}, {"x":5, "y":4}, {"x":7, "y":4}, {"x":8, "y":4}, {"x":9, "y":4}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}]
}
}
}
Loaded 100 of 139 files, more files were not shown because too many files have changed in this diff. Show more