qmk / qmk_firmware

Open-source keyboard firmware for Atmel AVR and Arm USB families
https://qmk.fm
GNU General Public License v2.0
18.03k stars 38.76k forks source link

Planck_EZ not compiling #6780

Closed Yatreyu closed 4 years ago

Yatreyu commented 5 years ago

Probably a total noob error but I have the following keymap:

const` uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    [0] = LAYOUT_planck_1x2uC(KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, LALT_T(KC_TAB), LCTL_T(KC_NLCK), KC_F, KC_G, KC_C, KC_R, KC_L, KC_A, KC_O, KC_E, KC_U, KC_I, KC_UP, LGUI(KC_CAPS), KC_D, KC_H, KC_T, KC_N, KC_S, KC_COLN, KC_J, KC_X, OSL(2), KC_LEFT, KC_DOWN, KC_RGHT, KC_K, KC_BSPC, KC_M, KC_W, KC_V, LT(1,KC_ESC), KC_Q, KC_Z, KC_QUES, LT(1,KC_SPC), KC_LEAD, LT(0,KC_SPC), LT(3,KC_NO), LT(6,KC_NO), KC_B, LT(4,KC_ENT)),
    [1] = LAYOUT_planck_1x2uC(KC_7, KC_8, KC_9, KC_PLUS, KC_PCMM, KC_TRNS, KC_TRNS, KC_NLCK, KC_PPLS, KC_P7, KC_P8, KC_P9, KC_4, KC_5, KC_6, KC_MINS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PMNS, KC_P4, KC_P5, KC_P6, KC_1, KC_2, KC_3, KC_ASTR, KC_EQL, KC_TRNS, KC_TRNS, KC_PEQL, KC_PAST, KC_P1, KC_P2, KC_P3, KC_DOT, KC_0, KC_EQL, KC_SLSH, LSFT_T(KC_SPC), KC_TRNS, LT(0,KC_SPC), KC_PSLS, KC_PDOT, KC_P0, KC_PENT),
    [2] = LAYOUT_planck_1x2uC(KC_DQUO, KC_LT, KC_GT, LSFT(KC_P), LSFT(KC_Y), KC_TRNS, KC_TRNS, LSFT(KC_F), LSFT(KC_G), LSFT(KC_C), LSFT(KC_R), LSFT(KC_L), LSFT(KC_A), LSFT(KC_O), LSFT(KC_E), LSFT(KC_U), LSFT(KC_I), KC_TRNS, KC_TRNS, LSFT(KC_D), LSFT(KC_H), LSFT(KC_T), LSFT(KC_N), LSFT(KC_S), KC_SCLN, LSFT(KC_J), LSFT(KC_X), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, LSFT(KC_K), KC_TRNS, LSFT(KC_M), LSFT(KC_W), LSFT(KC_V), KC_ESC, LSFT(KC_Q), LSFT(KC_Z), KC_EXLM, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, LSFT(KC_B), KC_TRNS),
    [3] = LAYOUT_planck_1x2uC(KC_CIRC, KC_LT, KC_GT, KC_BSLS, KC_SLSH, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_PIPE, KC_LPRN, KC_RPRN, KC_AT, KC_DLR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_LBRC, KC_RBRC, KC_EQL, KC_HASH, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_TRNS, KC_LCBR, KC_RCBR, KC_TILD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F10, KC_TRNS),
    [4] = LAYOUT_planck_1x2uC(KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, KC_NO, STN_ST3, STN_FR, STN_LR, STN_TR, STN_TR, STN_DR, STN_S2, STN_KL, STN_WL, STN_RL, STN_ST2, KC_NO, STN_ST4, STN_RR, STN_BR, STN_SR, STN_SR, STN_ZR, KC_NO, KC_NO, KC_NO, STN_A, STN_O, KC_TRNS, STN_E, STN_U, KC_NO, KC_NO, KC_NO),
    [5] = LAYOUT_planck_1x2uC(KC_F, KC_G, KC_C, KC_R, KC_L, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_D, KC_H, KC_T, KC_N, KC_S, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_K, KC_BSPC, KC_M, KC_V, KC_W, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_LEAD, KC_NO, KC_B, KC_ENT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO),
    [6] = LAYOUT_planck_1x2uC(KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_A, KC_O, KC_E, KC_U, KC_I, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_SCLN, KC_J, KC_X, OSM(MOD_LSFT), TO(0), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, MO(5), KC_Q, KC_Z, KC_QUES, KC_SPC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO)
};

And I understand trying to have a STENO layer is a complicating factor, but even when I try with just layers 0 to 2 I get the following error(s):

$ make planck_ez:elephantshell
QMK Firmware 0.7.13
Making planck_ez with keymap elephantshell

arm-none-eabi-gcc.exe (GNU Tools for ARM Embedded Processors 6-2017-q2-update) 6.3.1 20170620 (release) [ARM/embedded-6-branch revision 249437]
Copyright (C) 2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Compiling: keyboards/planck_ez/keymaps/elephantshell/keymap.c                                      keyboards/planck_ez/keymaps/elephantshell/keymap.c:5:8: error: implicit declaration of function 'LAYOUT_planck_1x2uC' [-Werror=implicit-function-declaration]
  [0] = LAYOUT_planck_1x2uC(KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, LALT_T(KC_TAB), LCTL_T(KC_NLCK), KC_F, KC_G, KC_C, KC_R, KC_L, KC_A, KC_O, KC_E, KC_U, KC_I, KC_UP, LGUI(KC_CAPS), KC_D, KC_H, KC_T, KC_N, KC_S, KC_COLN, KC_J, KC_X, OSL(2), KC_LEFT, KC_DOWN, KC_RGHT, KC_K, KC_BSPC, KC_M, KC_W, KC_V, LT(1,KC_ESC), KC_Q, KC_Z, KC_QUES, LT(1,KC_SPC), KC_LEAD, LT(0,KC_SPC), LT(3,KC_NO), LT(6,KC_NO), KC_B, LT(4,KC_ENT)),
        ^~~~~~~~~~~~~~~~~~~
keyboards/planck_ez/keymaps/elephantshell/keymap.c:5:8: error: initializer element is not constant
keyboards/planck_ez/keymaps/elephantshell/keymap.c:5:8: note: (near initialization for 'keymaps[0][0][0]')
keyboards/planck_ez/keymaps/elephantshell/keymap.c:6:8: error: initializer element is not constant
  [1] = LAYOUT_planck_1x2uC(KC_7, KC_8, KC_9, KC_PLUS, KC_PCMM, KC_TRNS, KC_TRNS, KC_NLCK, KC_PPLS, KC_P7, KC_P8, KC_P9, KC_4, KC_5, KC_6, KC_MINS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PMNS, KC_P4, KC_P5, KC_P6, KC_1, KC_2, KC_3, KC_ASTR, KC_EQL, KC_TRNS, KC_TRNS, KC_PEQL, KC_PAST, KC_P1, KC_P2, KC_P3, KC_DOT, KC_0, KC_EQL, KC_SLSH, LSFT_T(KC_SPC), KC_TRNS, LT(0,KC_SPC), KC_PSLS, KC_PDOT, KC_P0, KC_PENT),
        ^~~~~~~~~~~~~~~~~~~
keyboards/planck_ez/keymaps/elephantshell/keymap.c:6:8: note: (near initialization for 'keymaps[1][0][0]')
keyboards/planck_ez/keymaps/elephantshell/keymap.c:7:8: error: initializer element is not constant
  [2] = LAYOUT_planck_1x2uC(KC_DQUO, KC_LT, KC_GT, LSFT(KC_P), LSFT(KC_Y), KC_TRNS, KC_TRNS, LSFT(KC_F), LSFT(KC_G), LSFT(KC_C), LSFT(KC_R), LSFT(KC_L), LSFT(KC_A), LSFT(KC_O), LSFT(KC_E), LSFT(KC_U), LSFT(KC_I), KC_TRNS, KC_TRNS, LSFT(KC_D), LSFT(KC_H), LSFT(KC_T), LSFT(KC_N), LSFT(KC_S), KC_SCLN, LSFT(KC_J), LSFT(KC_X), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, LSFT(KC_K), KC_TRNS, LSFT(KC_M), LSFT(KC_W), LSFT(KC_V), KC_ESC, LSFT(KC_Q), LSFT(KC_Z), KC_EXLM, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, LSFT(KC_B), KC_TRNS),
        ^~~~~~~~~~~~~~~~~~~
keyboards/planck_ez/keymaps/elephantshell/keymap.c:7:8: note: (near initialization for 'keymaps[2][0][0]')
keyboards/planck_ez/keymaps/elephantshell/keymap.c:8:8: error: initializer element is not constant
  [3] = LAYOUT_planck_1x2uC(KC_CIRC, KC_LT, KC_GT, KC_BSLS, KC_SLSH, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_PIPE, KC_LPRN, KC_RPRN, KC_AT, KC_DLR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_LBRC, KC_RBRC, KC_EQL, KC_HASH, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_TRNS, KC_LCBR, KC_RCBR, KC_TILD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F10, KC_TRNS),
        ^~~~~~~~~~~~~~~~~~~
keyboards/planck_ez/keymaps/elephantshell/keymap.c:8:8: note: (near initialization for 'keymaps[3][0][0]')
keyboards/planck_ez/keymaps/elephantshell/keymap.c:9:8: error: initializer element is not constant
  [4] = LAYOUT_planck_1x2uC(KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, KC_NO, STN_ST3, STN_FR, STN_LR, STN_TR, STN_TR, STN_DR, STN_S2, STN_KL, STN_WL, STN_RL, STN_ST2, KC_NO, STN_ST4, STN_RR, STN_BR, STN_SR, STN_SR, STN_ZR, KC_NO, KC_NO, KC_NO, STN_A, STN_O, KC_TRNS, STN_E, STN_U, KC_NO, KC_NO, KC_NO),
        ^~~~~~~~~~~~~~~~~~~
keyboards/planck_ez/keymaps/elephantshell/keymap.c:9:8: note: (near initialization for 'keymaps[4][0][0]')
keyboards/planck_ez/keymaps/elephantshell/keymap.c:10:8: error: initializer element is not constant
  [5] = LAYOUT_planck_1x2uC(KC_F, KC_G, KC_C, KC_R, KC_L, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_D, KC_H, KC_T, KC_N, KC_S, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_K, KC_BSPC, KC_M, KC_V, KC_W, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_LEAD, KC_NO, KC_B, KC_ENT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO),
        ^~~~~~~~~~~~~~~~~~~
keyboards/planck_ez/keymaps/elephantshell/keymap.c:10:8: note: (near initialization for 'keymaps[5][0][0]')
keyboards/planck_ez/keymaps/elephantshell/keymap.c:11:8: error: initializer element is not constant
  [6] = LAYOUT_planck_1x2uC(KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_A, KC_O, KC_E, KC_U, KC_I, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_SCLN, KC_J, KC_X, OSM(MOD_LSFT), TO(0), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, MO(5), KC_Q, KC_Z, KC_QUES, KC_SPC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO)
        ^~~~~~~~~~~~~~~~~~~
keyboards/planck_ez/keymaps/elephantshell/keymap.c:11:8: note: (near initialization for 'keymaps[6][0][0]')
cc1.exe: all warnings being treated as errors
 [ERRORS]
 |
 |
 |
make[1]: *** [tmk_core/rules.mk:380: .build/obj_planck_ez_elephantshell/keyboards/planck_ez/keymaps/elephantshell/keymap.o] Error 1
Make finished with errors
make: *** [Makefile:561: planck_ez:elephantshell] Error 1`

