Skip to content

Commit

Permalink
Add Wave keyboard (qmk#22054)
Browse files Browse the repository at this point in the history
Co-authored-by: Joel Challis <[email protected]>
Co-authored-by: Drashna Jaelre <[email protected]>
  • Loading branch information
3 people authored and Nathan committed Feb 11, 2024
1 parent 9098e8c commit 1d57ccd
Show file tree
Hide file tree
Showing 12 changed files with 481 additions and 0 deletions.
104 changes: 104 additions & 0 deletions keyboards/etiennecollin/wave/info.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
{
"keyboard_name": "Wave",
"maintainer": "etiennecollin",
"manufacturer": "Etienne Collin",
"url": "https://github.com/etiennecollin/wave",
"bootloader_instructions": "Press the button marked RESET on the PCB or bridge the pins marked RST and GND on the Elite-C",
"tags": ["ortho", "split"],

"build": {
"lto": true
},
"development_board": "elite_c",
"pin_compatible": "elite_c",
"usb": {
"device_version": "0.0.1",
"vid": "0x6967",
"pid": "0x0000"
},

"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true
},

"matrix_pins": {
"direct": [
["C6", "D4", "D0", "D1", "D3"],
["B6", "B5", "B4", "E6", "D7"],
["F6", "F7", "B1", "B3", "B2"],
["NO_PIN", "NO_PIN", "F5", "F4", "B0"]
]
},
"community_layouts": ["split_3x5_3"],
"split": {
"enabled": true,
"soft_serial_pin": "D2",
"usb_detect": {
"enabled": true
},
"matrix_pins": {
"right": {
"direct": [
["D3", "D1", "D0", "D4", "C6"],
["D7", "E6", "B4", "B5", "B6"],
["B2", "B3", "B1", "F7", "F6"],
["B0", "F4", "F5", "NO_PIN", "NO_PIN"]
]
}
}
},
"layouts": {
"LAYOUT_split_3x5_3": {
"layout": [
{ "matrix": [0, 0], "x": 0, "y": 0.93 },
{ "matrix": [0, 1], "x": 1, "y": 0.31 },
{ "matrix": [0, 2], "x": 2, "y": 0 },
{ "matrix": [0, 3], "x": 3, "y": 0.28 },
{ "matrix": [0, 4], "x": 4, "y": 0.42 },

{ "matrix": [4, 0], "x": 7, "y": 0.42 },
{ "matrix": [4, 1], "x": 8, "y": 0.28 },
{ "matrix": [4, 2], "x": 9, "y": 0 },
{ "matrix": [4, 3], "x": 10, "y": 0.31 },
{ "matrix": [4, 4], "x": 11, "y": 0.93 },

{ "matrix": [1, 0], "x": 0, "y": 1.93 },
{ "matrix": [1, 1], "x": 1, "y": 1.31 },
{ "matrix": [1, 2], "x": 2, "y": 1 },
{ "matrix": [1, 3], "x": 3, "y": 1.28 },
{ "matrix": [1, 4], "x": 4, "y": 1.42 },

{ "matrix": [5, 0], "x": 7, "y": 1.42 },
{ "matrix": [5, 1], "x": 8, "y": 1.28 },
{ "matrix": [5, 2], "x": 9, "y": 1 },
{ "matrix": [5, 3], "x": 10, "y": 1.31 },
{ "matrix": [5, 4], "x": 11, "y": 1.93 },

{ "matrix": [2, 0], "x": 0, "y": 2.93 },
{ "matrix": [2, 1], "x": 1, "y": 2.31 },
{ "matrix": [2, 2], "x": 2, "y": 2 },
{ "matrix": [2, 3], "x": 3, "y": 2.28 },
{ "matrix": [2, 4], "x": 4, "y": 2.42 },

{ "matrix": [6, 0], "x": 7, "y": 2.42 },
{ "matrix": [6, 1], "x": 8, "y": 2.28 },
{ "matrix": [6, 2], "x": 9, "y": 2 },
{ "matrix": [6, 3], "x": 10, "y": 2.31 },
{ "matrix": [6, 4], "x": 11, "y": 2.93 },

{ "matrix": [3, 2], "x": 2.8, "y": 3.5 },
{ "matrix": [3, 3], "x": 3.8, "y": 3.75 },
{ "matrix": [3, 4], "x": 4.8, "y": 3.5, "h": 1.5 },

{ "matrix": [7, 0], "x": 6.2, "y": 3.5, "h": 1.5 },
{ "matrix": [7, 1], "x": 7.2, "y": 3.75 },
{ "matrix": [7, 2], "x": 8.2, "y": 3.5 }
]
}
}
}
34 changes: 34 additions & 0 deletions keyboards/etiennecollin/wave/keymaps/default/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
/* Copyright 2023 Etienne Collin (@etiennecollin)
*
* 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 3 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 <https://www.gnu.org/licenses/>.
*/

