forked from qmk/qmk_firmware
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
add support for m65 and simple 5x13 ortholinear (qmk#12315)
* add support for m65 and simple 5x13 ortholinear * Update keyboards/m65/keymaps/default/keymap.c Co-authored-by: Sergey Vlasov <sigprof@gmail.com> * Update keyboards/m65/keymaps/default/keymap.c Co-authored-by: Sergey Vlasov <sigprof@gmail.com> * Update keyboards/m65/keymaps/default/keymap.c Co-authored-by: Sergey Vlasov <sigprof@gmail.com> * Update keyboards/m65/keymaps/default/keymap.c Co-authored-by: Sergey Vlasov <sigprof@gmail.com> * Update keyboards/m65/keymaps/default/keymap.c Co-authored-by: Sergey Vlasov <sigprof@gmail.com> * Update keyboards/m65/keymaps/default/keymap.c Co-authored-by: Sergey Vlasov <sigprof@gmail.com> * updates as per @sigprof review plus reformat * pins all now are defined at microcontroller level * profuct id defined at microcontroller level * put leds on when _ADJ is on * add danish keymap * make default uk centric iso as per readme * default is now iso generic, uk is its own business * add license * update imgur links to reflect the layout * leds for _ADJ layer now do not prevent the other layers leds to get on * Update keyboards/m65/keymaps/uk/keymap.c Co-authored-by: Ryan <fauxpark@gmail.com> * Update keyboards/m65/keymaps/dk/keymap.c Co-authored-by: Ryan <fauxpark@gmail.com> * Update keyboards/m65/keymaps/uk/readme.md Co-authored-by: Ryan <fauxpark@gmail.com> * Update keyboards/m65/readme.md Co-authored-by: Ryan <fauxpark@gmail.com> * add support for gd32f303cct6 by we act in rev2 * Revert "add support for gd32f303cct6 by we act in rev2" This reverts commit 4ad3834. * Update keyboards/m65/rev1/rules.mk Co-authored-by: Joel Challis <git@zvecr.com> * Update keyboards/m65/keymaps/dk/readme.md Co-authored-by: Ryan <fauxpark@gmail.com> * Update keyboards/m65/keymaps/uk/readme.md Co-authored-by: Ryan <fauxpark@gmail.com> * Update keyboards/m65/keymaps/default/readme.md Co-authored-by: Ryan <fauxpark@gmail.com> * remove empty hal * add capslock * Update keyboards/m65/readme.md Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/m65/config.h Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Alin M Elena <alin-marin.elena@stfc.ac.uk> Co-authored-by: Sergey Vlasov <sigprof@gmail.com> Co-authored-by: Ryan <fauxpark@gmail.com> Co-authored-by: Joel Challis <git@zvecr.com> Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
- Loading branch information
Showing
19 changed files
with
741 additions
and
0 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
/* | ||
Copyright 2021 Alin M Elena <alinm.elena@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 | ||
|
||
#include "config_common.h" | ||
|
||
#define VENDOR_ID 0xBABA | ||
#define MANUFACTURER Alin Elena | ||
#define PRODUCT m65 | ||
|
||
#define MATRIX_ROWS 5 | ||
#define MATRIX_COLS 13 | ||
|
||
#define DIODE_DIRECTION COL2ROW | ||
#define DEBOUNCE 5 | ||
|
||
#define LOCKING_SUPPORT_ENABLE | ||
#define LOCKING_RESYNC_ENABLE |
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,83 @@ | ||
{ | ||
"keyboard_name": "M65", | ||
"keyboard_folder": "m65", | ||
"url": "https://alin.elena.space/blog/keeblego/", | ||
"maintainer": "alinelena", | ||
"width": 13, | ||
"height": 5, | ||
"layouts": { | ||
"LAYOUT_ortho_5x13": { | ||
"layout": [ | ||
{"x": 0, "y": 0}, | ||
{"x": 1, "y": 0}, | ||
{"x": 2, "y": 0}, | ||
{"x": 3, "y": 0}, | ||
{"x": 4, "y": 0}, | ||
{"x": 5, "y": 0}, | ||
{"x": 6, "y": 0}, | ||
{"x": 7, "y": 0}, | ||
{"x": 8, "y": 0}, | ||
{"x": 9, "y": 0}, | ||
{"x": 10, "y": 0}, | ||
{"x": 11, "y": 0}, | ||
{"x": 12, "y": 0}, | ||
|
||
{"x": 0, "y": 1}, | ||
{"x": 1, "y": 1}, | ||
{"x": 2, "y": 1}, | ||
{"x": 3, "y": 1}, | ||
{"x": 4, "y": 1}, | ||
{"x": 5, "y": 1}, | ||
{"x": 6, "y": 1}, | ||
{"x": 7, "y": 1}, | ||
{"x": 8, "y": 1}, | ||
{"x": 9, "y": 1}, | ||
{"x": 10, "y": 1}, | ||
{"x": 11, "y": 1}, | ||
{"x": 12, "y": 1}, | ||
|
||
{"x": 0, "y": 2}, | ||
{"x": 1, "y": 2}, | ||
{"x": 2, "y": 2}, | ||
{"x": 3, "y": 2}, | ||
{"x": 4, "y": 2}, | ||
{"x": 5, "y": 2}, | ||
{"x": 6, "y": 2}, | ||
{"x": 7, "y": 2}, | ||
{"x": 8, "y": 2}, | ||
{"x": 9, "y": 2}, | ||
{"x": 10, "y": 2}, | ||
{"x": 11, "y": 2}, | ||
{"x": 12, "y": 2}, | ||
|
||
{"x": 0, "y": 3}, | ||
{"x": 1, "y": 3}, | ||
{"x": 2, "y": 3}, | ||
{"x": 3, "y": 3}, | ||
{"x": 4, "y": 3}, | ||
{"x": 5, "y": 3}, | ||
{"x": 6, "y": 3}, | ||
{"x": 7, "y": 3}, | ||
{"x": 8, "y": 3}, | ||
{"x": 9, "y": 3}, | ||
{"x": 10, "y": 3}, | ||
{"x": 11, "y": 3}, | ||
{"x": 12, "y": 3}, | ||
|
||
{"x": 0, "y": 4}, | ||
{"x": 1, "y": 4}, | ||
{"x": 2, "y": 4}, | ||
{"x": 3, "y": 4}, | ||
{"x": 4, "y": 4}, | ||
{"x": 5, "y": 4}, | ||
{"x": 6, "y": 4}, | ||
{"x": 7, "y": 4}, | ||
{"x": 8, "y": 4}, | ||
{"x": 9, "y": 4}, | ||
{"x": 10, "y": 4}, | ||
{"x": 11, "y": 4} | ||
{"x": 12, "y": 4} | ||
] | ||
} | ||
} | ||
} |
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,20 @@ | ||
/* | ||
Copyright 2021 Alin M Elena <alinm.elena@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 | ||
|
||
#define TAPPING_TOGGLE 2 |
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,113 @@ | ||
/* | ||
Copyright 2021 Alin M Elena <alinm.elena@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/>. | ||
*/ | ||
|
||
#include QMK_KEYBOARD_H | ||
|
||
enum layer_names { _QW = 0, _LWR, _RSE, _ADJ }; | ||
|
||
// clang-format off | ||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
|
||
[_QW] = LAYOUT_ortho_5x13( | ||
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_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_NUHS, 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_LSPO, KC_NUBS, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_UP , KC_SLSH , | ||
KC_LCTL, KC_LGUI, TT(_LWR), KC_LALT, TT(_RSE), KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RSPC, KC_LEFT, KC_DOWN, KC_RGHT), | ||
|
||
[_LWR] = LAYOUT_ortho_5x13( | ||
KC_GRV , KC_MUTE, KC_VOLU, KC_VOLD, KC_MPRV, KC_MPLY, KC_MNXT, G(KC_P), KC_SLEP, KC_WAKE, KC_PSCR, KC_DEL , KC_EQL , | ||
KC_BTN3, 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_BTN2, 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_BTN1, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS , | ||
KC_TRNS, KC_BTN4, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R), | ||
|
||
[_RSE] = LAYOUT_ortho_5x13( | ||
KC_ESC , 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_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_CAPS, 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_WH_U, KC_TRNS , | ||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_WH_L, KC_WH_D, KC_WH_R), | ||
|
||
[_ADJ] = LAYOUT_ortho_5x13( | ||
KC_TRNS, KC_TRNS, A(KC_F2), 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, RESET , 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 , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), | ||
}; | ||
// clang-format on | ||
|
||
// let us assume we start with both layers off | ||
bool toggle_lwr = false; | ||
bool toggle_rse = false; | ||
|
||
static inline void led_lwr(const bool on) { | ||
#ifdef LED_NUM_LOCK_PIN | ||
writePin(LED_NUM_LOCK_PIN, on); | ||
#endif | ||
} | ||
|
||
static inline void led_rse(const bool on) { | ||
#ifdef LED_SCROLL_LOCK_PIN | ||
writePin(LED_SCROLL_LOCK_PIN, on); | ||
#endif | ||
} | ||
|
||
static inline void led_caps(const bool on) { | ||
#ifdef LED_CAPS_LOCK_PIN | ||
writePin(LED_CAPS_LOCK_PIN, on); | ||
#endif | ||
} | ||
|
||
bool led_update_user(led_t led_state) { | ||
// Disable the default LED update code, so that lock LEDs could be reused to show layer status. | ||
return false; | ||
} | ||
|
||
void matrix_scan_user(void) { | ||
led_lwr(toggle_lwr); | ||
led_rse(toggle_rse); | ||
led_t led_state = host_keyboard_led_state(); | ||
led_caps(!led_state.caps_lock); | ||
if (layer_state_is(_ADJ)) { | ||
led_lwr(true); | ||
led_rse(true); | ||
} | ||
} | ||
|
||
bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||
switch (keycode) { | ||
case (TT(_LWR)): | ||
if (!record->event.pressed && record->tap.count == TAPPING_TOGGLE) { | ||
// This runs before the TT() handler toggles the layer state, so the current layer state is the opposite of the final one after toggle. | ||
toggle_lwr = !layer_state_is(_LWR); | ||
} | ||
return true; | ||
break; | ||
case (TT(_RSE)): | ||
if (record->event.pressed && record->tap.count == TAPPING_TOGGLE) { | ||
toggle_rse = !layer_state_is(_RSE); | ||
} | ||
return true; | ||
break; | ||
default: | ||
return true; | ||
} | ||
} | ||
|
||
layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LWR, _RSE, _ADJ); } |
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,13 @@ | ||
![M65 Layout Image](https://i.imgur.com/Z2O8yhGh.png) | ||
|
||
# Default M65 Layout | ||
|
||
This is the default layout for M65. For the most part it's a straightforward and easy to follow layout inspired by ISO with a UK | ||
turn. The only unusual key is the key in the upper left, which sends Escape normally, but Grave when in layer 1 aka LWR. Similarly | ||
number row in layer 1 give the usual audio KC_GRV, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, KC_AUDIO_VOL_DOWN, KC_MEDIA_PREV_TRACK, | ||
KC_MEDIA_PLAY_PAUSE, KC_MEDIA_NEXT_TRACK, M_EXTDISP, KC_SYSTEM_SLEEP, KC_SYSTEM_WAKE, KC_PSCREEN, KC_DEL, KC_EQL in layer 2 aka | ||
RSE one gets F1-F12 mouse emulation can be used in layer 1 and 2. | ||
|
||
flashing is done by LWR+RSE+r | ||
|
||
full layout below see in keymap.c |
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,20 @@ | ||
/* | ||
Copyright 2021 Alin M Elena <alinm.elena@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 | ||
|
||
#define TAPPING_TOGGLE 2 |
Oops, something went wrong.