1. Install Xcode from the App Store.
2. Install the Command Line Tools from `Xcode->Preferences->Downloads`.
-3. Install [DFU-Programmer][dfu-prog].
+3. Install [DFU-Programmer](https://dfu-programmer.github.io/).
If you are going to flash Infinity based keyboards you will also need dfu-util
### Makefile options
-Set the variables to `no` to disable them, and `yes` to enable them.
+Set these variables to `no` to disable them, and `yes` to enable them.
`BOOTMAGIC_ENABLE`
This allows you to hold a key and the salt key (space by default) and have access to a various EEPROM settings that persist over power loss. It's advised you keep this disabled, as the settings are often changed by accident, and produce confusing results that makes it difficult to debug. It's one of the more common problems encountered in help sessions.
+Consumes about 1000 bytes.
+
`MOUSEKEY_ENABLE`
This gives you control over cursor movements and clicks via keycodes/custom functions.
**NOTE:** Do not include *uprint* messages in anything other than your keymap code. It must not be used within the QMK system framework. Otherwise, you will bloat other people's .hex files.
+Consumes about 400 bytes.
+
`COMMAND_ENABLE`
This enables magic commands, typically fired with the default magic key combo `LSHIFT+RSHIFT+KEY`. Magic commands include turning on debugging messages (`MAGIC+D`) or temporarily toggling NKRO (`MAGIC+N`).
This enables using the Quantum SYSEX API to send strings (somewhere?)
+This consumes about 5390 bytes.
+
### Customizing Makefile options on a per-keymap basis
If your keymap directory has a file called `Makefile` (note the filename), any Makefile options you set in that file will take precedence over other Makefile options for your particular keyboard.
# Going beyond the keycodes
-Aside from the [basic keycodes](doc/keycode.txt), your keymap can include shortcuts to common operations.
+Aside from the [basic keycodes](https://github.com/jackhumbert/qmk_firmware/blob/master/doc/keycode.txt), your keymap can include shortcuts to common operations.
## Quick aliases to common actions
LALT(LCTL(KC_DEL)) -- this makes a key that sends Alt, Control, and Delete in a single keypress.
-The following shortcuts automatically add `LSFT()` to keycodes to get commonly used symbols. Their long names are also available and documented in `/quantum/keymap_common.h`.
+The following shortcuts automatically add `LSFT()` to keycodes to get commonly used symbols. Their long names are also available and documented in `quantum/quantum_keycodes.h`.
KC_TILD ~
KC_EXLM !
+ KC_QUES ?
KC_AT @
KC_HASH #
KC_DLR $