If anyone has any suggestions that would be GREATLY appreciated. Looking forward to using my keyboard!

fauxpark commented 5 years ago

I'm not sure what the exact problem is here, but I suspect your repo may be out of date. The Planck EZ has always been located in keyboards/planck/ez so you might be working off an old copypasted codebase.

You also have a stray backtick character after the const, but that generates a different error for me, so I'm guessing it was a mistake when pasting the keymap here.

drashna commented 5 years ago

Yeah, I can confirm that it compiles correctly. But there was an issue with it a while ago. So, it sounds like you need to update your repo.

drashna commented 4 years ago

@Yatreyu were you able to get this compiling?

Yatreyu commented 4 years ago

No I'm having troubles figuring it out. I ran the msys2 install instructions in the qmkdocs, the practice clueboard66/rev3 compiles.

But still getting error messages.

Is it ok to post my directory on GitHub?

On Wed., Sep. 25, 2019, 23:49 Drashna Jaelre, notifications@github.com wrote:

@Yatreyu https://github.com/Yatreyu were you able to get this compiling?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/qmk/qmk_firmware/issues/6780?email_source=notifications&email_token=AGEFYYRIXWJJQERLQ3257ZDQLREPZA5CNFSM4IY4THOKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD7UMESA#issuecomment-535347784, or mute the thread https://github.com/notifications/unsubscribe-auth/AGEFYYUKRLGWIFX45LLGJBDQLREPZANCNFSM4IY4THOA .

