aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorDrashna Jaelre <drashna@live.com>2018-03-25 16:44:17 -0700
committerskullydazed <skullydazed@users.noreply.github.com>2018-03-25 16:44:17 -0700
commit07b90db89758c42f7aacf52d93446b9407b87a98 (patch)
tree29392050d8c473eb0c6874977477ba32a9176f3b /docs
parent0c665696d7b498bd278d05eed3b52c1fac89ff29 (diff)
downloadqmk_firmware-07b90db89758c42f7aacf52d93446b9407b87a98.tar.gz
qmk_firmware-07b90db89758c42f7aacf52d93446b9407b87a98.zip
Fixes and updates to docs (#2611)
* Fix advanced keycode headers * Add caveat for OSM over Remote Desktop * Hopefully add better anchors to docs * Add Action code list reference * Formatting of RGB Underglow doc * Add brew update issue on macOS * Revert formatting * Revert RGB doc formatting * Make Config Options doc's sections linkable
Diffstat (limited to 'docs')
-rw-r--r--docs/config_options.md21
-rw-r--r--docs/faq_build.md16
-rw-r--r--docs/feature_advanced_keycodes.md8
-rw-r--r--docs/keymap.md2
4 files changed, 32 insertions, 15 deletions
diff --git a/docs/config_options.md b/docs/config_options.md
index 055531b67..af8602c3f 100644
--- a/docs/config_options.md
+++ b/docs/config_options.md
@@ -31,9 +31,8 @@ This is a C header file that is one of the first things included, and will persi
31 31
32 #include "config_common.h" 32 #include "config_common.h"
33 33
34## `config.h` Options
35 34
36### Hardware Options 35## Hardware Options
37* `#define VENDOR_ID 0x1234` 36* `#define VENDOR_ID 0x1234`
38 * defines your VID, and for most DIY projects, can be whatever you want 37 * defines your VID, and for most DIY projects, can be whatever you want
39* `#define PRODUCT_ID 0x5678` 38* `#define PRODUCT_ID 0x5678`
@@ -83,7 +82,7 @@ This is a C header file that is one of the first things included, and will persi
83* `#define IS_COMMAND() ( keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) )` 82* `#define IS_COMMAND() ( keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) )`
84 * key combination that allows the use of magic commands (useful for debugging) 83 * key combination that allows the use of magic commands (useful for debugging)
85 84
86### Features That Can Be Disabled 85## Features That Can Be Disabled
87 86
88If you define these options you will disable the associated feature, which can save on code size. 87If you define these options you will disable the associated feature, which can save on code size.
89 88
@@ -102,7 +101,7 @@ If you define these options you will disable the associated feature, which can s
102* `#define NO_ACTION_FUNCTION` 101* `#define NO_ACTION_FUNCTION`
103 * disable the action function (deprecated) 102 * disable the action function (deprecated)
104 103
105### Features That Can Be Enabled 104## Features That Can Be Enabled
106 105
107If you define these options you will enable the associated feature, which may increase your code size. 106If you define these options you will enable the associated feature, which may increase your code size.
108 107
@@ -111,7 +110,7 @@ If you define these options you will enable the associated feature, which may in
111* `#define PREVENT_STUCK_MODIFIERS` 110* `#define PREVENT_STUCK_MODIFIERS`
112 * when switching layers, this will release all mods 111 * when switching layers, this will release all mods
113 112
114### Behaviors That Can Be Configured 113## Behaviors That Can Be Configured
115 114
116* `#define TAPPING_TERM 200` 115* `#define TAPPING_TERM 200`
117 * how long before a tap becomes a hold 116 * how long before a tap becomes a hold
@@ -139,7 +138,7 @@ If you define these options you will enable the associated feature, which may in
139 few ms of delay from this. But if you're doing chording on something with 3-4ms 138 few ms of delay from this. But if you're doing chording on something with 3-4ms
140 scan times? You probably want this. 139 scan times? You probably want this.
141 140
142### RGB Light Configuration 141## RGB Light Configuration
143 142
144* `#define RGB_DI_PIN D7` 143* `#define RGB_DI_PIN D7`
145 * pin the DI on the ws2812 is hooked-up to 144 * pin the DI on the ws2812 is hooked-up to
@@ -156,7 +155,7 @@ If you define these options you will enable the associated feature, which may in
156* `#define RGBW_BB_TWI` 155* `#define RGBW_BB_TWI`
157 * bit-bangs TWI to EZ RGBW LEDs (only required for Ergodox EZ) 156 * bit-bangs TWI to EZ RGBW LEDs (only required for Ergodox EZ)
158 157
159### Mouse Key Options 158## Mouse Key Options
160 159
161* `#define MOUSEKEY_INTERVAL 20` 160* `#define MOUSEKEY_INTERVAL 20`
162* `#define MOUSEKEY_DELAY 0` 161* `#define MOUSEKEY_DELAY 0`
@@ -168,9 +167,7 @@ If you define these options you will enable the associated feature, which may in
168 167
169This is a [make](https://www.gnu.org/software/make/manual/make.html) file that is included by the top-level `Makefile`. It is used to set some information about the MCU that we will be compiling for as well as enabling and disabling certain features. 168This is a [make](https://www.gnu.org/software/make/manual/make.html) file that is included by the top-level `Makefile`. It is used to set some information about the MCU that we will be compiling for as well as enabling and disabling certain features.
170 169
171## `rules.mk` Options 170## Build Options
172
173### Build Options
174 171
175* `DEFAULT_FOLDER` 172* `DEFAULT_FOLDER`
176 * Used to specify a default folder when a keyboard has more than one sub-folder. 173 * Used to specify a default folder when a keyboard has more than one sub-folder.
@@ -179,7 +176,7 @@ This is a [make](https://www.gnu.org/software/make/manual/make.html) file that i
179* `LAYOUTS` 176* `LAYOUTS`
180 * A list of [layouts](feature_layouts.md) this keyboard supports. 177 * A list of [layouts](feature_layouts.md) this keyboard supports.
181 178
182### AVR MCU Options 179## AVR MCU Options
183* `MCU = atmega32u4` 180* `MCU = atmega32u4`
184* `F_CPU = 16000000` 181* `F_CPU = 16000000`
185* `ARCH = AVR8` 182* `ARCH = AVR8`
@@ -193,7 +190,7 @@ This is a [make](https://www.gnu.org/software/make/manual/make.html) file that i
193 * `caterina` 190 * `caterina`
194 * `bootloadHID` 191 * `bootloadHID`
195 192
196### Feature Options 193## Feature Options
197 194
198Use these to enable or disable building certain features. The more you have enabled the bigger your firmware will be, and you run the risk of building a firmware too large for your MCU. 195Use these to enable or disable building certain features. The more you have enabled the bigger your firmware will be, and you run the risk of building a firmware too large for your MCU.
199 196
diff --git a/docs/faq_build.md b/docs/faq_build.md
index ff409f9c6..2d1b91b60 100644
--- a/docs/faq_build.md
+++ b/docs/faq_build.md
@@ -88,3 +88,19 @@ Note that Teensy2.0++ bootloader size is 2048byte. Some Makefiles may have wrong
88# USBaspLoader 2048 88# USBaspLoader 2048
89OPT_DEFS += -DBOOTLOADER_SIZE=2048 89OPT_DEFS += -DBOOTLOADER_SIZE=2048
90``` 90```
91
92## `avr-gcc: internal compiler error: Abort trap: 6 (program cc1)` on MacOS
93This is an issue with updating on brew, causing symlinks that avr-gcc depend on getting mangled.
94
95The solution is to remove and reinstall all affected modules.
96
97```
98brew rm avr-gcc
99brew rm dfu-programmer
100brew rm gcc-arm-none-eabi
101brew rm avrdude
102brew install avr-gcc
103brew install dfu-programmer
104brew install gcc-arm-none-eabi
105brew install avrdude
106```
diff --git a/docs/feature_advanced_keycodes.md b/docs/feature_advanced_keycodes.md
index f61d78d50..2db313e75 100644
--- a/docs/feature_advanced_keycodes.md
+++ b/docs/feature_advanced_keycodes.md
@@ -50,7 +50,7 @@ Once you have a good feel for how layers work and what you can do, you can get m
50 50
51Layers stack on top of each other in numerical order. When determining what a keypress does, QMK scans the layers from the top down, stopping when it reaches the first active layer that is not set to `KC_TRNS`. As a result if you activate a layer that is numerically lower than your current layer, and your current layer (or another layer that is active and higher than your target layer) has something other than `KC_TRNS`, that is the key that will be sent, not the key on the layer you just activated. This is the cause of most people's "why doesn't my layer get switched" problem. 51Layers stack on top of each other in numerical order. When determining what a keypress does, QMK scans the layers from the top down, stopping when it reaches the first active layer that is not set to `KC_TRNS`. As a result if you activate a layer that is numerically lower than your current layer, and your current layer (or another layer that is active and higher than your target layer) has something other than `KC_TRNS`, that is the key that will be sent, not the key on the layer you just activated. This is the cause of most people's "why doesn't my layer get switched" problem.
52 52
53Sometimes, you might want to switch between layers in a macro or as part of a tap dance routine. `layer_on` activates a layer, and `layer_off` deactivates it. More layer-related functions can be found in [action_layer.h](../tmk_core/common/action_layer.h). 53Sometimes, you might want to switch between layers in a macro or as part of a tap dance routine. `layer_on` activates a layer, and `layer_off` deactivates it. More layer-related functions can be found in [action_layer.h](https://github.com/qmk/qmk_firmware/blob/master/tmk_core/common/action_layer.h).
54 54
55# Modifier Keys 55# Modifier Keys
56 56
@@ -154,9 +154,11 @@ You can control the behavior of one shot keys by defining these in `config.h`:
154* `OSM(mod)` - Momentarily hold down *mod*. You must use the `MOD_*` keycodes as shown in [Mod Tap](#mod-tap), not the `KC_*` codes. 154* `OSM(mod)` - Momentarily hold down *mod*. You must use the `MOD_*` keycodes as shown in [Mod Tap](#mod-tap), not the `KC_*` codes.
155* `OSL(layer)` - momentary switch to *layer*. 155* `OSL(layer)` - momentary switch to *layer*.
156 156
157Sometimes, you want to activate a one-shot layer as part of a macro or tap dance routine. To do this, you need to call `set_oneshot_layer(LAYER, ONESHOT_START)` on key down, and `set_oneshot_layer(ONESHOT_PRESSED)` on key up. If you want to cancel the oneshot, call `reset_oneshot_layer()`. For more complicated actions, take a look at the oneshot implementation in [`process_record`](../tmk_core/common/action.c#L429). 157Sometimes, you want to activate a one-shot layer as part of a macro or tap dance routine. To do this, you need to call `set_oneshot_layer(LAYER, ONESHOT_START)` on key down, and `set_oneshot_layer(ONESHOT_PRESSED)` on key up. If you want to cancel the oneshot, call `reset_oneshot_layer()`. For more complicated actions, take a look at the oneshot implementation in [`process_record`](https://github.com/qmk/qmk_firmware/blob/master/tmk_core/common/action.c#L429).
158 158
159## Permissive Hold 159If you're having issues with OSM translating over Remote Desktop Connection, this can be fixed by opening the settings, going to the "Local Resources" tap, and in the keyboard section, change the drop down to "On this Computer". This will fix the issue and allow OSM to function properly over Remote Desktop.
160
161# Permissive Hold
160 162
161As of [PR#1359](https://github.com/qmk/qmk_firmware/pull/1359/), there is a new `config.h` option: 163As of [PR#1359](https://github.com/qmk/qmk_firmware/pull/1359/), there is a new `config.h` option:
162 164
diff --git a/docs/keymap.md b/docs/keymap.md
index 090a92661..b28d21a21 100644
--- a/docs/keymap.md
+++ b/docs/keymap.md
@@ -171,6 +171,8 @@ In this case we've instructed QMK to call the `ACTION_FUNCTION` callback, which
171 171
172> This `fn_actions[]` interface is mostly for backward compatibility. In QMK, you don't need to use `fn_actions[]`. You can directly use `ACTION_FUNCTION(N)` or any other action code value itself normally generated by the macro in `keymaps[][MATRIX_ROWS][MATRIX_COLS]`. N in `F(N)` can only be 0 to 31. Use of the action code directly in `keymaps` unlocks this limitation. 172> This `fn_actions[]` interface is mostly for backward compatibility. In QMK, you don't need to use `fn_actions[]`. You can directly use `ACTION_FUNCTION(N)` or any other action code value itself normally generated by the macro in `keymaps[][MATRIX_ROWS][MATRIX_COLS]`. N in `F(N)` can only be 0 to 31. Use of the action code directly in `keymaps` unlocks this limitation.
173 173
174You can get a full list of Action Functions in [action_code.h](https://github.com/qmk/qmk_firmware/blob/master/tmk_core/common/action_code.h).
175
174#### `action_function()` 176#### `action_function()`
175 177
176To actually handle the keypress event we define an `action_function()`. This function will be called when the key is pressed, and then again when the key is released. We have to handle both situations within our code, as well as determining whether to send/release `KC_ESC` or `KC_GRAVE`. 178To actually handle the keypress event we define an `action_function()`. This function will be called when the key is pressed, and then again when the key is released. We have to handle both situations within our code, as well as determining whether to send/release `KC_ESC` or `KC_GRAVE`.