* add delay if interface not found * adjust initialization behavior * pushed for debugging reasons for concerned parties * comment out simple recenter * remove old style motion, some minor optimizations * optimize default case check * optimized default condition * change manifest install behavior to trigger on desktop mode as well * add desktop mode binding launch * add tracker overlay option to utils * commit to check status * attempt to fix native LH issues with chaperone when exiting * add desktop mode toggle and some cleanup * remove adjust chaperone * remove clang format from ci, increment version, cleanup * update circle ci * fix conversion warning * add F13-19 to keyboard parser * add additional logging around failure to initialize * add unsaved changes * update version 5.8.1 * fix some collisions in enum declaration * add controller powers on steamvr, and no HMD to steamvr tab, increment version * slightly alter drag movement, fix qml issue * code cleanup * fix logspam/attempt to delete non existant overlays * increment version 5.8.3 * add zero-offset to true as potential edge case fix * remove dead code in qml * fix both brightness sliders to be uniform .05 minimum via set, and .2 minimum via slider * attempt to fix recenter, and fix floor * further space drag/recenter improvements * get rid of old code * increment version 5.8.6 * remove old commented code settings page * update documentation * re-add mistakenly removed line
138 lines
4.4 KiB
Markdown
138 lines
4.4 KiB
Markdown
# Keyboard Input Guide
|
|
|
|
## Capabilities
|
|
We provide two distinct types of functionality, `Keyboard Shortcut`'s [macros] and `Key Press`'s [individual key press]
|
|
|
|
### Limitations
|
|
We are not designed to provide a whole bunch of functionality here, if you need a whole bunch of keys instead of 1 or 2 you may want to use another utility such as [OpenVR2Key](https://github.com/BOLL7708/OpenVR2Key) by Boll7708 on Github (no affiliation)
|
|
|
|
### Keyboard Shortcuts
|
|
|
|
- Sends One or Many keys to the OS like a macro.
|
|
- Cannot `hold` keys down
|
|
- Except in the case of Modifiers (alt, ctrl, etc.)
|
|
|
|
### Key Press
|
|
|
|
- Sends One and only One key to the OS.
|
|
- Extra Keys Will be Ignored
|
|
- Mirrors button state on controller
|
|
- If you hold down `a` on a controller the `key` will be held down
|
|
- If you release `a` on a controller the `key` will be released
|
|
- `Key Press System`
|
|
- This Action will ALWAYS be use-able while OVRAS is running
|
|
- `Key Press Misc.`
|
|
- This Action MAY not always be use-able depending on other Settings/Binds*
|
|
- Pending a future update.
|
|
|
|
## How To Set
|
|
|
|
- Go to the Settings File
|
|
- Windows: `%Appdata%\AdvancedSettings-Team` (`C:\Users\<username>\AppData\Roaming\AdvancedSettings-Team`)
|
|
- Linux: `~/.config/AdvancedSettings-Team/`
|
|
- open `OVR Advanced Settings.ini` with a text editor
|
|
- Go to `[keyboardShortcuts]`
|
|
- Add your sequence right after the `=` for the action you want.
|
|
- By Default Keyboard's are set to ctrl+shift+m `^>m`
|
|
- By Default Key Press's are set to F9 `F9`
|
|
- Example for ctrl+alt+delete for keyboardOne Action
|
|
- `keyboardOne=^*DEL`
|
|
- Example for Key Press System for a`
|
|
- `keyPressSystem=a`
|
|
|
|
## Supported Keys
|
|
|
|
### Modifier symbols
|
|
|
|
| Modifier | Symbol |
|
|
|---|---|
|
|
| Ctrl | `^` |
|
|
| Alt | `*` |
|
|
| Shift | `>` |
|
|
| Super (Windows) | `#` |
|
|
|
|
### Literal symbols
|
|
|
|
| Key | Symbol |
|
|
|---|---|
|
|
| A to Z | The letter in lowercase. `a`, `b`, `c`, ... |
|
|
| Number Row 0-9 | The number. `0`, `1`, `2`, ... |
|
|
| Function keys F1-F9 | Capital F followed by number. `F1`, `F2`, `F3`, ... |
|
|
| Function keys F10-F19 | Capital G followed by number. `G0` = F10, `G1` = F11, ... |
|
|
| Backspace | `BACKSPACE` |
|
|
| Space | `SPACE` |
|
|
| Tab | `TAB` |
|
|
| Escape | `ESC` |
|
|
| Insert | `INS` |
|
|
| Delete | `DEL` |
|
|
| End | `END` |
|
|
| Page Down | `PGDN` |
|
|
| Page Up | `PGUP` |
|
|
| Caps Lock | `CAPS` |
|
|
| Print Screen | `PRNSCRN` |
|
|
| Pause/Break | `PAUSE` |
|
|
| Scroll Lock | `SCRLOCK` |
|
|
| Left Arrow | `LEFTARROW` |
|
|
| Right Arrow | `RIGHTARROW` |
|
|
| Up Arrow | `UPARROW` |
|
|
| Down Arrow | `DOWNARROW` |
|
|
| Keypad Slash | `KPSLASH` |
|
|
| Keypad Asterisk | `KPSTAR` |
|
|
| Keypad Minus | `KPMINUS` |
|
|
| Keypad Plus | `KPPLUS` |
|
|
| Enter | `ENTER` |
|
|
| Backslash | `BACKSLASH` |
|
|
|
|
|
|
### Misc symbols
|
|
| Action | Symbol |
|
|
|---|---|
|
|
| Release Held Keys | ` ` (literal space or end of string) |
|
|
|
|
|
|
## Examples
|
|
|
|
### Keyboard Examples
|
|
|
|
| Sequence | String | Key Representation |
|
|
|---|---|---|
|
|
| Ctrl + H | `^h` | Ctrl+, h+, h-, Ctrl- |
|
|
| Ctrl + H + H | `^hh` | Ctrl+, h+, h-, h+, h-, Ctrl- |
|
|
| Ctrl + H twice | `^h ^h` | Ctrl+, h+, h-, Ctrl-, Ctrl+, h+, h-, Ctrl- |
|
|
| Ctrl + Alt + Delete | `^*DEL` | Ctrl+, Alt+, DEL+, DEL-, Ctrl-, Alt- |
|
|
| Alt + Enter | `*ENTER` | Alt+, ENTER+, ENTER-, Alt- |
|
|
| H + E + L + P | `help` | h+, h-, e+, e-, l+, l-, p+, p- |
|
|
| E + N + D | `end` | e+, e-, n+, n-, d+, d- |
|
|
| END Button | `END` | END+, END- |
|
|
| Alt + Shift + ENTER | `*>ENTER` | Alt+, Shift+, ENTER+, ENTER-, Alt-, Shift- |
|
|
| Alt + Tab + G + G + ENTER + Alt + Tab | `*TAB gg ENTER *TAB` | Alt+, Tab+, Tab-, Alt-, g+, g-, g+, g-, ENTER+, ENTER-, Alt+, Tab+, Tab-, Alt- |
|
|
|
|
|
|
### Key Press Examples
|
|
|
|
| Sequence | String | Key Rep On Press | Key Rep on Release
|
|
|---|---|---|---|
|
|
| Ctrl | `^` | Ctrl+ | Ctrl- |
|
|
| H | `h` | h+ | h- |
|
|
| Ctrl + H | `^h` | Ctrl+ | Ctrl- |
|
|
|
|
|
|
## Common Issues
|
|
|
|
### Case Sensative
|
|
- basic characters are all LOWER case, while keys such as ENTER are all UPPER case.
|
|
|
|
### Custom Keys Not Saving.
|
|
- We only load keybinds from file on start-up, and save based on what is in memory (not in file)
|
|
- **ONLY** edit the settings file while Advanced Settings is **not** running.
|
|
|
|
### Focus Issues
|
|
- we deliver the keypress to the OS, depending on your set-up and program you may have to have the window "in-focus"
|
|
|
|
### Multiple Key Events
|
|
- you must separate multiple events with a space (` `)
|
|
- alt + tab, alt + F4 = `*TAB *F4`
|
|
|
|
## Parser Spec
|
|
[Parser Spec](https://github.com/OpenVR-Advanced-Settings/OpenVR-AdvancedSettings/blob/master/docs/specs/Keyboard_Manager-Parser_Spec.md)
|