From 619eb0071e36b5b724b713f2b785978f0e1b1e28 Mon Sep 17 00:00:00 2001 From: Draevin Date: Thu, 22 Oct 2020 19:46:46 -0700 Subject: [Keymap] Add Draevin userspace and maps (#10581) * Initial userspace * DZ60 map * Quefrency map * Sinc map * Set up MAKE key for all personal maps * Light userspace cleanup * Formatting and comments zzz... * Licensing and userspace README * Swap: EXTRAFLAGS -> LTO_ENABLE in userspace rules.mk Co-authored-by: Ryan * Improve KC_MAKE: KC_ENT -> \n Co-authored-by: Ryan * Swap left grouping on _FN for pairs * Add '?' -> backslash on _FN * Remove commented code * Organize lines in rules.mk * Add left hand scroll keys * Move configs to config.h * License blitz Co-authored-by: Ryan --- users/draevin/draevin.c | 59 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 users/draevin/draevin.c (limited to 'users/draevin/draevin.c') diff --git a/users/draevin/draevin.c b/users/draevin/draevin.c new file mode 100644 index 0000000000..95570bf377 --- /dev/null +++ b/users/draevin/draevin.c @@ -0,0 +1,59 @@ +/* +Copyright 2020 Copyright 2020 Draevin Luke @draevin + +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 . +*/ + +#include "draevin.h" + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case CM_QW: // Switch between Colemak and QWERTY + if (record->event.pressed) { + layer_invert(_CM); + layer_invert(_QW); + } + return false; + case KC_MAKE: + if (!record->event.pressed) { + SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP ":flash\n"); + reset_keyboard(); + } + break; + case PRNPAIR: + if (record->event.pressed) { + SEND_STRING("()"); + tap_code(KC_LEFT); + } + break; + case BRCPAIR: + if (record->event.pressed) { + uint8_t shifted = get_mods() & (MOD_MASK_SHIFT); + if (shifted) { + unregister_code(KC_LSFT); + unregister_code(KC_RSFT); + SEND_STRING("{}"SS_TAP(X_LEFT)); + } + else { + SEND_STRING("[]"SS_TAP(X_LEFT)); + } + } + break; + } + return true; +} + +qk_tap_dance_action_t tap_dance_actions[] = { + [TD_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPS) // shift/caps TD +}; -- cgit v1.2.3