SIGN IN SIGN UP

feat(web): put the page keys on the pad, in the keyboard's own layout

The relay now turns PageUp, PageDown, Home and End into the CSI bytes a
terminal emits, so the pad can offer them: it sends the key name and the
relay decides how it travels. Modified forms compose too, which is why the
pad cannot build a chord the relay would have to refuse.

The pad also gets the keyboard's own arrow layout. It ran Tab/left/down/up
across one row and right/Shift/Ctrl across the next, so the arrows neither
aligned nor read in any keyboard order; grid-template-areas puts up over
down with a deliberately empty cell beside it, and PgUp/PgDn take the free
column on the same axis.

tests/test_web_keys.py measures the boxes rather than reading the CSS, so
the inverted T is asserted as geometry and not as a rule that happens to be
present.

Verified against the real thing on a throwaway pane: vim moved 1 -> 68 on
ESC[6~, to 500 on ESC[1;5F and back to 1 on ESC[1;5H. less pages on
ESC[5~/ESC[6~ but reads ESC[1;5H as its own help key -- it does not decode
modifier parameters -- so the bare page keys are universal and the ctrl+
forms depend on the receiving TUI.
N
Nick007 committed
bf4f7318b3ed62916eadea1645481bba36147c8b
Parent: 06fcb5d