]> git.donarmstrong.com Git - qmk_firmware.git/blobdiff - QMK-Overview.md
surrounds stuff with backticks
[qmk_firmware.git] / QMK-Overview.md
index 51b7cb9052d6cd048fb018fd5b41c55b48cbe650..f595bd23780ea14fb75e61a2aa1523cd3f030a22 100644 (file)
@@ -30,12 +30,7 @@ The `make` command is how you compile the firmware into a .hex file, which can b
 
 **NOTE:** To abort a make command press `Ctrl-c`
 
-The following instruction refers to these folders.
-
-* The `root` (`/`) folder is the qmk_firmware folder, in which are `doc`, `keyboard`, `quantum`, etc.
-* The `keyboard` folder is any keyboard project's folder, like `/keyboards/planck`.
-* The `keymap` folder is any keymap's folder, like `/keyboards/planck/keymaps/default`.
-* The `subproject` folder is the subproject folder of a keyboard, like `/keyboards/ergodox/ez`
+For more details on the QMK build process see [Make Instructions](/Make-Instructions.md).
 
 ### Simple instructions for building and uploading a keyboard
 
@@ -53,10 +48,28 @@ In the above commands, replace:
 * `<programmer>` The programmer to use. Most keyboards use `dfu`, but some use `teensy`. Infinity keyboards use `dfu-util`. Check the readme file in the keyboard folder to find out which programmer to use.
   * If you  don't add `-<programmer` to the command line, the firmware will be still be compiled into a hex file, but the upload will be skipped.
 
-**NOTE:** Some operating systems will refuse to program unless you run the make command as root for example `sudo make dfu`
+**NOTE:** Some operating systems will refuse to program unless you run the make command as root for example `sudo make clueboard-default-dfu`
 
 ## Make Examples
 
 * Build all Clueboard keymaps: `make clueboard`
 * Build the default Planck keymap: `make planck-rev4-default`
-* Build and flash your ergodox-ez: `make ergodox-ez-default-teensy`
\ No newline at end of file
+* Build and flash your ergodox-ez: `make ergodox-ez-default-teensy`
+
+# The `config.h` file
+
+There are 2 `config.h` locations:
+
+* keyboard (`/keyboards/<keyboard>/`)
+* keymap (`/keyboards/<keyboard>/keymaps/<keymap>/`)
+
+The keyboard `config.h` is included only if the keymap one doesn't exist. The format to use for your custom one [is here](https://github.com/qmk/qmk_firmware/blob/master/doc/keymap_config_h_example.h). If you want to override a setting from the parent `config.h` file, you need to do this:
+
+```c
+#undef MY_SETTING
+#define MY_SETTING 4
+```
+
+For a value of `4` for this imaginary setting. So we `undef` it first, then `define` it.
+
+You can then override any settings, rather than having to copy and paste the whole thing.
\ No newline at end of file