diff options
author | Guillaume Gérard <1322081+GreatWizard@users.noreply.github.com> | 2020-10-28 18:20:06 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-28 10:20:06 -0700 |
commit | c745cbb77a66a44549ee1ab3b1998c495c1a1ca5 (patch) | |
tree | a947f2215dcda13fac95b2620b70bc095b8d2d14 /users/greatwizard/programmer.c | |
parent | 6b1ae7e6aa7180b00759b5692d2ea5bd0303c566 (diff) | |
download | qmk_firmware-c745cbb77a66a44549ee1ab3b1998c495c1a1ca5.tar.gz qmk_firmware-c745cbb77a66a44549ee1ab3b1998c495c1a1ca5.zip |
[Keymap] greatwizard userspace and ortho 4x12 and 5x12 keymaps (#9584)
Diffstat (limited to 'users/greatwizard/programmer.c')
-rw-r--r-- | users/greatwizard/programmer.c | 174 |
1 files changed, 174 insertions, 0 deletions
diff --git a/users/greatwizard/programmer.c b/users/greatwizard/programmer.c new file mode 100644 index 0000000000..e0f71ea066 --- /dev/null +++ b/users/greatwizard/programmer.c @@ -0,0 +1,174 @@ +/* Copyright 2020 Guillaume Gérard + * + * 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 "programmer.h" + +bool process_record_pg(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY_PROGRAMMER: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY_PROGRAMMER); + } + return false; + case WORKMAN_PROGRAMMER: + if (record->event.pressed) { + set_single_persistent_default_layer(_WORKMAN_PROGRAMMER); + } + return false; + case COLEMAK_PROGRAMMER: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK_PROGRAMMER); + } + return false; + case DVORAK_PROGRAMMER: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK_PROGRAMMER); + } + return false; + case PG_GRV: + if (record->event.pressed) { + uint8_t current_mods = get_mods(); + if (current_mods & MOD_MASK_SHIFT) { + clear_mods(); + SEND_STRING("`"); + set_mods(current_mods); + } else { + SEND_STRING("~"); + } + } + return false; + case PG_1: + if (record->event.pressed) { + uint8_t current_mods = get_mods(); + if (current_mods & MOD_MASK_SHIFT) { + clear_mods(); + SEND_STRING("1"); + set_mods(current_mods); + } else { + SEND_STRING("!"); + } + } + return false; + case PG_2: + if (record->event.pressed) { + uint8_t current_mods = get_mods(); + if (current_mods & MOD_MASK_SHIFT) { + clear_mods(); + SEND_STRING("2"); + set_mods(current_mods); + } else { + SEND_STRING("@"); + } + } + return false; + case PG_3: + if (record->event.pressed) { + uint8_t current_mods = get_mods(); + if (current_mods & MOD_MASK_SHIFT) { + clear_mods(); + SEND_STRING("3"); + set_mods(current_mods); + } else { + SEND_STRING("#"); + } + } + return false; + case PG_4: + if (record->event.pressed) { + uint8_t current_mods = get_mods(); + if (current_mods & MOD_MASK_SHIFT) { + clear_mods(); + SEND_STRING("4"); + set_mods(current_mods); + } else { + SEND_STRING("$"); + } + } + return false; + case PG_5: + if (record->event.pressed) { + uint8_t current_mods = get_mods(); + if (current_mods & MOD_MASK_SHIFT) { + clear_mods(); + SEND_STRING("5"); + set_mods(current_mods); + } else { + SEND_STRING("%"); + } + } + return false; + case PG_6: + if (record->event.pressed) { + uint8_t current_mods = get_mods(); + if (current_mods & MOD_MASK_SHIFT) { + clear_mods(); + SEND_STRING("6"); + set_mods(current_mods); + } else { + SEND_STRING("^"); + } + } + return false; + case PG_7: + if (record->event.pressed) { + uint8_t current_mods = get_mods(); + if (current_mods & MOD_MASK_SHIFT) { + clear_mods(); + SEND_STRING("7"); + set_mods(current_mods); + } else { + SEND_STRING("&"); + } + } + return false; + case PG_8: + if (record->event.pressed) { + uint8_t current_mods = get_mods(); + if (current_mods & MOD_MASK_SHIFT) { + clear_mods(); + SEND_STRING("8"); + set_mods(current_mods); + } else { + SEND_STRING("*"); + } + } + return false; + case PG_9: + if (record->event.pressed) { + uint8_t current_mods = get_mods(); + if (current_mods & MOD_MASK_SHIFT) { + clear_mods(); + SEND_STRING("9"); + set_mods(current_mods); + } else { + SEND_STRING("("); + } + } + return false; + case PG_0: + if (record->event.pressed) { + uint8_t current_mods = get_mods(); + if (current_mods & MOD_MASK_SHIFT) { + clear_mods(); + SEND_STRING("0"); + set_mods(current_mods); + } else { + SEND_STRING(")"); + } + } + return false; + } + return true; +} |