noroadsleft commented 4 years ago

No I'm having troubles figuring it out. I ran the msys2 install instructions in the qmkdocs, the practice clueboard66/rev3 compiles. But still getting error messages. Is it ok to post my directory on GitHub?

@Yatreyu,

I can see your fork at https://github.com/Yatreyu/qmk_firmware/tree/master, and it is well out of date.

Open up MSYS2, cd to wherever you have your qmk_firmware folder on your computer, and run git remote -v. It should return something like:

$ git remote -v
origin  https://github.com/Yatreyu/qmk_firmware.git (fetch)
origin  https://github.com/Yatreyu/qmk_firmware.git (push)

(The origin part might be named something else.)

If the only remote repository is your own fork, you should add QMK's repository as a remote with:

git remote add upstream https://github.com/qmk/qmk_firmware.git

Once you've done that, git remote -v should show both your fork and QMK's repository. Run the following commands, one command per line:

git checkout master
git fetch upstream
git pull upstream master
git push origin master

This will update the master branch of your fork on both your computer and GitHub, so they're all exactly the same.

Once you've done this, you should be able to compile Planck EZ firmware with make planck/ez:default (note the /), or your own keymap with make planck/ez:elephantshell (assuming it doesn't have other errors).

Yatreyu commented 4 years ago
$ git remote -v
origin  https://github.com/qmk/qmk_firmware.git (fetch)
origin  https://github.com/qmk/qmk_firmware.git (push)

Is what I got so I did this:

$ git remote -v
downstream      https://github.com/Yatreyu/qmk_firmware.git (fetch)
downstream      https://github.com/Yatreyu/qmk_firmware.git (push)
origin  https://github.com/qmk/qmk_firmware.git (fetch)
origin  https://github.com/qmk/qmk_firmware.git (push)
upstream        https://github.com/qmk/qmk_firmware.git (fetch)
upstream        https://github.com/qmk/qmk_firmware.git (push)

Then when I try and complete Elephantshell:

$ make planck/ez:elephantshell
QMK Firmware 0.7.13
Making planck/ez with keymap elephantshell

arm-none-eabi-gcc.exe (GNU Tools for ARM Embedded Processors 6-2017-q2-update) 6.3.1 20170620 (release) [ARM/embedded-6-branch revision 249437]
Copyright (C) 2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Compiling: keyboards/planck/ez/keymaps/elephantshell/keymap.c                                      In file included from keyboards/planck/ez/keymaps/elephantshell/keymap.c:2:0:
quantum/keymap_extras/keymap_steno.h:25:16: error: 'QK_STENO' undeclared here (not in a function)
     STN__MIN = QK_STENO,
                ^~~~~~~~
In file included from keyboards/planck/planck.h:9:0,
                 from keyboards/planck/ez/keymaps/elephantshell/keymap.c:1:
keyboards/planck/ez/keymaps/elephantshell/keymap.c:5:347: error: 'KC_LEAD' undeclared here (not in a function)
  [0] = LAYOUT_planck_mit(KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, LALT_T(KC_TAB), LCTL_T(KC_NLCK), KC_F, KC_G, KC_C, KC_R, KC_L, KC_A, KC_O, KC_E, KC_U, KC_I, KC_UP, LGUI(KC_CAPS), KC_D, KC_H, KC_T, KC_N, KC_S, KC_COLN, KC_J, KC_X, OSL(2), KC_LEFT, KC_DOWN, KC_RGHT, KC_K, KC_BSPC, KC_M, KC_W, KC_V, LT(1,KC_ESC), KC_Q, KC_Z, KC_QUES, LT(1,KC_SPC), KC_LEAD, LT(0,KC_SPC), LT(3,KC_NO), LT(6,KC_NO), KC_B, LT(4,KC_ENT)),
                                                                                                                                                                                                                                                                                                                                                           ^
keyboards/planck/ez/ez.h:34:32: note: in definition of macro 'LAYOUT_planck_1x2uC'
     { k37, k38, k39, k33, k34, k35   } \
                                ^~~
keyboards/planck/ez/keymaps/elephantshell/keymap.c:5:8: note: in expansion of macro 'LAYOUT_planck_mit'
  [0] = LAYOUT_planck_mit(KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, LALT_T(KC_TAB), LCTL_T(KC_NLCK), KC_F, KC_G, KC_C, KC_R, KC_L, KC_A, KC_O, KC_E, KC_U, KC_I, KC_UP, LGUI(KC_CAPS), KC_D, KC_H, KC_T, KC_N, KC_S, KC_COLN, KC_J, KC_X, OSL(2), KC_LEFT, KC_DOWN, KC_RGHT, KC_K, KC_BSPC, KC_M, KC_W, KC_V, LT(1,KC_ESC), KC_Q, KC_Z, KC_QUES, LT(1,KC_SPC), KC_LEAD, LT(0,KC_SPC), LT(3,KC_NO), LT(6,KC_NO), KC_B, LT(4,KC_ENT)),
        ^~~~~~~~~~~~~~~~~
 [ERRORS]
 |
 |
 |
make[1]: *** [tmk_core/rules.mk:380: .build/obj_planck_ez_elephantshell/keyboards/planck/ez/keymaps/elephantshell/keymap.o] Error 1
Make finished with errors
make: *** [Makefile:561: planck/ez:elephantshell] Error 1

So it is still not getting the job done :(

fauxpark commented 4 years ago

That looks like you haven't added STENO_ENABLE = yes and LEADER_ENABLE = yes in your rules.mk. The things it's complaining are undeclared are dependent on those features being enabled.

Yatreyu commented 4 years ago

Hey, thanks for the ongoing troubleshooting to get this working.

My Rules.mk looks like it has those enabled:

# Cortex version
MCU  = STM32F303

# Interrupt driven control endpoint task(+60)
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT

# Build Options
#   change to "no" to disable the options, or define them in the Makefile in
#   the appropriate keymap folder that will get included automatically
#
BOOTMAGIC_ENABLE = no      # Virtual DIP switch configuration(+1000)
## (Note that for BOOTMAGIC on Teensy LC you have to use a custom .ld script.)
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
NKRO_ENABLE = yes            # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no      # Enable keyboard backlight functionality
MIDI_ENABLE = no            # MIDI controls
AUDIO_ENABLE = yes           # Audio output on port C6
UNICODE_ENABLE = yes         # Unicode
BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE = no        # Enable WS2812 RGB underlight.
API_SYSEX_ENABLE = no

# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend
#SLEEP_LED_ENABLE = yes  # Breathing sleep LED during USB suspend

CUSTOM_MATRIX = no # Custom matrix file
# SERIAL_LINK_ENABLE = yes
ENCODER_ENABLE = yes
RGB_MATRIX_ENABLE = IS31FL3737

LAYOUTS = ortho_4x12 planck_mit
LAYOUTS_HAS_RGB = yes

LEADER_ENABLE = yes
COMBO_ENABLE = yes
FORCE_NKRO = yes
VIRTSER_ENABLE = yes
STENO_ENABLE = yes

I was wondering if it was in the right directory. I have it here:

Directory

I thought I might just outline if I have a slippery slope of errors by showing what I want my leader key to do:

// Full keymap to try once I get just the keys working
#include QMK_KEYBOARD_H
#include "keymap_steno.h"

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    [0] = LAYOUT_planck_1x2uC(KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, LALT_T(KC_TAB), LCTL_T(KC_NLCK), KC_F, KC_G, KC_C, KC_R, KC_L, KC_A, KC_O, KC_E, KC_U, KC_I, KC_UP, LGUI(KC_CAPS), KC_D, KC_H, KC_T, KC_N, KC_S, KC_COLN, KC_J, KC_X, OSL(2), KC_LEFT, KC_DOWN, KC_RGHT, KC_K, KC_BSPC, KC_M, KC_W, KC_V, LT(1,KC_ESC), KC_Q, KC_Z, KC_QUES, LT(1,KC_SPC), KC_LEAD, LT(0,KC_SPC), LT(3,KC_NO), LT(6,KC_NO), KC_B, LT(4,KC_ENT)),
    [1] = LAYOUT_planck_1x2uC(KC_7, KC_8, KC_9, KC_PLUS, KC_PCMM, KC_TRNS, KC_TRNS, KC_NLCK, KC_PPLS, KC_P7, KC_P8, KC_P9, KC_4, KC_5, KC_6, KC_MINS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PMNS, KC_P4, KC_P5, KC_P6, KC_1, KC_2, KC_3, KC_ASTR, KC_EQL, KC_TRNS, KC_TRNS, KC_PEQL, KC_PAST, KC_P1, KC_P2, KC_P3, KC_DOT, KC_0, KC_EQL, KC_SLSH, LSFT_T(KC_SPC), KC_TRNS, LT(0,KC_SPC), KC_PSLS, KC_PDOT, KC_P0, KC_PENT),
    [2] = LAYOUT_planck_1x2uC(KC_DQUO, KC_LT, KC_GT, LSFT(KC_P), LSFT(KC_Y), KC_TRNS, KC_TRNS, LSFT(KC_F), LSFT(KC_G), LSFT(KC_C), LSFT(KC_R), LSFT(KC_L), LSFT(KC_A), LSFT(KC_O), LSFT(KC_E), LSFT(KC_U), LSFT(KC_I), KC_TRNS, KC_TRNS, LSFT(KC_D), LSFT(KC_H), LSFT(KC_T), LSFT(KC_N), LSFT(KC_S), KC_SCLN, LSFT(KC_J), LSFT(KC_X), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, LSFT(KC_K), KC_TRNS, LSFT(KC_M), LSFT(KC_W), LSFT(KC_V), KC_ESC, LSFT(KC_Q), LSFT(KC_Z), KC_EXLM, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, LSFT(KC_B), KC_TRNS),
    [3] = LAYOUT_planck_1x2uC(KC_CIRC, KC_LT, KC_GT, KC_BSLS, KC_SLSH, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_PIPE, KC_LPRN, KC_RPRN, KC_AT, KC_DLR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_LBRC, KC_RBRC, KC_EQL, KC_HASH, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_TRNS, KC_LCBR, KC_RCBR, KC_TILD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F10, KC_TRNS),
    [4] = LAYOUT_planck_1x2uC(KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, KC_NO, STN_ST3, STN_FR, STN_LR, STN_TR, STN_TR, STN_DR, STN_S2, STN_KL, STN_WL, STN_RL, STN_ST2, KC_NO, STN_ST4, STN_RR, STN_BR, STN_SR, STN_SR, STN_ZR, KC_NO, KC_NO, KC_NO, STN_A, STN_O, KC_TRNS, STN_E, STN_U, KC_NO, KC_NO, KC_NO),
    [5] = LAYOUT_planck_1x2uC(KC_F, KC_G, KC_C, KC_R, KC_L, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_D, KC_H, KC_T, KC_N, KC_S, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_K, KC_BSPC, KC_M, KC_V, KC_W, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_LEAD, KC_NO, KC_B, KC_ENT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO),
    [6] = LAYOUT_planck_1x2uC(KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_A, KC_O, KC_E, KC_U, KC_I, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_SCLN, KC_J, KC_X, OSM(MOD_LSFT), TO(0), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, MO(5), KC_Q, KC_Z, KC_QUES, KC_SPC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO)
};

enum combo_events {
  GC_COPY,
  HT_PASTE
};

const uint16_t PROGMEM copy_combo[] = {KC_G, KC_C, COMBO_END};
const uint16_t PROGMEM paste_combo[] = {KC_H, KC_T, COMBO_END};

combo_t key_combos[COMBO_COUNT] = {
  [GC_COPY] = COMBO_ACTION(copy_combo),
  [HT_PASTE] = COMBO_ACTION(paste_combo),
};

void process_combo_event(uint8_t combo_index, bool pressed) {
  switch(combo_index) {
    case GC_COPY:
      if (pressed) {
        tap_code16(LCTL(KC_C));
      }
      break;
    case HT_PASTE:
      if (pressed) {
        tap_code16(LCTL(KC_V));
      }
      break;
  }
}
//dont put anything between the first two lines below
LEADER_EXTERNS();
void matrix_scan_user(void) 
{
    LEADER_DICTIONARY() 
    {
    leading = false;
    leader_end();
        // Postoperative Note Template.
        SEQ_TWO_KEY(KC_S, KC_P) 
        {
        // When I press KC_LEAD and then S&P, this sends the following progress template
        SEND_STRING(
        "Date:"SS_TAP(X_ENTER)
        "Time:"SS_TAP(X_ENTER)
        "Meds:"SS_TAP(X_ENTER)
        "POD#_ after ____"SS_TAP(X_ENTER)
        "Antibiotic day #"SS_TAP(X_ENTER)
        "O/N Issues"SS_TAP(X_ENTER)
        "Vitals:"SS_TAP(X_ENTER)
        "CBC:    }---{    "SS_TAP(X_ENTER)
        "Chem7:  ---|---|---{"SS_TAP(X_ENTER)
        "I/O:"SS_TAP(X_ENTER)
        "Physical Exam:"SS_TAP(X_ENTER)
        "Resp:"SS_TAP(X_ENTER)
        "Heart:"SS_TAP(X_ENTER)
        "Abdomen:"SS_TAP(X_ENTER)
        "Wound:"SS_TAP(X_ENTER)
        "Stoma:"SS_TAP(X_ENTER]
        "A/P: _ year old _ POD#_ progressing well after ____"SS_TAP(X_ENTER)
        "Pain Control:"SS_TAP(X_ENTER)
        "CV:"SS_TAP(X_ENTER)
        "Resp:"SS_TAP(X_ENTER)
        "GI:"SS_TAP(X_ENTER)
        "GU:"SS_TAP(X_ENTER)
        "Heme:"SS_TAP(X_ENTER)
        "ID: Continue antibiotics for _ more days"SS_TAP(X_ENTER)
        "Endocrine: No steroids required"SS_TAP(X_ENTER));
        }

        //ending salutations
        SEQ_THREE_KEYS(KC_K, KC_R, KC_Y) 
        {
        SEND_STRING("Kind regards,"SS_TAP(X_ENTER)SS_TAP(X_ENTER)"Full Name B.Sc., M.Sc., M.D.");
        }

        //Operative note template
        SEQ_THREE_KEYS(KC_O, KC_R, KC_N) {
        SEND_STRING(
        "Date:"SS_TAP(X_ENTER)
        "Time:"SS_TAP(X_ENTER)
        "Preoperative Diagnosis:"SS_TAP(X_ENTER)
        "Postoperative Diagnosis:"SS_TAP(X_ENTER)
        "Surgeon:"SS_TAP(X_ENTER)
        "Assists:"SS_TAP(X_ENTER)
        "Anaesthesia:"SS_TAP(X_ENTER)
        "Estimated Blood Loss:"SS_TAP(X_ENTER)
        "Urine Output:"SS_TAP(X_ENTER)
        "Intravenous Fluids:"SS_TAP(X_ENTER)
        "Findings:"SS_TAP(X_ENTER)
        "Specimens:"SS_TAP(X_ENTER)
        "Drains:"SS_TAP(X_ENTER)
        "Complications:"SS_TAP(X_ENTER]
        "Disposition"SS_TAP(X_ENTER));
        }
        // Note: This is not an array, you don't need to put any commas
        // or semicolons between sequences.

        //ICU Progress Note Template
        SEQ_THREE_KEYS(KC_I, KC_C, KC_U) 
        {
            // When I press KC_LEAD and then N followed by T, this sends CTRL + T
        SEND_STRING(
        "Date:"SS_TAP(X_ENTER)
        "Time:"SS_TAP(X_ENTER)
        "Meds:"SS_TAP(X_ENTER)
        "Neuro:"SS_TAP(X_ENTER)
        SS_TAP[X_TAB]"GCS"SS_TAP(X_ENTER)
        SS_TAP[X_TAB]"Sedative drip:"SS_TAP(X_ENTER)
        SS_TAP[X_TAB]"Pain control:"SS_TAP(X_ENTER)
        SS_TAP[X_TAB]"P/E"SS_TAP(X_ENTER)
        "CV:"SS_TAP(X_ENTER)
        SS_TAP[X_TAB]"HR Range:"SS_TAP(X_ENTER)
        SS_TAP[X_TAB]"BP Range:"SS_TAP(X_ENTER)
        SS_TAP[X_TAB]"CVP Range:"SS_TAP(X_ENTER)
        "Cardiac Parameters:"SS_TAP(X_ENTER)
        SS_TAP[X_TAB]"CO:"SS_TAP[X_TAB]"CVP:"SS_TAP(X_ENTER)
        SS_TAP[X_TAB]"CI:"SS_TAP[X_TAB]"PCWP:"SS_TAP(X_ENTER)
        SS_TAP[X_TAB]"PAS/PAD:"SS_TAP[X_TAB]"SVR:"SS_TAP(X_ENTER)
        SS_TAP[X_TAB]"SV:"SS_TAP(X_ENTER)
        "Resp:"SS_TAP(X_ENTER)
        SS_TAP[X_TAB]"RR Range __"SS_TAP[X_TAB]"SaO2% __"SS_TAP[X_TAB]"FiO2 __"SS_TAP(X_ENTER)
        SS_TAP[X_TAB]"Ventilator:  Mode___ Rate___ TV___ FiO2___ PS___ PEEP___"SS_TAP(X_ENTER)
        SS_TAP[X_TAB]"ABG: __/__/__/__/__ "SS_TAP(X_ENTER)
        "GI:"SS_TAP(X_ENTER)
        SS_TAP[X_TAB]"PE:"SS_TAP(X_ENTER)
        SS_TAP[X_TAB]"Drains:"SS_TAP(X_ENTER)
        SS_TAP[X_TAB]"LFTs:"SS_TAP(X_ENTER)
        "Renal:"SS_TAP(X_ENTER)
        SS_TAP[X_TAB]"Total I/O:"SS_TAP(X_ENTER)
        SS_TAP[X_TAB]"Urine:      mL/kg/hr"SS_TAP(X_ENTER)
        SS_TAP[X_TAB]"Chem7: ---|---|---{    Ca:__ Mg:__ PO4:__"SS_TAP(X_ENTER)
        "Heme/ID:"SS_TAP(X_ENTER)
        SS_TAP[X_TAB]"    }---{    "SS_TAP[X_TAB]"PT/PTT:___"SS_TAP(X_ENTER)
        SS_TAP[X_TAB]"Cultures:"SS_TAP(X_ENTER)
        SS_TAP[X_TAB]"Tmax:      "SS_TAP[X_TAB]"Tcurrent:"SS_TAP(X_ENTER)
        SS_TAP[X_TAB]"Antibiotic Day#:___"SS_TAP(X_ENTER)
        "Endocrine:"SS_TAP(X_ENTER)
        SS_TAP[X_TAB]"RandomGlucose:"SS_TAP[X_TAB]"Insulins:"SS_TAP(X_ENTER)
        SS_TAP[X_TAB]"TFTs:"SS_TAP[X_TAB]"Steroid:"SS_TAP(X_ENTER)
        "A/P"SS_TAP(X_ENTER)
        "ICU Day# __ ,POD# __ after ____"SS_TAP(X_ENTER)
        "Neuro:"SS_TAP(X_ENTER)
        "CV:"SS_TAP(X_ENTER)
        "Resp:"SS_TAP(X_ENTER]
        "Renal/FEN:"SS_TAP(X_ENTER)
        "Heme/ID"SS_TAP(X_ENTER)
        "Endocrine:"SS_TAP(X_ENTER)
        );
        }

        //Cranial Nerve Exam Template
        SEQ_THREE_KEYS(KC_C, KC_N, KC_E) 
        {
        // When I press KC_LEAD and then N followed by T, this sends CTRL + T
        SEND_STRING(
        "Pupils: There is/not Anisocoria. PEARL with/out normal accomodation."SS_TAP(X_ENTER)
        "CN I: Each nostril is/not percieving lemon."SS_TAP(X_ENTER)
        "CN II: The visual fields are intact/affected, visual accuity is 20/20 left, 20/20 right, 20/15 together with/out correction."SS_TAP(X_ENTER)
        "CN III/IV/VI: Extra ocular movements are/not intact."SS_TAP(X_ENTER)
        "CN V: Sensation is/not intact to V1/V2/V3 for sharp and is/not intact for soft."SS_TAP(X_ENTER)
        "CN VII: Expressions of eyebrow, palpebral closure, grimace, puffed cheeks are/not intact."SS_TAP(X_ENTER)
        "CN VIII: Sound is/not localised to left an is/not to right assessed by whisper/scratch/Rinne & Weber with a 128Hz/512Hz fork"SS_TAP(X_ENTER)
        "CN IX/X: Gag reflex is intact with palate raising and Right is/not equal to Left. The tongue can/not lateralise."SS_TAP(X_ENTER)
        "CN XI: Mental reflex is/not present."SS_TAP(X_ENTER)
        "CN XII: Shoulder raise is _/5 strength."SS_TAP(X_ENTER)

        "Gait is/not normal, and there are/no signs of dysdiochokinesia."
        }

        //Basic Consult Template
        SEQ_TWO_KEYS(KC_C, KC_L) 
        {
         SEND_STRING(
         "Thank you for seeing our patient. Mr/s. _ is a _#_ year old _m/f_ and is experiencing _complaint_ on a background of _PMhx_. In our investigations we believe _Dx_ to be most likely as _result_, while a possibility of _DDx_ remain."SS_TAP(X_ENTER)
        }

        //Sick Note
        SEQ_TWO_KEYS(KC_S, KC_N) 
        {
        SEND_STRING(
        "To whom it may concern, our patient Mr/s _ is our patient, and we have made the determination that they are not able to attend employment or educational commitments from _Month_ _Day_, -Year_ to _Month_ _Day_, _Year_."SS_TAP(X_ENTER]
        }

        //Email entry
        SEQ_ONE_KEY(KC_E) 
        {
        SEND_STRING(
        "email@server.com"SS_TAP(X_ENTER)
        }    

        //Name Entry
        SEQ_ONE_KEY(KC_N) 
        {
        SEND_STRING("Full Name B.Sc., M.Sc., M.D."SS_TAP(X_ENTER)
        }

        //Copy function
        SEQ_ONE_KEY(KC_C)
        {
        register_code(KC_LCTL);
        register_code(KC_C);
        unregister_code(KC_C);
        unregister_code(KC_LCTL);
        }
        //Paste function
        SEQ_ONE_KEY(KC_S)
        {
        register_code(KC_LCTL);
        register_code(KC_V);
        unregister_code(KC_V);
        unregister_code(KC_LCTL);
        }
        //Cut function
        SEQ_ONE_KEY(KC_T)
        {
        register_code(KC_LCTL);
        register_code(KC_X);
        unregister_code(KC_X);
        unregister_code(KC_LCTL);
        }
        //Alt-Tab function
        SEQ_TWO_KEYS(KC_K, KC_T)
        {
        register_code(KC_LALT);
        register_code(KC_TAB);
        unregister_code(KC_TAB);
        unregister_code(KC_RALT);
    }
}

I want to be at the hospital use my leader key magic on any of the workstations and get my patient notes done quickly. I don't know if they are formatted correctly.

This is not the keymap I'm trying to compile now. Just the layers as per my original post. Just fishing for some expertise in leader keys or macros in general as well as being really eager to get my basic key layout working.

fauxpark commented 4 years ago

You seem to be looking at the wrong directory. You're compiling the planck/ez keyboard, which is correct, but those screenshots are of a planck_ez folder, which does not exist in master. To reduce confusion I would throw out the latter.

stale[bot] commented 4 years ago

This issue has been automatically marked as stale because it has not had activity in the last 90 days. It will be closed in the next 30 days unless it is tagged properly or other activity occurs. For maintainers: Please label with bug, in progress, on hold, discussion or to do to prevent the issue from being re-flagged.

stale[bot] commented 4 years ago

This issue has been automatically closed because it has not had activity in the last 30 days. If this issue is still valid, re-open the issue and let us know.