Keymap: Update for Drashna code - Proton C Prep Edition (#4708)
* Make CRKBD keylogger output actually show tap keys * check MT/LT for twinkling * Add ortho 5x12 support for fractal keyboard * Use newer interface for setting pins/ports * Remove custom unicode methods * Reomve unicode input info * Odd rules issue * Redefine REST note to be more pleasing * Properly disable PM LEDs with GPIO commands * Update gitlab CI yaml file * Remove extra mod tap check * Remove initial state on ergodox glow * Rev6 Cleanup * Fix KC_MAKE macro * Update GitLab CI yaml file * More GitLab CI changes * One final GitLab CI change * Remove unneeded unicode support * Optimize KC_MAKEpull/4720/head
parent
7f0def77a2
commit
40383089d0
@ -0,0 +1,16 @@
|
||||
#pragma once
|
||||
|
||||
|
||||
/* ws2812 RGB LED */
|
||||
#if defined(KEYBOARD_fractal)
|
||||
#define RGB_DI_PIN D2
|
||||
#undef RGBLED_NUM
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
#define RGBLED_NUM 29 // Number of LEDs
|
||||
#undef RGBLIGHT_HUE_STEP
|
||||
#define RGBLIGHT_HUE_STEP 8
|
||||
#undef RGBLIGHT_SAT_STEP
|
||||
#define RGBLIGHT_SAT_STEP 8
|
||||
#undef RGBLIGHT_VAL_STEP
|
||||
#define RGBLIGHT_VAL_STEP 8
|
||||
#endif
|
@ -0,0 +1,156 @@
|
||||
/* Copyright 2015-2017 Jack Humbert
|
||||
* Modified by KeyPCB for the Fractal keyboard
|
||||
* Backlight isn't on the Fractal, so I've removed the keycode from the keymaps
|
||||
*
|
||||
* 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
|
||||
#include "drashna.h"
|
||||
|
||||
#define LAYOUT_ortho_5x12_base( \
|
||||
K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
|
||||
K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
|
||||
K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, \
|
||||
K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A \
|
||||
) \
|
||||
LAYOUT_ortho_5x12_wrapper( \
|
||||
KC_GRV, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_BSPC, \
|
||||
KC_TAB, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, KC_BSPC, \
|
||||
KC_ESC, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, KC_QUOT, \
|
||||
KC_MLSF, CTL_T(K31), K32, K33, K34, K35, K36, K37, K38, K39, CTL_T(K3A), KC_ENT, \
|
||||
KC_NO, OS_LCTL, OS_LALT, OS_LGUI, SP_LWER, BK_LWER, DL_RAIS, ET_RAIS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
|
||||
)
|
||||
#define LAYOUT_ortho_5x12_base_wrapper(...) LAYOUT_ortho_5x12_base(__VA_ARGS__)
|
||||
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[_QWERTY] = LAYOUT_ortho_5x12_base_wrapper(
|
||||
________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________,
|
||||
_________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
|
||||
_________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
|
||||
_________________QWERTY_L3_________________, _________________QWERTY_R3_________________
|
||||
),
|
||||
|
||||
[_COLEMAK] = LAYOUT_ortho_5x12_base_wrapper(
|
||||
________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________,
|
||||
_________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
|
||||
_________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
|
||||
_________________COLEMAK_L3________________, _________________COLEMAK_R3________________
|
||||
),
|
||||
|
||||
[_DVORAK] = LAYOUT_ortho_5x12_base_wrapper(
|
||||
________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________,
|
||||
_________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
|
||||
_________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
|
||||
_________________DVORAK_L3_________________, _________________DVORAK_R3_________________
|
||||
),
|
||||
|
||||
[_WORKMAN] = LAYOUT_ortho_5x12_base_wrapper(
|
||||
________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________,
|
||||
_________________WORKMAN_L1________________, _________________WORKMAN_R1________________,
|
||||
_________________WORKMAN_L2________________, _________________WORKMAN_R2________________,
|
||||
_________________WORKMAN_L3________________, _________________WORKMAN_R3________________
|
||||
),
|
||||
|
||||
[_MODS] = LAYOUT_ortho_5x12_wrapper(
|
||||
_______, ___________________BLANK___________________, ___________________BLANK___________________, _______,
|
||||
_______, ___________________BLANK___________________, ___________________BLANK___________________, _______,
|
||||
_______, ___________________BLANK___________________, ___________________BLANK___________________, _______,
|
||||
KC_LSFT, ___________________BLANK___________________, ___________________BLANK___________________, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
/* Lower
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | Next | Vol- | Vol+ | Play |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_LOWER] = LAYOUT_ortho_5x12_wrapper( \
|
||||
_______, ___________________BLANK___________________, ___________________BLANK___________________, _______,
|
||||
KC_TILD, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_PIPE,
|
||||
KC_DEL, _________________LOWER_L2__________________, _________________LOWER_R2__________________, _______,
|
||||
_______, _________________LOWER_L3__________________, _________________LOWER_R3__________________, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
|
||||
),
|
||||
|
||||
/* Raise
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | Next | Vol- | Vol+ | Play |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_RAISE] = LAYOUT_ortho_5x12_wrapper( \
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \
|
||||
KC_GRV, _________________RAISE_L1__________________, _________________RAISE_R1__________________, _______,
|
||||
KC_DEL, _________________RAISE_L2__________________, _________________RAISE_R2__________________, KC_BSLS,
|
||||
_______, _________________RAISE_L3__________________, _________________RAISE_R3__________________, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _________________RAISE_R3__________________
|
||||
),
|
||||
|
||||
/* Adjust (Lower + Raise)
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | Reset| | | | | | | | | | Del |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | | | |Aud on|AudOff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | |Voice-|Voice+|Mus on|MusOff|MidiOn|MidOff| | | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_ADJUST] = LAYOUT_ortho_5x12_wrapper( \
|
||||
KC_MAKE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RST,
|
||||
VRSN, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, EEP_RST,
|
||||
_______, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, _______,
|
||||
_______, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, TG_MODS,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
|
||||
|
||||
};
|
||||
|
||||
bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
}
|
||||
return true;
|
||||
};
|
||||
|
||||
void matrix_init_keymap(void) {
|
||||
#ifdef KEYBOARD_fractal
|
||||
setPinOutput(D5);
|
||||
writePinHigh(D5);
|
||||
|
||||
setPinOutput(B0);
|
||||
writePinHigh(B0);
|
||||
#endif
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||
MOUSEKEY_ENABLE = no # Mouse keys(+4700)
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||
CONSOLE_ENABLE = no # Console for debug(+400)
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
TAP_DANCE_ENABLE = no
|
||||
AUDIO_ENABLE = yes
|
||||
ifneq (,$(findstring fractal,$(KEYBOARD))) # Make sure it IS the Planck Light
|
||||
RGB_MATRIX_ENABLE = no
|
||||
AUDIO_ENABLE = no
|
||||
RGBLIGHT_ENABLE = yes
|
||||
RGBLIGHT_TWINKLE = yes
|
||||
BOOTLOADER = qmk-dfu
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(PROTOCOL)), VUSB)
|
||||
NKRO_ENABLE = no
|
||||
else
|
||||
NKRO_ENABLE = yes
|
||||
endif
|
||||
|
||||
|
||||
MACROS_ENABLED = no
|
@ -1,26 +1,78 @@
|
||||
stages:
|
||||
- test
|
||||
- build
|
||||
- deploy
|
||||
|
||||
qmk_firmware:
|
||||
Tests:
|
||||
stage: test
|
||||
variables:
|
||||
GIT_SUBMODULE_STRATEGY: recursive
|
||||
tags:
|
||||
- linux
|
||||
image: ubuntu:18.10
|
||||
before_script:
|
||||
- apt-get update -qy
|
||||
- apt-get install -y build-essential avr-libc binutils-arm-none-eabi binutils-avr dfu-programmer dfu-util gcc gcc-arm-none-eabi gcc-avr git libnewlib-arm-none-eabi unzip wget zip
|
||||
- avr-gcc --version
|
||||
- uname -a
|
||||
script:
|
||||
- make test:all
|
||||
- make planck/rev6:default
|
||||
|
||||
QMK Firmware Defaults:
|
||||
stage: deploy
|
||||
variables:
|
||||
GIT_SUBMODULE_STRATEGY: recursive
|
||||
tags:
|
||||
- linux
|
||||
image: ubuntu:18.10
|
||||
before_script:
|
||||
- apt-get update -qy
|
||||
- apt-get install -y build-essential avr-libc binutils-arm-none-eabi binutils-avr dfu-programmer dfu-util gcc gcc-arm-none-eabi gcc-avr git libnewlib-arm-none-eabi unzip wget zip
|
||||
- avr-gcc --version
|
||||
- uname -a
|
||||
script:
|
||||
- make test:all
|
||||
- make all:default -j16
|
||||
|
||||
Drashna Firmware:
|
||||
stage: build
|
||||
variables:
|
||||
GIT_SUBMODULE_STRATEGY: recursive
|
||||
tags:
|
||||
- linux
|
||||
image: ubuntu
|
||||
image: ubuntu:18.10
|
||||
before_script:
|
||||
- apt-get update -qy
|
||||
- apt-get install -y build-essential avr-libc binutils-arm-none-eabi binutils-avr dfu-programmer dfu-util gcc gcc-arm-none-eabi gcc-avr git libnewlib-arm-none-eabi unzip wget zip
|
||||
- avr-gcc --version
|
||||
script:
|
||||
- make iris/rev2:drashna iris/rev2:drashna_old ergodox_ez:drashna ergodox_ez:drashna_glow viterbi/rev1:drashna orthodox/rev1:drashna orthodox/rev3:drashna crkbd:drashna planck/light:drashna planck/rev6:drashna fractal:drashna
|
||||
artifacts:
|
||||
name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
|
||||
paths:
|
||||
- ./*.hex
|
||||
- ./*.bin
|
||||
expire_in: 1 month
|
||||
|
||||
Firmware Deploy:
|
||||
stage: deploy
|
||||
dependencies:
|
||||
- Drashna Firmware
|
||||
variables:
|
||||
GIT_SUBMODULE_STRATEGY: recursive
|
||||
tags:
|
||||
- linux
|
||||
image: ubuntu:18.10
|
||||
before_script:
|
||||
- apt-get update -qy
|
||||
- apt-get install -y build-essential avr-libc binutils-arm-none-eabi binutils-avr dfu-programmer dfu-util diffutils gcc gcc-arm-none-eabi gcc-avr git libnewlib-arm-none-eabi unzip wget zip
|
||||
- apt-get install -y build-essential avr-libc binutils-arm-none-eabi binutils-avr dfu-programmer dfu-util gcc gcc-arm-none-eabi gcc-avr git libnewlib-arm-none-eabi unzip wget zip
|
||||
- avr-gcc --version
|
||||
script:
|
||||
- make iris/rev2:drashna:production iris/rev2:drashna_old:production ergodox_ez:drashna ergodox_ez:drashna_glow viterbi/rev1:drashna:production orthodox/rev1:drashna:production orthodox/rev3:drashna:production crkbd:drashna:production planck/light:drashna:production
|
||||
- make iris/rev2:drashna:production iris/rev2:drashna_old:production ergodox_ez:drashna ergodox_ez:drashna_glow viterbi/rev1:drashna:production orthodox/rev1:drashna:production orthodox/rev3:drashna:production crkbd:drashna:production planck/light:drashna planck/rev6:drashna fractal:drashna:production
|
||||
artifacts:
|
||||
name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
|
||||
paths:
|
||||
- ./*.hex
|
||||
- ./*.bin
|
||||
only:
|
||||
- master
|
||||
- drashna_keymaps
|
||||
- merge-requests
|
||||
- branches
|
||||
expire_in: 1 month
|
||||
|
@ -1,112 +0,0 @@
|
||||
// Written by konstantin: vomindoraan
|
||||
#include "send_unicode.h"
|
||||
#include <ctype.h>
|
||||
#include <string.h>
|
||||
|
||||
__attribute__((weak))
|
||||
void send_unicode_hex_string(const char* str) {
|
||||
if (!str) { return; } // Safety net
|
||||
|
||||
while (*str) {
|
||||
// Find the next code point (token) in the string
|
||||
for (; *str == ' '; str++);
|
||||
size_t n = strcspn(str, " "); // Length of the current token
|
||||
char code_point[n+1];
|
||||
strncpy(code_point, str, n);
|
||||
code_point[n] = '\0'; // Make sure it's null-terminated
|
||||
|
||||
// Normalize the code point: make all hex digits lowercase
|
||||
for (char *p = code_point; *p; p++) {
|
||||
*p = tolower((unsigned char)*p);
|
||||
}
|
||||
|
||||
// Send the code point as a Unicode input string
|
||||
unicode_input_start();
|
||||
send_string(code_point);
|
||||
unicode_input_finish();
|
||||
|
||||
str += n; // Move to the first ' ' (or '\0') after the current token
|
||||
}
|
||||
}
|
||||
|
||||
// (ノಠ痊ಠ)ノ彡┻━┻
|
||||
// send_unicode_hex_string("0028 30CE 0CA0 75CA 0CA0 0029 30CE 5F61 253B 2501 253B");
|
||||
|
||||
//Old code
|
||||
// (╯°□°)╯ ︵ ┻━┻
|
||||
#if 0
|
||||
register_code(KC_RSFT);
|
||||
tap(KC_9);
|
||||
unregister_code(KC_RSFT);
|
||||
process_unicode((0x256F | QK_UNICODE), record); // Arm
|
||||
process_unicode((0x00B0 | QK_UNICODE), record); // Eye
|
||||
process_unicode((0x25A1 | QK_UNICODE), record); // Mouth
|
||||
process_unicode((0x00B0 | QK_UNICODE), record); // Eye
|
||||
register_code(KC_RSFT);
|
||||
tap(KC_0);
|
||||
unregister_code(KC_RSFT);
|
||||
process_unicode((0x256F | QK_UNICODE), record); // Arm
|
||||
tap(KC_SPC);
|
||||
process_unicode((0x0361 | QK_UNICODE), record); // Flippy
|
||||
tap(KC_SPC);
|
||||
process_unicode((0x253B | QK_UNICODE), record); // Table
|
||||
process_unicode((0x2501 | QK_UNICODE), record); // Table
|
||||
process_unicode((0x253B | QK_UNICODE), record); // Table
|
||||
#endif
|
||||
|
||||
|
||||
// If you need a good converter: https://r12a.github.io/app-conversion/
|
||||
uint8_t saved_mods;
|
||||
|
||||
void unicode_input_start (void) {
|
||||
// save current mods
|
||||
saved_mods = get_mods(); // Save current mods
|
||||
clear_mods(); // Unregister mods to start from a clean state
|
||||
|
||||
switch(get_unicode_input_mode()) {
|
||||
case UC_OSX:
|
||||
register_code(KC_LALT);
|
||||
break;
|
||||
case UC_OSX_RALT:
|
||||
register_code(KC_RALT);
|
||||
break;
|
||||
case UC_LNX:
|
||||
register_code(KC_LCTL);
|
||||
register_code(KC_LSFT);
|
||||
register_code(KC_U);
|
||||
unregister_code(KC_U);
|
||||
unregister_code(KC_LSFT);
|
||||
unregister_code(KC_LCTL);
|
||||
break;
|
||||
case UC_WIN:
|
||||
register_code(KC_LALT);
|
||||
register_code(KC_PPLS);
|
||||
unregister_code(KC_PPLS);
|
||||
break;
|
||||
case UC_WINC:
|
||||
register_code(KC_RALT);
|
||||
unregister_code(KC_RALT);
|
||||
register_code(KC_U);
|
||||
unregister_code(KC_U);
|
||||
break;
|
||||
}
|
||||
wait_ms(UNICODE_TYPE_DELAY);
|
||||
}
|
||||
|
||||
void unicode_input_finish (void) {
|
||||
switch(get_unicode_input_mode()) {
|
||||
case UC_OSX:
|
||||
case UC_WIN:
|
||||
unregister_code(KC_LALT);
|
||||
break;
|
||||
case UC_OSX_RALT:
|
||||
unregister_code(KC_RALT);
|
||||
break;
|
||||
case UC_LNX:
|
||||
register_code(KC_SPC);
|
||||
unregister_code(KC_SPC);
|
||||
break;
|
||||
}
|
||||
|
||||
set_mods(saved_mods); // Reregister previously set mods
|
||||
}
|
Loading…
Reference in new issue