Merge remote-tracking branch 'origin/develop' into xap

This commit is contained in:
QMK Bot 2022-03-23 16:49:55 +00:00
commit 6a9f0961d6
12 changed files with 279 additions and 2 deletions

View file

@ -11,5 +11,12 @@ Make example for this keyboard (after setting up your build environment):
make 4pplet/waffling60/rev_a:default make 4pplet/waffling60/rev_a:default
make 4pplet/waffling60/rev_b:default make 4pplet/waffling60/rev_b:default
make 4pplet/waffling60/rev_c: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). 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).
How to enter bootloader (DFU):
* Tap the physical reset button or short the reset-header (labled RESET) on tha back of the PCB for keyboard to enter DFU. When in DFU, it's ready to flash the firmware.
Alternative option if the firmware is already pre-flashed:
* Unplug your keyboard, hold down the Spacebar and B at the same time, plug in your keyboard and wait a second before releasing the keys. The keyboard will enter DFU and is ready to flash the firmware.

View file

@ -0,0 +1,60 @@
/*
Copyright 2015 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/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
*
* Esc 1 2 3 4 5 6 7 8 9 0 - = ~ \ PrS
*
* Tab Q W E R T Y U I O P [ ] BacksDel
*
* Caps A S D F G H J K L ; ' Enter PgU
*
* Shift Z X C V B N M , . / Shift PgD
*
* CtrlGUI Alt Alt Fn
*
*/
[0] = LAYOUT_65_ansi_blocker_split_bs(
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_GRV, KC_BSLS, KC_PSCR,
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_BSPC, KC_DEL,
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_ENT, KC_PGUP,
KC_LSFT, 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_PGDN,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
),
/*
*
* FlaF1 F2 F3 F4 F5 F6 F7 F8 F9 F10F11F12PrS \ Mut
*
* Tab Q W E R T Y U I O P [ ] DeletDel
*
* Caps A S D F G H J K L ; ' Enter Vl+
*
* Shift Z X C V B N M , . / Shift PgUVl-
*
* CtrlGUI Alt Alt Fn HomPgDEnd
*
*/
[1] = LAYOUT_65_ansi_blocker_split_bs(
QK_BOOT, 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_MUTE,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_VOLD,
_______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
)
};

View file

@ -30,4 +30,4 @@
#define ENCODERS_PAD_B { B5 } #define ENCODERS_PAD_B { B5 }
/* Specifies the number of pulses the encoder registers between each detent */ /* Specifies the number of pulses the encoder registers between each detent */
#define ENCODER_RESOLUTION 2 #define ENCODER_RESOLUTION 4

View file

