Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

QAZ Keyboard #9714

Merged
merged 25 commits into from
Jul 27, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
c9b0e47
Initial qaz commit
tominabox1 Jun 14, 2020
e4a2c6d
Enable combos
tominabox1 Jun 15, 2020
907e222
Improved default keymaps
tominabox1 Jun 15, 2020
d36ff24
Fixed configurator json
tominabox1 Jun 15, 2020
8b26df8
Via initial
tominabox1 Jun 15, 2020
41a7362
Corrected VIA json
tominabox1 Jun 15, 2020
2cd6759
touch
tominabox1 Jun 15, 2020
7dbd098
Via fixes
tominabox1 Jun 15, 2020
e3999ba
Merge branch 'qaz' of https://github.com/tominabox1/qmk_firmware into…
tominabox1 Jun 15, 2020
747a82d
Fixed via matrix
tominabox1 Jun 17, 2020
ec743cb
Formatting
tominabox1 Jul 1, 2020
89ca116
Add lighting to qaz
tominabox1 Jul 2, 2020
a7e7ccf
Add rgb animations, add rgb to l2, fix error in via json, enable rgbl…
tominabox1 Jul 2, 2020
357c2f6
Update QAZ readme
tominabox1 Jul 12, 2020
13be87b
Remove VIA json, prep for PR
tominabox1 Jul 12, 2020
c0eb26f
Correct default bootloader for pro-micro
tominabox1 Jul 12, 2020
0379fe1
Remove accidentally added submodules
tominabox1 Jul 12, 2020
7ba5d50
Change names of layout macros
tominabox1 Jul 14, 2020
626fe3d
Move combo defs to keymap folders, fix layout names in info.json
tominabox1 Jul 14, 2020
80bbbf0
Fixes transposition of comma and dot keys on default keymaps
tominabox1 Jul 16, 2020
3b04440
Update keyboards/qaz/keymaps/default/config.h
tominabox1 Jul 19, 2020
e93f823
Update keyboards/qaz/keymaps/default_big_space/config.h
tominabox1 Jul 19, 2020
c19dd27
Update keyboards/qaz/rules.mk
tominabox1 Jul 19, 2020
eeb8c56
Update keyboards/qaz/readme.md
tominabox1 Jul 25, 2020
31de5fa
Update keyboards/qaz/rules.mk
tominabox1 Jul 25, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 49 additions & 0 deletions keyboards/qaz/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
#pragma once

#include "config_common.h"

/* USB Device descriptor parameter */
#define VENDOR_ID 0x7431
#define PRODUCT_ID 0x0001
#define DEVICE_VER 0x0001
#define MANUFACTURER whydobearsexplod
#define PRODUCT qaz keyboard

/* key matrix size */
#define MATRIX_ROWS 6
#define MATRIX_COLS 7

