aboutsummaryrefslogtreecommitdiff
path: root/docs/feature_mouse_keys.md
diff options
context:
space:
mode:
authorskullydazed <skullydazed@users.noreply.github.com>2017-10-24 20:34:28 -0700
committerGitHub <noreply@github.com>2017-10-24 20:34:28 -0700
commit67cc5cebc0430d15169e2c649ea25112a31bfa31 (patch)
treef90f432a40b1d03ec7b9e68666c2444f2b2d0e79 /docs/feature_mouse_keys.md
parent8892c50336fe49fbd3524ed44f2139074dca5ba6 (diff)
downloadqmk_firmware-67cc5cebc0430d15169e2c649ea25112a31bfa31.tar.gz
qmk_firmware-67cc5cebc0430d15169e2c649ea25112a31bfa31.zip
Restructure the hardware and feature docs to make things easier to find (#1888)
* fix #1313 by documenting more config.h options * Clean up and organize documentation
Diffstat (limited to 'docs/feature_mouse_keys.md')
-rw-r--r--docs/feature_mouse_keys.md81
1 files changed, 81 insertions, 0 deletions
diff --git a/docs/feature_mouse_keys.md b/docs/feature_mouse_keys.md
new file mode 100644
index 000000000..560bd0470
--- /dev/null
+++ b/docs/feature_mouse_keys.md
@@ -0,0 +1,81 @@
1# Mousekeys
2
3
4Mousekeys is a feature that allows you to emulate a mouse using your keyboard. You can move the pointer around, click up to 5 buttons, and even scroll in all 4 directions. QMK uses the same algorithm as the X Window System MouseKeysAccel feature. You can read more about it [on Wikipedia](https://en.wikipedia.org/wiki/Mouse_keys).
5
6## Adding Mousekeys To a Keymap
7
8There are two steps to adding Mousekeys support to your keyboard. You must enable support in the Makefile and you must map mouse actions to keys on your keyboard.
9
10### Adding Mousekeys support in the `Makefile`
11
12To add support for Mousekeys you simply need to add a single line to your keymap's `Makefile`:
13
14```
15MOUSEKEY_ENABLE = yes
16```
17
18You can see an example here: https://github.com/qmk/qmk_firmware/blob/master/keyboards/clueboard/keymaps/mouse_keys/Makefile
19
20### Mapping Mouse Actions To Keyboard Keys
21
22You can use these keycodes within your keymap to map button presses to mouse actions:
23
24|Long Name|Short Name|Description|
25|---------|----------|-----------|
26|KC_MS_UP|KC_MS_U|Mouse Cursor Up|
27|KC_MS_DOWN|KC_MS_D|Mouse Cursor Down|
28|KC_MS_LEFT|KC_MS_L|Mouse Cursor Left|
29|KC_MS_RIGHT|KC_MS_R|Mouse Cursor Right|
30|KC_MS_BTN1|KC_BTN1|Mouse Button 1|
31|KC_MS_BTN2|KC_BTN2|Mouse Button 2|
32|KC_MS_BTN3|KC_BTN3|Mouse Button 3|
33|KC_MS_BTN4|KC_BTN4|Mouse Button 4|
34|KC_MS_BTN5|KC_BTN5|Mouse Button 5|
35|KC_MS_WH_UP|KC_WH_U|Mouse Wheel Up|
36|KC_MS_WH_DOWN|KC_WH_D|Mouse Wheel Down|
37|KC_MS_WH_LEFT|KC_WH_L|Mouse Wheel Left|
38|KC_MS_WH_RIGHT|KC_WH_R|Mouse Wheel Right|
39|KC_MS_ACCEL0|KC_ACL0|Set Mouse Acceleration Speed to 0|
40|KC_MS_ACCEL1|KC_ACL1|Set Mouse Acceleration Speed to 1|
41|KC_MS_ACCEL2|KC_ACL2|Set Mouse Acceleration Speed to 2|
42
43You can see an example in the `_ML` here: https://github.com/qmk/qmk_firmware/blob/master/keyboards/clueboard/keymaps/mouse_keys/keymap.c#L46
44
45## Configuring the behavior of Mousekeys
46
47The default speed for controlling the mouse with the keyboard is intentionaly slow. You can adjust these parameters by adding these settings to your keymap's `config.h` file. All times are specified in miliseconds (ms).
48
49```
50#define MOUSEKEY_DELAY 300
51#define MOUSEKEY_INTERVAL 50
52#define MOUSEKEY_MAX_SPEED 10
53#define MOUSEKEY_TIME_TO_MAX 20
54#define MOUSEKEY_WHEEL_MAX_SPEED 8
55#define MOUSEKEY_WHEEL_TIME_TO_MAX 40
56```
57
58
59### `MOUSEKEY_DELAY`
60
61When one of the mouse movement buttons is pressed this setting is used to define the delay between that button press and the mouse cursor moving. Some people find that small movements are impossible if this setting is too low, while settings that are too high feel sluggish.
62
63### `MOUSEKEY_INTERVAL`
64
65When a movement key is held down this specifies how long to wait between each movement report. Lower settings will translate into an effectively higher mouse speed.
66
67### `MOUSEKEY_MAX_SPEED`
68
69As a movement key is held down the speed of the mouse cursor will increase until it reaches `MOUSEKEY_MAX_SPEED`.
70
71### `MOUSEKEY_TIME_TO_MAX`
72
73How long you want to hold down a movement key for until `MOUSEKEY_MAX_SPEED` is reached. This controls how quickly your cursor will accelerate.
74
75### `MOUSEKEY_WHEEL_MAX_SPEED`
76
77The top speed for scrolling movements.
78
79### `MOUSEKEY_WHEEL_TIME_TO_MAX`
80
81How long you want to hold down a scroll key for until `MOUSEKEY_WHEEL_MAX_SPEED` is reached. This controls how quickling your scrolling will accelerate. \ No newline at end of file