connecting...
input overlay configurator
instructions
  1. install input-overlay plugin in obs
  2. enable websocket server in plugin settings (not obs websocket, the plugin one)
  3. check the port number (usually 16899)
  4. restart obs
  5. generate the overlay link
  6. create a new browser source in obs
  7. paste the link into the browser source
connection
style & animation

24px
8px
1.05x
1.0x
1.0x
100%
patch notesx

2025-11-30


bug fixes

  • fixed mouse label not scaling correctly inside its element.
  • added a dedicated “dummy” string to remove rows without needing invisible tags.

quality of life

  • added patch notes viewer.
  • added glow highlight indicating when the url has been updated.
  • separated scroll-up and scroll-down into distinct combo options.
  • mouse preview now works everywhere on the page.
  • default scroll arrows updated to a thicker style.

custom mouse row

  • added fully customizable mouse row.
  • implemented wide left mouse button: mouse_left:"m1":mouse-wide.
  • added improved 3-label scroller: scroller:"-":"↑":"↓".
  • added right mouse button: mouse_right:"m2".

cheat sheets

  • added cheat sheet support for custom configuration elements.

key styling

  • refactored internal key width styling system.
live preview
custom layout
cheat sheet x

key naming conventions

use the internal name when defining a key in your custom layout string. the basic syntax is:

🛈 comma separated for multiple keys
[internal_name]:"[label]":[width class]

standard keys (a-z, 0-9, and symbols)

label example internal name
a - z key_a - key_z
0 - 9 key_0 - key_9
` (tilde) key_backtick
- (minus) key_minus
= (equals) key_equals
[ (open bracket) key_openbracket
] (close bracket) key_closebracket
\ (backslash) key_backslash
; (semicolon) key_semicolon
' (apostrophe) key_apostrophe
, (comma) key_comma
. (period) key_period
/ (slash) key_slash

control & special keys

label example internal name
esc key_escape
tab key_tab
caps key_capslock
shift (left/right) key_leftshift, key_rightshift
ctrl (left/right) key_leftctrl, key_rightctrl
alt (left/right) key_leftalt, key_rightalt
win/meta (left/right) key_leftwin, key_rightwin
space key_space
enter key_enter
backspace key_backspace
menu key_menu

function & utility keys

label example internal name
f1 - f12 key_f1 - key_f12
prtscn key_printscreen
scrlck key_scrolllock
pause key_pause
ins key_insert
del key_delete
home / end key_home, key_end
pgup / pgdn key_pageup, key_pagedown
arrows key_leftarrow, key_uparrow, key_rightarrow, key_downarrow

numpad keys

label example internal name
numlock key_numlock
/ * - + key_numpad_divide, key_numpad_multiply, key_numpad_subtract, key_numpad_add
7 - 9 key_numpad_7, key_numpad_8, key_numpad_9
4 - 6 key_numpad_4, key_numpad_5, key_numpad_6
1 - 3 key_numpad_1, key_numpad_2, key_numpad_3
0 . enter key_numpad_0, key_numpad_decimal, key_numpad_enter

mouse and scroller identifiers

label example internal name / type
m1 (left) mouse_left
m2 (right) mouse_right
m3 (middle/wheel) mouse_middle
m4 mouse4
m5 mouse5
scroller display scroller (requires 4 labels: default, up, down)
side button combo mouse_side (requires 3 labels: display, m4, m5)

width classes

use these for the optional [width class] part of the key definition:

class name width notes
(none) 1u default width.
w-1-25u 1.25u
w-1-5u 1.5u common for tab, ctrl, alt.
w-1-75u 1.75u
w-2u 2u common for shift.
w-6-25u 6.25u full size space bar.
super-wide 3u used specifically for the tiny spacebar.
invisible 1u (or other) key exists for press detection but is hidden.