Compare commits

..

29 Commits

Author SHA1 Message Date
WillyPillow
508801c948 Import userspace config.h according to USER_NAME (#2983)
* Import userspace config.h according to USER_NAME

* Use USER_PATH instead of directly using USER_NAME
2018-05-22 12:47:28 -07:00
Danny
7658f10fba Fix led enabled slave (#3022)
* Account for backlight enabled flag when passing backlight level to slave

* Add BL_TOGG to keymap for testing

* Apply backlight fix to Iris

* Port I2C LED backlight control from Iris to Levinson
2018-05-22 12:40:43 -07:00
noroadsleft
4b1f60a3f5 Refactor update for 6ball (#3017) 2018-05-22 12:12:50 -07:00
Danny
def0ff48c0 Add mike808 Viterbi layout (#3019) 2018-05-22 12:12:06 -07:00
rfvizarra
5018892fa8 A personal layout for the orthodox keyboard (#3006)
* A personal layout for the orthodox keyboard

* Added layout readme.md

* Consolidated inclues with #include QMK_KEYBOARD_H

* Moved layer tones setup to config.h

* Replace persistent_default_layer_set calls with set_single_persistent_default_layer

* Simplified the process_record_user function using layer_state_set_user function and MO() to set the lower, raise, nav and media layers

* Removed AUDIO_ENABLE ifdefs and persistent_default_layer_set() as they are not needed any more
2018-05-22 07:04:53 -07:00
Maarten Dekkers
ddbe60dc36 Fix Atom47 configurator layout (#3018) 2018-05-22 07:03:10 -07:00
QMK Bot
61f30ba542 convert to unix line-endings [skip ci] 2018-05-22 02:16:00 +00:00
Maarten Dekkers
1e8be6b741 Fix atom47 keyboard revision naming (#3013)
* Fixed Atom47 revisions, rev1 is rev3

* Remove rev1 folder

* Added bootloader to info.json

* Renamed layout

* Change readme for atom47

* Remove bootloader line from info.json
2018-05-21 19:12:56 -07:00
Joe Wasson
36fe0828cf Remove ISO imposter key from TKL keymap (#3014) 2018-05-21 18:17:15 -07:00
Jack Humbert
4d26137e2a Create CNAME 2018-05-21 16:29:37 -04:00
Drashna Jaelre
9483a88d75 Add 80 key layout to Ergodone, as it appears to support it (#2984)
* Add 80 key layout to Ergodone

* Add layouts

* Missed a comma .....
2018-05-20 21:45:38 -07:00
Drashna Jaelre
4dc89d974b Fix Ergodox EZ Info.json files (#2979)
* Fix Ergodox EZ Info.json files

* Ugh, column stagger!

* Whoops, added offset to wrong axis

* Add changes to Ergodone and Ergodox Infinity
2018-05-20 21:34:18 -07:00
Drashna Jaelre
8e0040e01a Fix Orthodox height 2018-05-20 21:33:38 -07:00
Drashna Jaelre
8729be5434 Fix compile issues for atmega328p 2018-05-20 21:30:14 -07:00
Barry Huang
f698bbcd65 Capslock indicator add (#3007)
* Capslock indicator add

* edit

* name correction

* led_set_user(usb_led); delete
2018-05-20 10:28:33 -07:00
yiancar
068b80383f HS60 ANSI keymap (#3010)
* Added Modular keyboards L,R and NUM

Created code modules for the 3 modules of the modular keyboard.
Original idea by MechboardsUK. Uses i2c implementation similar to lets
split

* Remove modular from master

This is to fix incorrect branching

* HS60 ANSI update

* HS60 ANSI update
2018-05-20 10:28:05 -07:00
MechMerlin
3e0ec8b171 Kira 75 QMK Support (#3003)
* preliminary check in of Kira75

* Layout done

* make an appropriate keymap and fix layout commas

* formatting changes and housekeeping

* add info.json contents for QMK Configurator support

* add RGB underglow support

* add support for caps and num lock leds
2018-05-20 10:25:34 -07:00
Campbell Barton
c1d30e4a57 qwerty_code_friendly: correct typos (#3002)
* qwerty_code_friendly: correct typos

* qwerty_code_friendly: right thumb for media keys

Allows for single handed media control.
2018-05-20 10:05:01 -07:00
MechMerlin
0b591fd843 Merlin community layouts (#3004)
* community layout support for eagle_viper v2 and remove mechmerlin keymap dir

* community layout support for eagle_viper v2 and remove mechmerlin keymap dir

* Change to QMK_KEYBOARD_H and remove merlin keymap in favor of cmmunity layouts

* community layout support 60_ansi

* community layout support for 60_ansi
2018-05-20 09:59:02 -07:00
MechMerlin
c9102f9e35 Renamed jd40's LAYOUT to LAYOUT_kc (#3000)
Made a new LAYOUT without all the KC_##
2018-05-18 21:00:48 -07:00
MechMerlin
d5f44feb75 checking in xxinophobia's changes to get ISO enter working correctly (#2999) 2018-05-18 21:00:13 -07:00
sennin32
1edb8bf190 change do60 config (#2996)
* add do60 support

* DO60 on market config v0.2.8

* remove do60x

* Changes for matching new naming rule
2018-05-18 20:59:05 -07:00
Joe Burchett
c55c646fa3 fix broken links in readme.md for bigseries (#2997) 2018-05-18 16:33:03 -07:00
Xyverz
27e3458f44 Updating my maps in upstream master (#2987)
* Adding Rama M10-A Macropad

* ch-ch-ch changes...

* Major overhaul based on SMT's keymap.

* more changes.

* Moved the FKeys to the ADJUST layer.

* More rearranging.

* Alias in Atreus62 keymap to make it more legible
Added config.h to fix tapping_term issue for Caps Lock key in OSX

* Added OrthoDox layout.

* More layout changes.

* Fixing things with the keyboard.

* Finishing touches.

Set left-hand master in config.h
Embedded the arrow keys in keymap.c

* Revised keymap making this easier to use.

* additions and changes.

* changes to various keymaps.

* Minor adjustments to OrthoDox layout.

* Added Eco keymap. Updated Let's Split keymap.

* Added gherkin

* Removed my M10A keymap

* Planck Keymap Updates

Updated my Planck keymap and created a simple keymap for Seph's Preonic.

* Added readme

* readme fixes

* Update readme.md

more clarification

* Keymap Tweaks

Removed the Power button setting from the keymap. It was in a
horrible location. I'll work on getting it setup somewhere else
sometime later.

* Added Readme

I finally got around to adding a readme to this keymap. I've also added minor changes to the layout.

* Fixed Keymap Error

* Fixed Readme

* adding iris and levinson keymaps

* Tweaks to keymap

* added youngJZ keymap

* Changes to keymap
Added a readme.md

* Levinson changes

Added the readme.md and rules.mk files.
Configured RGB underglow and backlighting.

* fixed readme

* changes to keymaps

* Updated keymap

* Updated readme.md

* Updated Readme (again)

* Updated Readme

Fixed formatting. Again.

* Updated readme

This is the last readme update for this keyboard update. I hope.

* Added Contra keymap

* Kinesis Keymap Update

* Updated Keymaps

I've updated my Kinesis (Stapelberg) layout and my Clueboard 66 layout.
I've also updated my Kinesis Readme.

* Clueboard Keymap update

Added media keys to my Clueboard 66 Rev2 layout.

* Added keymap

Added Minidox keymap & rules.
Added user function to Let's Split keymap that turns off the red
 LEDs on the Pro Micros.

* New Zen keymap

Added Zen keyboard to my list of keyboards, so had to generate a new
keymap for it.

Also adding some changes to my MiniDox keymap and config.h, as well
as my Levinson's config.h.

The config.h file changes enable ee_hands.

* A few changes for useability

I made a few changes to the Minidox keymap to see if I can't make it more useable.

I'm also working on streamlining the Zen keyboard keymap to reduce layers.

* Re-vamped Iris keymap.

* changes

* minor keymap change

This was a minor keymap change to use mod_tap for the backspace key:
ALT when held, BSPC when tapped.

* Added Fourier keymap

* Keymap Cleanup

Moved KC_ESC to KC_CAPS, and changed KC_ESC to KC_GRV
This is because of muscle memory, I kept hitting ESC when trying to hit TAB.

* Keymap Adjustments

Swapped Caps/Esc, put Caps in Raise/Lower layers, put Grv in normal
Esc position. Adjusted the readme.md to reflect these changes.

* minor tweaks

Added code to disable red ProMicro LEDs after flashing.

* Clean-up

* Corrections to keymap.

Fixed a foul-up in the Zen keymap where the lctrl was where the LOWER
should have been.

* Changes to make this fall in line with the new Layout features

* Moving to LAYOUTs for 4x12 boards

* fixed config.h file

* standardization changes

* Reverted Atreus62 keymap to LAYOUT format

* Switch Preonic and Nyquist to ortho_5x12

* Corrections to config.h

* config.h file tweaks

* config.h file tweaks
2018-05-18 15:32:50 -07:00
Harley Laue
8cdb4a9150 Add Contra layout & cleanup a few things (#2998)
* Have Del become backspace on the bottom layer for grid layouts
* Fix modtap for ESC
* Add sleep to Adjust layer
2018-05-18 13:58:23 -07:00
skullY
e721deb4a6 trigger api update 2018-05-18 12:56:26 -07:00
MechMerlin
2411652a33 remove a KC-NO in row 1 (#2994) 2018-05-18 07:45:06 -07:00
MechMerlin
effc3e380f Add QMK Configurator support and remove Layouts definitions (#2977)
* Add QMK Configurator support and remove userspace definitions

* fix that build breakage

* Unsupport community layouts but use standard layouts
2018-05-17 15:21:06 -07:00
GreenShadowMaker
227c3b909a Add copy of knops/mini default keymap with comments for new user (#2989) 2018-05-17 07:05:34 -07:00
139 changed files with 4435 additions and 918 deletions

View File

@@ -210,8 +210,8 @@ endif
USER_PATH := users/$(USER_NAME)
-include $(USER_PATH)/rules.mk
ifneq ("$(wildcard users/$(KEYMAP)/config.h)","")
CONFIG_H += users/$(KEYMAP)/config.h
ifneq ("$(wildcard $(USER_PATH)/config.h)","")
CONFIG_H += $(USER_PATH)/config.h
endif

1
docs/CNAME Normal file
View File

@@ -0,0 +1 @@
docs.qmk.fm

View File

@@ -3,7 +3,7 @@
#include "quantum.h"
#define KEYMAP( \
#define LAYOUT( \
k01, k02, k03, \
k04, k05, k06 \
) \
@@ -11,6 +11,4 @@
{ k02, k03, k06, k05, k04, k01 } \
}
#define KC_KEYMAP(k01, k02, k03, k04, k05, k06) KEYMAP(KC_##k01, KC_##k02, KC_##k03, KC_##k04, KC_##k05, KC_##k06)
#endif

View File

@@ -1,28 +1,22 @@
#include "6ball.h"
#include QMK_KEYBOARD_H
#define _MAIN 0
#define _FN 1
#define KC_ KC_TRNS
#define KC_CAPW LGUI(LSFT(KC_3)) // Capture whole screen
#define KC_CPYW LGUI(LSFT(LCTL(KC_3))) // Copy whole screen
#define KC_CAPP LGUI(LSFT(KC_4)) // Capture portion of screen
#define KC_CPYP LGUI(LSFT(LCTL(KC_4))) // Copy portion of screen
#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] = {
[_MAIN] = KC_KEYMAP(
F , X0 ,LCTL,
R , D , M
[_MAIN] = LAYOUT(
KC_F, KC_X0, KC_LCTL,
KC_R, KC_D, KC_M
),
[_FN] = KC_KEYMAP(
F , ,RHUI,
RTOG,RMOD,RHUD
[_FN] = LAYOUT(
KC_F, KC_TRNS, RGB_HUI,
RGB_TOG, RGB_MOD, RGB_HUD
)
};

View File

@@ -1,4 +1,4 @@
#include QMK_KEYBOARD_H
#include QMK_KEYBOARD_H
// These are all aliases for the function layers.
#define _L0 0
@@ -9,25 +9,25 @@
#define _______ KC_TRNS
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_L0] = LAYOUT_ansi(
[_L0] = LAYOUT(
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_SCLN, KC_ENT, \
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, MO(_L1), \
KC_LCTL, KC_LGUI, KC_LALT, TG(_L3), KC_SPC, KC_SPC, MO(_L2), KC_RALT, KC_APP, KC_RCTRL), \
[_L2] = LAYOUT_ansi(
[_L2] = LAYOUT(
_______, KC_VOLD, KC_VOLU, KC_MUTE, RESET, _______, KC_CALC, KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, \
KC_CAPS, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_INS, _______, \
_______, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_DEC, BL_INC, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______), \
[_L1] = LAYOUT_ansi(
[_L1] = LAYOUT(
KC_GRV, 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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, \
_______, _______, _______, _______, _______, KC_QUOT, KC_SLSH, KC_LBRC, KC_RBRC, KC_BSLS, KC_RSFT, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______), \
[_L3] = LAYOUT_ansi(
[_L3] = LAYOUT(
_______, _______, _______, KC_7, KC_8, KC_9, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, KC_4, KC_5, KC_6, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, KC_1, KC_2, KC_3, _______, _______, _______, _______, _______, _______, \

View File

@@ -13,25 +13,25 @@
#define _______ KC_TRNS
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_MA] = LAYOUT_ansi(
[_MA] = LAYOUT(
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_SCLN, KC_ENT, \
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, MO(_FN1), \
KC_LCTL, KC_LGUI, KC_LALT, MO(_PN), KC_SPC, KC_SPC, MO(_FN), KC_RALT, KC_APP, KC_RCTRL), \
[_FN] = LAYOUT_ansi(
[_FN] = LAYOUT(
_______, KC_VOLD, KC_VOLU, KC_MUTE, RESET, _______, KC_CALC, KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, \
KC_CAPS, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_INS, _______, \
_______, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_DEC, BL_INC, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______), \
[_FN1] = LAYOUT_ansi(
[_FN1] = LAYOUT(
KC_GRV, 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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, \
_______, _______, _______, _______, _______, KC_QUOT, KC_SLSH, KC_LBRC, KC_RBRC, KC_BSLS, KC_RSFT, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______), \
[_PN] = LAYOUT_ansi(
[_PN] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, \
RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, \

View File

@@ -19,19 +19,19 @@ enum custom_keycodes {
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_MA] = LAYOUT_ansi(
[_MA] = LAYOUT(
KC_GESC, 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_SCLN, KC_ENT, \
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \
KC_LCTL, KC_LGUI, KC_LALT, MO(_LO), KC_SPC, KC_SPC, MO(_RA), KC_RALT, KC_APP, KC_RCTRL), \
[_LO] = LAYOUT_ansi(
[_LO] = LAYOUT(
KC_GRV, 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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, \
_______, CTRLZ, CTRLX, CTRLC, CTRLV, _______, _______, KC_QUOT, KC_LBRC, KC_RBRC, KC_BSLS, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, RESET), \
[_RA] = LAYOUT_ansi(
[_RA] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_UP, KC_PGDN, _______, _______, _______, \
KC_CAPS, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MPLY, KC_PSCR, \

View File

@@ -4,11 +4,11 @@
## Support
Keyboard Maintainer: [Maarten Dekkers](https://github.com/maartenwut)
Hardware Supported: Atom47 rev3
Hardware Supported: Atom47 rev2/rev3
Hardware Availability: [GeekHack.com Group Buy](https://geekhack.org/index.php?topic=93447.msg2545221)
## Features
## Features (rev3 and up)
- QMK Firmware
- 6 Underglow RGB leds
- In-switch leds
@@ -19,7 +19,7 @@ Hardware Availability: [GeekHack.com Group Buy](https://geekhack.org/index.php?t
- CapsLock indicator
## Build
To build the default keymap, simply run `make atom47:default`.
To build the default keymap for the latest revision, simply run `make atom47:default`. Specifiy the revision like so: `make atom47/rev3: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.

View File

@@ -1,12 +1,11 @@
{
"keyboard_name": "Atom47",
"url": "",
"maintainer": "qmk",
"bootloader": "",
"url": "https://atomkb.eu/atom47",
"maintainer": "Maarten Dekkers",
"width": 13,
"height": 4,
"layouts": {
"LAYOUT_ansi": {
"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":6, "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, "w":1.25}, {"x":1.25, "y":1}, {"x":2.25, "y":1}, {"x":3.25, "y":1}, {"x":4.25, "y":1}, {"x":5.25, "y":1}, {"x":6.25, "y":1}, {"x":7.25, "y":1}, {"x":8.25, "y":1}, {"x":9.25, "y":1}, {"x":10.25, "y":1}, {"x":11.25, "y":1, "w":1.75}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2, "w":1.25}, {"x":12, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3, "w":1.75}, {"x":6, "y":3, "w":2.75}, {"x":8.75, "y":3}, {"x":9.75, "y":3}, {"x":10.75, "y":3}, {"x":11.75, "y":3, "w":1.25}]
}
}

View File

@@ -6,7 +6,7 @@
// readability
#define XXX KC_NO
#define LAYOUT_ansi( \
#define LAYOUT( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1c, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2c, \

View File

@@ -15,8 +15,8 @@ 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 REV1_CONFIG_H
#define REV1_CONFIG_H
#ifndef REV3_CONFIG_H
#define REV3_CONFIG_H
#include "config_common.h"
@@ -26,7 +26,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0003
#define MANUFACTURER Vortex
#define PRODUCT Core
#define DESCRIPTION Atom47 PCB for the Vortex Core Rev.1
#define DESCRIPTION Atom47 PCB for the Vortex Core Rev.3
/* key matrix size */
#define MATRIX_ROWS 4

View File

@@ -1,12 +1,11 @@
{
"keyboard_name": "Atom47",
"url": "",
"maintainer": "qmk",
"bootloader": "",
"url": "https://atomkb.eu/atom47",
"maintainer": "Maarten Dekkers",
"width": 13,
"height": 4,
"layouts": {
"LAYOUT_ansi": {
"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":6, "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, "w":1.25}, {"x":1.25, "y":1}, {"x":2.25, "y":1}, {"x":3.25, "y":1}, {"x":4.25, "y":1}, {"x":5.25, "y":1}, {"x":6.25, "y":1}, {"x":7.25, "y":1}, {"x":8.25, "y":1}, {"x":9.25, "y":1}, {"x":10.25, "y":1}, {"x":11.25, "y":1, "w":1.75}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2, "w":1.25}, {"x":12, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3, "w":1.75}, {"x":6, "y":3, "w":2.75}, {"x":8.75, "y":3}, {"x":9.75, "y":3}, {"x":10.75, "y":3}, {"x":11.75, "y":3, "w":1.25}]
}
}

View File

@@ -1,4 +1,4 @@
#include "rev1.h"
#include "rev3.h"
#include "led.h"
void matrix_init_kb(void) {

View File

@@ -1,12 +1,12 @@
#ifndef ATOM47_REV1_H
#define ATOM47_REV1_H
#ifndef ATOM47_REV3_H
#define ATOM47_REV3_H
#include "quantum.h"
// readability
#define XXX KC_NO
#define LAYOUT_ansi( \
#define LAYOUT( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1c, \
k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \

View File

@@ -62,5 +62,5 @@ AUDIO_ENABLE = no
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
DEFAULT_FOLDER = atom47/rev2
DEFAULT_FOLDER = atom47/rev3

View File

@@ -14,16 +14,25 @@
CHANGELOG:
0.1 - Initial commit. Based off of Profet's default keymap.
0.2 - Converted to a more Planck/Preonic keymap style file with
0.2 - Converted to a more Planck/Preonic keymap style file with
persistent layers enabled. Renamed layers to reflect OLKB maps.
Added a TODO list.
0.3 - Moved location of media & volume keys. Added Print Screen,
Scroll Lock and Pause keys. Added a WOW gaming layer that
changes the location of Ctrl & Alt to the thumb keys. Added
readme.
0.4 - After more useage, I realized that the ESC key was in the way
of my muscle memory (gee, thanks, Planck!) so I moved it to
the normal Caps Lock position, and moved Caps Lock to the same
position on the RAISE and LOWER layers. Added code to turn off
the Pro Micro LEDs after flashing.
0.5 - Converted keymap to LAYOUT standard.
TODO:
* Make the layout more efficient, even if it means changing the RAISE
and LOWER functionality.
* Add legends in comments for each layer. Maybe.
* Add a gaming layer.
*/
@@ -58,54 +67,57 @@ enum atreus52_keycodes {
#define _______ KC_TRNS
#define XXXXXXX KC_NO
// Aliases to make the keymap clearer.
#define CTL_ENT CTL_T(KC_ENT)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_DVORAK] = LAYOUT( /* dvorak */
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
[_DVORAK] = LAYOUT ( /* dvorak */
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH,
KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS,
KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS,
KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT,
KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, KC_BSPC, KC_LGUI, KC_ENT, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_RCTL
),
[_QWERTY] = LAYOUT( /* qwerty */
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
[_QWERTY] = LAYOUT ( /* qwerty */
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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, KC_BSPC, KC_LGUI, KC_ENT, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_RCTL
),
[_COLEMAK] = LAYOUT( /* colemak */
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
[_COLEMAK] = LAYOUT ( /* colemak */
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_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL,
KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, KC_BSPC, KC_LGUI, KC_ENT, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_RCTL
),
[_WOW] = LAYOUT( /* Dvorak with minor modifications for playing World of Warcraft */
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH,
KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS,
KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT,
KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, KC_BSPC, KC_LALT, CTL_T(KC_ENT), KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT
[_WOW] = LAYOUT ( /* Dvorak with minor modifications for playing World of Warcraft */
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH,
KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS,
KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT,
KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, KC_BSPC, KC_LALT, CTL_ENT, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT
),
[_LOWER] = LAYOUT(
[_LOWER] = LAYOUT (
KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12,
KC_TILD, KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PIPE,
_______, _______, _______, _______, _______, _______, _______, _______, KC_PLUS, KC_LCBR, KC_RCBR, _______,
_______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______,
KC_CAPS, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, KC_PLUS, KC_LCBR, KC_RCBR, _______,
_______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______,
_______, _______, KC_HOME, KC_END, _______, KC_DEL, _______, _______, KC_INS, _______, KC_PGUP, KC_PGDN, _______, _______
),
[_RAISE] = LAYOUT(
[_RAISE] = LAYOUT (
KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12,
KC_TILD, KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BSLS,
_______, _______, _______, _______, _______, _______, _______, _______, KC_EQL, KC_LBRC, KC_RBRC, _______,
_______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______,
KC_CAPS, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, KC_EQL, KC_LBRC, KC_RBRC, _______,
_______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______,
_______, _______, KC_HOME, KC_END, _______, KC_DEL, _______, _______, KC_INS, _______, KC_PGUP, KC_PGDN, _______, _______
),
[_ADJUST] = LAYOUT(
[_ADJUST] = LAYOUT (
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, QWERTY, COLEMAK, DVORAK, _______, WOW,

View File

@@ -0,0 +1,131 @@
# Xyverz's Atreus62 Keymap
## About this keymap:
This is the Atreus62 keyboard layout by Xyverz aka u/Zrevyx on r/mk. I've blatantly stolen what works for me from the Planck and Preonic layouts and modified this file to fit me. Initial credet goes to u/profet23 for the doing all the work and adding this keyboard to QMK in the first place.
I've got Dvorak, Qwerty, and Colemak layouts at this time, with the possibility of adding more in the future.
The bottom row is fairly Kinesis-ish since the Contour and Advantage keyboards have been my daily drivers for the last 17 years. I hope You can get some enjoyment out of this layout should you chose it!
### CHANGELOG:
#### 0.1
* Initial commit. Based off of Profet's default keymap.
#### 0.2
* Converted to a more Planck/Preonic keymap style file with persistent layers enabled. Renamed layers to reflect OLKB maps.
* Added a TODO list.
#### 0.3
* Moved location of media & volume keys. Added Print Screen, Scroll Lock and Pause keys.
* Added a WOW gaming layer that changes the location of Ctrl & Alt to the thumb keys. Right thumb is Ctrl when held, Enter when tapped.
* Added readme.
#### 0.4
* Moved location of Escape key to Caps Lock position. Moved Caps Lock to same position on Raise/Lower Layers.
* Put Tilde/Grave in the upper-left corner
* Added code to turn off the red LEDs on the Pro Micro after flashing. They were annoying me.
### TODO:
* Make the layout more efficient, even if it means changing the RAISE
and LOWER functionality.
* Add legends in comments for each layer. Maybe.
* Enjoy this revision; figure out new things later.
### Layer 0: Dvorak layer
,-----------------------------------------. ,-----------------------------------------.
| Grv | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | \ |
|------+------+------+------+------+------| |------+------+------+------+------+------|
| Tab | ' | , | . | P | Y | | F | G | C | R | L | / |
|------+------+------+------+------+------| |------+------+------+------+------+------|
| Esc | A | O | E | U | I | | D | H | T | N | S | - |
|------+------+------+------+------+------|------.,------|------+------+------+------+------+------|
| Shft | ; | Q | J | K | X | Gui ||Enter | B | M | W | V | Z | Shft |
|------+------+------+------+------+------| || |------+------+------+------+------+------|
| Ctrl | Alt | Left | Rght | LOWER| BkSp |------'`------| Spc | RAISE| Up | Down | Gui | Ctrl |
`-----------------------------------------' `-----------------------------------------'
### Layer 1: QWERTY layer
,-----------------------------------------. ,-----------------------------------------.
| Grv | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - |
|------+------+------+------+------+------| |------+------+------+------+------+------|
| Tab | Q | W | E | R | T | | Y | U | I | O | P | Del |
|------+------+------+------+------+------| |------+------+------+------+------+------|
| Esc | A | S | D | F | G | | D | H | T | N | S | ' |
|------+------+------+------+------+------|------.,------|------+------+------+------+------+------|
| Shft | Z | X | C | V | B | Gui ||Enter | N | M | , | . | / | Shft |
|------+------+------+------+------+------| || |------+------+------+------+------+------|
| Ctrl | Alt | Left | Rght | LOWER| BkSp |------'`------| Spc | RAISE| Up | Down | Gui | Ctrl |
`-----------------------------------------' `-----------------------------------------'
### Keymap 2: Colemak layer
,-----------------------------------------. ,-----------------------------------------.
| Grv | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - |
|------+------+------+------+------+------| |------+------+------+------+------+------|
| Tab | Q | W | F | P | G | | J | U | U | Y | ; | Del |
|------+------+------+------+------+------| |------+------+------+------+------+------|
| Esc | A | R | S | T | D | | H | N | E | I | O | ' |
|------+------+------+------+------+------|------.,------|------+------+------+------+------+------|
| Shft | Z | X | C | V | B | Gui ||Enter | K | M | , | . | / | Shft |
|------+------+------+------+------+------| || |------+------+------+------+------+------|
| Ctrl | Alt | Left | Rght | LOWER| BkSp |------'`------| Spc | RAISE| Up | Down | Gui | Ctrl |
`-----------------------------------------' `-----------------------------------------'
### Keymap 3: WoW gaming layer
,-----------------------------------------. ,-----------------------------------------.
| Esc | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | \ |
|------+------+------+------+------+------| |------+------+------+------+------+------|
| Tab | ' | , | . | P | Y | | F | G | C | R | L | / |
|------+------+------+------+------+------| |------+------+------+------+------+------|
| Caps | A | O | E | U | I | | D | H | T | N | S | - |
|------+------+------+------+------+------|------.,------|------+------+------+------+------+------|
| Shft | ; | Q | J | K | X | Alt ||Ctrl/ | B | M | W | V | Z | Shft |
|------+------+------+------+------+------| ||Enter |------+------+------+------+------+------|
| Ctrl | Alt | Left | Rght | LOWER| BkSp |------'`------| Spc | RAISE| Up | Down | Gui | Ctrl |
`-----------------------------------------' `-----------------------------------------'
### Keymap 4: LOWER layer
,-----------------------------------------. ,-----------------------------------------.
| F11 | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F12 |
|------+------+------+------+------+------| |------+------+------+------+------+------|
| ~ | ` | | | | | | | | | | | | |
|------+------+------+------+------+------| |------+------+------+------+------+------|
| Caps | | Mute | Vol- | Vol+ | | | | | + | { | } | |
|------+------+------+------+------+------|------.,------|------+------+------+------+------+------|
| | | Prev | Play | Next | | || | | | PScr | ScLk | Pause| |
|------+------+------+------+------+------| || |------+------+------+------+------+------|
| | | Home | End | | Del |------'`------| Ins | | PgUp | PgDn | | |
`-----------------------------------------' `-----------------------------------------'
### Keymap 5: RAISE layer
,-----------------------------------------. ,-----------------------------------------.
| F11 | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F12 |
|------+------+------+------+------+------| |------+------+------+------+------+------|
| ~ | ` | | | | | | | | | | | \ |
|------+------+------+------+------+------| |------+------+------+------+------+------|
| Caps | | Mute | Vol- | Vol+ | | | | | = | [ | ] | |
|------+------+------+------+------+------|------.,------|------+------+------+------+------+------|
| | | Prev | Play | Next | | || | | | PScr | ScLk | Pause| |
|------+------+------+------+------+------| || |------+------+------+------+------+------|
| | | Home | End | | Del |------'`------| Ins | | PgUp | PgDn | | |
`-----------------------------------------' `-----------------------------------------'
### Keymap 6: ADJUST layer
,-----------------------------------------. ,-----------------------------------------.
| | | | | | | | | | | | | |
|------+------+------+------+------+------| |------+------+------+------+------+------|
| |RESET | | | | | | | | | | | |
|------+------+------+------+------+------| |------+------+------+------+------+------|
| | | | | | | | |Qwerty|Colemk|Dvorak| | WoW |
|------+------+------+------+------+------|------.,------|------+------+------+------+------+------|
| | | | | | | || | | | | | | |
|------+------+------+------+------+------| || |------+------+------+------+------+------|
| | | | | | |------'`------| | | | | | |
`-----------------------------------------' `-----------------------------------------'

View File

@@ -12,4 +12,4 @@ Make example for this keyboard (after setting up your build environment):
make bigseries: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/install-build-tools) then the [make instructions](https://docs.qmk.fm/build-compile-instructions) for more information.

View File

@@ -2,77 +2,140 @@
// It's based on the default keymap, but Dvorak!
#include "66.h"
#include "action_layer.h"
#include "eeconfig.h"
// Used for SHIFT_ESC
#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT))
extern keymap_config_t keymap_config;
// 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.
#define _BL 0
#define _FL 1
#define _RS 2
#define _QWERTY 0
#define _COLEMAK 1
#define _DVORAK 2
#define _FL 3
#define _CL 4
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap _BL: (Base Layer) Default Layer
* ,--------------------------------------------------------------------------. ,----.
* |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| [| ]| \| BS| |PGUP|
* |--------------------------------------------------------------------------| |----|
* | Tab| '| ,| .| P| Y| F| G| C| R| L| /| =| \| |PGDN|
* |--------------------------------------------------------------------------| `----'
* |_FL/Caps| A| O| E| U| I| H| D| H| T| N| S| - | Ent|
* |-----------------------------------------------------------------------------.
* |Shift| BS| ;| Q| J| K| X| B| M| W| V| Z| BS|Shift| UP|
* |------------------------------------------------------------------------|----|----.
* | Ctrl| Gui| Alt| MHen| Space| Space| Hen| Alt| Ctrl| _FL|LEFT|DOWN|RGHT|
* `----------------------------------------------------------------------------------'
*/
[_BL] = LAYOUT(
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_GRV, KC_BSPC, KC_PGUP, \
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSLS, KC_PGDN, \
LT(_FL, KC_CAPS), KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_NUHS, KC_ENT, \
KC_LSFT, KC_RO, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_SLSH, KC_RSFT, KC_UP, \
KC_LCTL, KC_LALT, KC_LGUI, KC_MHEN, KC_SPC, KC_SPC, KC_HENK, KC_RGUI, KC_RCTL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT),
/* Keymap _FL: Function Layer
* ,--------------------------------------------------------------------------. ,----.
* | `| F1| F2| F3| F4| F5| F6| F7| F8| F9| F10| F11| F12| | Del| |BLIN|
* |--------------------------------------------------------------------------| |----|
* | | | | | | | | |PScr|SLck|Paus| | | | |BLDE|
* |--------------------------------------------------------------------------| `----'
* | | | _RS| | | | | | | | | | | |
* |-----------------------------------------------------------------------------.
* | | | | | | | | | | | | | | |PGUP|
* |------------------------------------------------------------------------|----|----.
* | | | | | | | | | | _FL|HOME|PGDN| END|
* `----------------------------------------------------------------------------------'
*/
[_FL] = LAYOUT(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_DEL, BL_STEP, \
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
KC_TRNS, KC_TRNS, MO(_RS), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, \
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FL), KC_HOME, KC_PGDN, KC_END),
/* Keymap _RS: Reset layer
* ,--------------------------------------------------------------------------. ,----.
* | | | | | | | | | | | | | | | RGB| |VAL+|
* |--------------------------------------------------------------------------| |----|
* | | | | |RESET| | | | | | | | | | |VAL-|
* |--------------------------------------------------------------------------| `----'
* | | | _RS| | | | | | | | | | | |
* |-----------------------------------------------------------------------------.
* | | | | | | | | | | | | | | |SAT+|
* |------------------------------------------------------------------------|----|----.
* | | | | | | | | | | _FL|HUE-|SAT-|HUE+|
* `----------------------------------------------------------------------------------'
*/
[_RS] = LAYOUT(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_VAI, \
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAD, \
KC_TRNS, KC_TRNS, MO(_RS), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
MO(_FL), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FL), RGB_SAI, \
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUD, RGB_SAD, RGB_HUI),
enum planck_keycodes {
QWERTY = SAFE_RANGE,
COLEMAK,
DVORAK
};
// Useful defines
#define _______ KC_TRNS
#define XXXXXXX KC_NO
#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT))
#define FN_CAPS LT(_FL, KC_CAPS) // Tap for Caps Lock, Hold for Function Layer
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap _QWERTY: Base Layer (Default Layer)
* ,-----------------------------------------------------------. ,---.
* |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| BS| |PgU|
* |-----------------------------------------------------------| |---|
* |HpTab| Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |PgD|
* |-----------------------------------------------------------| `---'
* |FnCaps| A| S| D| F| G| H| J| K| L| ;| '| | Ent|
* |--------------------------------------------------------------.
* |Shift| | Z| X| C| V| B| N| M| ,| .| /|Shift| Fn| Up|
* |------------------------------------------------------------------.
* |Ctrl|Gui|Alt | | Space| Space| |Alt |Gui |Ctrl|Left|Down|Rgt|
* `------------------------------------------------------------------'
*/
[_QWERTY] = LAYOUT (
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_GRV, 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_BSLS, KC_PGDN, \
FN_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, XXXXXXX, KC_ENT, \
KC_LSFT, XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_SLSH, KC_RSFT, KC_UP, \
KC_LCTL, KC_LALT, KC_LGUI, XXXXXXX, KC_SPC, KC_SPC, XXXXXXX, KC_RGUI, KC_RCTL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT),
/* Keymap _COLEMAK: Base Layer
* ,-----------------------------------------------------------. ,---.
* |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| `| |PgU|
* |-----------------------------------------------------------| |---|
* |HpTab| Q| W| F| P| G| J| L| U| Y| ;| [| ]| BS| |PgD|
* |-----------------------------------------------------------| `---'
* |FnCaps| A| R| S| T| D| H| N| E| I| O| '| | Ent|
* |--------------------------------------------------------------.
* |Shift| | Z| X| C| V| B| K| M| ,| .| /|Shift| Fn| Up|
* |------------------------------------------------------------------.
* |Ctrl|Gui|Alt | | Space| Space| |Alt |Gui |Ctrl|Left|Down|Rgt|
* `------------------------------------------------------------------'
*/
[_COLEMAK] = LAYOUT (
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_GRV, KC_BSPC, KC_PGUP, \
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, \
FN_CAPS, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, XXXXXXX, KC_ENT, \
KC_LSFT, XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_SLSH, KC_RSFT, KC_UP, \
KC_LCTL, KC_LALT, KC_LGUI, XXXXXXX, KC_SPC, KC_SPC, XXXXXXX, KC_RGUI, KC_RCTL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT),
/* Keymap _DVORAK: Base Layer
* ,-----------------------------------------------------------. ,---.
* |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| [| ]| \| `| |PgU|
* |-----------------------------------------------------------| |---|
* |HpTab| '| ,| .| P| Y| F| G| C| R| L| /| =| BS| |PgD|
* |-----------------------------------------------------------| `---'
* |FnCaps| A| O| E| U| I| D| H| T| N| S| -| | Ent|
* |--------------------------------------------------------------.
* |Shift| | ;| Q| J| K| X| B| M| W| V| Z|Shift| Fn| Up|
* |------------------------------------------------------------------.
* |Ctrl|Gui|Alt | | Space| Space| |Alt |Gui |Ctrl|Left|Down|Rgt|
* `------------------------------------------------------------------'
*/
[_DVORAK] = LAYOUT (
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_GRV, KC_BSPC, KC_PGUP, \
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSLS, KC_PGDN, \
FN_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, XXXXXXX, KC_ENT, \
KC_LSFT, XXXXXXX, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_SLSH, KC_RSFT, KC_UP, \
KC_LCTL, KC_LALT, KC_LGUI, XXXXXXX, KC_SPC, KC_SPC, XXXXXXX, KC_RGUI, KC_RCTL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT),
/* Keymap _FL: Function Layer
*/
[_FL] = LAYOUT (
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL, BL_STEP, \
_______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, _______, _______, \
_______, _______, MO(_CL), _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, _______, _______, KC_PGUP, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END),
/* Keymap _CL: Control layer
*/
[_CL] = LAYOUT (
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_VAI, \
_______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, \
_______, _______, MO(_CL), _______, _______, _______, _______, QWERTY, COLEMAK, DVORAK, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAI, \
_______, _______, _______, _______, RGB_MOD, RGB_MOD, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_HUI),
};
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) {
persistent_default_layer_set(1UL<<_QWERTY);
}
return false;
break;
case COLEMAK:
if (record->event.pressed) {
persistent_default_layer_set(1UL<<_COLEMAK);
}
return false;
break;
case DVORAK:
if (record->event.pressed) {
persistent_default_layer_set(1UL<<_DVORAK);
}
return false;
break;
}
return true;
}

View File

@@ -0,0 +1,3 @@
#include "../config.h"
#define TAPPING_TERM 600 // ms

View File

@@ -0,0 +1,30 @@
losinggeneration's Contra Layout
============================
This build uses the MIT layout.
See description of the layout in the common folder
[here](../../../../users/losinggeneration/README.md)
## Features
- Adjust
- Removed AGSwap, AGNorm, & Del
- Added Caps Lock, F1-F12 in a 4x3 grid, arrow cluster,
and layer transitions to the new layers.
- Moved Reset & Audio control to the right side
## Layouts
### Adjust (Lower + Raise)
```
,-----------------------------------------------------------------------------------.
| | F1 | F2 | F3 | F4 | | RESET| Game |Numpad|Mouse | |Sleep |
|------+------+------+------+------+------+------+------+------+------+------+------|
| | F5 | F6 | F7 | F8 | | |Qwerty|Colmak|Workmn|Dvorak| |
|------+------+------+------+------+------+------+------+------+------+------+------|
| CAPS | F9 | F10 | F11 | F12 | | | | | | Up | |
|------+------+------+------+------+-------------+------+------+------+------+------|
| | | | | | | | XXX | Left | Down |Right |
`-----------------------------------------------------------------------------------'
```

View File

@@ -0,0 +1,27 @@
/*
Copyright 2017 Danny Nguyen <danny@hexwire.com>
Copyright 2018 Harley Laue <losinggeneration@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
long with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef CONFIG_USER_H
#define CONFIG_USER_H
#include QMK_KEYBOARD_CONFIG_H
#define USE_MIT_LAYOUT
#define TAPPING_TERM 250
#endif

View File

@@ -0,0 +1,40 @@
#include QMK_KEYBOARD_H
#include "losinggeneration-config.h"
#include "losinggeneration-keymap.h"
extern keymap_config_t keymap_config;
#define MT_CAPS LSFT_T(KC_CAPS)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = CATMAP( QWERTY_LAYER ),
[_COLEMAK] = CATMAP( COLEMAK_LAYER ),
[_WORKMAN] = CATMAP( WORKMAN_LAYER ),
[_DVORAK] = CATMAP( DVORAK_LAYER ),
[_GAME] = CATMAP( GAME_LAYER ),
[_NUMPAD] = CATMAP( NUMPAD_LAYER ),
[_MOUSE] = CATMAP( MOUSE_LAYER ),
[_LOWER] = CATMAP( LOWER_LAYER ),
[_RAISE] = CATMAP( RAISE_LAYER ),
/* Adjust (Lower + Raise)
* ,-----------------------------------------------------------------------------------.
* | | F1 | F2 | F3 | F4 | | RESET| Game |Numpad|Mouse | |Sleep |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | F5 | F6 | F7 | F8 | | |Qwerty|Colmak|Workmn|Dvorak| |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | CAPS | F9 | F10 | F11 | F12 | | | | | | Up | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | XXX | Left | Down |Right |
* `-----------------------------------------------------------------------------------'
*/
[_ADJUST] = CATMAP( \
_______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , _______, RESET , TO_GAME, TO_NUM , TO_MS , _______, KC_SLEP, \
_______, KC_F5 , KC_F6 , KC_F7 , KC_F8 , _______, _______, QWERTY , COLEMAK, WORKMAN, DVORAK , _______, \
MT_CAPS, KC_F9 , KC_F10, KC_F11 , KC_F12 , _______, _______, _______, _______, _______, KC_UP , _______, \
_______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT \
)
};

View File

@@ -0,0 +1,17 @@
# 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
#
AUDIO_ENABLE = no # Audio output on port C6
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
COMMAND_ENABLE = no # Commands for debug and configuration
CONSOLE_ENABLE = no # Console for debug(+400)
MIDI_ENABLE = no # MIDI controls
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
ifndef QUANTUM_DIR
include ../../../../Makefile
endif

View File

@@ -43,11 +43,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
#define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 }
#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B7, B5, B4, D7, D6, B3, B0 }
#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B7, F4, B4, D7, D6, B3, B0 }
#define UNUSED_PINS
/* Backlight Setup */
#define BACKLIGHT_PIN F4
#define BACKLIGHT_PIN B5
#define BACKLIGHT_LEVELS 6
//#define BACKLIGHT_BREATHING

View File

@@ -1,19 +1,50 @@
#include "do60.h"
#include "led.h"
//extern inline void do60_caps_led_on(void);
//extern inline void do60_bl_led_on(void);
//extern inline void do60_caps_led_off(void);
//extern inline void do60_bl_led_off(void);
extern inline void setdefaultrgb(void);
extern inline void do60_caps_led_on(void);
extern inline void do60_bl_led_on(void);
void matrix_init_kb(void) {
// Keyboard start-up code goes here
// Runs once when the firmware starts up
matrix_init_user();
led_init_ports();
setdefaultrgb();
};
extern inline void do60_caps_led_off(void);
extern inline void do60_bl_led_off(void);
void matrix_scan_kb(void) {
// Looping keyboard code goes here
// This runs every cycle (a lot)
matrix_scan_user();
};
void led_init_ports(void) {
// Set caps lock LED pin as output
DDRB |= (1 << 2);
// Default to off
PORTB |= (1 << 2);
}
void led_set_kb(uint8_t usb_led) {
if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
do60_caps_led_on();
} else {
do60_caps_led_off();
}
//if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
// do60_caps_led_on();
//} else {
// do60_caps_led_off();
//}
led_set_user(usb_led);
//led_set_user(usb_led);
if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
// Turn capslock on
PORTB &= ~(1<<2);
} else {
// Turn capslock off
PORTB |= (1<<2);
}
}

View File

@@ -7,21 +7,22 @@
/* DO60 LEDs
* GPIO pads
* 0 F7 not connected
* 1 F6 RGB PWM Underglow
* 2 F5 Backlight LED
* 3 F4 not connected
* 1 F6 not connected
* 2 F5 RGB PWM Underglow
* 3 F4 Backlight LED
* B2 Capslock LED
* B0 not connected
*/
/*
inline void do60_caps_led_on(void) { DDRB |= (1<<2); PORTB &= ~(1<<2); }
inline void do60_bl_led_on(void) { DDRF |= (1<<4); PORTF &= ~(1<<4); }
inline void do60_caps_led_off(void) { DDRB &= ~(1<<2); PORTB &= ~(1<<2); }
inline void do60_bl_led_off(void) { DDRF &= ~(1<<4); PORTF &= ~(1<<4); }
*/
inline void setdefaultrgb(void){ rgblight_sethsv(100,100,100); }
/* Do60 Keymap Definition Macro */
#define LAYOUT_all( \

View File

@@ -8,21 +8,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, \
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, \
KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, KC_NO, KC_UP, KC_SLSH, \
KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, KC_SLSH, KC_UP, KC_SLSH, \
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_NO, KC_BSPC, KC_RGUI, F(0), KC_LEFT, KC_DOWN, KC_RIGHT),
// 1: Function Layer
[1] = LAYOUT_all(
RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, \
KC_NO, RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, KC_HOME,KC_CALC,KC_NO, KC_INS, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_DEL, \
KC_NO, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SMOD, KC_END, KC_PGDN,KC_NO, KC_NO, KC_NO, KC_HOME, KC_PGUP, KC_NO, KC_ENT, \
KC_NO, RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, BL_TOGG,BL_ON, BL_INC, KC_INS, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_DEL, \
KC_NO, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SMOD, BL_STEP,BL_OFF, BL_DEC, KC_NO, KC_NO, KC_HOME, KC_PGUP, KC_NO, KC_ENT, \
KC_LSFT, KC_NO, KC_NO, KC_APP, BL_STEP, KC_NO, KC_NO, KC_VOLD,KC_VOLU,KC_MUTE, KC_END, KC_RSFT, KC_NO , KC_PGUP, KC_INS, \
KC_LCTL, KC_LGUI, KC_LALT, KC_BSPC,KC_SPC, KC_DEL, KC_RGUI, F(0), KC_HOME, KC_PGDOWN,KC_END),
};
// Custom Actions
const uint16_t PROGMEM fn_actions[] = {
const uint16_t PROGMEM fn_actions[] = {
[0] = ACTION_LAYER_MOMENTARY(1), // to Fn overlay
};
@@ -44,4 +44,4 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
// Loop
void matrix_scan_user(void) {
// Empty
};
};

View File

@@ -8,7 +8,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_NO, KC_BSPC, \
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, \
KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_UP, \
KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_SLSH, \
KC_LCTL, KC_LGUI, KC_LALT, KC_BSPC,KC_SPC, KC_DEL, KC_RGUI, F(0), KC_LEFT, KC_DOWN, KC_RIGHT),
// 1: Function Layer

View File

@@ -18,7 +18,7 @@
{ K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, KC_NO }, \
}
#define LAYOUT_ansi( \
#define LAYOUT_60_ansi( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \

View File

@@ -9,7 +9,7 @@
"layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}]
},
"LAYOUT_ansi": {
"LAYOUT_60_ansi": {
"layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}]
},

View File

@@ -1,4 +1,4 @@
#include "e6v2.h"
#include QMK_KEYBOARD_H
// 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.

View File

@@ -1,14 +1,14 @@
#include "e6v2.h"
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_ansi(
[0] = LAYOUT_60_ansi(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_RALT, MO(1), KC_MENU, KC_RCTL
),
[1] = LAYOUT_ansi(
[1] = LAYOUT_60_ansi(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS,

View File

@@ -66,3 +66,5 @@ MIDI_ENABLE = no # MIDI controls
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
LAYOUTS = 60_ansi

View File

@@ -1 +1,3 @@
DEFAULT_FOLDER = eagle_viper/v2
LAYOUTS = 60_ansi

View File

@@ -13,7 +13,7 @@
* 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 "eagle_viper.h"
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* layer 0: qwerty */

View File

@@ -1,44 +0,0 @@
/* Copyright 2017 MechMerlin <mechmerlin@gmail.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "eagle_viper.h"
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* layer 0: qwerty */
[0] = LAYOUT_eagle(\
KC_GESC, 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_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_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_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_LGUI, KC_LALT, KC_SPC, MO(1), KC_RALT, KC_RGUI, KC_RCTL),
[1] = LAYOUT_eagle(\
KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
RGB_TOG, RGB_MOD, RGB_VAI, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS, KC_TRNS,
KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_PGDN, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, TG(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
[2] = LAYOUT_eagle(\
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT),
};
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
return MACRO_NONE;
};

View File

@@ -1,15 +0,0 @@
MechMerlin's Duck Eagle V2 Layout
======================
This is the preferred 60% layout used by u/merlin36, host of the MechMerlin YouTube channel.
![Duck Eagle V2 Layout](https://imgur.com/FRcsmJc.png)
## Keymap Notes
- Highly influenced by the KBP V60 and WKL B.Face standard layouts
- Does not support any form of inswitch lighting as Merlin hates them.
- Arrow toggle switch is FN + Space
- Reset is FN + R
### Build
To build this keymap, simply run `make eagle_viper/v2:mechmerlin` from the qmk_firmware directory.

View File

@@ -13,7 +13,7 @@
* 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 "eagle_viper.h"
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* layer 0: qwerty */

View File

@@ -0,0 +1,201 @@
// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
// this is the style you want to emulate.
// Default ECO Layout
// KLE here : http://www.keyboard-layout-editor.com/#/gists/0733eca6b4cb88ff9d7de746803f4039
#include "eco.h"
#include "action_layer.h"
#include "eeconfig.h"
extern keymap_config_t keymap_config;
// 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.
#define _QWERTY 0
#define _COLEMAK 1
#define _DVORAK 2
#define _LOWER 3
#define _RAISE 4
#define _ADJUST 16
enum planck_keycodes {
QWERTY = SAFE_RANGE,
COLEMAK,
DVORAK,
LOWER,
RAISE,
BACKLIT
};
// Fillers to make layering more clear
#define _______ KC_TRNS
#define XXXXXXX KC_NO
// Aliases to make reading the keymap easier
#define GUIBSPC GUI_T(KC_BSPC) // GUI when held, BSPC when tapped.
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Qwerty
* ,-------------------------------------------------------------------------------------------------.
* | Tab | Q | W | E | R | T | | | Y | U | I | O | P | Bksp |
* |------+------+------+------+------+------+------|------+------+------+------+------+------+------|
* | Esc | A | S | D | F | G | | | H | J | K | L | ; | " |
* |------+------+------+------+------+------+------|------+------+------+------+------+------+------|
* | Shift| Z | X | C | V | B | | | N | M | , | . | / |Shift |
* |------+------+------+------+------+------+------|------+------+------+------+------+------+------|
* | Ctrl | Alt | Left |Right |Lower | Bksp | GUI |Enter |Space |Raise | Up | Down | GUI |Enter |
* `-------------------------------------------------------------------------------------------------'
*/
[_QWERTY] = KEYMAP(
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_NO, KC_NO, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_NO, KC_NO, 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_NO, KC_NO, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, KC_BSPC, KC_LGUI, KC_ENT, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT
),
/* Colemak
* ,-------------------------------------------------------------------------------------------------.
* | Tab | Q | W | F | P | G | | | J | L | U | Y | ; | Bksp |
* |------+------+------+------+------+------+------|------+------+------+------+------+------+------|
* | Esc | A | R | S | T | D | | | H | N | E | I | O | " |
* |------+------+------+------+------+------+------|------+------+------+------+------+------+------|
* | Shift| Z | X | C | V | B | | | N | M | , | . | / |Shift |
* |------+------+------+------+------+------+------|------+------+------+------+------+------+------|
* | Ctrl | Alt | Left |Right |Lower | Bksp | GUI |Enter |Space |Raise | Up | Down | GUI |Enter |
* `-------------------------------------------------------------------------------------------------'
*/
[_COLEMAK] = KEYMAP(
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_NO, KC_NO, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_NO, KC_NO, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_NO, KC_NO, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, KC_BSPC, KC_LGUI, KC_ENT, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT
),
/* Dvorak
* ,-------------------------------------------------------------------------------------------------.
* | Tab | " | , | . | P | Y | | | F | G | C | R | L | / |
* |------+------+------+------+------+------+------|------+------+------+------+------+------+------|
* | Esc | A | O | E | U | I | | | D | H | T | N | S | - |
* |------+------+------+------+------+------+------|------+------+------+------+------+------+------|
* | Shift| ; | Q | J | K | X | | | B | M | W | V | Z | Shift|
* |------+------+------+------+------+------+------|------+------+------+------+------+------+------|
* | Ctrl | Alt | Left |Right |Lower | Bksp | GUI |Enter |Space |Raise | Up | Down | GUI |Enter |
* `-------------------------------------------------------------------------------------------------'
*/
[_DVORAK] = KEYMAP(
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_NO, KC_NO, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH,
KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_NO, KC_NO, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS,
KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_NO, KC_NO, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT,
KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, KC_BSPC, KC_LGUI, KC_ENT, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT
),
/* Lower
* ,-------------------------------------------------------------------------------------------------.
* | ~ | ! | @ | # | $ | % | | | ^ | & | * | ( | ) | |
* |------+------+------+------+------+------+------|------+------+------+------+------+------+------|
* | Caps | | Mute | Vol- | Vol+ | | | | F6 | F7 | F8 | F9 | F10 | F11 |
* |------+------+------+------+------+------+------|------+------+------+------+------+------+------|
* | | | Prev | Play | Next | | | | | | | | | |
* |------+------+------+------+------+------+------|------+------+------+------+------+------+------|
* | Brite| | Home | End | | Del | | | | | | | | |
* `-------------------------------------------------------------------------------------------------'
*/
[_LOWER] = KEYMAP(
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_NO, KC_NO, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
KC_CAPS, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, KC_NO, KC_NO, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
_______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, KC_NO, KC_NO, _______, _______, _______, _______, _______, _______,
_______, _______, KC_HOME, KC_END, _______, KC_DEL, _______, _______, KC_INS, _______, KC_PGUP, KC_PGDN, _______, _______
),
/* Raise
* ,-------------------------------------------------------------------------------------------------.
* | | 1 | 2 | 3 | 4 | 5 | | | 6 | 7 | 8 | 9 | 0 | - |
* |------+------+------+------+------+------+------|------+------+------+------+------+------+------|
* | | F1 | F2 | F3 | F4 | F5 | | | F6 | F7 | F8 | F9 | F10 | F11 |
* |------+------+------+------+------+------+------|------+------+------+------+------+------+------|
* | | | | | | | | | | | | | | |
* |------+------+------+------+------+------+------|------+------+------+------+------+------+------|
* | | | | | | | | | | | | | | |
* `-------------------------------------------------------------------------------------------------'
*/
[_RAISE] = KEYMAP(
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_NO, KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
KC_CAPS, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, KC_NO, KC_NO, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
_______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, KC_NO, KC_NO, _______, _______, _______, _______, _______, _______,
_______, _______, KC_HOME, KC_END, _______, KC_DEL, _______, _______, KC_INS, _______, KC_PGUP, KC_PGDN, _______, _______
),
/* Adjust
* ,-------------------------------------------------------------------------------------------------.
* | F11 | F1 | F2 | F3 | F4 | F5 | | | F6 | F7 | F8 | F9 | F10 | F12 |
* |------+------+------+------+------+------+------|------+------+------+------+------+------+------|
* | | Reset| | | | | | | |Qwerty|Colemk|Dvorak| | |
* |------+------+------+------+------+------+------|------+------+------+------+------+------+------|
* | | | | | | | | | | | | | | |
* |------+------+------+------+------+------+------|------+------+------+------+------+------+------|
* | | | | | | | | | | | | | | |
* `-------------------------------------------------------------------------------------------------'
*/
[_ADJUST] = KEYMAP(
KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_NO, KC_NO, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12 ,
_______, RESET, _______, _______, _______, _______, KC_NO, KC_NO, _______, QWERTY, COLEMAK, DVORAK, _______, _______,
_______, _______, _______, _______, _______, _______, KC_NO, KC_NO, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
};
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) {
persistent_default_layer_set(1UL<<_QWERTY);
}
return false;
break;
case COLEMAK:
if (record->event.pressed) {
persistent_default_layer_set(1UL<<_COLEMAK);
}
return false;
break;
case DVORAK:
if (record->event.pressed) {
persistent_default_layer_set(1UL<<_DVORAK);
}
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;
}
return true;
}

View File

@@ -0,0 +1,3 @@
# ECO Default Layout by u/That-Canadian
KLE here : http://www.keyboard-layout-editor.com/#/gists/0733eca6b4cb88ff9d7de746803f4039

View File

@@ -0,0 +1,21 @@
# 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 = 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
NKRO_ENABLE = yes # 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.
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend

View File

@@ -99,6 +99,38 @@ inline void ergodox_led_all_set(uint8_t n) {}
{ KC_NO, k51, k52, k53, k54, k55, k56, k57, k58, k59, k5A, k5B, k5C, KC_NO } \
}
#define LAYOUT_ergodox_80( \
\
/* left hand, spatial positions */ \
k00,k01,k02,k03,k04,k05,k06, \
k10,k11,k12,k13,k14,k15,k16, \
k20,k21,k22,k23,k24,k25, \
k30,k31,k32,k33,k34,k35,k36, \
k40,k41,k42,k43,k44, \
k55,k56, \
k45,k46,k54, \
k53,k52,k51, \
\
/* right hand, spatial positions */ \
k07,k08,k09,k0A,k0B,k0C,k0D, \
k17,k18,k19,k1A,k1B,k1C,k1D, \
k28,k29,k2A,k2B,k2C,k2D, \
k37,k38,k39,k3A,k3B,k3C,k3D, \
k49,k4A,k4B,k4C,k4D, \
k57,k58, \
k59,k47,k48, \
k5C,k5B,k5A ) \
\
/* matrix positions */ \
{ \
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D }, \
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D }, \
{ k20, k21, k22, k23, k24, k25, KC_NO, KC_NO, k28, k29, k2A, k2B, k2C, k2D }, \
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D }, \
{ k40, k41, k42, k43, k44, k45, k45, k47, k48, k49, k4A, k4B, k4C, k4D }, \
{ KC_NO, k51, k52, k53, k54, k55, k56, k57, k58, k59, k5A, k5B, k5C, KC_NO } \
}
#define KEYMAP_PRETTY( \
/* left hand, spatial positions */ /* right hand, spatial positions */ \
L00,L01,L02,L03,L04,L05,L06, R00,R01,R02,R03,R04,R05,R06, \
@@ -120,6 +152,27 @@ inline void ergodox_led_all_set(uint8_t n) {}
{ KC_NO,L51,L52,L53,L54,L55,L56, R50,R51,R52,R53,R54,R55,KC_NO } \
}
#define LAYOUT_ergodox_pretty_80( \
/* left hand, spatial positions */ /* right hand, spatial positions */ \
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, 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, R42,R43,R44,R45,R46, \
L55,L56, R50,R51, \
L45,L46,L54, R52,R40,R41, \
L53,L52,L51, R55,R54,R53 ) \
\
/* matrix positions */ \
{ \
{ 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,KC_NO, KC_NO,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 }, \
{ KC_NO,L51,L52,L53,L54,L55,L56, R50,R51,R52,R53,R54,R55,KC_NO } \
}
#define LAYOUT_ergodox KEYMAP
#define LAYOUT_ergodox_pretty KEYMAP_PRETTY

View File

@@ -5,11 +5,103 @@
"height": 9.375,
"layouts": {
"LAYOUT_ergodox": {
"layout": [{"x":0, "y":0, "w":1.5}, {"x":1.5, "y":0}, {"x":2.5, "y":0}, {"x":3.5, "y":0}, {"x":4.5, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":9.5, "y":0}, {"x":10.5, "y":0}, {"x":11.5, "y":0}, {"x":12.5, "y":0}, {"x":13.5, "y":0}, {"x":14.5, "y":0}, {"x":15.5, "y":0, "w":1.5}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1, "h":1.5}, {"x":9.5, "y":1, "h":1.5}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1}, {"x":14.5, "y":1}, {"x":15.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.5}, {"x":1.5, "y":2}, {"x":2.5, "y":2}, {"x":3.5, "y":2}, {"x":4.5, "y":2}, {"x":5.5, "y":2}, {"x":10.5, "y":2}, {"x":11.5, "y":2}, {"x":12.5, "y":2}, {"x":13.5, "y":2}, {"x":14.5, "y":2}, {"x":15.5, "y":2, "w":1.5}, {"x":6.5, "y":2.5, "h":1.5}, {"x":9.5, "y":2.5, "h":1.5}, {"x":0, "y":3, "w":1.5}, {"x":1.5, "y":3}, {"x":2.5, "y":3}, {"x":3.5, "y":3}, {"x":4.5, "y":3}, {"x":5.5, "y":3}, {"x":10.5, "y":3}, {"x":11.5, "y":3}, {"x":12.5, "y":3}, {"x":13.5, "y":3}, {"x":14.5, "y":3}, {"x":15.5, "y":3, "w":1.5}, {"x":0.5, "y":4}, {"x":1.5, "y":4}, {"x":2.5, "y":4}, {"x":3.5, "y":4}, {"x":4.5, "y":4}, {"x":11.5, "y":4}, {"x":12.5, "y":4}, {"x":13.5, "y":4}, {"x":14.5, "y":4}, {"x":15.5, "y":4}, {"x":6, "y":5}, {"x":7, "y":5}, {"x":9, "y":5}, {"x":10, "y":5}, {"x":5, "y":6, "h":2}, {"x":6, "y":6, "h":2}, {"x":7, "y":6}, {"x":9, "y":6}, {"x":10, "y":6, "h":2}, {"x":11, "y":6, "h":2}, {"x":7, "y":7}, {"x":9, "y":7}]
},
"LAYOUT_ergodox_pretty": {
"layout": [{"x":0, "y":0, "w":1.5}, {"x":1.5, "y":0}, {"x":2.5, "y":0}, {"x":3.5, "y":0}, {"x":4.5, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":9.5, "y":0}, {"x":10.5, "y":0}, {"x":11.5, "y":0}, {"x":12.5, "y":0}, {"x":13.5, "y":0}, {"x":14.5, "y":0}, {"x":15.5, "y":0, "w":1.5}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1, "h":1.5}, {"x":9.5, "y":1, "h":1.5}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1}, {"x":14.5, "y":1}, {"x":15.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.5}, {"x":1.5, "y":2}, {"x":2.5, "y":2}, {"x":3.5, "y":2}, {"x":4.5, "y":2}, {"x":5.5, "y":2}, {"x":10.5, "y":2}, {"x":11.5, "y":2}, {"x":12.5, "y":2}, {"x":13.5, "y":2}, {"x":14.5, "y":2}, {"x":15.5, "y":2, "w":1.5}, {"x":6.5, "y":2.5, "h":1.5}, {"x":9.5, "y":2.5, "h":1.5}, {"x":0, "y":3, "w":1.5}, {"x":1.5, "y":3}, {"x":2.5, "y":3}, {"x":3.5, "y":3}, {"x":4.5, "y":3}, {"x":5.5, "y":3}, {"x":10.5, "y":3}, {"x":11.5, "y":3}, {"x":12.5, "y":3}, {"x":13.5, "y":3}, {"x":14.5, "y":3}, {"x":15.5, "y":3, "w":1.5}, {"x":0.5, "y":4}, {"x":1.5, "y":4}, {"x":2.5, "y":4}, {"x":3.5, "y":4}, {"x":4.5, "y":4}, {"x":11.5, "y":4}, {"x":12.5, "y":4}, {"x":13.5, "y":4}, {"x":14.5, "y":4}, {"x":15.5, "y":4}, {"x":6, "y":5}, {"x":7, "y":5}, {"x":9, "y":5}, {"x":10, "y":5}, {"x":5, "y":6, "h":2}, {"x":6, "y":6, "h":2}, {"x":7, "y":6}, {"x":9, "y":6}, {"x":10, "y":6, "h":2}, {"x":11, "y":6, "h":2}, {"x":7, "y":7}, {"x":9, "y":7}]
}
"LAYOUT_ergodox": {
"layout": [
{"x":0, "y":0.375, "w":1.5}, {"x":1.5, "y":0.375}, {"x":2.5, "y":0.125}, {"x":3.5, "y":0}, {"x":4.5, "y":0.125}, {"x":5.5, "y":0.25}, {"x":6.5, "y":0.25},
{"x":0, "y":1.375, "w":1.5}, {"x":1.5, "y":1.375}, {"x":2.5, "y":1.125}, {"x":3.5, "y":1}, {"x":4.5, "y":1.125}, {"x":5.5, "y":1.25}, {"x":6.5, "y":1.25, "h":1.5},
{"x":0, "y":2.375, "w":1.5}, {"x":1.5, "y":2.375}, {"x":2.5, "y":2.125}, {"x":3.5, "y":2}, {"x":4.5, "y":2.125}, {"x":5.5, "y":2.25},
{"x":0, "y":3.375, "w":1.5}, {"x":1.5, "y":3.375}, {"x":2.5, "y":3.125}, {"x":3.5, "y":3}, {"x":4.5, "y":3.125}, {"x":5.5, "y":3.25}, {"x":6.5, "y":2.75, "h":1.5},
{"x":0.5, "y":4.375}, {"x":1.5, "y":4.375}, {"x":2.5, "y":4.125}, {"x":3.5, "y":4}, {"x":4.5, "y":4.125},
{"x":6, "y":5}, {"x":7, "y":5},
{"x":7, "y":6},
{"x":5, "y":6, "h":2}, {"x":6, "y":6, "h":2}, {"x":7, "y":7},
{"x":9.5, "y":0.25}, {"x":10.5, "y":0.25}, {"x":11.5, "y":0.125}, {"x":12.5, "y":0}, {"x":13.5, "y":0.125}, {"x":14.5, "y":0.375}, {"x":15.5, "y":0.375, "w":1.5},
{"x":9.5, "y":1.25, "h":1.5}, {"x":10.5, "y":1.25}, {"x":11.5, "y":1.125}, {"x":12.5, "y":1}, {"x":13.5, "y":1.125}, {"x":14.5, "y":1.375}, {"x":15.5, "y":1.375, "w":1.5},
{"x":10.5, "y":2.25}, {"x":11.5, "y":2.125}, {"x":12.5, "y":2}, {"x":13.5, "y":2.125}, {"x":14.5, "y":2.375}, {"x":15.5, "y":2.375, "w":1.5},
{"x":9.5, "y":2.75, "h":1.5}, {"x":10.5, "y":3.25}, {"x":11.5, "y":3.125}, {"x":12.5, "y":3}, {"x":13.5, "y":3.125}, {"x":14.5, "y":3.375}, {"x":15.5, "y":3.375, "w":1.5},
{"x":11.5, "y":4.125}, {"x":12.5, "y":4}, {"x":13.5, "y":4.125}, {"x":14.5, "y":4.375}, {"x":15.5, "y":4.375},
{"x":9, "y":5}, {"x":10, "y":5},
{"x":9, "y":6},
{"x":9, "y":7}, {"x":10, "y":6, "h":2}, {"x":11, "y":6, "h":2}
]
},
"LAYOUT_ergodox_pretty": {
"layout": [
{"x":0, "y":0.375, "w":1.5}, {"x":1.5, "y":0.375}, {"x":2.5, "y":0.125}, {"x":3.5, "y":0}, {"x":4.5, "y":0.125}, {"x":5.5, "y":0.25}, {"x":6.5, "y":0.25},
{"x":9.5, "y":0.25}, {"x":10.5, "y":0.25}, {"x":11.5, "y":0.125}, {"x":12.5, "y":0}, {"x":13.5, "y":0.125}, {"x":14.5, "y":0.375}, {"x":15.5, "y":0.375, "w":1.5},
{"x":0, "y":1.375, "w":1.5}, {"x":1.5, "y":1.375}, {"x":2.5, "y":1.125}, {"x":3.5, "y":1}, {"x":4.5, "y":1.125}, {"x":5.5, "y":1.25}, {"x":6.5, "y":1.25, "h":1.5},
{"x":9.5, "y":1.25, "h":1.5}, {"x":10.5, "y":1.25}, {"x":11.5, "y":1.125}, {"x":12.5, "y":1}, {"x":13.5, "y":1.125}, {"x":14.5, "y":1.375}, {"x":15.5, "y":1.375, "w":1.5},
{"x":0, "y":2.375, "w":1.5}, {"x":1.5, "y":2.375}, {"x":2.5, "y":2.125}, {"x":3.5, "y":2}, {"x":4.5, "y":2.125}, {"x":5.5, "y":2.25},
{"x":10.5, "y":2.25}, {"x":11.5, "y":2.125}, {"x":12.5, "y":2}, {"x":13.5, "y":2.125}, {"x":14.5, "y":2.375}, {"x":15.5, "y":2.375, "w":1.5},
{"x":0, "y":3.375, "w":1.5}, {"x":1.5, "y":3.375}, {"x":2.5, "y":3.125}, {"x":3.5, "y":3}, {"x":4.5, "y":3.125}, {"x":5.5, "y":3.25}, {"x":6.5, "y":2.75, "h":1.5},
{"x":9.5, "y":2.75, "h":1.5}, {"x":10.5, "y":3.25}, {"x":11.5, "y":3.125}, {"x":12.5, "y":3}, {"x":13.5, "y":3.125}, {"x":14.5, "y":3.375}, {"x":15.5, "y":3.375, "w":1.5},
{"x":0.5, "y":4.375}, {"x":1.5, "y":4.375}, {"x":2.5, "y":4.125}, {"x":3.5, "y":4}, {"x":4.5, "y":4.125},
{"x":11.5, "y":4.125}, {"x":12.5, "y":4}, {"x":13.5, "y":4.125}, {"x":14.5, "y":4.375}, {"x":15.5, "y":4.375},
{"x":6, "y":5}, {"x":7, "y":5}, {"x":9, "y":5}, {"x":10, "y":5},
{"x":7, "y":6}, {"x":9, "y":6},
{"x":5, "y":6, "h":2}, {"x":6, "y":6, "h":2}, {"x":7, "y":7}, {"x":9, "y":7}, {"x":10, "y":6, "h":2}, {"x":11, "y":6, "h":2}
]
},
"LAYOUT_ergodox_80": {
"layout": [
{"x":0, "y":0.375, "w":1.5}, {"x":1.5, "y":0.375}, {"x":2.5, "y":0.125}, {"x":3.5, "y":0}, {"x":4.5, "y":0.125}, {"x":5.5, "y":0.25}, {"x":6.5, "y":0.25},
{"x":0, "y":1.375, "w":1.5}, {"x":1.5, "y":1.375}, {"x":2.5, "y":1.125}, {"x":3.5, "y":1}, {"x":4.5, "y":1.125}, {"x":5.5, "y":1.25}, {"x":6.5, "y":1.25, "h":1.5},
{"x":0, "y":2.375, "w":1.5}, {"x":1.5, "y":2.375}, {"x":2.5, "y":2.125}, {"x":3.5, "y":2}, {"x":4.5, "y":2.125}, {"x":5.5, "y":2.25},
{"x":0, "y":3.375, "w":1.5}, {"x":1.5, "y":3.375}, {"x":2.5, "y":3.125}, {"x":3.5, "y":3}, {"x":4.5, "y":3.125}, {"x":5.5, "y":3.25}, {"x":6.5, "y":2.75, "h":1.5},
{"x":0.5, "y":4.375}, {"x":1.5, "y":4.375}, {"x":2.5, "y":4.125}, {"x":3.5, "y":4}, {"x":4.5, "y":4.125},
{"x":6, "y":5}, {"x":7, "y":5},
{"x":5, "y":6}, {"x":6, "y":6}, {"x":7, "y":6},
{"x":5, "y":7}, {"x":6, "y":7}, {"x":7, "y":7},
{"x":9.5, "y":0.25}, {"x":10.5, "y":0.25}, {"x":11.5, "y":0.125}, {"x":12.5, "y":0}, {"x":13.5, "y":0.125}, {"x":14.5, "y":0.375}, {"x":15.5, "y":0.375, "w":1.5},
{"x":9.5, "y":1.25, "h":1.5}, {"x":10.5, "y":1.25}, {"x":11.5, "y":1.125}, {"x":12.5, "y":1}, {"x":13.5, "y":1.125}, {"x":14.5, "y":1.375}, {"x":15.5, "y":1.375, "w":1.5},
{"x":10.5, "y":2.25}, {"x":11.5, "y":2.125}, {"x":12.5, "y":2}, {"x":13.5, "y":2.125}, {"x":14.5, "y":2.375}, {"x":15.5, "y":2.375, "w":1.5},
{"x":9.5, "y":2.75, "h":1.5}, {"x":10.5, "y":3.25}, {"x":11.5, "y":3.125}, {"x":12.5, "y":3}, {"x":13.5, "y":3.125}, {"x":14.5, "y":3.375}, {"x":15.5, "y":3.375, "w":1.5},
{"x":11.5, "y":4.125}, {"x":12.5, "y":4}, {"x":13.5, "y":4.125}, {"x":14.5, "y":4.375}, {"x":15.5, "y":4.375},
{"x":9, "y":5}, {"x":10, "y":5},
{"x":9, "y":6}, {"x":10, "y":6}, {"x":11, "y":6},
{"x":9, "y":7}, {"x":10, "y":7}, {"x":11, "y":7}
]
},
"LAYOUT_ergodox_pretty_80": {
"layout": [
{"x":0, "y":0.375, "w":1.5}, {"x":1.5, "y":0.375}, {"x":2.5, "y":0.125}, {"x":3.5, "y":0}, {"x":4.5, "y":0.125}, {"x":5.5, "y":0.25}, {"x":6.5, "y":0.25},
{"x":9.5, "y":0.25}, {"x":10.5, "y":0.25}, {"x":11.5, "y":0.125}, {"x":12.5, "y":0}, {"x":13.5, "y":0.125}, {"x":14.5, "y":0.375}, {"x":15.5, "y":0.375, "w":1.5},
{"x":0, "y":1.375, "w":1.5}, {"x":1.5, "y":1.375}, {"x":2.5, "y":1.125}, {"x":3.5, "y":1}, {"x":4.5, "y":1.125}, {"x":5.5, "y":1.25}, {"x":6.5, "y":1.25, "h":1.5},
{"x":9.5, "y":1.25, "h":1.5}, {"x":10.5, "y":1.25}, {"x":11.5, "y":1.125}, {"x":12.5, "y":1}, {"x":13.5, "y":1.125}, {"x":14.5, "y":1.375}, {"x":15.5, "y":1.375, "w":1.5},
{"x":0, "y":2.375, "w":1.5}, {"x":1.5, "y":2.375}, {"x":2.5, "y":2.125}, {"x":3.5, "y":2}, {"x":4.5, "y":2.125}, {"x":5.5, "y":2.25},
{"x":10.5, "y":2.25}, {"x":11.5, "y":2.125}, {"x":12.5, "y":2}, {"x":13.5, "y":2.125}, {"x":14.5, "y":2.375}, {"x":15.5, "y":2.375, "w":1.5},
{"x":0, "y":3.375, "w":1.5}, {"x":1.5, "y":3.375}, {"x":2.5, "y":3.125}, {"x":3.5, "y":3}, {"x":4.5, "y":3.125}, {"x":5.5, "y":3.25}, {"x":6.5, "y":2.75, "h":1.5},
{"x":9.5, "y":2.75, "h":1.5}, {"x":10.5, "y":3.25}, {"x":11.5, "y":3.125}, {"x":12.5, "y":3}, {"x":13.5, "y":3.125}, {"x":14.5, "y":3.375}, {"x":15.5, "y":3.375, "w":1.5},
{"x":0.5, "y":4.375}, {"x":1.5, "y":4.375}, {"x":2.5, "y":4.125}, {"x":3.5, "y":4}, {"x":4.5, "y":4.125},
{"x":11.5, "y":4.125}, {"x":12.5, "y":4}, {"x":13.5, "y":4.125}, {"x":14.5, "y":4.375}, {"x":15.5, "y":4.375},
{"x":6, "y":5}, {"x":7, "y":5}, {"x":9, "y":5}, {"x":10, "y":5},
{"x":5, "y":6}, {"x":6, "y":6}, {"x":7, "y":6}, {"x":9, "y":6}, {"x":10, "y":6}, {"x":11, "y":6},
{"x":5, "y":7}, {"x":6, "y":7}, {"x":7, "y":7}, {"x":9, "y":7}, {"x":10, "y":7}, {"x":11, "y":7}
]
}
}
}

View File

@@ -7,16 +7,98 @@
"layouts": {
"LAYOUT_ergodox": {
"layout": [{"x":0, "y":0, "w":1.5}, {"x":1.5, "y":0}, {"x":2.5, "y":0}, {"x":3.5, "y":0}, {"x":4.5, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":9.5, "y":0}, {"x":10.5, "y":0}, {"x":11.5, "y":0}, {"x":12.5, "y":0}, {"x":13.5, "y":0}, {"x":14.5, "y":0}, {"x":15.5, "y":0, "w":1.5}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1, "h":1.5}, {"x":9.5, "y":1, "h":1.5}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1}, {"x":14.5, "y":1}, {"x":15.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.5}, {"x":1.5, "y":2}, {"x":2.5, "y":2}, {"x":3.5, "y":2}, {"x":4.5, "y":2}, {"x":5.5, "y":2}, {"x":10.5, "y":2}, {"x":11.5, "y":2}, {"x":12.5, "y":2}, {"x":13.5, "y":2}, {"x":14.5, "y":2}, {"x":15.5, "y":2, "w":1.5}, {"x":6.5, "y":2.5, "h":1.5}, {"x":9.5, "y":2.5, "h":1.5}, {"x":0, "y":3, "w":1.5}, {"x":1.5, "y":3}, {"x":2.5, "y":3}, {"x":3.5, "y":3}, {"x":4.5, "y":3}, {"x":5.5, "y":3}, {"x":10.5, "y":3}, {"x":11.5, "y":3}, {"x":12.5, "y":3}, {"x":13.5, "y":3}, {"x":14.5, "y":3}, {"x":15.5, "y":3, "w":1.5}, {"x":0.5, "y":4}, {"x":1.5, "y":4}, {"x":2.5, "y":4}, {"x":3.5, "y":4}, {"x":4.5, "y":4}, {"x":11.5, "y":4}, {"x":12.5, "y":4}, {"x":13.5, "y":4}, {"x":14.5, "y":4}, {"x":15.5, "y":4}, {"x":6, "y":5}, {"x":7, "y":5}, {"x":9, "y":5}, {"x":10, "y":5}, {"x":5, "y":6, "h":2}, {"x":6, "y":6, "h":2}, {"x":7, "y":6}, {"x":9, "y":6}, {"x":10, "y":6, "h":2}, {"x":11, "y":6, "h":2}, {"x":7, "y":7}, {"x":9, "y":7}]
"layout": [
{"x":0, "y":0.375, "w":1.5}, {"x":1.5, "y":0.375}, {"x":2.5, "y":0.125}, {"x":3.5, "y":0}, {"x":4.5, "y":0.125}, {"x":5.5, "y":0.25}, {"x":6.5, "y":0.25},
{"x":0, "y":1.375, "w":1.5}, {"x":1.5, "y":1.375}, {"x":2.5, "y":1.125}, {"x":3.5, "y":1}, {"x":4.5, "y":1.125}, {"x":5.5, "y":1.25}, {"x":6.5, "y":1.25, "h":1.5},
{"x":0, "y":2.375, "w":1.5}, {"x":1.5, "y":2.375}, {"x":2.5, "y":2.125}, {"x":3.5, "y":2}, {"x":4.5, "y":2.125}, {"x":5.5, "y":2.25},
{"x":0, "y":3.375, "w":1.5}, {"x":1.5, "y":3.375}, {"x":2.5, "y":3.125}, {"x":3.5, "y":3}, {"x":4.5, "y":3.125}, {"x":5.5, "y":3.25}, {"x":6.5, "y":2.75, "h":1.5},
{"x":0.5, "y":4.375}, {"x":1.5, "y":4.375}, {"x":2.5, "y":4.125}, {"x":3.5, "y":4}, {"x":4.5, "y":4.125},
{"x":6, "y":5}, {"x":7, "y":5},
{"x":7, "y":6},
{"x":5, "y":6, "h":2}, {"x":6, "y":6, "h":2}, {"x":7, "y":7},
{"x":9.5, "y":0.25}, {"x":10.5, "y":0.25}, {"x":11.5, "y":0.125}, {"x":12.5, "y":0}, {"x":13.5, "y":0.125}, {"x":14.5, "y":0.375}, {"x":15.5, "y":0.375, "w":1.5},
{"x":9.5, "y":1.25, "h":1.5}, {"x":10.5, "y":1.25}, {"x":11.5, "y":1.125}, {"x":12.5, "y":1}, {"x":13.5, "y":1.125}, {"x":14.5, "y":1.375}, {"x":15.5, "y":1.375, "w":1.5},
{"x":10.5, "y":2.25}, {"x":11.5, "y":2.125}, {"x":12.5, "y":2}, {"x":13.5, "y":2.125}, {"x":14.5, "y":2.375}, {"x":15.5, "y":2.375, "w":1.5},
{"x":9.5, "y":2.75, "h":1.5}, {"x":10.5, "y":3.25}, {"x":11.5, "y":3.125}, {"x":12.5, "y":3}, {"x":13.5, "y":3.125}, {"x":14.5, "y":3.375}, {"x":15.5, "y":3.375, "w":1.5},
{"x":11.5, "y":4.125}, {"x":12.5, "y":4}, {"x":13.5, "y":4.125}, {"x":14.5, "y":4.375}, {"x":15.5, "y":4.375},
{"x":9, "y":5}, {"x":10, "y":5},
{"x":9, "y":6},
{"x":9, "y":7}, {"x":10, "y":6, "h":2}, {"x":11, "y":6, "h":2}
]
},
"LAYOUT_ergodox_pretty": {
"layout": [{"x":0, "y":0, "w":1.5}, {"x":1.5, "y":0}, {"x":2.5, "y":0}, {"x":3.5, "y":0}, {"x":4.5, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":9.5, "y":0}, {"x":10.5, "y":0}, {"x":11.5, "y":0}, {"x":12.5, "y":0}, {"x":13.5, "y":0}, {"x":14.5, "y":0}, {"x":15.5, "y":0, "w":1.5}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1, "h":1.5}, {"x":9.5, "y":1, "h":1.5}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1}, {"x":14.5, "y":1}, {"x":15.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.5}, {"x":1.5, "y":2}, {"x":2.5, "y":2}, {"x":3.5, "y":2}, {"x":4.5, "y":2}, {"x":5.5, "y":2}, {"x":10.5, "y":2}, {"x":11.5, "y":2}, {"x":12.5, "y":2}, {"x":13.5, "y":2}, {"x":14.5, "y":2}, {"x":15.5, "y":2, "w":1.5}, {"x":6.5, "y":2.5, "h":1.5}, {"x":9.5, "y":2.5, "h":1.5}, {"x":0, "y":3, "w":1.5}, {"x":1.5, "y":3}, {"x":2.5, "y":3}, {"x":3.5, "y":3}, {"x":4.5, "y":3}, {"x":5.5, "y":3}, {"x":10.5, "y":3}, {"x":11.5, "y":3}, {"x":12.5, "y":3}, {"x":13.5, "y":3}, {"x":14.5, "y":3}, {"x":15.5, "y":3, "w":1.5}, {"x":0.5, "y":4}, {"x":1.5, "y":4}, {"x":2.5, "y":4}, {"x":3.5, "y":4}, {"x":4.5, "y":4}, {"x":11.5, "y":4}, {"x":12.5, "y":4}, {"x":13.5, "y":4}, {"x":14.5, "y":4}, {"x":15.5, "y":4}, {"x":6, "y":5}, {"x":7, "y":5}, {"x":9, "y":5}, {"x":10, "y":5}, {"x":5, "y":6, "h":2}, {"x":6, "y":6, "h":2}, {"x":7, "y":6}, {"x":9, "y":6}, {"x":10, "y":6, "h":2}, {"x":11, "y":6, "h":2}, {"x":7, "y":7}, {"x":9, "y":7}]
"layout": [
{"x":0, "y":0.375, "w":1.5}, {"x":1.5, "y":0.375}, {"x":2.5, "y":0.125}, {"x":3.5, "y":0}, {"x":4.5, "y":0.125}, {"x":5.5, "y":0.25}, {"x":6.5, "y":0.25},
{"x":9.5, "y":0.25}, {"x":10.5, "y":0.25}, {"x":11.5, "y":0.125}, {"x":12.5, "y":0}, {"x":13.5, "y":0.125}, {"x":14.5, "y":0.375}, {"x":15.5, "y":0.375, "w":1.5},
{"x":0, "y":1.375, "w":1.5}, {"x":1.5, "y":1.375}, {"x":2.5, "y":1.125}, {"x":3.5, "y":1}, {"x":4.5, "y":1.125}, {"x":5.5, "y":1.25}, {"x":6.5, "y":1.25, "h":1.5},
{"x":9.5, "y":1.25, "h":1.5}, {"x":10.5, "y":1.25}, {"x":11.5, "y":1.125}, {"x":12.5, "y":1}, {"x":13.5, "y":1.125}, {"x":14.5, "y":1.375}, {"x":15.5, "y":1.375, "w":1.5},
{"x":0, "y":2.375, "w":1.5}, {"x":1.5, "y":2.375}, {"x":2.5, "y":2.125}, {"x":3.5, "y":2}, {"x":4.5, "y":2.125}, {"x":5.5, "y":2.25},
{"x":10.5, "y":2.25}, {"x":11.5, "y":2.125}, {"x":12.5, "y":2}, {"x":13.5, "y":2.125}, {"x":14.5, "y":2.375}, {"x":15.5, "y":2.375, "w":1.5},
{"x":0, "y":3.375, "w":1.5}, {"x":1.5, "y":3.375}, {"x":2.5, "y":3.125}, {"x":3.5, "y":3}, {"x":4.5, "y":3.125}, {"x":5.5, "y":3.25}, {"x":6.5, "y":2.75, "h":1.5},
{"x":9.5, "y":2.75, "h":1.5}, {"x":10.5, "y":3.25}, {"x":11.5, "y":3.125}, {"x":12.5, "y":3}, {"x":13.5, "y":3.125}, {"x":14.5, "y":3.375}, {"x":15.5, "y":3.375, "w":1.5},
{"x":0.5, "y":4.375}, {"x":1.5, "y":4.375}, {"x":2.5, "y":4.125}, {"x":3.5, "y":4}, {"x":4.5, "y":4.125},
{"x":11.5, "y":4.125}, {"x":12.5, "y":4}, {"x":13.5, "y":4.125}, {"x":14.5, "y":4.375}, {"x":15.5, "y":4.375},
{"x":6, "y":5}, {"x":7, "y":5}, {"x":9, "y":5}, {"x":10, "y":5},
{"x":7, "y":6}, {"x":9, "y":6},
{"x":5, "y":6, "h":2}, {"x":6, "y":6, "h":2}, {"x":7, "y":7}, {"x":9, "y":7}, {"x":10, "y":6, "h":2}, {"x":11, "y":6, "h":2}
]
},
"LAYOUT_ergodox_80": {
"layout": [{"x":0, "y":0, "w":1.5}, {"x":1.5, "y":0}, {"x":2.5, "y":0}, {"x":3.5, "y":0}, {"x":4.5, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":9.5, "y":0}, {"x":10.5, "y":0}, {"x":11.5, "y":0}, {"x":12.5, "y":0}, {"x":13.5, "y":0}, {"x":14.5, "y":0}, {"x":15.5, "y":0, "w":1.5}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1, "h":1.5}, {"x":9.5, "y":1, "h":1.5}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1}, {"x":14.5, "y":1}, {"x":15.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.5}, {"x":1.5, "y":2}, {"x":2.5, "y":2}, {"x":3.5, "y":2}, {"x":4.5, "y":2}, {"x":5.5, "y":2}, {"x":10.5, "y":2}, {"x":11.5, "y":2}, {"x":12.5, "y":2}, {"x":13.5, "y":2}, {"x":14.5, "y":2}, {"x":15.5, "y":2, "w":1.5}, {"x":6.5, "y":2.5, "h":1.5}, {"x":9.5, "y":2.5, "h":1.5}, {"x":0, "y":3, "w":1.5}, {"x":1.5, "y":3}, {"x":2.5, "y":3}, {"x":3.5, "y":3}, {"x":4.5, "y":3}, {"x":5.5, "y":3}, {"x":10.5, "y":3}, {"x":11.5, "y":3}, {"x":12.5, "y":3}, {"x":13.5, "y":3}, {"x":14.5, "y":3}, {"x":15.5, "y":3, "w":1.5}, {"x":0.5, "y":4}, {"x":1.5, "y":4}, {"x":2.5, "y":4}, {"x":3.5, "y":4}, {"x":4.5, "y":4}, {"x":11.5, "y":4}, {"x":12.5, "y":4}, {"x":13.5, "y":4}, {"x":14.5, "y":4}, {"x":15.5, "y":4}, {"x":6, "y":5}, {"x":7, "y":5}, {"x":9, "y":5}, {"x":10, "y":5}, {"x":5, "y":6}, {"x":6, "y":6}, {"x":7, "y":6}, {"x":9, "y":6}, {"x":10, "y":6}, {"x":11, "y":6}, {"x":5, "y":7}, {"x":6, "y":7}, {"x":7, "y":7}, {"x":9, "y":7}, {"x":10, "y":7}, {"x":11, "y":7}]
},
"layout": [
{"x":0, "y":0.375, "w":1.5}, {"x":1.5, "y":0.375}, {"x":2.5, "y":0.125}, {"x":3.5, "y":0}, {"x":4.5, "y":0.125}, {"x":5.5, "y":0.25}, {"x":6.5, "y":0.25},
{"x":0, "y":1.375, "w":1.5}, {"x":1.5, "y":1.375}, {"x":2.5, "y":1.125}, {"x":3.5, "y":1}, {"x":4.5, "y":1.125}, {"x":5.5, "y":1.25}, {"x":6.5, "y":1.25, "h":1.5},
{"x":0, "y":2.375, "w":1.5}, {"x":1.5, "y":2.375}, {"x":2.5, "y":2.125}, {"x":3.5, "y":2}, {"x":4.5, "y":2.125}, {"x":5.5, "y":2.25},
{"x":0, "y":3.375, "w":1.5}, {"x":1.5, "y":3.375}, {"x":2.5, "y":3.125}, {"x":3.5, "y":3}, {"x":4.5, "y":3.125}, {"x":5.5, "y":3.25}, {"x":6.5, "y":2.75, "h":1.5},
{"x":0.5, "y":4.375}, {"x":1.5, "y":4.375}, {"x":2.5, "y":4.125}, {"x":3.5, "y":4}, {"x":4.5, "y":4.125},
{"x":6, "y":5}, {"x":7, "y":5},
{"x":5, "y":6}, {"x":6, "y":6}, {"x":7, "y":6},
{"x":5, "y":7}, {"x":6, "y":7}, {"x":7, "y":7},
{"x":9.5, "y":0.25}, {"x":10.5, "y":0.25}, {"x":11.5, "y":0.125}, {"x":12.5, "y":0}, {"x":13.5, "y":0.125}, {"x":14.5, "y":0.375}, {"x":15.5, "y":0.375, "w":1.5},
{"x":9.5, "y":1.25, "h":1.5}, {"x":10.5, "y":1.25}, {"x":11.5, "y":1.125}, {"x":12.5, "y":1}, {"x":13.5, "y":1.125}, {"x":14.5, "y":1.375}, {"x":15.5, "y":1.375, "w":1.5},
{"x":10.5, "y":2.25}, {"x":11.5, "y":2.125}, {"x":12.5, "y":2}, {"x":13.5, "y":2.125}, {"x":14.5, "y":2.375}, {"x":15.5, "y":2.375, "w":1.5},
{"x":9.5, "y":2.75, "h":1.5}, {"x":10.5, "y":3.25}, {"x":11.5, "y":3.125}, {"x":12.5, "y":3}, {"x":13.5, "y":3.125}, {"x":14.5, "y":3.375}, {"x":15.5, "y":3.375, "w":1.5},
{"x":11.5, "y":4.125}, {"x":12.5, "y":4}, {"x":13.5, "y":4.125}, {"x":14.5, "y":4.375}, {"x":15.5, "y":4.375},
{"x":9, "y":5}, {"x":10, "y":5},
{"x":9, "y":6}, {"x":10, "y":6}, {"x":11, "y":6},
{"x":9, "y":7}, {"x":10, "y":7}, {"x":11, "y":7}
]
},
"LAYOUT_ergodox_pretty_80": {
"layout": [{"x":0, "y":0, "w":1.5}, {"x":1.5, "y":0}, {"x":2.5, "y":0}, {"x":3.5, "y":0}, {"x":4.5, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":9.5, "y":0}, {"x":10.5, "y":0}, {"x":11.5, "y":0}, {"x":12.5, "y":0}, {"x":13.5, "y":0}, {"x":14.5, "y":0}, {"x":15.5, "y":0, "w":1.5}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1, "h":1.5}, {"x":9.5, "y":1, "h":1.5}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1}, {"x":14.5, "y":1}, {"x":15.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.5}, {"x":1.5, "y":2}, {"x":2.5, "y":2}, {"x":3.5, "y":2}, {"x":4.5, "y":2}, {"x":5.5, "y":2}, {"x":10.5, "y":2}, {"x":11.5, "y":2}, {"x":12.5, "y":2}, {"x":13.5, "y":2}, {"x":14.5, "y":2}, {"x":15.5, "y":2, "w":1.5}, {"x":6.5, "y":2.5, "h":1.5}, {"x":9.5, "y":2.5, "h":1.5}, {"x":0, "y":3, "w":1.5}, {"x":1.5, "y":3}, {"x":2.5, "y":3}, {"x":3.5, "y":3}, {"x":4.5, "y":3}, {"x":5.5, "y":3}, {"x":10.5, "y":3}, {"x":11.5, "y":3}, {"x":12.5, "y":3}, {"x":13.5, "y":3}, {"x":14.5, "y":3}, {"x":15.5, "y":3, "w":1.5}, {"x":0.5, "y":4}, {"x":1.5, "y":4}, {"x":2.5, "y":4}, {"x":3.5, "y":4}, {"x":4.5, "y":4}, {"x":11.5, "y":4}, {"x":12.5, "y":4}, {"x":13.5, "y":4}, {"x":14.5, "y":4}, {"x":15.5, "y":4}, {"x":6, "y":5}, {"x":7, "y":5}, {"x":9, "y":5}, {"x":10, "y":5}, {"x":5, "y":6}, {"x":6, "y":6}, {"x":7, "y":6}, {"x":9, "y":6}, {"x":10, "y":6}, {"x":11, "y":6}, {"x":5, "y":7}, {"x":6, "y":7}, {"x":7, "y":7}, {"x":9, "y":7}, {"x":10, "y":7}, {"x":11, "y":7}]
}
"layout": [
{"x":0, "y":0.375, "w":1.5}, {"x":1.5, "y":0.375}, {"x":2.5, "y":0.125}, {"x":3.5, "y":0}, {"x":4.5, "y":0.125}, {"x":5.5, "y":0.25}, {"x":6.5, "y":0.25},
{"x":9.5, "y":0.25}, {"x":10.5, "y":0.25}, {"x":11.5, "y":0.125}, {"x":12.5, "y":0}, {"x":13.5, "y":0.125}, {"x":14.5, "y":0.375}, {"x":15.5, "y":0.375, "w":1.5},
{"x":0, "y":1.375, "w":1.5}, {"x":1.5, "y":1.375}, {"x":2.5, "y":1.125}, {"x":3.5, "y":1}, {"x":4.5, "y":1.125}, {"x":5.5, "y":1.25}, {"x":6.5, "y":1.25, "h":1.5},
{"x":9.5, "y":1.25, "h":1.5}, {"x":10.5, "y":1.25}, {"x":11.5, "y":1.125}, {"x":12.5, "y":1}, {"x":13.5, "y":1.125}, {"x":14.5, "y":1.375}, {"x":15.5, "y":1.375, "w":1.5},
{"x":0, "y":2.375, "w":1.5}, {"x":1.5, "y":2.375}, {"x":2.5, "y":2.125}, {"x":3.5, "y":2}, {"x":4.5, "y":2.125}, {"x":5.5, "y":2.25},
{"x":10.5, "y":2.25}, {"x":11.5, "y":2.125}, {"x":12.5, "y":2}, {"x":13.5, "y":2.125}, {"x":14.5, "y":2.375}, {"x":15.5, "y":2.375, "w":1.5},
{"x":0, "y":3.375, "w":1.5}, {"x":1.5, "y":3.375}, {"x":2.5, "y":3.125}, {"x":3.5, "y":3}, {"x":4.5, "y":3.125}, {"x":5.5, "y":3.25}, {"x":6.5, "y":2.75, "h":1.5},
{"x":9.5, "y":2.75, "h":1.5}, {"x":10.5, "y":3.25}, {"x":11.5, "y":3.125}, {"x":12.5, "y":3}, {"x":13.5, "y":3.125}, {"x":14.5, "y":3.375}, {"x":15.5, "y":3.375, "w":1.5},
{"x":0.5, "y":4.375}, {"x":1.5, "y":4.375}, {"x":2.5, "y":4.125}, {"x":3.5, "y":4}, {"x":4.5, "y":4.125},
{"x":11.5, "y":4.125}, {"x":12.5, "y":4}, {"x":13.5, "y":4.125}, {"x":14.5, "y":4.375}, {"x":15.5, "y":4.375},
{"x":6, "y":5}, {"x":7, "y":5}, {"x":9, "y":5}, {"x":10, "y":5},
{"x":5, "y":6}, {"x":6, "y":6}, {"x":7, "y":6}, {"x":9, "y":6}, {"x":10, "y":6}, {"x":11, "y":6},
{"x":5, "y":7}, {"x":6, "y":7}, {"x":7, "y":7}, {"x":9, "y":7}, {"x":10, "y":7}, {"x":11, "y":7}
]
}
}
}

View File

@@ -3,11 +3,52 @@
"width": 19.5,
"height": 9.375,
"layouts": {
"LAYOUT_ergodox": {
"layout": [{"label":"#", "x":3.5, "y":0}, {"label":"*", "x":15, "y":0}, {"label":"@", "x":2.5, "y":0.125}, {"label":"$", "x":4.5, "y":0.125}, {"label":"&", "x":14, "y":0.125}, {"label":"(", "x":16, "y":0.125}, {"label":"%", "x":5.5, "y":0.25}, {"x":6.5, "y":0.25}, {"x":12, "y":0.25}, {"label":"^", "x":13, "y":0.25}, {"x":0, "y":0.375, "w":1.5}, {"label":"!", "x":1.5, "y":0.375}, {"label":")", "x":17, "y":0.375}, {"x":18, "y":0.375, "w":1.5}, {"label":"E", "x":3.5, "y":1}, {"label":"I", "x":15, "y":1}, {"label":"W", "x":2.5, "y":1.125}, {"label":"R", "x":4.5, "y":1.125}, {"label":"U", "x":14, "y":1.125}, {"label":"O", "x":16, "y":1.125}, {"label":"T", "x":5.5, "y":1.25}, {"x":6.5, "y":1.25, "h":1.5}, {"x":12, "y":1.25, "h":1.5}, {"label":"Y", "x":13, "y":1.25}, {"x":0, "y":1.375, "w":1.5}, {"label":"Q", "x":1.5, "y":1.375}, {"label":"P", "x":17, "y":1.375}, {"x":18, "y":1.375, "w":1.5}, {"label":"D", "x":3.5, "y":2}, {"label":"K", "x":15, "y":2}, {"label":"S", "x":2.5, "y":2.125}, {"label":"F", "x":4.5, "y":2.125}, {"label":"J", "x":14, "y":2.125}, {"label":"L", "x":16, "y":2.125}, {"label":"G", "x":5.5, "y":2.25}, {"label":"H", "x":13, "y":2.25}, {"x":0, "y":2.375, "w":1.5}, {"label":"A", "x":1.5, "y":2.375}, {"label":":", "x":17, "y":2.375}, {"x":18, "y":2.375, "w":1.5}, {"x":6.5, "y":2.75, "h":1.5}, {"x":12, "y":2.75, "h":1.5}, {"label":"C", "x":3.5, "y":3}, {"label":"<", "x":15, "y":3}, {"label":"X", "x":2.5, "y":3.125}, {"label":"V", "x":4.5, "y":3.125}, {"label":"M", "x":14, "y":3.125}, {"label":">", "x":16, "y":3.125}, {"label":"B", "x":5.5, "y":3.25}, {"label":"N", "x":13, "y":3.25}, {"x":0, "y":3.375, "w":1.5}, {"label":"Z", "x":1.5, "y":3.375}, {"label":"?", "x":17, "y":3.375}, {"x":18, "y":3.375, "w":1.5}, {"x":3.5, "y":4}, {"x":15, "y":4}, {"x":2.5, "y":4.125}, {"x":4.5, "y":4.125}, {"x":14, "y":4.125}, {"x":16, "y":4.125}, {"x":0.5, "y":4.375}, {"x":1.5, "y":4.375}, {"x":17, "y":4.375}, {"x":18, "y":4.375}, {"x":1, "y":4.375}, {"x":2, "y":4.375}, {"x":0, "y":5.375, "h":2}, {"x":1, "y":5.375, "h":2}, {"x":2, "y":5.375}, {"x":2, "y":6.375}, {"x":-3.0, "y":6.375}, {"x":-2, "y":6.375}, {"x":-3.0, "y":7.375}, {"x":-2, "y":7.375, "h":2}, {"x":-1.0, "y":7.375, "h":2}, {"x":-3.0, "y":8.375}]
},
"LAYOUT_ergodox_pretty": {
"layout": [{"label":"#", "x":3.5, "y":0}, {"label":"*", "x":15, "y":0}, {"label":"@", "x":2.5, "y":0.125}, {"label":"$", "x":4.5, "y":0.125}, {"label":"&", "x":14, "y":0.125}, {"label":"(", "x":16, "y":0.125}, {"label":"%", "x":5.5, "y":0.25}, {"x":6.5, "y":0.25}, {"x":12, "y":0.25}, {"label":"^", "x":13, "y":0.25}, {"x":0, "y":0.375, "w":1.5}, {"label":"!", "x":1.5, "y":0.375}, {"label":")", "x":17, "y":0.375}, {"x":18, "y":0.375, "w":1.5}, {"label":"E", "x":3.5, "y":1}, {"label":"I", "x":15, "y":1}, {"label":"W", "x":2.5, "y":1.125}, {"label":"R", "x":4.5, "y":1.125}, {"label":"U", "x":14, "y":1.125}, {"label":"O", "x":16, "y":1.125}, {"label":"T", "x":5.5, "y":1.25}, {"x":6.5, "y":1.25, "h":1.5}, {"x":12, "y":1.25, "h":1.5}, {"label":"Y", "x":13, "y":1.25}, {"x":0, "y":1.375, "w":1.5}, {"label":"Q", "x":1.5, "y":1.375}, {"label":"P", "x":17, "y":1.375}, {"x":18, "y":1.375, "w":1.5}, {"label":"D", "x":3.5, "y":2}, {"label":"K", "x":15, "y":2}, {"label":"S", "x":2.5, "y":2.125}, {"label":"F", "x":4.5, "y":2.125}, {"label":"J", "x":14, "y":2.125}, {"label":"L", "x":16, "y":2.125}, {"label":"G", "x":5.5, "y":2.25}, {"label":"H", "x":13, "y":2.25}, {"x":0, "y":2.375, "w":1.5}, {"label":"A", "x":1.5, "y":2.375}, {"label":":", "x":17, "y":2.375}, {"x":18, "y":2.375, "w":1.5}, {"x":6.5, "y":2.75, "h":1.5}, {"x":12, "y":2.75, "h":1.5}, {"label":"C", "x":3.5, "y":3}, {"label":"<", "x":15, "y":3}, {"label":"X", "x":2.5, "y":3.125}, {"label":"V", "x":4.5, "y":3.125}, {"label":"M", "x":14, "y":3.125}, {"label":">", "x":16, "y":3.125}, {"label":"B", "x":5.5, "y":3.25}, {"label":"N", "x":13, "y":3.25}, {"x":0, "y":3.375, "w":1.5}, {"label":"Z", "x":1.5, "y":3.375}, {"label":"?", "x":17, "y":3.375}, {"x":18, "y":3.375, "w":1.5}, {"x":3.5, "y":4}, {"x":15, "y":4}, {"x":2.5, "y":4.125}, {"x":4.5, "y":4.125}, {"x":14, "y":4.125}, {"x":16, "y":4.125}, {"x":0.5, "y":4.375}, {"x":1.5, "y":4.375}, {"x":17, "y":4.375}, {"x":18, "y":4.375}, {"x":1, "y":4.375}, {"x":2, "y":4.375}, {"x":0, "y":5.375, "h":2}, {"x":1, "y":5.375, "h":2}, {"x":2, "y":5.375}, {"x":2, "y":6.375}, {"x":-3.0, "y":6.375}, {"x":-2, "y":6.375}, {"x":-3.0, "y":7.375}, {"x":-2, "y":7.375, "h":2}, {"x":-1.0, "y":7.375, "h":2}, {"x":-3.0, "y":8.375}]
}
"LAYOUT_ergodox": {
"layout": [
{"x":0, "y":0.375, "w":1.5}, {"x":1.5, "y":0.375}, {"x":2.5, "y":0.125}, {"x":3.5, "y":0}, {"x":4.5, "y":0.125}, {"x":5.5, "y":0.25}, {"x":6.5, "y":0.25},
{"x":0, "y":1.375, "w":1.5}, {"x":1.5, "y":1.375}, {"x":2.5, "y":1.125}, {"x":3.5, "y":1}, {"x":4.5, "y":1.125}, {"x":5.5, "y":1.25}, {"x":6.5, "y":1.25, "h":1.5},
{"x":0, "y":2.375, "w":1.5}, {"x":1.5, "y":2.375}, {"x":2.5, "y":2.125}, {"x":3.5, "y":2}, {"x":4.5, "y":2.125}, {"x":5.5, "y":2.25},
{"x":0, "y":3.375, "w":1.5}, {"x":1.5, "y":3.375}, {"x":2.5, "y":3.125}, {"x":3.5, "y":3}, {"x":4.5, "y":3.125}, {"x":5.5, "y":3.25}, {"x":6.5, "y":2.75, "h":1.5},
{"x":0.5, "y":4.375}, {"x":1.5, "y":4.375}, {"x":2.5, "y":4.125}, {"x":3.5, "y":4}, {"x":4.5, "y":4.125},
{"x":6, "y":5}, {"x":7, "y":5},
{"x":7, "y":6},
{"x":5, "y":6, "h":2}, {"x":6, "y":6, "h":2}, {"x":7, "y":7},
{"x":9.5, "y":0.25}, {"x":10.5, "y":0.25}, {"x":11.5, "y":0.125}, {"x":12.5, "y":0}, {"x":13.5, "y":0.125}, {"x":14.5, "y":0.375}, {"x":15.5, "y":0.375, "w":1.5},
{"x":9.5, "y":1.25, "h":1.5}, {"x":10.5, "y":1.25}, {"x":11.5, "y":1.125}, {"x":12.5, "y":1}, {"x":13.5, "y":1.125}, {"x":14.5, "y":1.375}, {"x":15.5, "y":1.375, "w":1.5},
{"x":10.5, "y":2.25}, {"x":11.5, "y":2.125}, {"x":12.5, "y":2}, {"x":13.5, "y":2.125}, {"x":14.5, "y":2.375}, {"x":15.5, "y":2.375, "w":1.5},
{"x":9.5, "y":2.75, "h":1.5}, {"x":10.5, "y":3.25}, {"x":11.5, "y":3.125}, {"x":12.5, "y":3}, {"x":13.5, "y":3.125}, {"x":14.5, "y":3.375}, {"x":15.5, "y":3.375, "w":1.5},
{"x":11.5, "y":4.125}, {"x":12.5, "y":4}, {"x":13.5, "y":4.125}, {"x":14.5, "y":4.375}, {"x":15.5, "y":4.375},
{"x":9, "y":5}, {"x":10, "y":5},
{"x":9, "y":6},
{"x":9, "y":7}, {"x":10, "y":6, "h":2}, {"x":11, "y":6, "h":2}
]
},
"LAYOUT_ergodox_pretty": {
"layout": [
{"x":0, "y":0.375, "w":1.5}, {"x":1.5, "y":0.375}, {"x":2.5, "y":0.125}, {"x":3.5, "y":0}, {"x":4.5, "y":0.125}, {"x":5.5, "y":0.25}, {"x":6.5, "y":0.25},
{"x":9.5, "y":0.25}, {"x":10.5, "y":0.25}, {"x":11.5, "y":0.125}, {"x":12.5, "y":0}, {"x":13.5, "y":0.125}, {"x":14.5, "y":0.375}, {"x":15.5, "y":0.375, "w":1.5},
{"x":0, "y":1.375, "w":1.5}, {"x":1.5, "y":1.375}, {"x":2.5, "y":1.125}, {"x":3.5, "y":1}, {"x":4.5, "y":1.125}, {"x":5.5, "y":1.25}, {"x":6.5, "y":1.25, "h":1.5},
{"x":9.5, "y":1.25, "h":1.5}, {"x":10.5, "y":1.25}, {"x":11.5, "y":1.125}, {"x":12.5, "y":1}, {"x":13.5, "y":1.125}, {"x":14.5, "y":1.375}, {"x":15.5, "y":1.375, "w":1.5},
{"x":0, "y":2.375, "w":1.5}, {"x":1.5, "y":2.375}, {"x":2.5, "y":2.125}, {"x":3.5, "y":2}, {"x":4.5, "y":2.125}, {"x":5.5, "y":2.25},
{"x":10.5, "y":2.25}, {"x":11.5, "y":2.125}, {"x":12.5, "y":2}, {"x":13.5, "y":2.125}, {"x":14.5, "y":2.375}, {"x":15.5, "y":2.375, "w":1.5},
{"x":0, "y":3.375, "w":1.5}, {"x":1.5, "y":3.375}, {"x":2.5, "y":3.125}, {"x":3.5, "y":3}, {"x":4.5, "y":3.125}, {"x":5.5, "y":3.25}, {"x":6.5, "y":2.75, "h":1.5},
{"x":9.5, "y":2.75, "h":1.5}, {"x":10.5, "y":3.25}, {"x":11.5, "y":3.125}, {"x":12.5, "y":3}, {"x":13.5, "y":3.125}, {"x":14.5, "y":3.375}, {"x":15.5, "y":3.375, "w":1.5},
{"x":0.5, "y":4.375}, {"x":1.5, "y":4.375}, {"x":2.5, "y":4.125}, {"x":3.5, "y":4}, {"x":4.5, "y":4.125},
{"x":11.5, "y":4.125}, {"x":12.5, "y":4}, {"x":13.5, "y":4.125}, {"x":14.5, "y":4.375}, {"x":15.5, "y":4.375},
{"x":6, "y":5}, {"x":7, "y":5}, {"x":9, "y":5}, {"x":10, "y":5},
{"x":7, "y":6}, {"x":9, "y":6},
{"x":5, "y":6, "h":2}, {"x":6, "y":6, "h":2}, {"x":7, "y":7}, {"x":9, "y":7}, {"x":10, "y":6, "h":2}, {"x":11, "y":6, "h":2}
]
}
}
}

View File

@@ -0,0 +1,33 @@
/*
This is the c configuration file for the keymap
Copyright 2012 Jun Wako <wakojun@gmail.com>
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_common.h"
/* Use I2C or Serial, not both */
#define USE_SERIAL
// #define USE_I2C
#define EE_HANDS
#endif

View File

@@ -0,0 +1,85 @@
#include QMK_KEYBOARD_H
#include "action_layer.h"
#include "eeconfig.h"
extern keymap_config_t keymap_config;
// 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.
#define _BASE 0
#define _FN1 1
#define _FN2 2
enum custom_keycodes {
QWERTY = SAFE_RANGE,
};
#define KC_ KC_TRNS
#define _______ KC_TRNS
#define XXXXXXX KC_NO
#define KC_FN1 MO(_FN1)
#define KC_FN2 MO(_FN2)
#define KC_SPFN1 LT(_FN1, KC_SPACE)
#define KC_SPFN2 LT(_FN2, KC_SPACE)
#define KC_BSFN1 LT(_FN1, KC_BSPC)
#define KC_BSFN2 LT(_FN2, KC_BSPC)
#define KC_RST RESET
#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] = {
[_BASE] = LAYOUT_kc(
//,----+----+----+----+----+----|----+----+----+----+----+----+----.
TAB ,QUOT,COMM,DOT , P , Y , F , G , C , R , L ,SLSH,MINS,
//|----`----`----`----`----`----|----`----`----`----`----`----`----|
ESC , A , O , E , U , I , D , H , T , N , S , ENTER ,
//|-----`----`----`----`----`----|----`----`----`----`----`--------|
LSFT ,SCLN, Q , J , K , X , B , M , W , V , Z , RSFT ,
//|-------`----`----`----`----`----|----`----`----`----`----`------|
LCTL ,LALT,LGUI ,FN2 , BSPC , SPC , FN1 ,RGUI ,RALT , RCTL
//`-----+----+-----+----+--------|--------+-----+-----+-----+------'
),
[_FN1] = LAYOUT_kc(
//,----+----+----+----+----+----|----+----+----+----+----+----+----.
GRV , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,MINS,EQL ,
//|----`----`----`----`----`----|----`----`----`----`----`----`----|
CAPS ,RHUI,RSAI,RVAI,VOLU,LBRC,RBRC, , , ,SCLN, ,
//|-----`----`----`----`----`----|----`----`----`----`----`--------|
RMOD ,RHUD,RSAD,RVAD,VOLD,LCBR,RCBR, , , , UP , ,
//|-------`----`----`----`----`----|----`----`----`----`----`------|
RTOG , , , , DEL , INS , ,LEFT ,DOWN , RGHT
//`-----+----+-----+----+--------|--------+-----+-----+-----+------'
),
[_FN2] = LAYOUT_kc(
//,----+----+----+----+----+----|----+----+----+----+----+----+----.
TILD,EXLM, AT ,HASH,DLR ,PERC,CIRC,AMPR,ASTR,LPRN,RPRN,UNDS,PLUS,
//|----`----`----`----`----`----|----`----`----`----`----`----`----|
CAPS , , ,INS ,PGUP,HOME, F1 , F2 , F3 , F4 , F5 , F6 ,
//|-----`----`----`----`----`----|----`----`----`----`----`--------|
, , ,DEL ,PGDN,END , F7 , F8 , F9 ,F10 ,F11 , F12 ,
//|-------`----`----`----`----`----|----`----`----`----`----`------|
, , , , DEL , INS , , , ,
//`-----+----+-----+----+--------|--------+-----+-----+-----+------'
)
};
void matrix_init_user(void) {
// This will disable the red LEDs on the ProMicros
DDRD &= ~(1<<5);
PORTD &= ~(1<<5);
DDRB &= ~(1<<0);
PORTB &= ~(1<<0);
};

View File

@@ -87,6 +87,20 @@
/* 7 */ { 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_tkl_ansi KEYMAP_TKL
#define LAYOUT_tkl_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, \
KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3, KK4, KO7, KQ7, \
KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6, KB1, \
KN2, KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0, KN3, KO6, \
KA4, KP2, KC6, KK6, KC0, KM3, KD0, KA1, KO0, KK0, KL0 \
) KEYMAP_TKL( \
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, \
KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3, KK4, KO7, KQ7, \
KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6, KB1, \
KN2, KC_NO, KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0, KN3, KO6, \
KA4, KP2, KC6, KK6, KC0, KM3, KD0, KA1, KO0, KK0, KL0 \
)
#endif

View File

@@ -90,6 +90,162 @@ void raw_hid_receive( uint8_t *data, uint8_t length )
#endif*/
#ifdef HS60_ANSI
const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
* | | G location
* | | | B location
* | | | | */
{0, C1_1, C3_2, C4_2}, //A1
{0, C1_2, C2_2, C4_3}, //A2
{0, C1_3, C2_3, C3_3}, //A3
{0, C1_4, C2_4, C3_4}, //A4
{0, C1_5, C2_5, C3_5}, //A5
{0, C1_6, C2_6, C3_6}, //A6
{0, C1_7, C2_7, C3_7}, //A7
{0, C1_8, C2_8, C3_8}, //A8
{0, C9_1, C8_1, C7_1}, //A9
{0, C9_2, C8_2, C7_2}, //A10
{0, C9_3, C8_3, C7_3}, //A11
{0, C9_4, C8_4, C7_4}, //A12
{0, C9_5, C8_5, C7_5}, //A13
{0, C9_6, C8_6, C7_6}, //A14
{0, C9_7, C8_7, C6_6}, //A15
{0, C9_8, C7_7, C6_7}, //A16
{0, C1_9, C3_10, C4_10}, //B1
{0, C1_10, C2_10, C4_11}, //B2
{0, C1_11, C2_11, C3_11}, //B3
{0, C1_12, C2_12, C3_12}, //B4
{0, C1_13, C2_13, C3_13}, //B5
{0, C1_14, C2_14, C3_14}, //B6
{0, C1_15, C2_15, C3_15}, //B7
{0, C1_16, C2_16, C3_16}, //B8
{0, C9_9, C8_9, C7_9}, //B9
{0, C9_10, C8_10, C7_10}, //B10
{0, C9_11, C8_11, C7_11}, //B11
{0, C9_12, C8_12, C7_12}, //B12
{0, C9_13, C8_13, C7_13}, //B13
{0, C9_14, C8_14, C7_14}, //B14
{1, C1_1, C3_2, C4_2}, //C1
{1, C1_2, C2_2, C4_3}, //C2
{1, C1_3, C2_3, C3_3}, //C3
{1, C1_4, C2_4, C3_4}, //C4
{1, C1_5, C2_5, C3_5}, //C5
{1, C1_6, C2_6, C3_6}, //C6
{1, C1_7, C2_7, C3_7}, //C7
{1, C1_8, C2_8, C3_8}, //C8
{1, C9_1, C8_1, C7_1}, //C9
{1, C9_2, C8_2, C7_2}, //C10
{1, C9_3, C8_3, C7_3}, //C11
{1, C9_4, C8_4, C7_4}, //C12
{1, C9_5, C8_5, C7_5}, //C13
{1, C9_6, C8_6, C7_6}, //C14
{1, C9_7, C8_7, C6_6}, //C15
{1, C9_8, C7_7, C6_7}, //C16
{1, C1_9, C3_10, C4_10}, //D1
//D2
{1, C1_11, C2_11, C3_11}, //D3
{1, C1_12, C2_12, C3_12}, //D4
{1, C1_13, C2_13, C3_13}, //D5
{1, C1_14, C2_14, C3_14}, //D6
{1, C1_15, C2_15, C3_15}, //D7
{1, C1_16, C2_16, C3_16}, //D8
{1, C9_9, C8_9, C7_9}, //D9
{1, C9_10, C8_10, C7_10}, //D10
{1, C9_11, C8_11, C7_11}, //D11
{1, C9_12, C8_12, C7_12}, //D12
{1, C9_13, C8_13, C7_13}, //D13
{1, C9_14, C8_14, C7_14}, //D14
{1, C9_15, C8_15, C6_14}, //D15
{1, C9_16, C7_15, C6_15} //D16
};
const rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = {
//
// C7, C6, C5, C4, C3, C2, C1, A7, A6, A5, A4, A3, A2, A1,
// C8, C9, C10, C11, C12, C13, C14, A8, A9, A10, A11, A12, A13, A15,
// D4, D5, D6, D7, D8, C16, C15, B5, B6, B7, B8, A16, ---, A14,
// D3, ---, D1, D9, D10, D11, D12, B4, B3, B2, B1, B9, ---, B10,
// D16, D15, D14, ---, ---, ---, D13, ---, ---, ---, B14, B13, B12, B11
/* {row | col << 4}
* | {x=0..224, y=0..64}
* | | modifier
* | | | */
{{0|(13<<4)}, {224, 0}, 1}, //A1-A16
{{0|(12<<4)}, {204, 0}, 0},
{{0|(11<<4)}, {187, 0}, 0},
{{0|(10<<4)}, {170, 0}, 0},
{{0|(9<<4)}, {153, 0}, 0},
{{0|(8<<4)}, {136, 0}, 0},
{{0|(7<<4)}, {119, 0}, 0},
{{1|(7<<4)}, {119, 16}, 0},
{{1|(8<<4)}, {136, 16}, 0},
{{1|(9<<4)}, {153, 16}, 0},
{{1|(10<<4)}, {170, 16}, 0},
{{1|(11<<4)}, {187, 16}, 0},
{{1|(12<<4)}, {204, 16}, 0},
{{2|(13<<4)}, {224, 32}, 1},
{{2|(12<<4)}, {224, 16}, 0},
{{2|(11<<4)}, {197, 32}, 0},
{{3|(10<<4)}, {170, 48}, 0}, //B1-B14
{{3|(9<<4)}, {153, 48}, 0},
{{3|(8<<4)}, {136, 48}, 0},
{{3|(7<<4)}, {119, 48}, 0},
{{2|(7<<4)}, {119, 32}, 0},
{{2|(8<<4)}, {136, 32}, 0},
{{2|(9<<4)}, {153, 32}, 0},
{{2|(10<<4)}, {170, 32}, 0},
{{3|(11<<4)}, {187, 48}, 0},
{{3|(13<<4)}, {214, 48}, 1},
{{4|(13<<4)}, {224, 64}, 1},
{{4|(12<<4)}, {204, 64}, 1},
{{4|(11<<4)}, {187, 64}, 1},
{{4|(10<<4)}, {170, 64}, 1},
{{0|(6<<4)}, {102, 0}, 0}, //C1-C16
{{0|(5<<4)}, { 85, 0}, 0},
{{0|(4<<4)}, { 68, 0}, 0},
{{0|(3<<4)}, { 51, 0}, 0},
{{0|(2<<4)}, { 34, 0}, 0},
{{0|(1<<4)}, { 17, 0}, 0},
{{0|(0<<4)}, { 0, 0}, 1},
{{1|(0<<4)}, { 0, 16}, 1},
{{1|(1<<4)}, { 17, 16}, 0},
{{1|(2<<4)}, { 34, 16}, 0},
{{1|(3<<4)}, { 51, 16}, 0},
{{1|(4<<4)}, { 68, 16}, 0},
{{1|(5<<4)}, { 85, 16}, 0},
{{1|(6<<4)}, {102, 16}, 0},
{{2|(6<<4)}, {102, 32}, 0},
{{2|(5<<4)}, { 85, 32}, 0},
{{3|(2<<4)}, { 32, 48}, 0}, //D1-D16
//D2
{{3|(0<<4)}, { 10, 48}, 1},
{{2|(0<<4)}, { 0, 32}, 1},
{{2|(1<<4)}, { 17, 32}, 0},
{{2|(2<<4)}, { 34, 32}, 0},
{{2|(3<<4)}, { 51, 32}, 0},
{{2|(4<<4)}, { 68, 32}, 0},
{{3|(3<<4)}, { 51, 48}, 0},
{{3|(4<<4)}, { 68, 48}, 0},
{{3|(5<<4)}, { 85, 48}, 0},
{{3|(6<<4)}, {102, 48}, 0},
{{4|(3<<4)}, {102, 64}, 0},
{{4|(2<<4)}, { 34, 68}, 1},
{{4|(1<<4)}, { 17, 68}, 1},
{{4|(0<<4)}, { 0, 68}, 1}
};
#else
const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
/* Refer to IS31 manual for these locations
* driver
@@ -242,6 +398,8 @@ const rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = {
{{4|(0<<4)}, { 0, 68}, 1}
};
#endif
void bootmagic_lite(void)
{
// The lite version of TMK's bootmagic made by Wilba.

View File

@@ -36,4 +36,17 @@
{ K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D } \
}
#endif
#define LAYOUT_60_ansi( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2C, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \
K40, K41, K42, K46, K4A, K4B, K4C, K4D \
) { \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, XXX }, \
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \
{ K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D }, \
{ K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D } \
}
#endif

15
keyboards/hs60/info.json Normal file
View File

@@ -0,0 +1,15 @@
{
"keyboard_name": "HS60",
"url": "",
"maintainer": "qmk",
"width": 15,
"height": 5,
"layouts": {
"LAYOUT_60_iso": {
"layout": [{"label":"\u00ac", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"\"", "x":2, "y":0}, {"label":"\u00a3", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"@", "x":11.75, "y":2}, {"label":"~", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"AltGr", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}]
},
"LAYOUT_60_ansi": {
"layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}]
}
}
}

View File

@@ -0,0 +1,26 @@
/*
Copyright 2018 Yiancar
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"
/* Include overwrites for specific keymap */
#define HS60_ANSI
#endif

View File

@@ -0,0 +1,46 @@
/* Copyright 2018 Yiancar
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
//This is the ANSI version of the PCB
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_60_ansi( /* Base */
KC_GESC, 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,\
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,\
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1) , KC_APP, KC_RCTL),
[1] = LAYOUT_60_ansi( /* FN */
KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL ,\
KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET , KC_TRNS,\
KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,\
KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, KC_TRNS,\
KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
};
void matrix_init_user(void) {
//user initialization
}
void matrix_scan_user(void) {
//user matrix
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
return true;
}

View File

@@ -0,0 +1,6 @@
The default keymap for ANSI HS60
================================
![Layout image](https://imgur.com/CSyPw0J.png)
Default layer is normal ANSI and Fn layer is used for RGB functions, Volume control and arrow cluster

View File

@@ -1,6 +1,6 @@
The default keymap for ISO HS60
===============================
![Layout image](https://i.imgur.com/Kua44z2.png)
![Layout image](https://imgur.com/HXj4tYL.png)
Default layer is normal ISO and Fn layer is used for RGB functions, Volume control and arrow cluster

View File

@@ -7,7 +7,9 @@ This is a standard fixed layout 60% PCB. It comes in two varians, ISO and ANSI a
Keyboard Maintainer: [Yiancar](http://yiancar-designs.com/) and on [github](https://github.com/yiancar)
Hardware Supported: HS60 ISO and ANSI PCBs with Atmega 32u4
Hardware Availability: https://mechboards.co.uk/shop/all/hs60-pcb/
Hardware Availability: https://mechboards.co.uk/shop/all/hs60-pcb/
Due to the RGB implementation, the HS60 is currently not compatible with community layouts.
Make example for this keyboard (after setting up your build environment):

View File

@@ -69,8 +69,6 @@ AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
RGB_MATRIX_ENABLE = yes # Use RGB matrix
LAYOUTS = 60_iso # Define standard layouts
# Experimental features for zealcmd please do no enable
#RAW_ENABLE = yes
#RAW_ENABLE = yes
#USE_KEYMAPS_IN_EEPROM = yes

View File

@@ -0,0 +1,44 @@
/*
Copyright 2017 Danny Nguyen <danny@hexwire.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef CONFIG_USER_H
#define CONFIG_USER_H
#include "config_common.h"
#define USE_SERIAL
#define EE_HANDS
#define PREVENT_STUCK_MODIFIERS
#undef PRODUCT
#define PRODUCT Iris Keyboard
#undef MANUFACTURER
#define MANUFACTURER Ian Sterling
#undef DESCRIPTION
#define DESCRIPTION A column-staggered split ortholinear keyboard
#undef RGBLED_NUM
#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 12
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8
#endif

View File

@@ -0,0 +1,161 @@
#include QMK_KEYBOARD_H
#include "action_layer.h"
#include "eeconfig.h"
extern keymap_config_t keymap_config;
#define _QWERTY 0
#define _COLEMAK 1
#define _DVORAK 2
#define _LOWER 3
#define _RAISE 4
#define _ADJUST 16
enum custom_keycodes {
QWERTY = SAFE_RANGE,
COLEMAK,
DVORAK,
LOWER,
RAISE,
ADJUST,
};
#define KC_____ KC_TRNS
#define KC_LOWR LOWER
#define KC_RASE RAISE
#define KC_RST RESET
#define KC_BL_S BL_STEP
#define KC_QWRT QWERTY
#define KC_CLMK COLEMAK
#define KC_DVRK DVORAK
#define KC_BSLT ALT_T(KC_BSPC)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT_kc (
EQL , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,MINS,
TAB , Q , W , E , R , T , Y , U , I , O , P ,BSLS,
ESC , A , S , D , F , G , H , J , K , L ,SCLN,QUOT,
LSFT, Z , X , C , V , B ,LOWR, RASE, N , M ,COMM,DOT ,SLSH,RSFT,
LCTL,BSPC,LGUI, ENT ,SPC ,LALT
),
[_COLEMAK] = LAYOUT_kc (
EQL , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,MINS,
TAB , Q , W , F , P , G , J , L , U , Y ,SCLN,BSPC,
ESC , A , R , S , T , D , H , N , E , I , O ,QUOT,
LSFT, Z , X , C , V , B ,LOWR, RASE, K , M ,COMM,DOT ,SLSH,RSFT,
LCTL,BSPC,LGUI, ENT ,SPC ,LALT
),
[_DVORAK] = LAYOUT_kc (
LBRC, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,RBRC,
TAB ,QUOT,COMM,DOT , P , Y , F , G , C , R , L ,SLSH,
ESC , A , O , E , U , I , D , H , T , N , S ,MINS,
LSFT,SCLN, Q , J , K , X ,LOWR, RASE, B , M , W , V , Z ,RSFT,
LCTL,BSLT,LGUI, ENT ,SPC ,LALT
),
[_LOWER] = LAYOUT_kc (
F11 , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F12 ,
TILD,____,____, UP ,____,____, ____,____,____,____,____,____,
CAPS,____,LEFT,DOWN,RGHT,HOME, PGUP,UNDS,PLUS,LCBR,RCBR,PIPE,
BL_S,____,MUTE,VOLD,VOLU,END ,____, ____,PGDN,MPRV,MPLY,MNXT,____,____,
____,DEL ,____, ____,INS ,____
),
[_RAISE] = LAYOUT_kc (
F11 , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F12 ,
GRV ,____,____, UP ,____,____, ____,____,____,____,____,____,
CAPS,____,LEFT,DOWN,RGHT,HOME, PGUP,MINS,EQL ,LBRC,RBRC,BSLS,
BL_S,____,MUTE,VOLD,VOLU,END ,____, ____,PGDN,MPRV,MPLY,MNXT,____,____,
____,DEL ,____, ____,INS ,____
),
[_ADJUST] = LAYOUT_kc (
F11 , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F12 ,
____,RST ,____,____,____,____, ____,____,____,____,____,____,
____,____,____,____,____,____, ____,QWRT,CLMK,DVRK,____,____,
____,____,____,____,____,____,____, ____,____,____,____,____,____,____,
____,____,____, ____,____,____
)
};
#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);
}
void matrix_init_user(void) {
// This will disable the red LEDs on the ProMicros
DDRD &= ~(1<<5);
PORTD &= ~(1<<5);
DDRB &= ~(1<<0);
PORTB &= ~(1<<0);
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case QWERTY:
if (record->event.pressed) {
#ifdef AUDIO_ENABLE
PLAY_SONG(tone_qwerty);
#endif
persistent_default_layer_set(1UL<<_QWERTY);
}
return false;
break;
case COLEMAK:
if (record->event.pressed) {
#ifdef AUDIO_ENABLE
PLAY_SONG(tone_colemak);
#endif
persistent_default_layer_set(1UL<<_COLEMAK);
}
return false;
break;
case DVORAK:
if (record->event.pressed) {
#ifdef AUDIO_ENABLE
PLAY_SONG(tone_dvorak);
#endif
persistent_default_layer_set(1UL<<_DVORAK);
}
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;
}

View File

@@ -0,0 +1,2 @@
RGBLIGHT_ENABLE = yes
BACKLIGHT_ENABLE = yes

View File

@@ -30,7 +30,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "pro_micro.h"
#include "config.h"
#include "timer.h"
#include "backlight.h"
#ifdef BACKLIGHT_ENABLE
#include "backlight.h"
extern backlight_config_t backlight_config;
#endif
#ifdef USE_I2C
# include "i2c.h"
@@ -86,7 +90,6 @@ static matrix_row_t matrix_debouncing[MATRIX_ROWS];
static void select_col(uint8_t col);
#endif
__attribute__ ((weak))
void matrix_init_kb(void) {
matrix_init_user();
@@ -202,7 +205,7 @@ int i2c_transaction(void) {
#ifdef BACKLIGHT_ENABLE
// Write backlight level for slave to read
err = i2c_master_write(get_backlight_level());
err = i2c_master_write(backlight_config.enable ? backlight_config.level : 0);
#else
// Write zero, so our byte index is the same
err = i2c_master_write(0x00);
@@ -244,7 +247,7 @@ int serial_transaction(void) {
#ifdef BACKLIGHT_ENABLE
// Write backlight level for slave to read
serial_master_buffer[SERIAL_LED_ADDR] = get_backlight_level();
serial_master_buffer[SERIAL_LED_ADDR] = backlight_config.enable ? backlight_config.level : 0;
#endif
return 0;
}

View File

@@ -4,7 +4,7 @@
#include "quantum.h"
#include "led.h"
/* GH60 LEDs
/* GH60 LEDs
* GPIO pads
* 0 F7 WASD LEDs
* 1 F6 ESC LED
@@ -13,7 +13,7 @@
* B2 Capslock LED
* B0 not connected
*/
/*
inline void gh60_caps_led_on(void) { DDRB |= (1<<2); PORTB &= ~(1<<2); }
inline void gh60_poker_leds_on(void) { DDRF |= (1<<4); PORTF &= ~(1<<4); }
@@ -30,7 +30,7 @@ inline void gh60_wasd_leds_off(void) { DDRF &= ~(1<<7); PORTF &= ~(1<<7); }
/* JD40 MKII keymap definition macro
*/
#define LAYOUT( \
#define LAYOUT_kc( \
K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, \
K13, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, \
K24, K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, \
@@ -42,4 +42,16 @@ inline void gh60_wasd_leds_off(void) { DDRF &= ~(1<<7); PORTF &= ~(1<<7); }
{ KC_##K35, KC_##K36, KC_##K37, KC_##K38, KC_##K39, KC_NO, KC_##K40, KC_##K41, KC_##K42, KC_##K43, KC_##K44, KC_NO } \
}
#define LAYOUT( \
K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, \
K13, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, \
K24, K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, \
K35, K36, K37, K38, K39, K40, K41, K42, K43, K44 \
) { \
{ K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12 }, \
{ K13, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, KC_NO }, \
{ K24, K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, KC_NO }, \
{ K35, K36, K37, K38, K39, KC_NO, K40, K41, K42, K43, K44, KC_NO } \
}
#endif

View File

@@ -7,25 +7,25 @@
#define _UL 3
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BL] = LAYOUT(
[_BL] = LAYOUT_kc(
F12, Q, W, E, R, T, Y, U, I, O, P, BSPC,
TAB, A, S, D, F, G, H, J, K, L, ENT,
LSFT, Z, X, C, V, B, N, M, COMM, UP, DOT,
LCTL, LGUI, LALT, FN0, SPC, SPC, FN0, LEFT, DOWN, RIGHT),
[_AL] = LAYOUT(
[_AL] = LAYOUT_kc(
GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, DEL,
CAPS, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0,
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, SCLN, PGUP, QUOT,
TRNS, TRNS, TRNS, TRNS, FN3, FN3, TRNS, HOME, PGDN, END),
[_FL] = LAYOUT(
[_FL] = LAYOUT_kc(
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS),
[_UL] = LAYOUT(
[_UL] = LAYOUT_kc(
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
TRNS, FN4, FN5, FN11, FN10, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,

View File

@@ -1,5 +1,5 @@
#include "kc60.h"
#include QMK_KEYBOARD_H
#define _QWERTY 0
#define _FNCAPS 1

View File

@@ -1,5 +1,5 @@
#include "kc60.h"
#include QMK_KEYBOARD_H
#define _QWERTY 0
#define _FN 1

View File

@@ -1,5 +1,5 @@
#include "kc60.h"
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT( /* Basic QWERTY */

View File

@@ -1,61 +0,0 @@
// This is the 60% layout preferred by u/merlin36 the host of the MechMerlin YouTube channel.
// The layout is highly influenced by the WKL B.Face and KBP V60 standard layouts.
// Layout designed for use on KC60 with no inswitch or underglow lighting.
#include "kc60.h"
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT( /* Basic QWERTY */
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, \
KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, \
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_NO, MO(2), KC_RALT, KC_RGUI, KC_RCTL \
),
[1] = LAYOUT( /* HHKB-ish 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, KC_EQL, KC_BSLS, \
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, \
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_NO, KC_ENT, \
KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, \
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_NO, MO(3), KC_RALT, KC_RGUI, KC_RCTL \
),
[2] = LAYOUT( /* FN Layer 1 - Basic QWERTY */
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, \
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TO(1), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, \
KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_NO, KC_PGUP, \
KC_TRNS, KC_TRNS, KC_TRNS, TG(4), KC_NO, KC_TRNS, KC_HOME, KC_PGDN, KC_END \
),
[3] = LAYOUT( /* FN Layer 2 - HHKB-ish Base Layout */
KC_GRV, 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_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_BSPC, \
KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, TO(0), KC_TRNS, KC_HOME, KC_PGUP, KC_LEFT, KC_RIGHT, KC_NO, KC_TRNS, \
KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_DOWN, KC_NO, KC_TRNS, \
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS \
),
[4] = LAYOUT( /* Arrow Layers - Basic QWERTY ONLY */
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, \
KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_UP, \
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT \
),
[5] = LAYOUT( /* Blank Layer for later usage */
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, \
KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, \
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS \
),
};
const uint16_t PROGMEM fn_actions[] = {
};
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
// MACRODOWN only works in this function
return MACRO_NONE;
};

View File

@@ -1,20 +0,0 @@
MechMerlin's KC60 Layout
======================
This is the 60% layout used by u/merlin36, host of the MechMerlin YouTube channel.
It has 5 layers, base QWERTY, base HHKB, FN 1, FN 2(HHKB), and an arrows only layer.
Merlin's KC60 was acquired from Massdrop: https://www.massdrop.com/buy/kc60-mechanical-keyboard and is the Co-Star stabilizer version
If you would like to program your KC60 using the manufacturer recommended approach, please follow the guide on keychatter: https://www.keychatter.com/2015/07/05/programming-the-kc60/.
## Keymap Notes
- Highly influenced by the KBP V60 and WKL B.Face standard layouts
- Does not support any form of inswitch or underglow lighting as Merlin hates them.
- Arrow toggle switch is FN + Space
- Reset is FN + R
- HHKB keymap is approximate as keyboard is not built like HHKB
### Build
To build this keymap, simply run `make KEYMAP=mechmerlin`.

View File

@@ -1,5 +1,5 @@
#include "kc60.h"
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*

View File

@@ -1,5 +1,5 @@
#include "kc60.h"
#include QMK_KEYBOARD_H
// 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.

View File

@@ -2,7 +2,7 @@
// It also moves the reset key off the base layer, as in the default kc60 layout for this firmware.
// I have swapped FN and RGUI as my rainbow keyset has them in the opposite order.
#include "kc60.h"
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

View File

@@ -1,4 +1,4 @@
#include "kc60.h"
#include QMK_KEYBOARD_H
#define _WM 0
#define _QW 1

View File

@@ -1,5 +1,5 @@
#include "kc60.h"
#include QMK_KEYBOARD_H
// Used for SHIFT_ESC
#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT))

View File

@@ -1,4 +1,4 @@
#include "kinesis.h"
#include QMK_KEYBOARD_H
#include "action_layer.h"
#include "eeconfig.h"
@@ -132,7 +132,7 @@ extern keymap_config_t keymap_config;
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_DV] = KEYMAP(
[_DV] = LAYOUT (
// Left Hand
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8,
KC_RBRC, KC_1, KC_2, KC_3, KC_4, KC_5,
@@ -158,10 +158,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_PGDN, LT(_KP, KC_ENT), KC_SPC
),
[_QW] = KEYMAP(
[_QW] = LAYOUT (
// Left Hand
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8,
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5,
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B,
@@ -184,10 +184,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_PGDN, LT(_KP, KC_ENT), KC_SPC
),
[_CM] = KEYMAP(
[_CM] = LAYOUT (
// Left Hand
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8,
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5,
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5,
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G,
KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B,
@@ -210,7 +210,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_PGDN, LT(_KP, KC_ENT), KC_SPC
),
[_MD] = KEYMAP(
[_MD] = LAYOUT (
// Left Hand
_______, _______, _______, _______, _______, _______, _______, _______, _______,
KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5,
@@ -236,7 +236,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______
),
[_KP] = KEYMAP(
[_KP] = LAYOUT (
// Left Hand
_______, _______, _______, _______, _______, _______, _______, _______, _______,
KC_PWR, _______, _______, _______, _______, _______,
@@ -300,3 +300,21 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
void matrix_init_user(void) {
};
void led_set_user(uint8_t usb_led) {
if (usb_led & (1<<USB_LED_NUM_LOCK)) {
PORTF |= (1<<2);
} else {
PORTF &= ~(1<<2);
}
if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
PORTF |= (1<<3);
} else {
PORTF &= ~(1<<3);
}
if (usb_led & (1<<USB_LED_SCROLL_LOCK)) {
PORTF |= (1<<1);
} else {
PORTF &= ~(1<<1);
}
}

View File

@@ -4,6 +4,8 @@
The Dvorak layout shown here stems from my early Kinesis years, using the Contour PS/2 with a Dvorak software layout. Because of this, the RBRC and LBRC were on opposite sides of the board in the corner keys. I've decided to continue using this layout with my QMK Kinesis.
~~After a year of using a planck, I've become accustomed to my / and ? being above the - key, so I've decided to move my [, ], and = to the normal Advantage location and set the two keys above the - to new locations. I'll play with it for a while and see how I like it.~~ I didn't like it, so I've switched back.
The QWERTY layout shown here is based entirely on the Kinesis Advantage layout. The Colemak layout is merely an adaptation of that.
I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar to the default Planck layouts.
@@ -31,7 +33,7 @@ I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar t
|--------+------+------+------+------+------||------+------+------+------+------+--------|
| LShift | Z | X | C | V | X || B | M | W | V | Z | RShift |
`--------+------+------+------+------+------'`------+------+------+------+------+--------'
| ` | Ins | Left | Rght | | Up | Dn | / | = |
| ` | INS | Left | Rght | | Up | Dn | / | = |
`---------------------------' `---------------------------'
,--------------.,--------------.
| LCtl | LAlt || RGUI | RCtl |

View File

@@ -25,4 +25,16 @@ 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);
inline void kinesis_keypad_led_on(void) { DDRF |= (1<<0); PORTF |= (1<<0); }
inline void kinesis_scroll_led_on(void) { DDRF |= (1<<1); PORTF |= (1<<1); }
inline void kinesis_num_led_on(void) { DDRF |= (1<<2); PORTF |= (1<<2); }
inline void kinesis_caps_led_on(void) { DDRF |= (1<<3); PORTF |= (1<<3); }
inline void kinesis_keypad_led_off(void) { DDRF &= ~(1<<0); PORTF &= ~(1<<0); }
inline void kinesis_scroll_led_off(void) { DDRF &= ~(1<<1); PORTF &= ~(1<<1); }
inline void kinesis_num_led_off(void) { DDRF &= ~(1<<2); PORTF &= ~(1<<2); }
inline void kinesis_caps_led_off(void) { DDRF &= ~(1<<3); PORTF &= ~(1<<3); }
}

197
keyboards/kira75/config.h Normal file
View File

@@ -0,0 +1,197 @@
/*
Copyright 2018 MechMerlin
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_H
#define CONFIG_H
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x0000
#define DEVICE_VER 0x0001
#define MANUFACTURER thesiscamper
#define PRODUCT kira75
#define DESCRIPTION Custom 75% keyboard
/* key matrix size */
#define MATRIX_ROWS 6
#define MATRIX_COLS 16
/*
* Keyboard Matrix Assignments
*
* Change this to how you wired your keyboard
* COLS: AVR pins used for columns, left to right
* ROWS: AVR pins used for rows, top to bottom
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
*
*/
#define MATRIX_ROW_PINS { D0, D1, D2, D3, D5, D4 }
#define MATRIX_COL_PINS { F6, F7, C7, C6, B6, B5, B4, F5, F4, F1, F0, E6, B3, B2, B1, B0 }
#define UNUSED_PINS
/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */
#define DIODE_DIRECTION COL2ROW
#define BACKLIGHT_PIN B7
#define BACKLIGHT_BREATHING
#define BACKLIGHT_LEVELS 3
#define RGB_DI_PIN E2
#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 18
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCING_DELAY 5
/* define if matrix has ghost (lacks anti-ghosting diodes) */
//#define MATRIX_HAS_GHOST
/* number of backlight levels */
/* 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
/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
* This is userful for the Windows task manager shortcut (ctrl+shift+esc).
*/
// #define GRAVE_ESC_CTRL_OVERRIDE
/*
* Force NKRO
*
* Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
* state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
* makefile for this to work.)
*
* If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
* until the next keyboard reset.
*
* NKRO may prevent your keystrokes from being detected in the BIOS, but it is
* fully operational during normal computer usage.
*
* For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
* or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
* bootmagic, NKRO mode will always be enabled until it is toggled again during a
* power-up.
*
*/
//#define FORCE_NKRO
/*
* Magic Key Options
*
* Magic keys are hotkey commands that allow control over firmware functions of
* the keyboard. They are best used in combination with the HID Listen program,
* found here: https://www.pjrc.com/teensy/hid_listen.html
*
* The options below allow the magic key functionality to be changed. This is
* useful if your keyboard/keypad is missing keys and you want magic key support.
*
*/
/* key combination for magic key command */
#define IS_COMMAND() ( \
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
/* control how magic key switches layers */
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
/* override magic key keymap */
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
//#define MAGIC_KEY_HELP1 H
//#define MAGIC_KEY_HELP2 SLASH
//#define MAGIC_KEY_DEBUG D
//#define MAGIC_KEY_DEBUG_MATRIX X
//#define MAGIC_KEY_DEBUG_KBD K
//#define MAGIC_KEY_DEBUG_MOUSE M
//#define MAGIC_KEY_VERSION V
//#define MAGIC_KEY_STATUS S
//#define MAGIC_KEY_CONSOLE C
//#define MAGIC_KEY_LAYER0_ALT1 ESC
//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
//#define MAGIC_KEY_LAYER0 0
//#define MAGIC_KEY_LAYER1 1
//#define MAGIC_KEY_LAYER2 2
//#define MAGIC_KEY_LAYER3 3
//#define MAGIC_KEY_LAYER4 4
//#define MAGIC_KEY_LAYER5 5
//#define MAGIC_KEY_LAYER6 6
//#define MAGIC_KEY_LAYER7 7
//#define MAGIC_KEY_LAYER8 8
//#define MAGIC_KEY_LAYER9 9
//#define MAGIC_KEY_BOOTLOADER PAUSE
//#define MAGIC_KEY_LOCK CAPS
//#define MAGIC_KEY_EEPROM E
//#define MAGIC_KEY_NKRO N
//#define MAGIC_KEY_SLEEP_LED Z
/*
* 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
/*
* MIDI options
*/
/* Prevent use of disabled MIDI features in the keymap */
//#define MIDI_ENABLE_STRICT 1
/* enable basic MIDI features:
- MIDI notes can be sent when in Music mode is on
*/
//#define MIDI_BASIC
/* enable advanced MIDI features:
- MIDI notes can be added to the keymap
- Octave shift and transpose
- Virtual sustain, portamento, and modulation wheel
- etc.
*/
//#define MIDI_ADVANCED
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
#endif

View File

@@ -0,0 +1,12 @@
{
"keyboard_name": "Kira 75",
"url": "",
"maintainer": "qmk",
"width": 16,
"height": 6,
"layouts": {
"LAYOUT": {
"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}, {"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":"|", "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}]
}
}
}

View File

@@ -0,0 +1,24 @@
/* Copyright 2018 MechMerlin
*
* 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_common.h"
// place overrides here
#endif

View File

@@ -0,0 +1,63 @@
/* Copyright 2018 MechMerlin
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT( /* Base */
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_INS, \
KC_TILD, 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_DEL, \
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_PGUP, \
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, \
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), \
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT \
),
};
const uint16_t PROGMEM fn_actions[] = {
};
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
// MACRODOWN only works in this function
switch(id) {
case 0:
if (record->event.pressed) {
register_code(KC_RSFT);
} else {
unregister_code(KC_RSFT);
}
break;
}
return MACRO_NONE;
};
void matrix_init_user(void) {
}
void matrix_scan_user(void) {
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
return true;
}
void led_set_user(uint8_t usb_led) {
}

View File

@@ -0,0 +1 @@
# The default keymap for kira75

43
keyboards/kira75/kira75.c Normal file
View File

@@ -0,0 +1,43 @@
/* Copyright 2018 MechMerlin
*
* 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 "kira75.h"
void matrix_init_kb(void) {
// put your keyboard start-up code here
// runs once when the firmware starts up
matrix_init_user();
}
void matrix_scan_kb(void) {
// put your looping keyboard code here
// runs every cycle (a lot)
matrix_scan_user();
}
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
// put your per-action keyboard code here
// runs for every action, just before processing by the firmware
return process_record_user(keycode, record);
}
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);
}

50
keyboards/kira75/kira75.h Normal file
View File

@@ -0,0 +1,50 @@
/* Copyright 2018 MechMerlin
* 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 KIRA75_H
#define KIRA75_H
#include "quantum.h"
// Functions for setting LEDs on toggle keys
inline void caps_led_on(void) { DDRD |= (1<<7); PORTD &= ~(1<<7); }
inline void caps_led_off(void) { DDRD &= ~(1<<7); PORTD &= ~(1<<7); }
inline void num_led_on(void) { DDRD |= (1<<6); PORTD &= ~(1<<6); }
inline void num_led_off(void) { DDRD &= ~(1<<6); PORTD &= ~(1<<6); }
// This a shortcut to help you visually see your layout.
// The following is an example using the Planck MIT layout
// The first section contains all of the arguments
// The second converts the arguments into a two-dimensional array
#define LAYOUT( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1F, \
K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, \
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3F, \
K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4E, K4F, \
K50, K51, K53, K56, K5A, K5B, K5D, K5E, K5F \
) \
{ \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO, K1F }, \
{ K20, KC_NO, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \
{ K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, K3F }, \
{ KC_NO, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, KC_NO, K4D, K4E, K4F }, \
{ K50, K51, KC_NO, K53, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, K5A, K5B, KC_NO, K5D, K5E, K5F } \
}
#endif

View File

@@ -0,0 +1,15 @@
# Kira 75
![kira75](imgur.com image replace me!)
75% keyboard designed by thesiscamper
Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin)
Hardware Supported: Kira 75
Hardware Availability: Group Buy
Make example for this keyboard (after setting up your build environment):
make kira75: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.

68
keyboards/kira75/rules.mk Normal file
View File

@@ -0,0 +1,68 @@
# MCU name
#MCU = at90usb1286
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*
# Teensy halfKay 512
# Teensy++ halfKay 1024
# Atmel DFU loader 4096
# LUFA bootloader 4096
# USBaspLoader 2048
OPT_DEFS += -DBOOTLOADER_SIZE=4096
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE = yes # Console for debug(+400)
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches

View File

@@ -0,0 +1,24 @@
/* Copyright 2017 Pawnerd
*
* 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"
// place overrides here
#endif

View File

@@ -0,0 +1,485 @@
#include QMK_KEYBOARD_H
/*
* Copy of knopps mini default May 16,2018
* Added comments in code to more easilly understand it.
*
* Key Layout
* _____ _____ _____
* | | | | | |
* | 1 | | 2 | | 3 |
* |_____| |_____| |_____|
* _____ _____ _____
* | | | | | |
* | 4 | | 5 | | 6 |
* |_____| |_____| |_____|
*
* Each Layout row below keys. 1,2,3,4,5,6
*
* Hold 3 when powering on for DFU Program Mode
*/
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
* Layer 0 (Default)
* _____ _____ _____
* | | | | | |
* Stop VolUp Play
* |_____| |_____| |_____|
* _____ _____ _____
* | | | | | |
* Prev VolDwn Next
* |_____| |_____| |_____|
*
* Button 1 (stop) is Held to activate Layer 3 only while held, User then selects the keymap to change to
*/
LAYOUT(
LT(3, KC_MSTP), KC_VOLU, KC_MPLY, KC_MPRV, KC_VOLD, KC_MNXT),
/*
* Layer 1
* _____ _____ _____
* | | | | | |
* ESC Macro3 Macro4
* |_____| |_____| |_____|
* _____ _____ _____
* | | | | | |
* Macro5 Macro6 Macro7
* |_____| |_____| |_____|
*
*/
LAYOUT(
LT(3, KC_ESC), M(3), M(4), M(5), M(6), M(7)),
/*
* Layer 2
* _____ _____ _____
* | | | | | |
* | 1 | | 2 | | 3 |
* |_____| |_____| |_____|
* _____ _____ _____
* | | | | | |
* | 4 | |Macro0 Macro1
* |_____| |_____| |_____|
*
*/
LAYOUT(
LT(3, KC_1), KC_2, KC_3, KC_4, M(0), M(1)),
/*
* Layer 3 Key Layout
* This Layer does the Layer Selection
* _____ _____ _____
* | | | | | DFU
* |None | |None | | FLash
* |_____| |_____| |_____|
* _____ _____ _____
* | | | | | |
* Layer Layer Layer
* 0 1 2
* |_____| |_____| |_____|
*
* Layers 0,1,2 have Button 1 held to activate this layer. Then press the specific layer to switch to it.
*
*/
LAYOUT(
KC_TRNS, KC_TRNS, RESET, TO(0), TO(1), TO(2)),
// More Layers that can be used, but are not by default
LAYOUT(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
LAYOUT(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
LAYOUT(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
LAYOUT(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
LAYOUT(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
LAYOUT(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
LAYOUT(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
LAYOUT(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
LAYOUT(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
LAYOUT(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
LAYOUT(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
LAYOUT(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
};
// Older way of Macros found here: https://docs.qmk.fm/features/macros
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
//keyevent_t event = record->event;
switch (id) {
case 0:
if (record->event.pressed) {
/*
* This is Macro 0
* Content: tglhf<enter>
*/
return MACRO( T(T), T(G), T(L), T(H), T(F), T(ENT), END );
}
break;
case 1:
if (record->event.pressed) {
/*
* This is Macro 1
* Content: tgg<enter>
*/
return MACRO( T(T), T(G), T(G), T(ENT), END );
}
break;
case 2:
if (record->event.pressed) {
/*
* This is Macro 2
* Content: Press and hold "no" , type "l", release "no"<enter>
* I haven't found what this "NO" key maps to
*/
return MACRO( D(NO), T(L), U(NO), END );
}
break;
case 3:
if (record->event.pressed) {
/*
* This is Macro 3
* Content: press/hold LCTRL, type "2", release LCTRL
*/
return MACRO( D(LCTL), T(Z), U(LCTL), END );
}
break;
case 4:
if (record->event.pressed) {
/*
* This is Macro 4
* Content: press/hold LCTRL, type "2", release LCTRL
*/
return MACRO( D(LCTL), D(LSFT), T(Z), U(LSFT), U(LCTL), END );
}
break;
case 5:
if (record->event.pressed) {
/*
* This is Macro 5
* Content: press/hold LCTRL, type "x", release LCTRL
*/
return MACRO( D(LCTL), T(X), U(LCTL), END );
}
break;
case 6:
if (record->event.pressed) {
/*
* This is Macro 6
* Content: press/hold LCTRL, type "c", release LCTRL
*/
return MACRO( D(LCTL), T(C), U(LCTL), END );
}
break;
case 7:
if (record->event.pressed) {
/*
* This is Macro 7
* Content: press/hold LCTRL, type "v", release LCTRL
*/
return MACRO( D(LCTL), T(V), U(LCTL), END );
}
break;
}
return MACRO_NONE;
}
void set_switch_led(int ledId, bool state) {
if(state) {
switch(ledId) {
case 1:
PORTD |= (1<<7);
break;
case 2:
if((PINB & (1 << 7)) != 0) {
PORTC |= (1<<6);
} else {
PORTC |= (1<<7);
}
break;
case 3:
PORTD |= (1<<4);
break;
case 4:
PORTE |= (1<<6);
break;
case 5:
PORTB |= (1<<4);
break;
case 6:
PORTD |= (1<<6);
break;
}
} else {
switch(ledId) {
case 1:
PORTD &= ~(1<<7);
break;
case 2:
if((PINB & (1 << 7)) != 0) {
PORTC &= ~(1<<6);
} else {
PORTC &= ~(1<<7);
}
break;
case 3:
PORTD &= ~(1<<4);
break;
case 4:
PORTE &= ~(1<<6);
break;
case 5:
PORTB &= ~(1<<4);
break;
case 6:
PORTD &= ~(1<<6);
break;
}
}
}
void set_layer_led(int layerId) {
PORTD |= (1<<5);
PORTB &= ~(1<<6);
PORTB |= (1<<0);
switch(layerId) {
case 0:
PORTD &= ~(1<<5);
break;
case 1:
PORTB |= (1<<6);
break;
case 2:
PORTB &= ~(1<<0);
break;
}
}
void matrix_init_user(void) {
led_init_ports();
PORTB |= (1 << 7);
DDRB &= ~(1<<7);
PORTD |= (1<<7);
PORTC |= (1<<6);
PORTC |= (1<<7);
PORTD |= (1<<4);
PORTE |= (1<<6);
PORTB |= (1<<4);
PORTD |= (1<<6);
set_layer_led(0);
}
void matrix_scan_user(void) {
}
void led_init_ports() {
// led voor switch #1
DDRD |= (1<<7);
PORTD &= ~(1<<7);
// led voor switch #2
DDRC |= (1<<6);
DDRC |= (1<<7);
PORTC &= ~(1<<6);
PORTC &= ~(1<<7);
// led voor switch #3
DDRD |= (1<<4);
PORTD &= ~(1<<4);
// led voor switch #4
DDRE |= (1<<6);
PORTE &= ~(1<<6);
// led voor switch #5
DDRB |= (1<<4);
PORTB &= ~(1<<4);
// led voor switch #6
DDRD |= (1<<6);
PORTD &= ~(1<<6);
/*
DDRD |= (1<<7);
PORTD |= (1<<7);
DDRC |= (1<<6);
PORTC |= (1<<6);
DDRD |= (1<<4);
PORTD |= (1<<4);
DDRE |= (1<<6);
PORTE |= (1<<6);
DDRB |= (1<<4);
PORTB |= (1<<4);
DDRD |= (1<<6);
PORTD |= (1<<6);
// */
DDRD |= (1<<5);
DDRB |= (1<<6);
DDRB |= (1<<0);
//led_set_layer(0);
}
void led_set_user(uint8_t usb_led) {
if (usb_led & (1 << USB_LED_NUM_LOCK)) {
} else {
}
if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
} else {
}
if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
} else {
}
if (usb_led & (1 << USB_LED_COMPOSE)) {
} else {
}
if (usb_led & (1 << USB_LED_KANA)) {
} else {
}
}
/*
* NOTE:
*
* In case you don't understand this coding stuff, please
* feel free to mail me or post something
* at the /r/knops subreddit and I will configure the code as
* you wish for your needs to make the LEDs do what you want :-).
*
* Contact me at: support@knops.io
*
*
* Knops Mini LED Numbers:
* _____ _____ _____
* | | | | | |
* | 1 | | 2 | | 3 | <---
* |_____| |_____| |_____| | These LEDs are called 'Switch LEDs'
* _____ _____ _____ |----- To turn on/off these leds, use:
* | | | | | | | set_switch_led( [1-6], [true/false]);
* | 4 | | 5 | | 6 | <---
* |_____| |_____| |_____|
*
* < 0 > < 1 > < 2 > <--- These front-LEDs are called 'Layer LEDs'
* To turn one of them on, use:
* set_layer_led( [0-2] );
*
*/
/*
* This function led_set_layer gets called when you switch between layers.
* It allows you to turn on and off leds for each different layer and do
* other cool stuff. Currently the GUI does not have LED support. I am working
* on that, but takes time.
*/
void led_set_layer(int layer) {
switch(layer) {
/**
* Here is an example to turn LEDs on and of. By default:
* - the LEDs are turned on in layer 0
* - the LEDs are turned off in layer 1
* - the LEDs don't change from state for layer 2
*/
case 0:
set_layer_led(0); // Turn on only the first/left layer indicator
set_switch_led(1, true);
set_switch_led(2, true);
set_switch_led(3, true);
set_switch_led(4, true);
set_switch_led(5, true);
set_switch_led(6, true);
break;
case 1:
set_layer_led(1); // Turn on only the second/middle layer indicator
set_switch_led(1, false);
set_switch_led(2, false);
set_switch_led(3, false);
set_switch_led(4, false);
set_switch_led(5, false);
set_switch_led(6, false);
break;
case 2:
set_layer_led(2); // Turn on only the third/right layer indicator
// Keep leds for layer two in their current state, since we don't use set_switch_led(SWITCH_ID, TRUE_OR_FALSE)
break;
}
}
bool process_record_user (uint16_t keycode, keyrecord_t *record) {
switch(keycode) {
case TO(0):
if (record->event.pressed) {
led_set_layer(0);
}
break;
case TO(1):
if (record->event.pressed) {
led_set_layer(1);
}
break;
case TO(2):
if (record->event.pressed) {
led_set_layer(2);
}
break;
}
return true;
}

View File

@@ -0,0 +1,12 @@
# Copy of Default Knops Mini Keymap
*Note:* copy of knops,mini,default keymap on May 16,2018 with comments to help new user to QMK and knops mini create their own keymap
## Key Layout
1 | 2 | 3
4 | 5 | 6
## Programming Keypad
Hold 3 when powering on for DFU Program Mode

View File

@@ -17,7 +17,7 @@ See description of the layout in the common folder
```
,-----------------------------------------..-----------------------------------------.
| | F1 | F2 | F3 | F4 |BL Off|| RESET| Game |Numpad|Mouse | | |
| | F1 | F2 | F3 | F4 |BL Off|| RESET| Game |Numpad|Mouse | |Sleep |
|------+------+------+------+------+------||------+------+------+------+------+------|
| | F5 | F6 | F7 | F8 |BL Tg ||Aud on|Qwerty|Colmak|Workmn|Dvorak| |
|------+------+------+------+------+------||------+------+------+------+------+------|

View File

@@ -18,7 +18,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Adjust (Lower + Raise)
* ,-----------------------------------------..-----------------------------------------.
* | | F1 | F2 | F3 | F4 |BL Off|| RESET| Game |Numpad|Mouse | | |
* | | F1 | F2 | F3 | F4 |BL Off|| RESET| Game |Numpad|Mouse | |Sleep |
* |------+------+------+------+------+------||------+------+------+------+------+------|
* | | F5 | F6 | F7 | F8 |BL Tg ||Aud on|Qwerty|Colmak|Workmn|Dvorak| |
* |------+------+------+------+------+------||------+------+------+------+------+------|
@@ -28,7 +28,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `-----------------------------------------''-----------------------------------------'
*/
[_ADJUST] = CATMAP( \
_______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , BL_OFF , RESET , TO_GAME, TO_NUM , TO_MS , _______, _______, \
_______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , BL_OFF , RESET , TO_GAME, TO_NUM , TO_MS , _______, KC_SLEP, \
_______, KC_F5 , KC_F6 , KC_F7 , KC_F8 , BL_TOGG, AU_ON , QWERTY , COLEMAK, WORKMAN, DVORAK , _______, \
KC_CAPS, KC_F9 , KC_F10, KC_F11 , KC_F12 , BL_ON , AU_OFF , _______, _______, _______, KC_UP , _______, \
_______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT \

View File

@@ -1,5 +1,5 @@
/*
Copyright 2012 Jun Wako <wakojun@gmail.com>
Copyright 2017 Danny Nguyen <danny@keeb.io>
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
@@ -30,7 +30,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "pro_micro.h"
#include "config.h"
#include "timer.h"
#include "backlight.h"
#ifdef BACKLIGHT_ENABLE
#include "backlight.h"
extern backlight_config_t backlight_config;
#endif
#ifdef USE_I2C
# include "i2c.h"
@@ -199,6 +203,15 @@ int i2c_transaction(void) {
err = i2c_master_write(0x00);
if (err) goto i2c_error;
#ifdef BACKLIGHT_ENABLE
// Write backlight level for slave to read
err = i2c_master_write(backlight_config.enable ? backlight_config.level : 0);
#else
// Write zero, so our byte index is the same
err = i2c_master_write(0x00);
#endif
if (err) goto i2c_error;
// Start read
err = i2c_master_start(SLAVE_I2C_ADDRESS + I2C_READ);
if (err) goto i2c_error;
@@ -234,7 +247,7 @@ int serial_transaction(void) {
#ifdef BACKLIGHT_ENABLE
// Write backlight level for slave to read
serial_master_buffer[SERIAL_LED_ADDR] = get_backlight_level();
serial_master_buffer[SERIAL_LED_ADDR] = backlight_config.enable ? backlight_config.level : 0;
#endif
return 0;
}
@@ -276,8 +289,12 @@ void matrix_slave_scan(void) {
int offset = (isLeftHand) ? 0 : ROWS_PER_HAND;
#ifdef USE_I2C
#ifdef BACKLIGHT_ENABLE
// Read backlight level sent from master and update level on slave
backlight_set(i2c_slave_buffer[0]);
#endif
for (int i = 0; i < ROWS_PER_HAND; ++i) {
i2c_slave_buffer[i] = matrix[offset+i];
i2c_slave_buffer[i+1] = matrix[offset+i];
}
#else // USE_SERIAL
for (int i = 0; i < ROWS_PER_HAND; ++i) {

View File

@@ -0,0 +1,42 @@
/*
This is the c configuration file for the keymap
Copyright 2012 Jun Wako <wakojun@gmail.com>
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"
#define USE_SERIAL
#define EE_HANDS
/* ws2812 RGB LED */
#define RGB_DI_PIN D7
#define RGBLIGHT_TIMER
#define RGBLED_NUM 8 // Number of LEDs
#define RGBLIGHT_ANIMATIONS
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17
#define RGBLIGHT_VAL_STEP 17
#define IGNORE_MOD_TAP_INTERRUPT
#undef PERMISSIVE_HOLD
#endif

View File

@@ -0,0 +1,238 @@
#include QMK_KEYBOARD_H
#include "action_layer.h"
#include "eeconfig.h"
extern keymap_config_t keymap_config;
// 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.
#define _DVORAK 0
#define _QWERTY 1
#define _COLEMAK 2
#define _LOWER 3
#define _RAISE 4
#define _ADJUST 16
enum planck_keycodes {
DVORAK = SAFE_RANGE,
QWERTY,
COLEMAK,
LOWER,
RAISE,
BACKLIT
};
// Adding macros to make the keymaps below much easier to read.
#define SFTSCLN SFT_T(KC_SCLN)
#define SFTSLSH SFT_T(KC_SLSH)
#define SFTZED SFT_T(KC_Z)
//#define ALTENT ALT_T(KC_ENT)
//#define ESCTRL CTL_T(KC_ESC)
//#define TABGUI GUI_T(KC_TAB)
#define CTRLQ CTL_T(KC_Q)
#define CTRLV CTL_T(KC_V)
#define ALTJ ALT_T(KC_J)
#define ALTW ALT_T(KC_W)
#define CTRLX CTL_T(KC_X)
#define CTRLDOT CTL_T(KC_DOT)
#define ALTC ALT_T(KC_C)
#define ALTCOMM ALT_T(KC_COMM)
//#define GUIBSPC GUI_T(KC_BSPC)
// Fillers to make layering more clear
#define _______ KC_TRNS
#define XXXXXXX KC_NO
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Dvorak
*
* ,----------------------------------. ,----------------------------------.
* | ' | , | . | P | Y | | F | G | C | R | L |
* |------+------+------+------+------| |------+------+------+------+------|
* | A | O | E | U | I | | D | H | T | N | S |
* |------+------+------+------+------| |------+------+------+------+------|
* |SFT/ ;|CTL/ Q|ALT/ J| K | X | | B | M |ALT/ W|CTL/ V|SFT/ Z|
* `----------------------------------' `----------------------------------'
* ,--------------------. ,------,-------------.
* | LOWER| Gui | | | | Ent |RAISE |
* `-------------| BSpc | | Spc |------+------.
* | | | |
* `------' `------'
*/
[_DVORAK] = LAYOUT ( \
KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, \
KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, \
SFTSCLN, CTRLQ, ALTJ, KC_K, KC_X, KC_B, KC_M, ALTW, CTRLV, SFTZED, \
LOWER, KC_LGUI, KC_BSPC, KC_SPC, KC_ENT, RAISE \
),
/* Qwerty
*
* ,----------------------------------. ,----------------------------------.
* | Q | W | E | R | T | | Y | U | I | O | P |
* |------+------+------+------+------| |------+------+------+------+------|
* | A | S | D | F | G | | H | J | K | L | ; |
* |------+------+------+------+------| |------+------+------+------+------|
* |SFT/ Z|CTL/ X|ALT/ C| V | B | | N | M |ALT/ ,|CTL/ .|SFT/ /|
* `----------------------------------' `----------------------------------'
* ,--------------------. ,------,-------------.
* | LOWER| Gui | | | | Ent |RAISE |
* `-------------| BSpc | | Spc |------+------.
* | | | |
* `------' `------'
*/
[_QWERTY] = LAYOUT ( \
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, \
SFTZED, CTRLX, ALTC, KC_V, KC_B, KC_N, KC_M, ALTCOMM, CTRLDOT, SFTSLSH, \
LOWER, KC_LGUI, KC_BSPC, KC_SPC, KC_ENT, RAISE \
),
/* Colemak
*
* ,----------------------------------. ,----------------------------------.
* | Q | W | F | P | G | | J | L | U | Y | L |
* |------+------+------+------+------| |------+------+------+------+------|
* | A | R | S | T | D | | H | N | E | I | S |
* |------+------+------+------+------| |------+------+------+------+------|
* |SFT/ Z|CTL/ X|ALT/ C| V | B | | K | M |ALT/ ,|CTL/ .|SFT/ /|
* `----------------------------------' `----------------------------------'
* ,--------------------. ,------,-------------.
* | LOWER| Gui | | | | Ent |RAISE |
* `-------------| BSpc | | Spc |------+------.
* | | | |
* `------' `------'
*/
[_COLEMAK] = LAYOUT ( \
KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, \
KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, \
SFTZED, CTRLX, ALTC, KC_V, KC_B, KC_K, KC_M, ALTCOMM, CTRLDOT, SFTSLSH, \
LOWER, KC_LGUI, KC_BSPC, KC_SPC, KC_ENT, RAISE \
),
/* Lower
*
* ,----------------------------------. ,----------------------------------.
* | ! | @ | # | $ | % | | ^ | & | * | ( | ) |
* |------+------+------+------+------| |------+------+------+------+------|
* | CAPS | | UP | | Home | | PgDn | + | { | } | _ |
* |------+------+------+------+------| |------+------+------+------+------|
* | ~ | Left | Down | Right| End | | PgUp | Mute | Vol- | Vol+ | / |
* `----------------------------------' `----------------------------------'
* ,--------------------. ,------,-------------.
* | | Del | | | | | | |
* `-------------| Esc | | Tab |------+------.
* | | | |
* `------' `------'
*/
[_LOWER] = LAYOUT ( \
KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, \
KC_CAPS, _______, KC_UP, _______, KC_HOME, KC_PGUP, KC_PLUS, KC_LCBR, KC_RCBR, KC_UNDS, \
KC_TILD, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_PGDN, KC_MUTE, KC_VOLD, KC_VOLU, KC_SLSH, \
_______, KC_DEL, KC_ESC, KC_TAB, KC_PIPE, _______ \
),
/* Raise
*
* ,----------------------------------. ,----------------------------------.
* | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 |
* |------+------+------+------+------| |------+------+------+------+------|
* | CAPS | | UP | | Home | | PgDn | = | [ | ] | - |
* |------+------+------+------+------| |------+------+------+------+------|
* | ` | Left | Down | Right| End | | PgUp | Prev | Play | Next | ? |
* `----------------------------------' `----------------------------------'
* ,--------------------. ,------,-------------.
* | | Del | | | | \ | |
* `-------------| Esc | | Tab |------+------.
* | | | |
* `------' `------'
*/
[_RAISE] = LAYOUT ( \
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, \
KC_CAPS, _______, KC_UP, _______, KC_HOME, KC_PGUP, KC_EQL, KC_LBRC, KC_RBRC, KC_MINS, \
KC_GRV, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_PGDN, KC_MPRV, KC_MPLY, KC_MNXT, KC_QUES, \
_______, KC_DEL, KC_ESC, KC_TAB, KC_BSLS, _______ \
),
/* Adjust (Lower + Raise)
*
* ,----------------------------------. ,----------------------------------.
* | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 |
* |------+------+------+------+------| |------+------+------+------+------|
* | F11 | | | | | | | PrSc | ScLk | Paus | F12 |
* |------+------+------+------+------| |------+------+------+------+------|
* | |QWERTY|COLEMK|DVORAK| | |RESET | | | | |
* `----------------------------------' `----------------------------------'
* ,--------------------. ,------,-------------.
* | | | | | | | |
* `-------------| | | |------+------.
* | | | |
* `------' `------'
*/
[_ADJUST] = LAYOUT ( \
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_UP, KC_F9, KC_F10, \
KC_F11, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_F12, \
_______, QWERTY, COLEMAK, DVORAK, _______, RESET, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______ \
)
};
void persistent_default_layer_set(uint16_t default_layer) {
eeconfig_update_default_layer(default_layer);
default_layer_set(default_layer);
};
void matrix_init_user(void) {
// This will disable the red LEDs on the ProMicros
DDRD &= ~(1<<5);
PORTD &= ~(1<<5);
DDRB &= ~(1<<0);
PORTB &= ~(1<<0);
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case QWERTY:
if (record->event.pressed) {
persistent_default_layer_set(1UL<<_QWERTY);
}
return false;
break;
case COLEMAK:
if (record->event.pressed) {
persistent_default_layer_set(1UL<<_COLEMAK);
}
return false;
break;
case DVORAK:
if (record->event.pressed) {
persistent_default_layer_set(1UL<<_DVORAK);
}
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;
}
return true;
};

View File

@@ -0,0 +1 @@
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.

View File

@@ -18,7 +18,7 @@ See description of the layout in the common folder
,-----------------------------------------..-----------------------------------------.
| RESET|DEBUG | | | | || | | | | | |
|------+------+------+------+------+------||------+------+------+------+------+------|
| | F1 | F2 | F3 | F4 | || | Game |Numpad| Mouse| | |
| | F1 | F2 | F3 | F4 | || | Game |Numpad| Mouse| |Sleep |
|------+------+------+------+------+------||------+------+------+------+------+------|
| | F5 | F6 | F7 | F8 | || |Qwerty|Colmak|Workmn|Dvorak| |
|------+------+------+------+------+------||------+------+------+------+------+------|

View File

@@ -35,7 +35,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* ,-----------------------------------------..-----------------------------------------.
* | RESET|DEBUG | | | | || | | | | | |
* |------+------+------+------+------+------||------+------+------+------+------+------|
* | | F1 | F2 | F3 | F4 | || | Game |Numpad| Mouse| | |
* | | F1 | F2 | F3 | F4 | || | Game |Numpad| Mouse| |Sleep |
* |------+------+------+------+------+------||------+------+------+------+------+------|
* | | F5 | F6 | F7 | F8 | || |Qwerty|Colmak|Workmn|Dvorak| |
* |------+------+------+------+------+------||------+------+------+------+------+------|
@@ -46,7 +46,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/
[_ADJUST] = CATMAP( \
RESET , DEBUG , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , _______, _______, TO_GAME, TO_NUM , TO_MS , _______, _______, \
_______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , _______, _______, TO_GAME, TO_NUM , TO_MS , _______, KC_SLEP, \
_______, KC_F5 , KC_F6 , KC_F7 , KC_F8 , _______, _______, QWERTY , COLEMAK, WORKMAN, DVORAK , _______, \
KC_CAPS, KC_F9 , KC_F10, KC_F11 , KC_F12 , _______, _______, _______, _______, _______, KC_UP , _______, \
_______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT \

View File

@@ -0,0 +1,45 @@
/*
This is the c configuration file for the keymap
Copyright 2012 Jun Wako <wakojun@gmail.com>
Copyright 2015 Jack Humbert
Copyright 2017 Art Ortenburger
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_common.h"
#ifdef AUDIO_ENABLE
#define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
SONG(COLEMAK_SOUND), \
SONG(DVORAK_SOUND) \
}
#endif
/* 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

View File

@@ -0,0 +1,138 @@
/*
This is the keymap for the keyboard
Copyright 2012 Jun Wako <wakojun@gmail.com>
Copyright 2015 Jack Humbert
Copyright 2017 Art Ortenburger
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
extern keymap_config_t keymap_config;
// 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.
#define _QWERTY 0
#define _COLEMAK 1
#define _DVORAK 2
#define _LOWER 3
#define _RAISE 4
#define _NAV 5
#define _NAV2 6
#define _MEDIA 7
#define _ADJUST 16
enum custom_keycodes {
QWERTY = SAFE_RANGE,
COLEMAK,
DVORAK
};
// Fillers to make layering more clear
#define _______ KC_TRNS
#define XXXXXXX KC_NO
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT( \
KC_ESC, 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_LGUI, KC_LALT, MO(_MEDIA) , KC_DEL, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \
MO(_NAV),KC_Z, KC_X, KC_C, KC_V, KC_B, MO(_LOWER), KC_LSFT, CTL_T(KC_ENT), KC_RALT, KC_SPC, MO(_RAISE), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LGUI \
),
[_COLEMAK] = LAYOUT(\
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, \
KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_UP, KC_DOWN, KC_LEFT, KC_RIGHT, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \
KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, MO(_LOWER), KC_SPACE, KC_BSPC, KC_DEL, KC_ENT, MO(_RAISE), KC_K, KC_M, KC_COMM, KC_DOT, KC_SLASH, KC_LGUI \
),
[_DVORAK] = LAYOUT(\
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, \
KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_UP, KC_DOWN, KC_LEFT, KC_RIGHT, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, \
KC_LCTL, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, MO(_LOWER), KC_SPACE, KC_BSPC, KC_DEL, KC_ENT, MO(_RAISE), KC_B, KC_M, KC_W, KC_V, KC_Z, KC_LGUI \
),
[_LOWER] = LAYOUT( \
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, \
KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_LCTL, _______, _______, KC_RCTL, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, _______, _______, _______, _______, _______, KC_F12, KC_HOME, KC_COMM, KC_DOT, KC_END, _______ \
),
[_RAISE] = LAYOUT( \
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \
KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, _______, _______, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, _______, _______, _______, _______, _______, KC_F12, KC_PGUP, KC_COMM, KC_DOT, KC_PGDN, _______ \
),
[_NAV] = LAYOUT( \
_______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
),
[_NAV2] = LAYOUT( \
_______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
),
[_MEDIA] = LAYOUT( \
_______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_MPLY, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
),
[_ADJUST] = LAYOUT( \
_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, AU_ON, AU_OFF, AG_NORM, _______, _______, _______, _______, AG_SWAP, QWERTY , COLEMAK, DVORAK, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \
)
};
uint32_t layer_state_set_user(uint32_t state) {
state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
state = update_tri_layer_state(state, _LOWER, _NAV, _NAV2);
return state;
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case QWERTY:
if (record->event.pressed) {
set_single_persistent_default_layer(_QWERTY);
}
return false;
break;
case COLEMAK:
if (record->event.pressed) {
set_single_persistent_default_layer(_COLEMAK);
}
return false;
break;
case DVORAK:
if (record->event.pressed) {
set_single_persistent_default_layer(_DVORAK);
}
return false;
break;
}
return true;
}

Some files were not shown because too many files have changed in this diff Show More