diff options
| -rw-r--r-- | keyboard/atomic/Makefile | 7 | ||||
| -rw-r--r-- | keyboard/atomic/config.h | 93 | ||||
| -rw-r--r-- | keyboard/atomic/keymaps/default.c | 124 | ||||
| -rw-r--r-- | keyboard/atomic/keymaps/pc_atomic.c | 75 | 
4 files changed, 231 insertions, 68 deletions
diff --git a/keyboard/atomic/Makefile b/keyboard/atomic/Makefile index da6d0ac60..95554ea89 100644 --- a/keyboard/atomic/Makefile +++ b/keyboard/atomic/Makefile @@ -115,14 +115,14 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096  #   comment out to disable the options.  #  BOOTMAGIC_ENABLE = yes	# Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE = yes	# Mouse keys(+4700) +#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 = yes  # Breathing sleep LED during USB suspend -# NKRO_ENABLE = yes		# USB Nkey Rollover - not yet supported in LUFA -BACKLIGHT_ENABLE = yes  # Enable keyboard backlight functionality +NKRO_ENABLE = yes		# USB Nkey Rollover - not yet supported in LUFA +#BACKLIGHT_ENABLE = yes  # Enable keyboard backlight functionality  # MIDI_ENABLE = YES 		# MIDI controls  # UNICODE_ENABLE = YES 		# Unicode  # BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID @@ -137,4 +137,3 @@ VPATH += $(TOP_DIR)  VPATH += $(TMK_DIR)  include $(TOP_DIR)/quantum/quantum.mk - diff --git a/keyboard/atomic/config.h b/keyboard/atomic/config.h index 149aed471..e28fa18c0 100644 --- a/keyboard/atomic/config.h +++ b/keyboard/atomic/config.h @@ -32,36 +32,109 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  #define MATRIX_ROWS 5  #define MATRIX_COLS 15 -// Planck PCB default pin-out -// Change this to how you wired your keyboard -// COLS: Left to right, ROWS: Top to bottom +/* + * 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 COLS (int []){ F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7, D3, D2, D1 }  #define ROWS (int []){ D0, D5, B5, B6, C6 }  /* COL2ROW or ROW2COL */  #define DIODE_DIRECTION COL2ROW -/* define if matrix has ghost */ +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE    5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */  //#define MATRIX_HAS_GHOST  /* number of backlight levels */ -/* NOTE: this is the max value of 0..BACKLIGHT_LEVELS so really 16 levels. */  #define BACKLIGHT_LEVELS 3 -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCE    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 */ +/*  + * 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       B +//#define MAGIC_KEY_LOCK           CAPS +//#define MAGIC_KEY_EEPROM         E +//#define MAGIC_KEY_NKRO           N +//#define MAGIC_KEY_SLEEP_LED      Z  /*   * Feature disable options diff --git a/keyboard/atomic/keymaps/default.c b/keyboard/atomic/keymaps/default.c index f37d9d9a5..d62e5c244 100644 --- a/keyboard/atomic/keymaps/default.c +++ b/keyboard/atomic/keymaps/default.c @@ -1,60 +1,76 @@  #include "atomic.h" +#define _QW 0 +#define _CM 1 +#define _DV 2 +#define _LW 3 +#define _RS 4 + +// ROW 1 OPTIONS +// .--------------------------------------------------------------------------------------------------------------------------------------. +// |        |        |        |        |        |        |        |        |        |        |        |        |        |        |        | +// '--------------------------------------------------------------------------------------------------------------------------------------' +//                                                                                                                      .- 2u ------------. +//                                                                                                                      |   X             | +//                                                                                                                      '-----------------' + +// ROW 2 OPTIONS +// .--------------------------------------------------------------------------------------------------------------------------------------. +// |        |        |        |        |        |        |        |        |        |        |        |        |        |        |        | +// '--------------------------------------------------------------------------------------------------------------------------------------' +// .- 2u ------------.                                                                                                  .- 2u ------------. +// |   X             |                                                                                                  |   X             | +// '-----------------'                                                                                                  '-----------------' + +// ROW 3 OPTIONS +// .--------------------------------------------------------------------------------------------------------------------------------------. +// |        |        |        |        |        |        |        |        |        |        |        |        |        |        |        | +// '--------------------------------------------------------------------------------------------------------------------------------------' +// .- 2u ------------.                                                                                         .- 2u ------------. +// |   X             |                                                                                         |   X             | +// '-----------------'                                                                                         '-----------------' +//                                                                                                                      .- 2u ------------. +//                                                                                                                      |   X             | +//                                                                                                                      '-----------------' + +// ROW 4 OPTIONS +// .--------------------------------------------------------------------------------------------------------------------------------------. +// |        |        |        |        |        |        |        |        |        |        |        |        |        |        |        | +// '--------------------------------------------------------------------------------------------------------------------------------------' +//                                                                                                    .- 2u ------------. +//                                                                                                    |   X             | +//                                                                                                    '-----------------' +// .- 2u ------------.                                                                                         .- 2u ------------. +// |   X             |                                                                                         |   X             | +// '-----------------'                                                                                         '-----------------' +//                                                                                                                      .- 2u ------------. +//                                                                                                                      |   X             | +//                                                                                                                      '-----------------' + +// ROW 5 OPTIONS +// .--------------------------------------------------------------------------------------------------------------------------------------. +// |        |        |        |        |        |        |        |        |        |        |        |        |        |        |        | +// '--------------------------------------------------------------------------------------------------------------------------------------' +// .- 1.25u --+ 1.25u ------- 1.25u +--- 1.25u --- 2u -------------- 1.25u ---- 1.25u ------ 1.25u +---- 1.25u . +// |   X      | X        |        X |      X    |   X             |   X      | X        |        X |      X    | +// '-----------------------------------------------------------------------------------------------------------' +//                                                                .- 2u ------------. +//                                                                |   X             | +//                                                                '-----------------' +//                                  .--------------------- 6.25u ----------------------------. +//                                  |                        X                               | +//                                  '--------------------------------------------------------' +//                       .----------------------- 6.25u ---------------------------- 1.25u ---- 1.25u ---- 1.25u ------ 1.25u +-- 1.25u --. +//                       |                          X                             |     X    |   X      | X        |        X |      X    | +//                       '----------------------------------------------------------------------------------------------------------------' +  const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = { /* 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_EQL,  KC_BSPC, KC_DEL   }, -// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ -// │        │        │        │        │        │        │        │        │        │        │        │        │        │        │        │ -// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ -//                                                                                                                      ┌─ 2u ────────────┐ -//                                                                                                                      │   X             │ -//                                                                                                                      └─────────────────┘ -  { KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL   }, -// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ -// │        │        │        │        │        │        │        │        │        │        │        │        │        │        │        │ -// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ -// ┌─ 2u ────────────┐                                                                                                  ┌─ 2u ────────────┐ -// │   X             │                                                                                                  │   X             │ -// └─────────────────┘                                                                                                  └─────────────────┘ -  { 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_ENT,  KC_ENT,  KC_PGUP  }, -// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ -// │        │        │        │        │        │        │        │        │        │        │        │        │        │        │        │ -// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ -// ┌─ 2u ────────────┐                                                                                         ┌─ 2u ────────────┐ -// │   X             │                                                                                         │   X             │ -// └─────────────────┘                                                                                         └─────────────────┘ -//                                                                                                                      ┌─ 2u ────────────┐ -//                                                                                                                      │   X             │ -//                                                                                                                      └─────────────────┘ -  { 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_RSFT, KC_UP,  KC_PGDN  }, -// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ -// │        │        │        │        │        │        │        │        │        │        │        │        │        │        │        │ -// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ -//                                                                                                    ┌─ 2u ────────────┐ -//                                                                                                    │   X             │ -//                                                                                                    └─────────────────┘ -// ┌─ 2u ────────────┐                                                                                         ┌─ 2u ────────────┐ -// │   X             │                                                                                         │   X             │ -// └─────────────────┘                                                                                         └─────────────────┘ -//                                                                                                                      ┌─ 2u ────────────┐ -//                                                                                                                      │   X             │ -//                                                                                                                      └─────────────────┘ -  { BL_STEP, KC_LCTL, KC_LALT, KC_LGUI, KC_LGUI,  KC_SPC,  KC_SPC,  KC_RGUI, KC_RGUI,  KC_RALT, KC_RCTL, BL_STEP, KC_LEFT, KC_DOWN, KC_RGHT  }, -// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ -// │        │        │        │        │        │        │        │        │        │        │        │        │        │        │        │ -// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ -// ┌─ 1.25u ──┬ 1.25u ───┬─── 1.25u ┬─── 1.25u ─┬─ 2u ────────────┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬──── 1.25u ┐ -// │   X      │ X        │        X │      X    │   X             │   X      │ X        │        X │      X    │ -// └──────────┴──────────┴──────────┴───────────┴─────────────────┴──────────┴──────────┴──────────┴───────────┘ -//                                                                ┌─ 2u ────────────┐ -//                                                                │   X             │ -//                                                                └─────────────────┘ -//                                  ┌───────────────────── 6.25u ────────────────────────────┐ -//                                  │                        X                               │ -//                                  └────────────────────────────────────────────────────────┘ -//                       ┌─────────────────────── 6.25u ──────────────────────────┬─ 1.25u ──┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬── 1.25u ──┐ -//                       │                          X                             │     X    │   X      │ X        │        X │      X    │ -//                       └────────────────────────────────────────────────────────┴──────────┴──────────┴──────────┴──────────┴───────────┘ + [_QW] = { /* 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_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_DEL   }, +  { 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_ENT,  KC_ENT,  KC_PGUP  }, +  { 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_RSFT, KC_UP,   KC_PGDN  }, +  { BL_STEP, KC_LCTL, KC_LALT, KC_LGUI, KC_LGUI, KC_SPC, KC_SPC, KC_RGUI, KC_RGUI, KC_RALT, KC_RCTL, BL_STEP, KC_LEFT, KC_DOWN, KC_RGHT  },   }  }; diff --git a/keyboard/atomic/keymaps/pc_atomic.c b/keyboard/atomic/keymaps/pc_atomic.c new file mode 100644 index 000000000..2792ff6e7 --- /dev/null +++ b/keyboard/atomic/keymaps/pc_atomic.c @@ -0,0 +1,75 @@ +#include "atomic.h" + +#define _QW 0 +#define _LW 1 +#define _RS 2 +#define _FN 3 + +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +/* + * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. + * | ESC    | 1      | 2      | 3      | 4      | 5      | 6      | 7      | 8      | 9      | 0      | -      | =      | XXXXXX . BACKSP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | TAB    | Q      | W      | E      | R      | T      | Y      | U      | I      | O      | P      | [      | ]      | \      | DEL    | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| + * | CAPS   | A      | S      | D      | F      | G      | H      | J      | K      | L      | ;      | '      | XXXXXX . ENTER  | PG UP  | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| + * | LSHIFT | Z      | X      | C      | V      | B      | N      | M      | ,      | .      | /      | XXXXXX . RSHIFT | UP     | PG DN  | + * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| + * | LCTRL  | LWIN   | FN     | LALT   | RAISED | XXXXXX . SPACE  | LOWER  | RALT   | HOME   | END    | RCTRL  | LEFT   | DOWN   | RIGHT  | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +// [_QW] = { /* QWERTY */ + [0] = { /* QWERTY */ +  { KC_ESC,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS, KC_EQL,  XXXXXXX, 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_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, XXXXXXX, KC_ENT,  KC_PGUP  }, +  { KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, XXXXXXX, KC_RSFT, KC_UP,   KC_PGDN  }, +  { KC_LCTL, KC_LGUI, MO(_FN), KC_LALT, MO(_RS), XXXXXXX, KC_SPC,  MO(_LW), KC_RALT, KC_HOME, KC_END,  KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT  }, + }, + [_LW] = { /* LOWERED */ +  { 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_PSCR, KC_PAUS  }, +  { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______  }, +  { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______  }, +  { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______  }, +  { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______  }, + }, + [_RS] = { /* RAISED */ +  { KC_TILD, 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_PAUS  }, +  { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______  }, +  { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______  }, +  { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______  }, +  { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______  }, + }, + [_FN] = { /* FUNCTION */ +  { KC_TILD, 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_PAUS  }, +  { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______  }, +  { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______  }, +  { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______  }, +  { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______  }, + }, +}; + +const uint16_t PROGMEM fn_actions[] = { +    [1] = ACTION_LAYER_MOMENTARY(2),  // to RAISE +    [2] = ACTION_LAYER_MOMENTARY(3),  // to LOWER + +    [3] = ACTION_DEFAULT_LAYER_SET(0), +    [4] = ACTION_DEFAULT_LAYER_SET(1), + +}; + +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: +        return MACRODOWN(TYPE(KC_T), END); +      break; +    }  +    return MACRO_NONE; +};  | 