/*
* 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, D4, C6, E6, D1, D0 }
#define MATRIX_COL_PINS { B4, D3, D2, F5, B5, F6, D7 }
#define UNUSED_PINS

/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW

/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not 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

#define RGB_DI_PIN F7

#ifdef RGB_DI_PIN
#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 21
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8
#endif
15 changes: 15 additions & 0 deletions keyboards/qaz/info.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"keyboard_name": "qaz",
"url": "",
"maintainer": "tominabox1",
"width": 10.25,
"height": 4,
"layouts": {
"LAYOUT_split_space": {
"layout": [{"label":"Q", "x":0, "y":0}, {"label":"W", "x":1, "y":0}, {"label":"E", "x":2, "y":0}, {"label":"R", "x":3, "y":0}, {"label":"T", "x":4, "y":0}, {"label":"Y", "x":5, "y":0}, {"label":"U", "x":6, "y":0}, {"label":"I", "x":7, "y":0}, {"label":"O", "x":8, "y":0}, {"label":"P", "x":9, "y":0, "w":1.25}, {"label":"A", "x":0, "y":1, "w":1.25}, {"label":"S", "x":1.25, "y":1}, {"label":"D", "x":2.25, "y":1}, {"label":"F", "x":3.25, "y":1}, {"label":"G", "x":4.25, "y":1}, {"label":"H", "x":5.25, "y":1}, {"label":"J", "x":6.25, "y":1}, {"label":"K", "x":7.25, "y":1}, {"label":"L", "x":8.25, "y":1}, {"label":"Ent", "x":9.25, "y":1}, {"label":"Z", "x":0, "y":2, "w":1.75}, {"label":"X", "x":1.75, "y":2}, {"label":"C", "x":2.75, "y":2}, {"label":"V", "x":3.75, "y":2}, {"label":"B", "x":4.75, "y":2}, {"label":"N", "x":5.75, "y":2}, {"label":"M", "x":6.75, "y":2}, {"label":".", "x":7.75, "y":2}, {"label":"Shift","x":8.75, "y":2, "w":1.5},{"label":"Super", "x":0, "y":3}, {"label":"Meta", "x":1, "y":3}, {"label":"Alt", "x":2, "y":3}, {"label":"", "x":3, "y":3, "w":2.25}, {"label":"", "x":5.25, "y":3, "w":2}, {"label":"AltGr", "x":7.25, "y":3},{"label":"Meta", "x":8.25, "y":3},{"label":"Super", "x":9.25, "y":3}]
},
"LAYOUT": {
"layout": [{"label":"Q", "x":0, "y":0}, {"label":"W", "x":1, "y":0}, {"label":"E", "x":2, "y":0}, {"label":"R", "x":3, "y":0}, {"label":"T", "x":4, "y":0}, {"label":"Y", "x":5, "y":0}, {"label":"U", "x":6, "y":0}, {"label":"I", "x":7, "y":0}, {"label":"O", "x":8, "y":0}, {"label":"P", "x":9, "y":0, "w":1.25}, {"label":"A", "x":0, "y":1, "w":1.25}, {"label":"S", "x":1.25, "y":1}, {"label":"D", "x":2.25, "y":1}, {"label":"F", "x":3.25, "y":1}, {"label":"G", "x":4.25, "y":1}, {"label":"H", "x":5.25, "y":1}, {"label":"J", "x":6.25, "y":1}, {"label":"K", "x":7.25, "y":1}, {"label":"L", "x":8.25, "y":1}, {"label":"Ent", "x":9.25, "y":1}, {"label":"Z", "x":0, "y":2, "w":1.75}, {"label":"X", "x":1.75, "y":2}, {"label":"C", "x":2.75, "y":2}, {"label":"V", "x":3.75, "y":2}, {"label":"B", "x":4.75, "y":2}, {"label":"N", "x":5.75, "y":2}, {"label":"M", "x":6.75, "y":2}, {"label":".", "x":7.75, "y":2}, {"label":"Shift","x":8.75, "y":2, "w":1.5},{"label":"Super", "x":0, "y":3}, {"label":"Meta", "x":1, "y":3}, {"label":"", "x":2, "y":3, "w":6.25}, {"label":"Meta", "x":8.25, "y":3},{"label":"Super", "x":9.25, "y":3}]
}
}
}
6 changes: 6 additions & 0 deletions keyboards/qaz/keymaps/default/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#pragma once

#ifdef COMBO_ENABLE
tominabox1 marked this conversation as resolved.
Show resolved Hide resolved
# define COMBO_COUNT 5
# define COMBO_TERM 200
#endif
57 changes: 57 additions & 0 deletions keyboards/qaz/keymaps/default/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
#include QMK_KEYBOARD_H

enum layers{
_BASE,
_NUM_SYM,
_NAV
};
enum combo_events {
COMBO_BSPC,
COMBO_NUMBAK,
COMBO_TAB,
COMBO_ESC,
COMBO_DEL,
};

#define KC_NUM_SPC LT(_NUM_SYM, KC_SPC)
#define KC_GA LGUI_T(KC_A)
#define KC_AS LALT_T(KC_S)
#define KC_CD LCTL_T(KC_D)
#define KC_SF LSFT_T(KC_F)
#define KC_SJ RSFT_T(KC_J)
#define KC_CK RCTL_T(KC_K)
#define KC_AL RALT_T(KC_L)
#define KC_GSCLN RGUI_T(KC_SCLN)

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = LAYOUT_split_space(
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
KC_GA, KC_AS, KC_CD, KC_SF, KC_G, KC_H, KC_SJ, KC_CK, KC_AL, KC_ENT,
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT,
KC_LCTL, KC_LALT, KC_LGUI, KC_BSPC, LT(_NUM_SYM,KC_SPACE), KC_RALT, KC_RGUI, KC_RCTL
),

[_NUM_SYM] = LAYOUT_split_space(
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_EQUAL, KC_MINS,
KC_LCBR, KC_LBRC, KC_LPRN, KC_UNDS, KC_RPRN, KC_RBRC, KC_RCBR, KC_SCLN, KC_QUOTE,
RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
)
};

#ifdef COMBO_ENABLE
const uint16_t PROGMEM combo_bspc[] = {KC_O, KC_P, COMBO_END};
const uint16_t PROGMEM combo_numbak[] = {KC_0, KC_9, COMBO_END};
const uint16_t PROGMEM combo_tab[] = {KC_Q, KC_W, COMBO_END};
const uint16_t PROGMEM combo_esc[] = {KC_E, KC_W, COMBO_END};
const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END};

combo_t key_combos[COMBO_COUNT] = {
[COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC),
[COMBO_NUMBAK] = COMBO(combo_numbak,KC_BSPC),
[COMBO_TAB] = COMBO(combo_tab,KC_TAB),
[COMBO_ESC] = COMBO(combo_esc,KC_ESC),
[COMBO_DEL] = COMBO(combo_del,KC_DEL),

};
#endif
1 change: 1 addition & 0 deletions keyboards/qaz/keymaps/default/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Default QAZ Layout
1 change: 1 addition & 0 deletions keyboards/qaz/keymaps/default/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
COMBO_ENABLE = yes
6 changes: 6 additions & 0 deletions keyboards/qaz/keymaps/default_big_space/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#pragma once

#ifdef COMBO_ENABLE
tominabox1 marked this conversation as resolved.
Show resolved Hide resolved
# define COMBO_COUNT 5
# define COMBO_TERM 200
#endif
57 changes: 57 additions & 0 deletions keyboards/qaz/keymaps/default_big_space/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
#include QMK_KEYBOARD_H

enum layers{
_BASE,
_NUM_SYM,
_NAV
};
enum combo_events {
COMBO_BSPC,
COMBO_NUMBAK,
COMBO_TAB,
COMBO_ESC,
COMBO_DEL,
};

#define KC_NUM_SPC LT(_NUM_SYM, KC_SPC)
#define KC_GA LGUI_T(KC_A)
#define KC_AS LALT_T(KC_S)
#define KC_CD LCTL_T(KC_D)
#define KC_SF LSFT_T(KC_F)
#define KC_SJ RSFT_T(KC_J)
#define KC_CK RCTL_T(KC_K)
#define KC_AL RALT_T(KC_L)
#define KC_GSCLN RGUI_T(KC_SCLN)

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = LAYOUT(
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
KC_GA, KC_AS, KC_CD, KC_SF, KC_G, KC_H, KC_SJ, KC_CK, KC_AL, KC_ENT,
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT,
KC_LCTL, KC_LALT, LT(_NUM_SYM,KC_SPACE), KC_RGUI, KC_RCTL
),

[_NUM_SYM] = LAYOUT(
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_EQUAL, KC_MINS,
KC_LCBR, KC_LBRC, KC_LPRN, KC_UNDS, KC_RPRN, KC_RBRC, KC_RCBR, KC_SCLN, KC_QUOTE,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
)
};

#ifdef COMBO_ENABLE
const uint16_t PROGMEM combo_bspc[] = {KC_O, KC_P, COMBO_END};
const uint16_t PROGMEM combo_numbak[] = {KC_0, KC_9, COMBO_END};
const uint16_t PROGMEM combo_tab[] = {KC_Q, KC_W, COMBO_END};
const uint16_t PROGMEM combo_esc[] = {KC_E, KC_W, COMBO_END};
const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END};

combo_t key_combos[COMBO_COUNT] = {
[COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC),
[COMBO_NUMBAK] = COMBO(combo_numbak,KC_BSPC),
[COMBO_TAB] = COMBO(combo_tab,KC_TAB),
[COMBO_ESC] = COMBO(combo_esc,KC_ESC),
[COMBO_DEL] = COMBO(combo_del,KC_DEL),

};
#endif
1 change: 1 addition & 0 deletions keyboards/qaz/keymaps/default_big_space/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Default QAZ Layout full size spacebar
1 change: 1 addition & 0 deletions keyboards/qaz/keymaps/default_big_space/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
COMBO_ENABLE = yes
29 changes: 29 additions & 0 deletions keyboards/qaz/keymaps/via/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#include QMK_KEYBOARD_H

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_split_space(
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_ENT,
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT,
KC_LCTL, KC_LALT, KC_LGUI, KC_BSPC, KC_SPACE, KC_RALT, KC_RGUI, KC_RCTL
),

[1] = LAYOUT_split_space(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
[2] = LAYOUT_split_space(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
[3] = LAYOUT_split_space(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
)
};
1 change: 1 addition & 0 deletions keyboards/qaz/keymaps/via/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
VIA_ENABLE = yes
1 change: 1 addition & 0 deletions keyboards/qaz/qaz.c
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#include "qaz.h"
33 changes: 33 additions & 0 deletions keyboards/qaz/qaz.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
#pragma once

#include "quantum.h"

#define XXX KC_NO

#define LAYOUT_split_space( \
K00, K01, K02, K03, K04, K05, K06, K40, K41, K42, \
K10, K11, K12, K13, K14, K15, K16, K50, K51, K52, \
K20, K21, K22, K23, K24, K25, K26, K43, K53, \
K30, K31, K32, K33, K34, K35, K36, K44 \
) { \
{ K00, K01, K02, K03, K04, K05, K06 }, \
{ K10, K11, K12, K13, K14, K15, K16 }, \
{ K20, K21, K22, K23, K24, K25, K26 }, \
{ K30, K31, K32, K33, K34, K35, K36 }, \
{ K40, K41, K42, K43, K44, XXX, XXX }, \
{ K50, K51, K52, K53, XXX, XXX, XXX } \
}

#define LAYOUT( \
K00, K01, K02, K03, K04, K05, K06, K40, K41, K42, \
K10, K11, K12, K13, K14, K15, K16, K50, K51, K52, \
K20, K21, K22, K23, K24, K25, K26, K43, K53, \
K30, K31, K34, K36, K44 \
) { \
{ K00, K01, K02, K03, K04, K05, K06 }, \
{ K10, K11, K12, K13, K14, K15, K16 }, \
{ K20, K21, K22, K23, K24, K25, K26 }, \
{ K30, K31, XXX, XXX, K34, XXX, K36 }, \
{ K40, K41, K42, K43, K44, XXX, XXX }, \
{ K50, K51, K52, K53, XXX, XXX, XXX } \
}
15 changes: 15 additions & 0 deletions keyboards/qaz/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# QAZ

![QAZ](https://i.imgur.com/kmxDneol.png)

QAZ is a careful exercise in minimalism, leveraging advanced QMK magic like combos, tapdances and mod layers to unlock complete functionality while remaining oddly familiar.
Throw it in your fanny pack and hop on your fixed gear and away you go. QAZ is cheap, hip, and effective with all the keyboardy features you expect, including the ability to type numbers- should you choose to add them to your layout.

* Keyboard Maintainer: [TJ Campie](https://github.com/tominabox1)
* Hardware Availability: 40s Discord Mini Group Buy

Make example for this keyboard (after setting up your build environment):

qmk compile -kb qaz -km 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).
22 changes: 22 additions & 0 deletions keyboards/qaz/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# MCU name
MCU = atmega32u4

# Bootloader selection
BOOTLOADER = caterina

# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # 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 = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output