@ -0,0 +1,94 @@
// Copyright 2022 Dan Hertz (@dhertz)
// SPDX-License-Identifier: GPL-3.0
#include QMK_KEYBOARD_H
#include "dhertz.h"
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Layer 0: Default Layer
* ,---------------------------------------------------------------.
* |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| Backsp|( )|
* |---------------------------------------------------------------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|Enter|Del|
* |------------------------------------------------------` |---|
* |SrCtl | A| S| D| F| G| H| J| K| L| ;| '| \| |Hom|
* |---------------------------------------------------------------|
* |Shif| #| Z| X| C| V| B| N| M| ,| .| /|Shift |Up | |
* |---------------------------------------------------------------|
* |NcCtl| Alt| CTab| LyrSpc |CGv|Alt|CSL|Lef|Dow|Rig|
* `---------------------------------------------------------------'
*/
[0] = LAYOUT_iso_68(
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_MUTE,
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_DEL,
SRCH_CTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_HOME,
KC_LSFT, HSH_TLD, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
NC_CTL, KC_LALT, CMD_TAB_CMD, LYR_SPC, CMD_GRV_CMD, KC_RALT, CMD_SFT_ALT_A, KC_LEFT, KC_DOWN, KC_RIGHT
),
/* Layer 1: Special
* ,---------------------------------------------------------------.
* | §| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| |( )|
* |---------------------------------------------------------------|
* | | | | | | | | | | | | | | | |
* |------------------------------------------------------` |---|
* | | | | | | | | | |CSL| | | `| | |
* |---------------------------------------------------------------|
* | | `| | |CAC| | | | | | | | |PgU| |
* |---------------------------------------------------------------|
* | | | | | | | |Hom|PgD|End|
* `---------------------------------------------------------------'
*/
[1] = LAYOUT_iso_68(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F10, KC_F11, KC_TRNS, CMD_SFT_A,
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, CMD_SFT_L, KC_TRNS, KC_TRNS, KC_NUBS, KC_TRNS, KC_END,
KC_TRNS, KC_NUBS, KC_TRNS, KC_TRNS, CMD_ALT_C, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDOWN, KC_END
),
};
void keyboard_post_init_user(void) {
rgb_matrix_mode(RGB_MATRIX_NONE);
rgb_matrix_set_color_all(RGB_BLACK);
}
uint32_t cancel_cmd(uint32_t trigger_time, void *cb_arg) {
if (get_highest_layer(layer_state|default_layer_state) > 0) {
return 20;
}
unregister_code(KC_LCMD);
return 0;
}
bool encoder_update_user(uint8_t index, bool clockwise) {
if (get_highest_layer(layer_state|default_layer_state) == 0) {
if (clockwise) {
tap_code_delay(KC_VOLU, 10);
} else {
tap_code_delay(KC_VOLD, 10);
}
} else {
if ((get_mods() & MOD_BIT(KC_LCMD)) != MOD_BIT(KC_LCMD)) {
register_code(KC_LCMD);
defer_exec(20, cancel_cmd, NULL);
}
if (clockwise) {
tap_code(KC_TAB);
} else {
tap_code16(S(KC_TAB));
}
}
return false;
}
void rgb_matrix_indicators_kb(void) {
switch(get_highest_layer(layer_state|default_layer_state)) {
case 1:
rgb_matrix_set_color_all(RGB_BLACK);
rgb_matrix_set_color_all(25, 25, 112);
break;
default:
rgb_matrix_set_color_all(RGB_BLACK);
break;
}
}

View file

@ -0,0 +1 @@
DEFERRED_EXEC_ENABLE = yes

View file

@ -0,0 +1,7 @@
// Copyright 2022 Minna Pallari (@pallarim)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
// place overrides here
#define UNICODE_SELECTED_MODES UC_WINC, UC_LNX, UC_MAC

View file

