aboutsummaryrefslogtreecommitdiffstats
path: root/docs/features/key_lock.md
diff options
context:
space:
mode:
authorRyan2024-06-02 04:42:24 +0200
committerGitHub2024-06-02 04:42:24 +0200
commit78a0adfbb4d2c4e12f93f2a62ded0020d406243e (patch)
treee6e123b36569559233025add654580e090dc0154 /docs/features/key_lock.md
parentfa6d23235bf429446250cd5212e209d5fbfdbac2 (diff)
[docs] Organize driver & feature docs into subfolders (#23848)
Co-authored-by: Nick Brassel <nick@tzarc.org>
Diffstat (limited to 'docs/features/key_lock.md')
-rw-r--r--docs/features/key_lock.md23
1 files changed, 23 insertions, 0 deletions
diff --git a/docs/features/key_lock.md b/docs/features/key_lock.md
new file mode 100644
index 0000000000..ba3b71ef06
--- /dev/null
+++ b/docs/features/key_lock.md
@@ -0,0 +1,23 @@
+# Key Lock
+
+Sometimes you may find yourself needing to hold down a specific key for a long period of time. Key Lock holds down the next key you press for you. Press it again, and it will be released.
+
+Let's say you need to type in ALL CAPS for a few sentences. Hit `QK_LOCK`, and then Shift. Now, Shift will be considered held until you tap it again. You can think of Key Lock as Caps Lock, but supercharged.
+
+## Usage
+
+First, enable Key Lock by setting `KEY_LOCK_ENABLE = yes` in your `rules.mk`. Then pick a key in your keymap and assign it the keycode `QK_LOCK`.
+
+## Keycodes
+
+|Keycode |Description |
+|---------|--------------------------------------------------------------|
+|`QK_LOCK`|Hold down the next key pressed, until the key is pressed again|
+
+## Caveats
+
+Key Lock is only able to hold standard action keys and [One Shot modifier](../one_shot_keys) keys (for example, if you have your Shift defined as `OSM(MOD_LSFT)`).
+This does not include any of the QMK special functions (except One Shot modifiers), or shifted versions of keys such as `KC_LPRN`. If it's in the [Basic Keycodes](../keycodes_basic) list, it can be held.
+
+Switching layers will not cancel the Key Lock. The Key Lock can be cancelled by calling the `cancel_key_lock()` function.
+