forked from qmk/qmk_firmware
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Keyboard: add Telophase board (and Graham's keymaps) (qmk#3244)
* add my config * fix backlight, clean up that code * group background code, restore static var * qwerty is supposed to be in the middle * wrap layer change backlight in ifdef * backlight levels and some more 'emojis'. * Restructure to make it possible to press cmd ent on the right side of the board with one hand. * Expose the period through the number layer. Add Hyper keys to mouse layer * reduce mouse speed * add a : -P key * Thumbs up and down, remove some keys that are duplicated via function keys, clean up * fix build issues * add various emoji * duplicate default Meira keymaps * Miera updates * add documented but unmapped emoji * Sound for the Meira, was stumped by a file size! Thanks drashna! * add docs * docs * revert lib changes... * clean up * clean up * remove make file * Fixes missing key * clean up * add my lets split * add more emoji * add the telophase board (unofficially, I guess...) * add missing files * add/reset files * Review feedback implementation: Not needed. Add #define FLIP_HALF to your config.h file instead. * Review feedback implementation: All of these includes should be replaced with #include QMK_KEYBOARD_H. * Review feedback implementation: [FAILING] You may want to use LAYOUT_ortho_4x12 instead, and move this to /layouts/community/ortho_4x12/ instead. That way, you can use the same keymap for all of the boards. * clean up * add a key for command tilde (osx loves it) * at least its building again * remove adjusts and migrate layer switching to MO(_LAYER) * update the telophase readme * update the telophase readme * grahampheaths -> grahampheath * ONEHAND_ENABLE -> SWAP_HANDS_ENABLE * convert lets split to use ortho_4x12 * Move lets split keyboard layout into community/ortho_4x12 * make telophase use LAYOUT() * I did it?! * Add clap and grin * swap tabs and back and forward * whitespace
- Loading branch information
1 parent
e540fec
commit 6ab50d3
Showing
12 changed files
with
901 additions
and
18 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
# Graham's Planck | ||
|
||
## Sounds | ||
I've added a [8ohm 0.5W speaker](http://a.co/6MIKZSy), its a bit large, but it fits in approximately the same space as the ProMicro. I soldered to the pcb hole labeled PC6 on my Rev 3 Planck PCB, and GND on the near by chip. [Pic of an identical mod](https://i1.sndcdn.com/artworks-000128070066-myh0ls-t500x500.jpg) (not mine). | ||
I've added a [8ohm 0.5W speaker](http://a.co/6MIKZSy), its a bit large, but it fits in approximately the same space as the ProMicro. I soldered to the pcb hole labeled PC6 on my Rev 3 Planck PCB, and GND on the near by chip. [Pic of an identical mod][https://i1.sndcdn.com/artworks-000128070066-myh0ls-t500x500.jpg] (not mine). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,87 @@ | ||
/* | ||
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 CONFIG_H | ||
#define CONFIG_H | ||
|
||
#include "config_common.h" | ||
|
||
/* USB Device descriptor parameter */ | ||
|
||
#define VENDOR_ID 0xFEED | ||
#define PRODUCT_ID 0x6060 | ||
#define DEVICE_VER 0x0001 | ||
#define MANUFACTURER unknown | ||
#define PRODUCT Telophase | ||
#define DESCRIPTION q.m.k. keyboard firmware for Telophase | ||
|
||
/* key matrix size */ | ||
#define MATRIX_ROWS 4 | ||
#define MATRIX_COLS 12 | ||
|
||
/* define if matrix has ghost */ | ||
//#define MATRIX_HAS_GHOST | ||
|
||
/* number of backlight levels */ | ||
//#define BACKLIGHT_LEVELS 3 | ||
|
||
#define ONESHOT_TIMEOUT 500 | ||
|
||
|
||
/* 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. | ||
*/ | ||
|
||
#define PREVENT_STUCK_MODIFIERS | ||
|
||
/* 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 | ||
|
||
//UART settings for communication with the RF microcontroller | ||
#define SERIAL_UART_BAUD 1000000 | ||
#define SERIAL_UART_DATA UDR1 | ||
#define SERIAL_UART_UBRR (F_CPU / (16UL * SERIAL_UART_BAUD) - 1) | ||
#define SERIAL_UART_TXD_READY (UCSR1A & _BV(UDRE1)) | ||
#define SERIAL_UART_RXD_PRESENT (UCSR1A & _BV(RXC1)) | ||
#define SERIAL_UART_INIT() do { \ | ||
/* baud rate */ \ | ||
UBRR1L = SERIAL_UART_UBRR; \ | ||
/* baud rate */ \ | ||
UBRR1H = SERIAL_UART_UBRR >> 8; \ | ||
/* enable TX and RX */ \ | ||
UCSR1B = _BV(TXEN1) | _BV(RXEN1); \ | ||
/* 8-bit data */ \ | ||
UCSR1C = _BV(UCSZ11) | _BV(UCSZ10); \ | ||
} while(0) | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,104 @@ | ||
// 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 "telophase.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. | ||
enum telophase_layers | ||
{ | ||
_QWERTY, | ||
_LOWER, | ||
_RAISE, | ||
_ADJUST, | ||
}; | ||
|
||
enum telophase_keycodes | ||
{ | ||
LOWER = SAFE_RANGE, | ||
RAISE, | ||
ADJUST | ||
}; | ||
|
||
#define LONGPRESS_DELAY 150 | ||
#define LAYER_TOGGLE_DELAY 300 | ||
|
||
// Fillers to make layering more clear | ||
#define _______ KC_TRNS | ||
#define XXXXXXX KC_NO | ||
|
||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
[_QWERTY] = { /*QWERTY*/ | ||
{KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC }, | ||
{KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT }, | ||
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, | ||
{KC_LCTL, KC_LGUI, KC_LALT, ADJUST, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT } | ||
}, | ||
|
||
|
||
[_LOWER] = { /*Lower*/ | ||
{KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL }, | ||
{KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE }, | ||
{_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______ }, | ||
{_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY } | ||
}, | ||
|
||
|
||
|
||
[_RAISE] = { /*Raise*/ | ||
{KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL }, | ||
{KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS }, | ||
{_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______ }, | ||
{_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY } | ||
|
||
}, | ||
|
||
|
||
[_ADJUST] = { /*Adjust*/ | ||
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, | ||
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, | ||
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, | ||
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ } | ||
|
||
}, | ||
}; | ||
|
||
bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||
switch (keycode) { | ||
case LOWER: | ||
if (record->event.pressed) { | ||
layer_on(_LOWER); | ||
} else { | ||
layer_off(_LOWER); | ||
} | ||
return false; | ||
break; | ||
|
||
case RAISE: | ||
if (record->event.pressed) { | ||
layer_on(_RAISE); | ||
} else { | ||
layer_off(_RAISE); | ||
} | ||
return false; | ||
break; | ||
|
||
case ADJUST: | ||
if (record->event.pressed) { | ||
layer_on(_ADJUST); | ||
} else { | ||
layer_off(_ADJUST); | ||
} | ||
return false; | ||
break; | ||
|
||
} | ||
return true; | ||
} | ||
|
||
void matrix_scan_user(void) { | ||
return; | ||
}; | ||
|
Oops, something went wrong.