aboutsummaryrefslogtreecommitdiff
path: root/docs/features/grave_esc.md
diff options
context:
space:
mode:
authorRyan <[email protected]>2024-06-02 12:42:24 +1000
committerGitHub <[email protected]>2024-06-02 12:42:24 +1000
commit78a0adfbb4d2c4e12f93f2a62ded0020d406243e (patch)
treee6e123b36569559233025add654580e090dc0154 /docs/features/grave_esc.md
parentfa6d23235bf429446250cd5212e209d5fbfdbac2 (diff)
downloadqmk_firmware-78a0adfbb4d2c4e12f93f2a62ded0020d406243e.tar.gz
qmk_firmware-78a0adfbb4d2c4e12f93f2a62ded0020d406243e.zip
[docs] Organize driver & feature docs into subfolders (#23848)
Co-authored-by: Nick Brassel <[email protected]>
Diffstat (limited to 'docs/features/grave_esc.md')
-rw-r--r--docs/features/grave_esc.md32
1 files changed, 32 insertions, 0 deletions
diff --git a/docs/features/grave_esc.md b/docs/features/grave_esc.md
new file mode 100644
index 0000000000..09d098ee4e
--- /dev/null
+++ b/docs/features/grave_esc.md
@@ -0,0 +1,32 @@
+# Grave Escape
+
+If you're using a 60% keyboard, or any other layout with no F-row, you will have noticed that there is no dedicated Escape key. Grave Escape is a feature that allows you to share the grave key (<code>&#96;</code> and `~`) with Escape.
+
+## Usage
+
+Replace the `KC_GRV` key in your keymap (usually to the left of the `1` key) with `QK_GESC`. Most of the time this key will output `KC_ESC` when pressed. However, when Shift or GUI are held down it will output `KC_GRV` instead.
+
+## What Your OS Sees
+
+If Mary presses `QK_GESC` on her keyboard, the OS will see an KC_ESC character. Now if Mary holds Shift down and presses `QK_GESC` it will output `~`, or a shifted backtick. Now if she holds GUI/CMD/WIN, it will output a simple <code>&#96;</code> character.
+
+## Keycodes
+
+|Key |Aliases |Description |
+|-----------------|---------|------------------------------------------------------------------|
+|`QK_GRAVE_ESCAPE`|`QK_GESC`|Escape when pressed, <code>&#96;</code> when Shift or GUI are held|
+
+### Caveats
+
+On macOS, Command+<code>&#96;</code> is by default mapped to "Move focus to next window" so it will not output a backtick. Additionally, Terminal always recognises this shortcut to cycle between windows, even if the shortcut is changed in the Keyboard preferences.
+
+## Configuration
+
+There are several possible key combinations this will break, among them Control+Shift+Escape on Windows and Command+Option+Escape on macOS. To work around this, you can `#define` these options in your `config.h`:
+
+|Define |Description |
+|--------------------------|-----------------------------------------|
+|`GRAVE_ESC_ALT_OVERRIDE` |Always send Escape if Alt is pressed |
+|`GRAVE_ESC_CTRL_OVERRIDE` |Always send Escape if Control is pressed |
+|`GRAVE_ESC_GUI_OVERRIDE` |Always send Escape if GUI is pressed |
+|`GRAVE_ESC_SHIFT_OVERRIDE`|Always send Escape if Shift is pressed |