@ -0,0 +1,79 @@
// Copyright 2022 Minna Pallari (@pallarim)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
#include "keymap_finnish.h"
enum unicode_names {
BEER,
BEERS
};
enum custom_keycodes {
QMKBEST = SAFE_RANGE,
};
const uint32_t PROGMEM unicode_map[] = {
[BEER] = 0x1F37A, // 🍺
[BEERS] = 0x1F37B // 🍻
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
if (record->event.pressed) {
switch(keycode) {
case QMKBEST:
SEND_STRING(SS_LGUI("r") SS_DELAY(500) "calc\n" SS_DELAY(1000) "1337");
break;
}
}
return true;
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
*
* ESC § | 1  2  3  4  5  6  7  8  9  0  +  ´ BS 
* |||||||||||||||
* TAB   | Q  W  E  R  T  Y  U  I  O  P  Å  ¨ 
* ||||||||||||||ENT|
* CPS     A  S  D  F  G  H  J  K  L  Ö  Ä  ' 
* |||||||||||||||
* SFT <  Z  X  C  V  B  N  M  ,  .  - SFT|UP |   
* |||||||||||||||
* CTRFN WINALTBER SPC SPC AGRMNUCTRLF DN RG 
*
*/
[0] = LAYOUT_ortho_5x15(
KC_ESC, FI_SECT, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, FI_PLUS, FI_ACUT, KC_BSPC,
KC_TAB, KC_NO, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, FI_ARNG, FI_DIAE, KC_ENT,
KC_CAPS, KC_NO, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, FI_ODIA, FI_ADIA, FI_QUOT, KC_NO,
KC_LSFT, FI_LABK, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, FI_MINS, KC_RSFT, KC_UP, KC_NO,
KC_LCTL, MO(1), KC_LGUI, KC_LALT, XP(BEER, BEERS), KC_SPC, KC_NO, KC_SPC, KC_NO, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
/*
*
* MuteCAL| F1F2 F3 F4 F5 F6 F7 F8 F9 F10F11F12DEL
* |||||||||||||||
* MSel   |My Ma RGBRGBCal 7  8  9  -    PrnSL  P
*   |Cmpil HUDHUI               ScrCK  a
* |||||||||||||| u |
* MPrev       RGBRGB   4  5  6  + RST       s
*    NXTSTPSADSAIPLY                      e
* |||||||||||||||
* Vo- MteVo+AppRGBRGB    1  2  3 ENT    | |   
*    VADVAI    1  2  3 ENT    | |   
* |||||||||||||||
* FN RGB RMRRGB_MOD 0 . ENTENTFN UCRUCM
*
*/
[1] = LAYOUT_ortho_5x15(
KC_MUTE, QMKBEST, 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,
KC_MSEL, KC_NO, KC_MYCM, KC_MAIL, RGB_HUD, RGB_HUI, KC_CALC, KC_P7, KC_P8, KC_P9, KC_MINS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS,
KC_MPRV, KC_NO, KC_MNXT, KC_MSTP, RGB_SAD, RGB_SAI, KC_MPLY, KC_P4, KC_P5, KC_P6, KC_PLUS, RESET, KC_TRNS, KC_TRNS, KC_TRNS,
KC_VOLD, KC_MUTE, KC_VOLU, KC_APP, RGB_VAD, RGB_VAI, KC_NO, KC_P1, KC_P2, KC_P3, KC_PENT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, MO(1), RGB_TOG, KC_NO, RGB_RMOD,RGB_MOD, KC_NO, KC_P0, KC_NO, KC_PDOT, KC_PENT, KC_PENT, MO(1), UC_RMOD, UC_MOD)
};

View file

@ -0,0 +1,13 @@
# XD75 Fi/Sv board with some extras
## Keymap
### Base & Function Layer
![Base layer](https://i.imgur.com/x8VFgYg.png)
## Build
To build the default keymap, simply run:
make xiudi/xd75/minna

View file

@ -0,0 +1 @@
UNICODEMAP_ENABLE = yes

View file

@ -171,7 +171,8 @@ void interrupt_handler(void *arg) {
checksum_computed += split_trans_initiator2target_buffer(trans)[i]; checksum_computed += split_trans_initiator2target_buffer(trans)[i];
} }
checksum_computed ^= 7; checksum_computed ^= 7;
uint8_t checksum_received = serial_read_byte();
serial_read_byte();
sync_send(); sync_send();
// wait for the sync to finish sending // wait for the sync to finish sending

View file

@ -1,3 +1,6 @@
// Copyright 2022 Dan Hertz (@dhertz)
// SPDX-License-Identifier: GPL-3.0
#include "dhertz.h" #include "dhertz.h"
// Add reconfigurable functions here, for keymap customization // Add reconfigurable functions here, for keymap customization
@ -63,6 +66,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
case CMD_SFT_L: case CMD_SFT_L:
SEND_STRING(SS_LGUI("L")); SEND_STRING(SS_LGUI("L"));
break; break;
case CMD_SFT_A:
SEND_STRING(SS_LGUI("A"));
break;
case CMD_SFT_ALT_A:
SEND_STRING(SS_LGUI(SS_LALT("A")));
break;
case ISO_COUNTRY_CODE: case ISO_COUNTRY_CODE:
SEND_STRING("country_iso_alpha2_code"); SEND_STRING("country_iso_alpha2_code");
break; break;

View file

@ -1,3 +1,6 @@
// Copyright 2022 Dan Hertz (@dhertz)
// SPDX-License-Identifier: GPL-3.0
#ifndef USERSPACE #ifndef USERSPACE
#define USERSPACE #define USERSPACE
@ -15,6 +18,8 @@ enum custom_keycodes {
ISO_COUNTRY_CODE, ISO_COUNTRY_CODE,
CMD_TAB_CMD, CMD_TAB_CMD,
CMD_GRV_CMD, CMD_GRV_CMD,
CMD_SFT_A,
CMD_SFT_ALT_A,
NEW_SAFE_RANGE, NEW_SAFE_RANGE,
}; };