diff options
22 files changed, 1134 insertions, 0 deletions
diff --git a/keyboards/atreus/keymaps/ptillemans/keymap.c b/keyboards/atreus/keymaps/ptillemans/keymap.c new file mode 100644 index 0000000000..9019e9a8c0 --- /dev/null +++ b/keyboards/atreus/keymaps/ptillemans/keymap.c @@ -0,0 +1,49 @@ +// this is the style you want to emulate. +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, + +#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. +// 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 _QW 0 +#define _RS 1 +#define _LW 2 + +#define MY_SHEN MT(MOD_LSFT, KC_ENT) +#define MY_CTES MT(MOD_LCTL, KC_ESC) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +  [_QW] = LAYOUT( /* Qwerty */ +    KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,                      KC_Y,    KC_U,    KC_I,    KC_O,    KC_P    , +    KC_A,    KC_S,    KC_D,    KC_F,    KC_G,                      KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN , +    KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,                      KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH , +    TT(_LW), KC_TAB, KC_LGUI,  KC_LSFT, KC_BSPC, MY_CTES, KC_LALT, KC_SPC,  TT(_RS), KC_MINS, KC_QUOT, MY_SHEN +  ), + +  /* +   *  !       @     up     {    }        ||     pgup    7     8     9    * +   *  #     left   down  right  $        ||     pgdn    4     5     6    + +   *  [       ]      (     )    &        ||       `     1     2     3    \ +   * lower  insert super shift bksp ctrl || alt space   fn    .     0    = +   */ +  [_RS] = LAYOUT( /* [> RAISE <] */ +    KC_EXLM, KC_AT,   KC_UP,   KC_UNDS, KC_PLUS,                   KC_PGUP, KC_7,    KC_8,   KC_9, KC_ASTR , +    KC_HASH, KC_LEFT, KC_DOWN, KC_RGHT, KC_DLR,                    KC_PGDN, KC_4,    KC_5,   KC_6, KC_PLUS , +    KC_RBRC, KC_LBRC, KC_LPRN, KC_RPRN, KC_AMPR,                   KC_GRV,  KC_1,    KC_2,   KC_3, KC_BSLS , +    TT(_LW), _______, _______, _______, _______, _______, _______, _______, TO(_QW), KC_DOT,   KC_0, KC_EQL +  ), +  /* +   * insert home   up  end   pgup       ||      up     F7    F8    F9   F10 +   *  del   left  down right pgdn       ||     down    F4    F5    F6   F11 +   *       volup             reset      ||             F1    F2    F3   F12 +   *       voldn  super shift next ctrl || alt space   L0  prtsc scroll pause +   */ +  [_LW] = LAYOUT( /* [> LOWER <] */ +    KC_INS,  KC_HOME, KC_UP,   KC_END,  KC_PGUP,                   KC_UP,   KC_F7,   KC_F8,   KC_F9,   KC_F10  , +    KC_DELT, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN,                   KC_DOWN, KC_F4,   KC_F5,   KC_F6,   KC_F11  , +    KC_NO,   KC_VOLU, KC_NO,   KC_NO,   RESET,                     KC_TILD, KC_F1,   KC_F2,   KC_F3,   KC_F12  , +    KC_NO,   KC_VOLD, _______, _______, KC_MNXT, _______, _______, _______, TO(_QW), KC_PSCR, KC_SLCK, KC_MPLY +  ) +}; diff --git a/keyboards/jc65/v32a/keymaps/ptillemans/keymap.c b/keyboards/jc65/v32a/keymaps/ptillemans/keymap.c new file mode 100644 index 0000000000..c384d36d3f --- /dev/null +++ b/keyboards/jc65/v32a/keymaps/ptillemans/keymap.c @@ -0,0 +1,54 @@ +#include QMK_KEYBOARD_H + + +#define _QWERTY 0 +#define _RAISE 1 + +#define KC_CTES LCTL_T(KC_ESC) +#define KC_RAIS MO(_RAISE) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +    [_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_MINS, KC_EQL,KC_BSLS,KC_BSPC, KC_INS, +                 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_HASH,KC_PGUP, +                 KC_CTES,   KC_A,   KC_S,   KC_D,   KC_F,   KC_G,   KC_H,   KC_J,   KC_K,   KC_L,KC_SCLN,KC_QUOT,KC_HASH,         KC_ENT,KC_PGDN, +                 KC_LSFT,KC_BSLS,   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_END, +                 KC_RAIS,KC_LGUI,KC_LALT,         KC_SPC, KC_SPC, KC_SPC,                        KC_RALT,KC_RGUI,KC_RCTL,KC_LEFT,KC_DOWN,KC_RGHT +    ), +    [_RAISE] = 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_BSLS,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_PSCR,KC_LBRC,KC_RBRC,          RESET,KC_PGUP, +                 KC_CTES,   KC_A,   KC_S,   KC_D,   KC_F,   KC_G,   KC_H,   KC_J,   KC_K,   KC_L,KC_SCLN,KC_QUOT,  RESET,         KC_ENT,KC_PGDN, +                 KC_LSFT,KC_NUBS,   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_HOME, +                 KC_LCTL,KC_LGUI,KC_LALT,         KC_SPC, KC_SPC, KC_SPC,                        KC_RALT,KC_RGUI,KC_RCTL,KC_LEFT,KC_DOWN,KC_RGHT +                 ), +}; + +bool shift_pressed(void) { +  return get_mods() & MOD_MASK_SHIFT; +} + + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + +  static bool tilde_pressed = false; + +  switch (keycode) { +  case KC_HASH: +    if (shift_pressed()) { +      if (record->event.pressed) { +        tilde_pressed = true; +        register_code(KC_GRV); +        return false; +      } +      else if (tilde_pressed) { +        unregister_code(KC_GRV); +        tilde_pressed = false; +        return false; +      } +    } +    return true; +  default: +    return true; // Process all other keycodes normally +  } +} diff --git a/keyboards/jc65/v32a/keymaps/ptillemans/readme.md b/keyboards/jc65/v32a/keymaps/ptillemans/readme.md new file mode 100644 index 0000000000..61e55f3ce8 --- /dev/null +++ b/keyboards/jc65/v32a/keymaps/ptillemans/readme.md @@ -0,0 +1,10 @@ +Default Keymap +======= + +Default plain keymap with only a base layer. + +Keymap Maintainer: [Jason Barnachea](https://github.com/nautxx) + +Difference from base layout: None. + +Intended usage: Reference layout. diff --git a/keyboards/jc65/v32a/keymaps/ptillemans/rules.mk b/keyboards/jc65/v32a/keymaps/ptillemans/rules.mk new file mode 100644 index 0000000000..1d2d9e5a9c --- /dev/null +++ b/keyboards/jc65/v32a/keymaps/ptillemans/rules.mk @@ -0,0 +1,2 @@ +RGBLIGHT_ENABLE = no +BACKLIGHT_ENABLE = no diff --git a/keyboards/ok60/keymaps/ptillemans/keymap.c b/keyboards/ok60/keymaps/ptillemans/keymap.c new file mode 100644 index 0000000000..ff777847f6 --- /dev/null +++ b/keyboards/ok60/keymaps/ptillemans/keymap.c @@ -0,0 +1,20 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +    [0] = LAYOUT_60_iso( +        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_CAPS, KC_A,    KC_S,    KC_D,  KC_F,  KC_G,  KC_H,  KC_J,  KC_K,    KC_L,    KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, +        KC_LSFT, KC_GRAVE, KC_Z,    KC_X,    KC_C,  KC_V,  KC_B,  KC_N,  KC_M,  KC_COMM, KC_DOT,  KC_SLSH, MT(MOD_RSFT,KC_UP), +        KC_LCTL, KC_LGUI, KC_LALT,               KC_SPC,                        MO(1),   MT(MOD_RALT,KC_LEFT), MT(MOD_RGUI,KC_DOWN), MT(MOD_RCTL,KC_RGHT) +    ), + +    [1] = LAYOUT_60_iso( +        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_DEL, +        _______, RGB_TOG, KC_UP,   RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_PSCR, _______, _______, +        _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +        _______, _______, _______, BL_DEC,  BL_TOGG, BL_INC,  _______, AG_NORM, AG_SWAP, _______, _______, _______, _______, +        _______, _______, _______,                   _______,                            _______, _______, _______, _______ +    ), +}; diff --git a/keyboards/planck/keymaps/ptillemans/config.h b/keyboards/planck/keymaps/ptillemans/config.h new file mode 100644 index 0000000000..d9be4c017e --- /dev/null +++ b/keyboards/planck/keymaps/ptillemans/config.h @@ -0,0 +1,43 @@ +#pragma once + +#ifdef AUDIO_ENABLE +    #define STARTUP_SONG SONG(PLANCK_SOUND) +    // #define STARTUP_SONG SONG(NO_SOUND) + +    #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \ +                                  SONG(COLEMAK_SOUND), \ +                                  SONG(DVORAK_SOUND) \ +                                } +#endif + +/* + * 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 2 + +// Most tactile encoders have detents every 4 stages +#define ENCODER_RESOLUTION 4 + + +// setup double tapping to lock layers +#define TAPPING_TERM 175 +#define TAPPING_TOGGLE 2 diff --git a/keyboards/planck/keymaps/ptillemans/keymap.c b/keyboards/planck/keymaps/ptillemans/keymap.c new file mode 100644 index 0000000000..c1f847e2f3 --- /dev/null +++ b/keyboards/planck/keymaps/ptillemans/keymap.c @@ -0,0 +1,322 @@ +/* Copyright 2015-2017 Jack Humbert + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ + +#include QMK_KEYBOARD_H +#include "muse.h" + +extern keymap_config_t keymap_config; + +enum planck_layers { +  _QWERTY, +  _DVORAK, +  _LOWER, +  _RAISE, +  _PLOVER, +  _ADJUST +}; + +enum planck_keycodes { +  QWERTY = SAFE_RANGE, +  DVORAK, +  PLOVER, +  BACKLIT, +  EXT_PLV +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) + +#define MY_SHEN MT(MOD_LSFT, KC_ENT) +#define MY_CTES MT(MOD_LCTL, KC_ESC) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * |   Q  |   W  |   E  |   R  |   T  | PgUp |  Up  |   Y  |   U  |   I  |   O  |   P  | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * |   A  |   S  |   D  |   F  |   G  | PgDn | Down |   H  |   J  |   K  |   L  |   ;  | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * |   Z  |   X  |   C  |   V  |   B  | Home |  End |   N  |   M  |   ,  |   .  |   /  | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Raise| Tab  | super| Alt  |  BS  |   Ctrl/Esc |Spc/Alt| Lower|   '  |   \  |Sh/Ent| + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = LAYOUT_planck_grid( +    KC_Q,    KC_W,    KC_E,    KC_R,    KC_T, KC_PGUP,   KC_UP,    KC_Y,    KC_U,   KC_I,     KC_O,    KC_P, +    KC_A,    KC_S,    KC_D,    KC_F,    KC_G, KC_PGDN, KC_DOWN,    KC_H,    KC_J,   KC_K,     KC_L, KC_SCLN, +    KC_Z,    KC_X,    KC_C,    KC_V,    KC_B, KC_HOME,  KC_END,    KC_N,    KC_M, KC_COMM,  KC_DOT, KC_SLSH, +    LOWER, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, MY_CTES, MY_CTES,  KC_SPC,   RAISE, KC_QUOT,KC_MINUS, MY_SHEN +), +/* Dvorak + * ,-----------------------------------------------------------------------------------. + * | Tab  |   "  |   ,  |   .  |   P  |   Y  |   F  |   G  |   C  |   R  |   L  | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc  |   A  |   O  |   E  |   U  |   I  |   D  |   H  |   T  |   N  |   S  |  /   | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift|   ;  |   Q  |   J  |   K  |   X  |   B  |   M  |   W  |   V  |   Z  |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt  | GUI  |Lower |    Space    |Raise | Left | Down |  Up  |Right | + * `-----------------------------------------------------------------------------------' + */ +[_DVORAK] = LAYOUT_planck_grid( +    KC_TAB , KC_QUOT, KC_COMM,  KC_DOT,  KC_P,    KC_Y,    KC_F,    KC_G,    KC_C,    KC_R,    KC_L, KC_BSPC, +    MY_CTES,    KC_A,    KC_O,    KC_E,  KC_U,    KC_I,    KC_D,    KC_H,    KC_T,    KC_N,    KC_S, KC_SLSH, +    KC_LSFT, KC_SCLN, KC_Q,       KC_J,  KC_K,    KC_X,    KC_B,    KC_M,    KC_W,    KC_V,    KC_Z, MY_SHEN , +    BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER,  KC_SPC,  KC_SPC,   RAISE, KC_LEFT, KC_DOWN,   KC_UP, KC_RGHT +), + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | Ins  | Home |  Up  | End  | PgUp |      |      |      |  F7  |  F8  |  F9  |  F10 | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del  | Left | Down |Right | PgDn |      |      |      |  F4  |  F5  |  F6  |  F11 | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * |      | Vol+ |      |      |      |      |      |      |  F1  |  F2  |  F3  |      | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |      | Vol- |      |      | Next |             |      |      |PrtScr| Lock | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = LAYOUT_planck_grid( +    KC_INS, KC_HOME,    KC_UP,  KC_END, KC_PGUP, KC_PERC, KC_CIRC, KC_AMPR,   KC_F7,   KC_F8,   KC_F9,  KC_F10, +    KC_DEL, KC_LEFT,  KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, _______,   KC_F4,   KC_F5,   KC_F6,  KC_F11, +    _______, KC_VOLU, _______, _______, _______, _______, _______, KC_TILD,   KC_F1,   KC_F2,   KC_F3,  KC_F12, +    _______, KC_VOLD, _______, _______, KC_MNXT, _______, _______, _______,  TO(_QWERTY), KC_PSCR, KC_SLCK, KC_MPLY +), + +/* Raise + * ,-----------------------------------------------------------------------------------. + * |   !  |   @  |  Up  |   _  |   +  |      |      | PgUp |   7  |   8  |   9  |   *  | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * |   #  | Left | Down |Right |   $  |      |      | PgDn |   4  |   5  |   6  |   + +| + * |------+------+------+------+------+------|------+------+------+------+------+------| + * |   [  |   ]  |   (  |   )  |   &  |      |      |   `  |   1  |   2  |   3  |   \  | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |      |      |      |      |      |             |      |      |   .  |   0  |   =  | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = LAYOUT_planck_grid( +    KC_EXLM,   KC_AT,   KC_UP, KC_UNDS, KC_PLUS, _______, _______,  KC_PGUP,    KC_7,    KC_8,    KC_9, KC_ASTR, +    KC_HASH, KC_LEFT, KC_DOWN, KC_RGHT,  KC_DLR, _______, _______,  KC_PGDN,    KC_4,    KC_5,    KC_6, KC_PLUS, +    KC_MINS,  KC_EQL, KC_LPRN, KC_RPRN, KC_AMPR, _______, _______,   KC_GRV,    KC_1,    KC_2,    KC_3, KC_BSLS, +    _______, _______, _______, _______, _______, _______, _______, _______, TO(_QWERTY),  KC_DOT,     KC_0,  KC_RBRC +), + +/* Plover layer (http://opensteno.org) + * ,-----------------------------------------------------------------------------------. + * |   #  |   #  |   #  |   #  |   #  |   #  |   #  |   #  |   #  |   #  |   #  |   #  | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * |      |   S  |   T  |   P  |   H  |   *  |   *  |   F  |   P  |   L  |   T  |   D  | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * |      |   S  |   K  |   W  |   R  |   *  |   *  |   R  |   B  |   G  |   S  |   Z  | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Exit |      |      |   A  |   O  |             |   E  |   U  |      |      |      | + * `-----------------------------------------------------------------------------------' + */ +[_PLOVER] = LAYOUT_planck_grid( +    KC_1,    KC_1,    KC_1,    KC_1,    KC_1,    KC_1,    KC_1,    KC_1,    KC_1,    KC_1,    KC_1,    KC_1   , +    XXXXXXX, KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_LBRC, +    XXXXXXX, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT, +    EXT_PLV, XXXXXXX, XXXXXXX, KC_C,    KC_V,    XXXXXXX, XXXXXXX, KC_N,    KC_M,    XXXXXXX, XXXXXXX, XXXXXXX +), + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * |      | Reset|      |      |      |      |      |      |      |      |      |  Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * |      |      |      |Aud on|Audoff|AGnorm|AGswap|      |Qwerty|Dvorak|Plover|      | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * |      |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof|      |      |      |      |      | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |      |      |      |      |      |             |      |      |      |      |      | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = LAYOUT_planck_grid( +    _______, RESET,   DEBUG,   RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD,  RGB_VAI, RGB_VAD, KC_DEL , +    _______, _______, MU_MOD,  AU_ON,   AU_OFF,  AG_NORM, AG_SWAP, _______,  QWERTY,  DVORAK,  PLOVER,  _______, +    BACKLIT, MUV_DE,  MUV_IN,  MU_ON,   MU_OFF,  MI_ON,   MI_OFF,  TERM_ON, TERM_OFF, _______, _______, _______, +    _______, _______, _______, _______, _______, _______, _______, _______, _______,  _______, _______, _______ +) +}; + +#ifdef AUDIO_ENABLE +  float plover_song[][2]     = SONG(PLOVER_SOUND); +  float plover_gb_song[][2]  = SONG(PLOVER_GOODBYE_SOUND); +#endif + +layer_state_t layer_state_set_user(layer_state_t state) { +  return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { +  switch (keycode) { +    case QWERTY: +      if (record->event.pressed) { +        print("mode just switched to qwerty and this is a huge string\n"); +        set_single_persistent_default_layer(_QWERTY); +      } +      return false; +      break; +    case DVORAK: +      if (record->event.pressed) { +        set_single_persistent_default_layer(_DVORAK); +      } +      return false; +      break; +    case BACKLIT: +      if (record->event.pressed) { +        register_code(KC_RSFT); +        #ifdef BACKLIGHT_ENABLE +          backlight_step(); +        #endif +        #ifdef KEYBOARD_planck_rev5 +          PORTE &= ~(1<<6); +        #endif +      } else { +        unregister_code(KC_RSFT); +        #ifdef KEYBOARD_planck_rev5 +          PORTE |= (1<<6); +        #endif +      } +      return false; +      break; +    case PLOVER: +      if (record->event.pressed) { +        #ifdef AUDIO_ENABLE +          stop_all_notes(); +          PLAY_SONG(plover_song); +        #endif +        layer_off(_RAISE); +        layer_off(_LOWER); +        layer_off(_ADJUST); +        layer_on(_PLOVER); +        if (!eeconfig_is_enabled()) { +            eeconfig_init(); +        } +        keymap_config.raw = eeconfig_read_keymap(); +        keymap_config.nkro = 1; +        eeconfig_update_keymap(keymap_config.raw); +      } +      return false; +      break; +    case EXT_PLV: +      if (record->event.pressed) { +        #ifdef AUDIO_ENABLE +          PLAY_SONG(plover_gb_song); +        #endif +        layer_off(_PLOVER); +      } +      return false; +      break; +  } +  return true; +} + +bool muse_mode = false; +uint8_t last_muse_note = 0; +uint16_t muse_counter = 0; +uint8_t muse_offset = 70; +uint16_t muse_tempo = 50; + +void encoder_update(bool clockwise) { +  if (muse_mode) { +    if (IS_LAYER_ON(_RAISE)) { +      if (clockwise) { +        muse_offset++; +      } else { +        muse_offset--; +      } +    } else { +      if (clockwise) { +        muse_tempo+=1; +      } else { +        muse_tempo-=1; +      } +    } +  } else { +    if (clockwise) { +      #ifdef MOUSEKEY_ENABLE +        register_code(KC_MS_WH_DOWN); +        unregister_code(KC_MS_WH_DOWN); +      #else +        register_code(KC_PGDN); +        unregister_code(KC_PGDN); +      #endif +    } else { +      #ifdef MOUSEKEY_ENABLE +        register_code(KC_MS_WH_UP); +        unregister_code(KC_MS_WH_UP); +      #else +        register_code(KC_PGUP); +        unregister_code(KC_PGUP); +      #endif +    } +  } +} + +void dip_update(uint8_t index, bool active) { +  switch (index) { +    case 0: +      if (active) { +        #ifdef AUDIO_ENABLE +          PLAY_SONG(plover_song); +        #endif +        layer_on(_ADJUST); +      } else { +        #ifdef AUDIO_ENABLE +          PLAY_SONG(plover_gb_song); +        #endif +        layer_off(_ADJUST); +      } +      break; +    case 1: +      if (active) { +        muse_mode = true; +      } else { +        muse_mode = false; +        #ifdef AUDIO_ENABLE +          stop_all_notes(); +        #endif +      } +   } +} + +void matrix_scan_user(void) { +  #ifdef AUDIO_ENABLE +    if (muse_mode) { +      if (muse_counter == 0) { +        uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()]; +        if (muse_note != last_muse_note) { +          stop_note(compute_freq_for_midi_note(last_muse_note)); +          play_note(compute_freq_for_midi_note(muse_note), 0xF); +          last_muse_note = muse_note; +        } +      } +      muse_counter = (muse_counter + 1) % muse_tempo; +    } +  #endif +} + +bool music_mask_user(uint16_t keycode) { +  switch (keycode) { +    case RAISE: +    case LOWER: +      return false; +    default: +      return true; +  } +} diff --git a/keyboards/planck/keymaps/ptillemans/readme.md b/keyboards/planck/keymaps/ptillemans/readme.md new file mode 100644 index 0000000000..de9680b498 --- /dev/null +++ b/keyboards/planck/keymaps/ptillemans/readme.md @@ -0,0 +1,2 @@ +# The Default Planck Layout + diff --git a/keyboards/planck/keymaps/ptillemans/rules.mk b/keyboards/planck/keymaps/ptillemans/rules.mk new file mode 100644 index 0000000000..c329d16ff8 --- /dev/null +++ b/keyboards/planck/keymaps/ptillemans/rules.mk @@ -0,0 +1,2 @@ +SRC += muse.c +BACKLIGHT_ENABLE = yes diff --git a/keyboards/redox/keymaps/ptillemans/config.h b/keyboards/redox/keymaps/ptillemans/config.h new file mode 100644 index 0000000000..a3ef209a05 --- /dev/null +++ b/keyboards/redox/keymaps/ptillemans/config.h @@ -0,0 +1,34 @@ +/* +Copyright 2018 Mattia Dal Ben <matthewdibi@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/>. +*/ + +#pragma once + +/* Use I2C or Serial, not both */ +#define USE_SERIAL +// #define USE_I2C + +/* Select hand configuration */ +#define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS + +#undef RGBLED_NUM +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 14 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/redox/keymaps/ptillemans/keymap.c b/keyboards/redox/keymaps/ptillemans/keymap.c new file mode 100644 index 0000000000..3d9b90be5b --- /dev/null +++ b/keyboards/redox/keymaps/ptillemans/keymap.c @@ -0,0 +1,97 @@ +#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 _SYMB 1 +#define _NAV 2 +#define _ADJUST 3 + +enum custom_keycodes { +  QWERTY = SAFE_RANGE, +  SYMB, +  NAV, +  ADJUST, +}; + +// Shortcut to make keymap more readable +#define KC_BKSL KC_BSLASH +#define SYM_L   MO(_SYMB) + +#define KC_ALAS LALT_T(KC_PAST) +#define KC_CTES LCTL_T(KC_ESC) + +#define KC_NAGR LT(_NAV, KC_GRV) +#define KC_NAMI LT(_NAV, KC_MINS) + +#define KC_ADEN LT(_ADJUST, KC_END) +#define KC_ADPU LT(_ADJUST, KC_PGUP) + +#define KC_LBRS LT(_SYMB, KC_LBRC) +#define KC_RBRS LT(_SYMB, KC_RBRC) +#define KC_RSEN RSFT_T(KC_ENT) +#define KC_RCQU RCTL_T(KC_QUOT) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +  [_QWERTY] = LAYOUT( +  //┌────────┬────────┬────────┬────────┬────────┬────────┐                                           ┌────────┬────────┬────────┬────────┬────────┬────────┐ +     KC_NAGR ,KC_1    ,KC_2    ,KC_3    ,KC_4    ,KC_5    ,                                            KC_6    ,KC_7    ,KC_8    ,KC_9    ,KC_0    ,KC_NAMI , +  //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐                         ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ +     KC_TAB  ,KC_Q    ,KC_W    ,KC_E    ,KC_R    ,KC_T    ,KC_PSCR ,                          KC_EQL  ,KC_Y    ,KC_U    ,KC_I    ,KC_O    ,KC_P    ,KC_BKSL , +  //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤                         ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ +     KC_CTES ,KC_A    ,KC_S    ,KC_D    ,KC_F    ,KC_G    ,KC_LBRC ,                          KC_RBRC ,KC_H    ,KC_J    ,KC_K    ,KC_L    ,KC_SCLN ,KC_RCQU , +  //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐       ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤ +     KC_LSFT ,KC_Z    ,KC_X    ,KC_C    ,KC_V    ,KC_B    ,KC_ADPU ,KC_PGDN ,        KC_HOME ,KC_ADEN ,KC_N    ,KC_M    ,KC_COMM ,KC_DOT  ,KC_SLSH ,KC_RSEN , +  //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤       ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤ +     KC_LGUI ,KC_PPLS ,KC_PMNS ,KC_ALAS ,     KC_LGUI ,    KC_BSPC , KC_SPC ,        KC_SPC  ,KC_ENT  ,    KC_RALT ,     KC_LEFT ,KC_DOWN ,KC_UP   ,KC_RGHT +  //└────────┴────────┴────────┴────────┘    └────────┘   └────────┴────────┘       └────────┴────────┘   └────────┘    └────────┴────────┴────────┴────────┘ +                     ), + +  [_SYMB] = LAYOUT( +  //┌────────┬────────┬────────┬────────┬────────┬────────┐                                           ┌────────┬────────┬────────┬────────┬────────┬────────┐ +     _______ ,KC_F1   ,KC_F2   ,KC_F3   ,KC_F4   ,KC_F5   ,                                            KC_F6   ,KC_F7   ,KC_F8   ,KC_F9   ,KC_F10  ,XXXXXXX , +  //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐                         ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ +     _______ ,KC_EXLM ,KC_AT   ,KC_LCBR ,KC_RCBR ,KC_PIPE ,_______ ,                          _______ ,XXXXXXX ,KC_KP_7 ,KC_KP_8 ,KC_KP_9 ,XXXXXXX ,XXXXXXX , +  //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤                         ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ +     _______ ,KC_HASH ,KC_DLR  ,KC_LBRC ,KC_RBRC ,KC_GRV  ,_______ ,                          _______ ,XXXXXXX ,KC_KP_4 ,KC_KP_5 ,KC_KP_6 ,XXXXXXX ,XXXXXXX , +  //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐       ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤ +     _______ ,KC_PERC ,KC_CIRC ,KC_LPRN ,KC_RPRN ,KC_TILD ,_______ ,_______ ,        _______ ,_______ ,XXXXXXX ,KC_KP_1 ,KC_KP_2 ,KC_KP_3 ,XXXXXXX ,XXXXXXX , +  //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤       ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤ +     _______ ,_______ ,_______ ,_______ ,     _______ ,    _______ ,_______ ,        _______ ,_______ ,    KC_KP_0 ,     KC_KP_0 ,KC_PDOT ,XXXXXXX ,XXXXXXX +  //└────────┴────────┴────────┴────────┘    └────────┘   └────────┴────────┘       └────────┴────────┘   └────────┘    └────────┴────────┴────────┴────────┘ +  ), + +  [_NAV] = LAYOUT( +  //┌────────┬────────┬────────┬────────┬────────┬────────┐                                           ┌────────┬────────┬────────┬────────┬────────┬────────┐ +     _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,                                            _______ ,_______ ,_______ ,_______ ,_______ ,_______ , +  //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐                         ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ +     XXXXXXX ,XXXXXXX ,KC_MS_U ,XXXXXXX ,KC_WH_U ,XXXXXXX ,_______ ,                          _______ ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , +  //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤                         ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ +     XXXXXXX ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_WH_D ,XXXXXXX ,_______ ,                          _______ ,KC_LEFT ,KC_DOWN ,KC_UP   ,KC_RIGHT,XXXXXXX ,XXXXXXX , +  //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐       ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤ +     XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,_______ ,_______ ,        _______ ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , +  //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤       ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤ +     XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,     KC_BTN1 ,    KC_BTN2 ,_______ ,        _______ ,_______ ,    XXXXXXX ,     XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX +  //└────────┴────────┴────────┴────────┘    └────────┘   └────────┴────────┘       └────────┴────────┘   └────────┘    └────────┴────────┴────────┴────────┘ +  ), + +  [_ADJUST] = LAYOUT( +  //┌────────┬────────┬────────┬────────┬────────┬────────┐                                           ┌────────┬────────┬────────┬────────┬────────┬────────┐ +     XXXXXXX ,KC_F1   ,KC_F2   ,KC_F3   ,KC_F4   ,KC_F5   ,                                            KC_F6   ,KC_F7   ,KC_F8   ,KC_F9   ,KC_F10  ,XXXXXXX , +  //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐                         ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ +     XXXXXXX ,RESET   ,RGB_M_P ,RGB_TOG ,RGB_MOD ,RGB_HUD ,RGB_HUI ,                          RGB_SAD ,RGB_SAI ,RGB_VAD ,RGB_VAI ,XXXXXXX ,XXXXXXX ,XXXXXXX , +  //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤                         ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ +     XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,                          XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , +  //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐       ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤ +     XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,_______ ,XXXXXXX ,        XXXXXXX ,_______ ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , +  //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤       ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤ +     XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,     XXXXXXX ,    XXXXXXX ,XXXXXXX ,        XXXXXXX ,XXXXXXX ,    XXXXXXX ,     XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX +  //└────────┴────────┴────────┴────────┘    └────────┘   └────────┴────────┘       └────────┴────────┘   └────────┘    └────────┴────────┴────────┴────────┘ +  ) + +}; diff --git a/keyboards/redox/keymaps/ptillemans/readme.md b/keyboards/redox/keymaps/ptillemans/readme.md new file mode 100644 index 0000000000..8fa8ddf5ce --- /dev/null +++ b/keyboards/redox/keymaps/ptillemans/readme.md @@ -0,0 +1 @@ +# The default keymap for Redox diff --git a/keyboards/redox/keymaps/ptillemans/rules.mk b/keyboards/redox/keymaps/ptillemans/rules.mk new file mode 100644 index 0000000000..a81250cdf6 --- /dev/null +++ b/keyboards/redox/keymaps/ptillemans/rules.mk @@ -0,0 +1,2 @@ +RGBLIGHT_ENABLE = yes + diff --git a/keyboards/snampad/config.h b/keyboards/snampad/config.h new file mode 100644 index 0000000000..a2dc3c6dd5 --- /dev/null +++ b/keyboards/snampad/config.h @@ -0,0 +1,245 @@ +/* +Copyright 2019 Peter Tillemans + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program.  If not, see <http://www.gnu.org/licenses/>. +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID       0xFEED +#define PRODUCT_ID      0x0000 +#define DEVICE_VER      0x0001 +#define MANUFACTURER    Snamellit +#define PRODUCT         snampad +#define DESCRIPTION     A custom numerical keypad handwired in a 3D printed case. + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 4 + +/* + * 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 { F4, F5, F6, F7, B1, B3 } +#define MATRIX_COL_PINS { D0, D1, D2, D3  } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */ +#define DIODE_DIRECTION ROW2COL + +/* + * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. + */ +#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6 + +// #define BACKLIGHT_PIN B7 +// #define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 3 + +// #define RGB_DI_PIN E2 +// #ifdef RGB_DI_PIN +//   #define RGBLED_NUM 16 +//   #define RGBLIGHT_HUE_STEP 8 +//   #define RGBLIGHT_SAT_STEP 8 +//   #define RGBLIGHT_VAL_STEP 8 +//   #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ +//   #define RGBLIGHT_SLEEP  /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +// /*== all animations enable ==*/ +//   #define RGBLIGHT_ANIMATIONS +// /*== or choose animations ==*/ +//   #define RGBLIGHT_EFFECT_BREATHING +//   #define RGBLIGHT_EFFECT_RAINBOW_MOOD +//   #define RGBLIGHT_EFFECT_RAINBOW_SWIRL +//   #define RGBLIGHT_EFFECT_SNAKE +//   #define RGBLIGHT_EFFECT_KNIGHT +//   #define RGBLIGHT_EFFECT_CHRISTMAS +//   #define RGBLIGHT_EFFECT_STATIC_GRADIENT +//   #define RGBLIGHT_EFFECT_RGB_TEST +//   #define RGBLIGHT_EFFECT_ALTERNATING +// #endif + +/* 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 */ + +/* 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 */ +/* defined by default; to change, uncomment and set to the combination you want */ +// #define IS_COMMAND() (get_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_HELP           H +//#define MAGIC_KEY_HELP_ALT       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         0 +//#define MAGIC_KEY_LAYER0_ALT     GRAVE +//#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_BOOTLOADER_ALT ESC +//#define MAGIC_KEY_LOCK           CAPS +//#define MAGIC_KEY_EEPROM         E +//#define MAGIC_KEY_EEPROM_CLEAR   BSPACE +//#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 + +/* + * HD44780 LCD Display Configuration + */ +/* +#define LCD_LINES           2     //< number of visible lines of the display +#define LCD_DISP_LENGTH    16     //< visibles characters per line of the display + +#define LCD_IO_MODE      1            //< 0: memory mapped mode, 1: IO port mode + +#if LCD_IO_MODE +#define LCD_PORT         PORTB        //< port for the LCD lines +#define LCD_DATA0_PORT   LCD_PORT     //< port for 4bit data bit 0 +#define LCD_DATA1_PORT   LCD_PORT     //< port for 4bit data bit 1 +#define LCD_DATA2_PORT   LCD_PORT     //< port for 4bit data bit 2 +#define LCD_DATA3_PORT   LCD_PORT     //< port for 4bit data bit 3 +#define LCD_DATA0_PIN    4            //< pin for 4bit data bit 0 +#define LCD_DATA1_PIN    5            //< pin for 4bit data bit 1 +#define LCD_DATA2_PIN    6            //< pin for 4bit data bit 2 +#define LCD_DATA3_PIN    7            //< pin for 4bit data bit 3 +#define LCD_RS_PORT      LCD_PORT     //< port for RS line +#define LCD_RS_PIN       3            //< pin  for RS line +#define LCD_RW_PORT      LCD_PORT     //< port for RW line +#define LCD_RW_PIN       2            //< pin  for RW line +#define LCD_E_PORT       LCD_PORT     //< port for Enable line +#define LCD_E_PIN        1            //< pin  for Enable line +#endif +*/ + +/* Bootmagic Lite key configuration */ +// #define BOOTMAGIC_LITE_ROW 0 +// #define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/snampad/info.json b/keyboards/snampad/info.json new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/keyboards/snampad/info.json diff --git a/keyboards/snampad/keymaps/default/config.h b/keyboards/snampad/keymaps/default/config.h new file mode 100644 index 0000000000..d97bb38dda --- /dev/null +++ b/keyboards/snampad/keymaps/default/config.h @@ -0,0 +1,19 @@ +/* Copyright 2019 Peter Tillemans + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ + +#pragma once + +// place overrides here diff --git a/keyboards/snampad/keymaps/default/keymap.c b/keyboards/snampad/keymaps/default/keymap.c new file mode 100644 index 0000000000..6e887e52fe --- /dev/null +++ b/keyboards/snampad/keymaps/default/keymap.c @@ -0,0 +1,40 @@ +/* Copyright 2019 Peter Tillemans + * + * 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_numpad_6x4( /* Base */ +               KC_F1   , KC_F2  ,  KC_F3, KC_F4, +               KC_NUMLOCK, KC_KP_SLASH, KC_KP_ASTERISK , KC_KP_MINUS, +               KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, +               KC_KP_4, KC_KP_5, KC_KP_6, +               KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ENTER, +                    KC_KP_0, KC_KP_DOT + +  ), +}; + +void matrix_init_user(void) { + +} + +void matrix_scan_user(void) { + +} + +void led_set_user(uint8_t usb_led) { + +} diff --git a/keyboards/snampad/keymaps/default/readme.md b/keyboards/snampad/keymaps/default/readme.md new file mode 100644 index 0000000000..05eef58d4a --- /dev/null +++ b/keyboards/snampad/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for snampad
\ No newline at end of file diff --git a/keyboards/snampad/readme.md b/keyboards/snampad/readme.md new file mode 100644 index 0000000000..dd9d9b0308 --- /dev/null +++ b/keyboards/snampad/readme.md @@ -0,0 +1,23 @@ +# snampad + + + +A small weekend project to create a numeric keypad for the few times I need such a thing. +I created the schematics in Kicad, 3D printed the case, handwired the prototype, used some +spare Zealios, Box Royals and SA keycaps. + +When I get some time I'd like to make a PCB for it. + +It uses a promicro controller and the reset button has been made availabe through a hole in the backplate. + + +Keyboard Maintainer: [Peter Tillemans](https://github.com/ptillemans) +Hardware Supported: Promicros are ubiquitous. +Hardware Availability: This uses essentially spares from other projects + + +Make example for this keyboard (after setting up your build environment): + +    make snampad:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/snampad/rules.mk b/keyboards/snampad/rules.mk new file mode 100644 index 0000000000..ec3208fd0e --- /dev/null +++ b/keyboards/snampad/rules.mk @@ -0,0 +1,82 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency. +#     This will define a symbol, F_CPU, in all source code files equal to the +#     processor frequency in Hz. You can then use this symbol in your source code to +#     calculate timings. Do NOT tack on a 'UL' at the end, this will be done +#     automatically to create a 32-bit value in your source code. +# +#     This will be an integer division of F_USB below, as it is sourced by +#     F_USB after it has run through any CPU prescalers. Note that this value +#     does not *change* the processor frequency - it should merely be updated to +#     reflect the processor speed set externally so that the code can use accurate +#     software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +#     This will define a symbol, F_USB, in all source code files equal to the +#     input clock frequency (before any prescaling is performed) in Hz. This value may +#     differ from F_CPU if prescaling is used on the latter, and is required as the +#     raw input clock is fed directly to the PLL sections of the AVR for high speed +#     clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +#     at the end, this will be done automatically to create a 32-bit value in your +#     source code. +# +#     If no clock division is performed on the input clock inside the AVR (via the +#     CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Bootloader selection +#   Teensy       halfkay +#   Pro Micro    caterina +#   Atmel DFU    atmel-dfu +#   LUFA DFU     lufa-dfu +#   QMK DFU      qmk-dfu +#   atmega32a    bootloadHID +BOOTLOADER = caterina + + +# If you don't know the bootloader type, then you can specify the +# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line +#   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 = lite     # 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 +RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow +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 +HD44780_ENABLE = no 		# Enable support for HD44780 based LCDs (+400) + +LAYOUTS = numpad_6x4 diff --git a/keyboards/snampad/snampad.c b/keyboards/snampad/snampad.c new file mode 100644 index 0000000000..c7a94245c4 --- /dev/null +++ b/keyboards/snampad/snampad.c @@ -0,0 +1,43 @@ +/* Copyright 2019 Peter Tillemans + * + * 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 "snampad.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); +} diff --git a/keyboards/snampad/snampad.h b/keyboards/snampad/snampad.h new file mode 100644 index 0000000000..ec7a779a4c --- /dev/null +++ b/keyboards/snampad/snampad.h @@ -0,0 +1,43 @@ +/* Copyright 2019 Peter Tillemans + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ +#pragma once + +#include "quantum.h" + +/* This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT_numpad_6x4( \ +               k00, k01, k02, k03,      \ +               k10, k11, k12, k13,      \ +               k20, k21, k22,           \ +               k30, k31, k32, k23,      \ +               k40, k41, k42,           \ +                 k51,    k52, k43       \ +) \ +{ \ +  { KC_NO, k51,   k52 , KC_NO},  \ +  { k40, k41,   k42 , k43},  \ +  { k30, k31,   k32 , KC_NO},  \ +  { k20, k21,   k22 , k23},  \ +  { k10, k11,   k12 , k13},  \ +  { k00, k01,   k02 , k03} \ +}  | 
