@ -0,0 +1 @@ | |||
#include "66_hotswap.h" |
@ -0,0 +1,10 @@ | |||
#ifndef CLUEBOARD_H | |||
#define CLUEBOARD_H | |||
#include "quantum.h" | |||
#ifdef KEYBOARD_clueboard_66_hotswap_gen1 | |||
#include "gen1.h" | |||
#endif | |||
#endif |
@ -0,0 +1,63 @@ | |||
/* | |||
Copyright 2012 Jun Wako <wakojun@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/>. | |||
*/ | |||
#ifndef CLUEBOARD_66_CONFIG_H | |||
#define CLUEBOARD_66_CONFIG_H | |||
#include "config_common.h" | |||
/* USB Device descriptor parameter */ | |||
#define VENDOR_ID 0xC1ED | |||
#define MANUFACTURER Clueboard | |||
#define PRODUCT Clueboard 66% HotSwap | |||
#define DESCRIPTION QMK keyboard firmware for Clueboard 66% | |||
/* COL2ROW or ROW2COL */ | |||
#define DIODE_DIRECTION COL2ROW | |||
/* Set 0 if debouncing isn't needed */ | |||
#define DEBOUNCING_DELAY 5 | |||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ | |||
#define LOCKING_SUPPORT_ENABLE | |||
/* Locking resynchronize hack */ | |||
#define LOCKING_RESYNC_ENABLE | |||
/* key combination for command */ | |||
#define IS_COMMAND() ( \ | |||
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ | |||
) | |||
/* | |||
* Feature disable options | |||
* These options are also useful to firmware size reduction. | |||
*/ | |||
/* disable debug print */ | |||
//#define NO_DEBUG | |||
/* disable print */ | |||
//#define NO_PRINT | |||
/* disable action features */ | |||
//#define NO_ACTION_LAYER | |||
//#define NO_ACTION_TAPPING | |||
//#define NO_ACTION_ONESHOT | |||
//#define NO_ACTION_MACRO | |||
//#define NO_ACTION_FUNCTION | |||
#endif |
@ -0,0 +1,53 @@ | |||
#ifndef CLUEBOARD_66_REV3_CONFIG_H | |||
#define CLUEBOARD_66_REV3_CONFIG_H | |||
#include "config_common.h" | |||
#define PRODUCT_ID 0x2390 | |||
#define DEVICE_VER 0x0001 | |||
/* key matrix size */ | |||
#define MATRIX_ROWS 10 | |||
#define MATRIX_COLS 8 | |||
// ROWS: Top to bottom, COLS: Left to right | |||
/* Row pin configuration | |||
* row: 0 1 2 3 4 5 6 7 8 9 | |||
* pin: B2 C7 C6 B6 B5 B0 B3 D5 D3 D2 | |||
*/ | |||
#define MATRIX_ROW_PINS { B2, C7, C6, B6, B5, B0, B3, D5, D3, D2 } | |||
/* Column pin configuration | |||
* col: 0 1 2 3 4 5 6 7 | |||
* pin: F0 F1 F4 F5 F6 F7 E6 B1 | |||
*/ | |||
#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, E6, B1 } | |||
#define UNUSED_PINS | |||
/* Speaker configuration | |||
*/ | |||
//#define SPEAKER_PIN B7 // FIXME: find the correct name for this define | |||
/* Backlight configuration | |||
*/ | |||
#define BACKLIGHT_LEVELS 1 | |||
/* Underlight configuration | |||
*/ | |||
#define RGB_DI_PIN D7 | |||
#define RGBLED_NUM 26 // Number of LEDs | |||
#define RGBLIGHT_HUE_STEP 32 | |||
#define RGBLIGHT_SAT_STEP 17 | |||
#define RGBLIGHT_VAL_STEP 17 | |||
#define RGBLIGHT_ANIMATIONS | |||
#define RGBLIGHT_EFFECT_BREATHE_CENTER 1 | |||
#define RGBLIGHT_EFFECT_BREATHE_MAX 200 | |||
#define RGBLIGHT_EFFECT_CHRISTMAS_INTERVAL 666*2 | |||
#define RGBLIGHT_EFFECT_CHRISTMAS_STEP 1 | |||
#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 4 // How many LEDs wide to light up | |||
#define RGBLIGHT_EFFECT_KNIGHT_OFFSET 16 // The led to start at | |||
#define RGBLIGHT_EFFECT_KNIGHT_LED_NUM 8 // How many LEDs to travel | |||
#define RGBLIGHT_EFFECT_SNAKE_LENGTH 4 // How many LEDs wide to light up | |||
#endif |
@ -0,0 +1,63 @@ | |||
#include "gen1.h" | |||
#include <avr/io.h> | |||
#include "backlight.h" | |||
#include "print.h" | |||
void matrix_init_kb(void) { | |||
// put your keyboard start-up code here | |||
// runs once when the firmware starts up | |||
matrix_init_user(); | |||
led_init_ports(); | |||
// JTAG disable for PORT F. write JTD bit twice within four cycles. | |||
MCUCR |= (1<<JTD); | |||
MCUCR |= (1<<JTD); | |||
} | |||
void matrix_scan_kb(void) { | |||
matrix_scan_user(); | |||
} | |||
void backlight_init_ports(void) { | |||
print("init_backlight_pin()\n"); | |||
// Set our LED pins as output | |||
DDRD |= (1<<0); // Esc | |||
DDRD |= (1<<4); // Page Up | |||
DDRD |= (1<<1); // Arrows | |||
// Set our LED pins low | |||
PORTD &= ~(1<<0); // Esc | |||
PORTD &= ~(1<<4); // Page Up | |||
PORTD &= ~(1<<1); // Arrows | |||
} | |||
void backlight_set(uint8_t level) { | |||
if ( level == 0 ) { | |||
// Turn off light | |||
PORTD |= (1<<0); // Esc | |||
PORTD |= (1<<4); // Page Up | |||
PORTD |= (1<<1); // Arrows | |||
} else { | |||
// Turn on light | |||
PORTD &= ~(1<<0); // Esc | |||
PORTD &= ~(1<<4); // Page Up | |||
PORTD &= ~(1<<1); // Arrows | |||
} | |||
} | |||
void led_init_ports() { | |||
// * Set our LED pins as output | |||
DDRB |= (1<<4); | |||
} | |||
void led_set_kb(uint8_t usb_led) { | |||
DDRB |= (1<<4); | |||
if (usb_led & (1<<USB_LED_CAPS_LOCK)) { | |||
// Turn capslock on | |||
PORTB |= (1<<4); | |||
} else { | |||
// Turn capslock off | |||
PORTB &= ~(1<<4); | |||
} | |||
} |
@ -0,0 +1,71 @@ | |||
#ifndef gen1_H | |||
#define gen1_H | |||
#include "66_hotswap.h" | |||
/* Clueboard matrix layout | |||
* ,-----------------------------------------------------------. ,---. | |||
* | 00| 01| 02| 03| 04| 05| 06| 07| 50| 51| 52| 53| 54| 56 | | 57| | |||
* |-----------------------------------------------------------| |---| | |||
* | 10| 11| 12| 13| 14| 15| 16| 17| 60| 61| 62| 63| 64| 65| | 67| | |||
* |-----------------------------------------------------------| `---' | |||
* | 20| 21| 22| 23| 24| 25| 26| 27| 70| 71| 72| 73| 74| 75| | |||
* |------------------------------------------------------------. | |||
* | 30| 31| 32| 33| 34| 35| 36| 37| 80| 81| 82| 83| 84| 85|86| | |||
* |------------------------------------------------------------------. | |||
* | 40| 41| 42| 43| 45| 46| 90| 92| 93| 94| 95| 96| 97| | |||
* `------------------------------------------------------------------' | |||
* ,-----------------------------------------------------------. ,---. | |||
* | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | |Ins| | |||
* |-----------------------------------------------------------| |---| | |||
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |Del| | |||
* |-----------------------------------------------------------| `---' | |||
* |Caps | A| S| D| F| G| H| J| k| L| ;| '|Enter | | |||
* |--------------------------------------------------------------. | |||
* |Shift| \| Z| X| C| V| B| N| M| ,| .| /| \|Shift| Up| | |||
* |------------------------------------------------------------------. | |||
* |Ctrl|Alt|Gui | Space| Space|Gui |Alt |Fn |Ctrl|Left|Down|Rgt| | |||
* `------------------------------------------------------------------' | |||
*/ | |||
// 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, k50, k51, k52, k53, k54, k56, k57, \ | |||
k10, k11, k12, k13, k14, k15, k16, k17, k60, k61, k62, k63, k64, k65, k67, \ | |||
k20, k21, k22, k23, k24, k25, k26, k27, k70, k71, k72, k73, k75, \ | |||
k30, k31, k32, k33, k34, k35, k36, k37, k80, k81, k82, k83, k84, k85, k86, \ | |||
k40, k41, k42, k45, k46, k90, k92, k93, k94, k95, k96, k97 \ | |||
) { \ | |||
{ k00, k01, k02, k03, k04, k05, k06, k07 }, \ | |||
{ k10, k11, k12, k13, k14, k15, k16, k17 }, \ | |||
{ k20, k21, k22, k23, k24, k25, k26, k27 }, \ | |||
{ k30, k31, k32, k33, k34, k35, k36, k37 }, \ | |||
{ k40, k41, k42, KC_NO, KC_NO, k45, k46, KC_NO }, \ | |||
{ k50, k51, k52, k53, k54, KC_NO, k56, k57 }, \ | |||
{ k60, k61, k62, k63, k64, k65, KC_NO, k67 }, \ | |||
{ k70, k71, k72, k73, KC_NO, k75, KC_NO, KC_NO }, \ | |||
{ k80, k81, k82, k83, k84, k85, k86, KC_NO }, \ | |||
{ k90, KC_NO, k92, k93, k94, k95, k96, k97 } \ | |||
} | |||
#define LAYOUT_66_ansi( \ | |||
k00, k01, k02, k03, k04, k05, k06, k07, k50, k51, k52, k53, k54, k56, k57, \ | |||
k10, k11, k12, k13, k14, k15, k16, k17, k60, k61, k62, k63, k64, k65, k67, \ | |||
k20, k21, k22, k23, k24, k25, k26, k27, k70, k71, k72, k73, k75, \ | |||
k30, k32, k33, k34, k35, k36, k37, k80, k81, k82, k83, k85, k86, \ | |||
k40, k41, k42, k46, k92, k93, k94, k95, k96, k97 \ | |||
) { \ | |||
{ k00, k01, k02, k03, k04, k05, k06, k07 }, \ | |||
{ k10, k11, k12, k13, k14, k15, k16, k17 }, \ | |||
{ k20, k21, k22, k23, k24, k25, k26, k27 }, \ | |||
{ k30, KC_NO, k32, k33, k34, k35, k36, k37 }, \ | |||
{ k40, k41, k42, KC_NO, KC_NO, KC_NO, k46, KC_NO }, \ | |||
{ k50, k51, k52, k53, k54, KC_NO, k56, k57 }, \ | |||
{ k60, k61, k62, k63, k64, k65, KC_NO, k67 }, \ | |||
{ k70, k71, k72, k73, KC_NO, k75, KC_NO, KC_NO }, \ | |||
{ k80, k81, k82, k83, KC_NO, k85, k86, KC_NO }, \ | |||
{ KC_NO, KC_NO, k92, k93, k94, k95, k96, k97 } \ | |||
} | |||
#endif |
@ -0,0 +1,3 @@ | |||
{ | |||
"identifier":"c1ed:2390:0001" | |||
} |
@ -0,0 +1 @@ | |||
BACKLIGHT_ENABLE = yes |
@ -0,0 +1,12 @@ | |||
{ | |||
"keyboard_name": "Clueboard 66% HotSwap", | |||
"processor": "atmega32u4", | |||
"bootloader": "atmel-dfu", | |||
"width": 16.5, | |||
"height": 5, | |||
"layouts": { | |||
"KEYMAP": { | |||
"layout": [{"x": 0, "y": 0, "w": 1, "label": "GRAVE"}, {"x": 1, "y": 0, "w": 1, "label": "1"}, {"x": 2, "y": 0, "w": 1, "label": "2"}, {"x": 3, "y": 0, "w": 1, "label": "3"}, {"x": 4, "y": 0, "w": 1, "label": "4"}, {"x": 5, "y": 0, "w": 1, "label": "5"}, {"x": 6, "y": 0, "w": 1, "label": "6"}, {"x": 7, "y": 0, "w": 1, "label": "7"}, {"x": 8, "y": 0, "w": 1, "label": "8"}, {"x": 9, "y": 0, "w": 1, "label": "9"}, {"x": 10, "y": 0, "w": 1, "label": "0"}, {"x": 11, "y": 0, "w": 1, "label": "DASH"}, {"x": 12, "y": 0, "w": 1, "label": "EQUALSIGN"}, {"x": 13, "y": 0, "w": 1, "label": "YEN"}, {"x": 14, "y": 0, "w": 1, "label": "BACKSPACE"}, {"x": 15.5, "y": 0, "w": 1, "label": "PAGEUP"}, {"x": 0, "y": 1, "w": 1.5, "label": "TAB"}, {"x": 1.5, "y": 1, "w": 1, "label": "Q"}, {"x": 2.5, "y": 1, "w": 1, "label": "W"}, {"x": 3.5, "y": 1, "w": 1, "label": "E"}, {"x": 4.5, "y": 1, "w": 1, "label": "R"}, {"x": 5.5, "y": 1, "w": 1, "label": "T"}, {"x": 6.5, "y": 1, "w": 1, "label": "Y"}, {"x": 7.5, "y": 1, "w": 1, "label": "U"}, {"x": 8.5, "y": 1, "w": 1, "label": "I"}, {"x": 9.5, "y": 1, "w": 1, "label": "O"}, {"x": 10.5, "y": 1, "w": 1, "label": "P"}, {"x": 11.5, "y": 1, "w": 1, "label": "LBRACKET"}, {"x": 12.5, "y": 1, "w": 1, "label": "RBRACKET"}, {"x": 13.5, "y": 1, "w": 1.5, "label": "BACKSLASH"}, {"x": 15.5, "y": 1, "w": 1, "label": "PAGEDOWN"}, {"x": 0, "y": 2, "w": 1.75, "label": "CAPSLOCK"}, {"x": 1.75, "y": 2, "w": 1, "label": "A"}, {"x": 2.75, "y": 2, "w": 1, "label": "S"}, {"x": 3.75, "y": 2, "w": 1, "label": "D"}, {"x": 4.75, "y": 2, "w": 1, "label": "F"}, {"x": 5.75, "y": 2, "w": 1, "label": "G"}, {"x": 6.75, "y": 2, "w": 1, "label": "H"}, {"x": 7.75, "y": 2, "w": 1, "label": "J"}, {"x": 8.75, "y": 2, "w": 1, "label": "K"}, {"x": 9.75, "y": 2, "w": 1, "label": "L"}, {"x": 10.75, "y": 2, "w": 1, "label": "SEMICOLON"}, {"x": 11.75, "y": 2, "w": 1, "label": "QUOTE"}, {"x": 12.75, "y": 2, "w": 1, "label": "ISOHASH"}, {"x": 13.75, "y": 2, "w": 1.25, "label": "ENTER"}, {"x": 0, "y": 3, "w": 1.25, "label": "LSHIFT"}, {"x": 1.25, "y": 3, "w": 1, "label": "ISOBACKSLASH"}, {"x": 2.25, "y": 3, "w": 1, "label": "Z"}, {"x": 3.25, "y": 3, "w": 1, "label": "X"}, {"x": 4.25, "y": 3, "w": 1, "label": "C"}, {"x": 5.25, "y": 3, "w": 1, "label": "V"}, {"x": 6.25, "y": 3, "w": 1, "label": "B"}, {"x": 7.25, "y": 3, "w": 1, "label": "N"}, {"x": 8.25, "y": 3, "w": 1, "label": "M"}, {"x": 9.25, "y": 3, "w": 1, "label": "COMMA"}, {"x": 10.25, "y": 3, "w": 1, "label": "PERIOD"}, {"x": 11.25, "y": 3, "w": 1, "label": "SLASH"}, {"x": 12.25, "y": 3, "w": 1, "label": "JPBACKSLASH"}, {"x": 13.25, "y": 3, "w": 1.25, "label": "RSHIFT"}, {"x": 14.5, "y": 3, "w": 1, "label": "UP"}, {"x": 0, "y": 4, "w": 1.25, "label": "LCTRL"}, {"x": 1.25, "y": 4, "w": 1, "label": "LALT"}, {"x": 2.25, "y": 4, "w": 1.25, "label": "LCMD"}, {"x": 3.5, "y": 4, "w": 1.25, "label": "MUHENKAN"}, {"x": 4.75, "y": 4, "w": 2, "label": "SPACE1"}, {"x": 6.75, "y": 4, "w": 2, "label": "SPACE2"}, {"x": 8.75, "y": 4, "w": 1.25, "label": "HENKAN"}, {"x": 10, "y": 4, "w": 1.25, "label": "RCMD"}, {"x": 11.25, "y": 4, "w": 1, "label": "RCTRL"}, {"x": 12.25, "y": 4, "w": 1.25, "label": "FN"}, {"x": 13.5, "y": 4, "w": 1, "label": "LEFT"}, {"x": 14.5, "y": 4, "w": 1, "label": "DOWN"}, {"x": 15.5, "y": 4, "w": 1, "label": "RIGHT"}] | |||
} | |||
} | |||
} |
@ -0,0 +1,36 @@ | |||
#include "66_hotswap.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. | |||
#define _BL 0 | |||
#define _FL 1 | |||
#define _CL 2 | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
/* Keymap _BL: Base Layer (Default Layer) | |||
*/ | |||
[_BL] = LAYOUT_66_ansi( | |||
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_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, \ | |||
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_UP, \ | |||
KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_RALT,MO(_FL),KC_RCTL,KC_LEFT,KC_DOWN,KC_RGHT), | |||
/* Keymap _FL: Function Layer | |||
*/ | |||
[_FL] = LAYOUT_66_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, KC_VOLU, \ | |||
_______,_______,_______,_______,_______,_______,_______,_______,_______,KC_MPRV,KC_MPLY,KC_MNXT,_______,KC_MUTE, KC_VOLD, \ | |||
_______,_______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ | |||
_______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, KC_PGUP, \ | |||
_______,_______,_______, _______, _______,MO(_FL),_______,KC_HOME,KC_PGDN,KC_END), | |||
/* Keymap _CL: Control layer | |||
*/ | |||
[_CL] = LAYOUT_66_ansi( | |||
BL_STEP,RGB_M_P,RGB_M_B,RGB_M_R,RGB_M_SW,RGB_M_SN,RGB_M_K,RGB_M_X,RGB_M_G,_______,_______,_______,_______, RGB_TOG, RGB_VAI, \ | |||
_______,_______,_______,_______,RESET, _______,_______,_______,_______,_______,_______,_______,_______,_______, RGB_VAD, \ | |||
_______,_______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ | |||
_______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, RGB_SAI, \ | |||
_______,_______,_______, RGB_MOD, _______,MO(_FL),_______,RGB_HUD,RGB_SAD,RGB_HUI), | |||
}; |
@ -0,0 +1,11 @@ | |||
![Clueboard Layout Image](http://i.imgur.com/7Capi8W.png) | |||
# Basic Clueboard 66% Hotswap Layout | |||
This is the default layout that comes flashed on every Clueboard. For the most | |||
part it's a straightforward and easy to follow layout. The only unusual key is | |||
the key in the upper left, which sends Escape normally, but Grave when any of | |||
the Ctrl, Alt, or GUI modifiers are held down. | |||
This uses `LAYOUT_66_ansi`, which is compatable with the `66_ansi` community | |||
layout. |
@ -0,0 +1,36 @@ | |||
#include "66_hotswap.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. | |||
#define _BL 0 | |||
#define _FL 1 | |||
#define _CL 2 | |||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
/* Keymap _BL: Base Layer (Default Layer) | |||
*/ | |||
[_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_MINS,KC_EQL, 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, \ | |||
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,MO(_FL),KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,MO(_FL), KC_RSFT, KC_UP, \ | |||
KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_SPC, KC_RGUI,KC_RALT,MO(_FL),KC_RCTL,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, KC_VOLU, \ | |||
_______,_______,_______,_______,_______,_______,_______,_______,_______,KC_MPRV,KC_MPLY,KC_MNXT,_______,KC_MUTE, KC_VOLD, \ | |||
_______,_______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ | |||
_______,MO(_FL),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,MO(_FL),_______, KC_PGUP, \ | |||
_______,_______,_______, _______,_______, _______,_______,MO(_FL),_______,KC_HOME,KC_PGDN,KC_END), | |||
/* Keymap _CL: Control layer | |||
*/ | |||
[_CL] = LAYOUT( | |||
BL_STEP,RGB_M_P,RGB_M_B,RGB_M_R,RGB_M_SW,RGB_M_SN,RGB_M_K,RGB_M_X,RGB_M_G,_______,_______,_______,_______, RGB_TOG, RGB_VAI, \ | |||
_______,_______,_______,_______,RESET, _______,_______,_______,_______,_______,_______,_______,_______,_______, RGB_VAD, \ | |||
_______,_______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ | |||
_______,MO(_FL),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,MO(_FL),_______, RGB_SAI, \ | |||
_______,_______,_______, RGB_MOD,RGB_MOD, _______,_______,MO(_FL),_______,RGB_HUD,RGB_SAD,RGB_HUI), | |||
}; |
@ -0,0 +1,8 @@ | |||
![Clueboard Layout Image](http://i.imgur.com/7Capi8W.png) | |||
# Default Clueboard 66% Hotswap Layout | |||
This is the default layout that comes flashed on every Clueboard. For the most | |||
part it's a straightforward and easy to follow layout. The only unusual key is | |||
the key in the upper left, which sends Escape normally, but Grave when any of | |||
the Ctrl, Alt, or GUI modifiers are held down. |
@ -0,0 +1,16 @@ | |||
# Clueboard 66% HotSwap | |||
![Clueboard](https://static1.squarespace.com/static/55c13bdee4b099be5dcb82eb/t/5867eeaad2b857fd0d196f4b/1494021396651/IMGP4201.jpg?format=1500w) | |||
A fully customizable 66% keyboard with Hot Swap sockets. | |||
* Keyboard Maintainer: [Zach White](https://github.com/skullydazed) | |||
* Hardware Supported: Clueboard 66% HotSwap PCB | |||
* 2.9 | |||
* Hardware Availability: [clueboard.co](https://clueboard.co/) | |||
Make example for this keyboard (after setting up your build environment): | |||
make clueboard/66_hotswap: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. |
@ -0,0 +1,23 @@ | |||
DEFAULT_FOLDER = clueboard/66_hotswap/gen1 | |||
LAYOUTS = 66_ansi | |||
MCU = atmega32u4 | |||
F_CPU = 16000000 | |||
ARCH = AVR8 | |||
F_USB = $(F_CPU) | |||
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT | |||
OPT_DEFS += -DBOOTLOADER_SIZE=4096 | |||
# Build Options | |||
# comment out to disable the options. | |||
# | |||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) | |||
MOUSEKEY_ENABLE = no # 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 | |||
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | |||
AUDIO_ENABLE = no | |||
RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality | |||
MIDI_ENABLE = no # MIDI controls | |||
UNICODE_ENABLE = no # Unicode | |||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID |