Success!
If anyone else is trying to compile QMK on their own,
in addition to the instructions already present in the Model F Manual on the website, part of which are shown below:
code changes to make
config.h in the folder of the keyboard you want to update – in my case, keyboards/xwhatsit/brand_new_model_f/f77/wcass
lines 286-287
#define SOLENOID_DEFAULT_DWELL 20
#define SOLENOID_MIN_DWELL 20
add to end of haptic.c file – new line:
#define HAPTIC_EXCLUSION_KEYS 1
in rules.mk:
line 40:
NKRO_ENABLE = yes # USB Nkey Rollover
add this line at bottom:
LTO_ENABLE = yes # Link Time Optimization – reduces file size
rules.mk
HAPTIC_ENABLE = yes
HAPTIC_DRIVER = SOLENOID
I think you'll also want to remove the
line since those last two lines replace it, and I seem to recall reading in one of the dozen pages I scrolled through earlier that you should.
Code: Select all
Generating: .build/obj_xwhatsit_brand_new_model_f_f77_wcass/src/info_config.h [WARNINGS]
|
| ERROR xwhatsit/brand_new_model_f/f77/wcass: NO_ACTION_MACRO in config.h is no longer a valid option
| ERROR xwhatsit/brand_new_model_f/f77/wcass: NO_ACTION_FUNCTION in config.h is no longer a valid option
| ERROR xwhatsit/brand_new_model_f/f77/wcass: DESCRIPTION in config.h is no longer a valid option
Change config.h accordingly. I just commented those lines out in Notepad. Like so:
Code: Select all
//#define DESCRIPTION QMK firmware for the modelfkeyboards.com reproduction of the IBM Model F keyboards
//#ifndef LINK_TIME_OPTIMIZATION_ENABLE
// #define NO_ACTION_MACRO
// #define NO_ACTION_FUNCTION
//#endif
Additionally, you'll see this error:
Code: Select all
Compiling: keyboards/xwhatsit/util_comm.c keyboards/xwhatsit/util_comm.c:22:10: fatal error: tmk_core/common/eeprom.h: No such file or directory
#include <tmk_core/common/eeprom.h>
Copy the contents of the tmk_core directory from pandrew's repo into your qmk_firmware folder. Do not overwrite any existing files - they're probably newer. I didn't. Nothing broke.
Now, to see if building it this way - "qmk setup" pulling the latest qmk files and just copying the xwhatsit folders + missing tmk_core files in - allows me to use QMK keycodes that are missing from the beta online configurator, like MAGIC_TOGGLE_CONTROL_CAPSLOCK and MAGIC_TOGGLE_GUI, instead of dealing with e.g. two separate MAGIC_NO_GUI and MAGIC_UNNO_GUI keys or having to map both MAGIC_SWAP_CONTROL_CAPSLOCK and MAGIC_UNSWAP_CONTROL_CAPSLOCK.
Confirmed: it compiled just fine locally with those keycodes included in my keymap and they work! I am now a happy camper: NKRO, HHKB style GUI disable and Ctrl/CL swap, and my Frankenstein ISO/ANSI/JIS.HHKB Arabic layout. I'll post some pictures soon.
For what it's worth, it compiles just fine under MSYS2/MinGW64, no need for a Ubuntu VM if you're on Windows, provided you're familiar with using MSYS2. It flashes just fine using QMK Toolbox on Windows too, I still flashed the eeprom_eraser.hex as instructed. If you're on Windows and you already have MSYS2 installed, I'm assuming you know how to get QMK running in there, but you can either use their QMK MSYS if you don't, or if you don't want multiple MSYS2 environments set up for no reason:
Code: Select all
pacman -Syu
pacman --needed --noconfirm --disable-download-timeout -S git mingw-w64-x86_64-python-qmk
qmk setup
QMK will tell you where it's setting itself up, for me that was C:\Users\Me\qmk_firmware.
cd to some other directory so you don't overwrite it when you clone pandrew's repo. You know your MSYS2 home directory better than I do. cd ../.. took me to c/msys64/home.
Code: Select all
git clone http://purdea.ro/qmk_firmware/
Once that's done, cd to wherever qmk told you it set itself up, make the required changes mentioned above, and then you can just "qmk config user.keyboard=xwhatsit/brand_new_model_f/f77/wcass" and "qmk compile yourkeymap.json" like the manual says to.