#pragma once

// Activate caps word by pressing Left Shift + Right Shift
#define BOTH_SHIFTS_TURNS_ON_CAPS_WORD

// Enable rapid switch from tap to hold, disables double tap hold auto-repeat
#define QUICK_TAP_TERM 0

// Maximum time between taps of tap dances
#define TAPPING_TERM 175

// Perform hold action if pressing a dual-role key, tapping another key and
// releasing the dual-role key withing tapping term
#define PERMISSIVE_HOLD

// Perform hold action if pressing a dual-role key, pressing another key,
// releasing the dual-role key and releasing the other key withing tapping term
#define HOLD_ON_OTHER_KEY_PRESS
27 changes: 27 additions & 0 deletions keyboards/etiennecollin/wave/keymaps/default/keymap.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
{
"version": 1,
"author": "etiennecollin",
"keyboard": "etiennecollin/wave",
"notes": "This is a keymap file for etiennecollin/wave",
"keymap": "default",
"layout": "LAYOUT_split_3x5_3",
"config": {
"features": {
"caps_word": true
}
},
"layers": [
[
"KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P",
"LGUI_T(KC_A)", "LALT_T(KC_S)", "LCTL_T(KC_D)", "LSFT_T(KC_F)", "KC_G", "KC_H", "LSFT_T(KC_J)", "LCTL_T(KC_K)", "LALT_T(KC_L)", "LGUI_T(KC_SCLN)",
"KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH",
"KC_ESC", "KC_SPC", "KC_TAB", "KC_ENT", "KC_BSPC", "MO(1)"
],
[
"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_LPRN", "KC_RPRN",
"XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX",
"XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "_______"
]
]
}
6 changes: 6 additions & 0 deletions keyboards/etiennecollin/wave/keymaps/default/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Default keymap

This is a really simple QWERTY keymap with a single number/symbol layer.
It uses home row modifiers and the caps word feature because of the limited number of keys.

For a more complete layout, see the `feature` layout.
42 changes: 42 additions & 0 deletions keyboards/etiennecollin/wave/keymaps/feature/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
/* Copyright 2023 Etienne Collin (@etiennecollin)
*
* 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 3 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 <https://www.gnu.org/licenses/>.
*/

#pragma once

// Activate caps word by pressing Left Shift + Right Shift
#define BOTH_SHIFTS_TURNS_ON_CAPS_WORD

// Maximum time between taps of tap dances
#define TAPPING_TERM 175

// Max time between taps to prevent hold function and hold auto-repeat
#define QUICK_TAP_TERM 100

// Perform hold action if pressing a dual-role key, tapping another key and
// releasing the dual-role key withing tapping term
#define PERMISSIVE_HOLD

// Mouse key speed and acceleration.
#define MOUSEKEY_DELAY 0
#define MOUSEKEY_INTERVAL 16
#define MOUSEKEY_WHEEL_DELAY 0
#define MOUSEKEY_MAX_SPEED 6
#define MOUSEKEY_TIME_TO_MAX 64

// Thumb Combos
#define COMBO_COUNT 2
#define COMBO_TERM 200
#define EXTRA_SHORT_COMBOS
Loading

0 comments on commit 1d57ccd

Please sign in to comment.