fa85ea8208
xP: parallelize event reception and sending
...
Still trying to make the frontend load tolerably fast,
still unsuccessfully.
2022-09-14 06:56:36 +02:00
b728235b6c
xP: move to a WebSocket package with compression
...
Compression happens to be broken in Safari,
though luckily there are friendlier browsers one can use.
2022-09-14 06:56:35 +02:00
b2b3093e0e
xP: remove debugging protocol logs from JS
2022-09-14 01:01:10 +02:00
a551e911ab
xP: adjust buffer list iteration and styling
...
M-a and M-! should iterate, rather than keep jumping back
to the same buffers.
The current item wasn't visible enough,
and it jumped around in my 1.5-scale Firefox.
2022-09-13 03:21:41 +02:00
a61789637a
xP: deal with macOS/Blink for good
2022-09-12 16:45:29 +02:00
8968100a28
xP: improve favicon behaviour
...
Make it black when disconnected, and orange when the document
is hidden but the current tab is highlighted.
2022-09-12 03:49:29 +02:00
b4ee523628
xP: bind buffer iteration to M-PageUp/PageDown
2022-09-11 21:50:09 +02:00
c3a52b9e4c
xP: indicate hidden buffer lines
2022-09-11 21:50:09 +02:00
96fc12bc4c
xC/xP: send buffer type and server state
...
Also make PM highlighting behaviour consistent.
2022-09-11 21:50:08 +02:00
36f77e74fb
xP: change the favicon when highlighted
2022-09-11 19:10:41 +02:00
23deca45c9
xP: fix non-ASCII text completion
2022-09-11 19:10:40 +02:00
62773acaa0
xP: beep on highlight
...
800 Hz seems like it could match a POST beep.
2022-09-11 03:42:08 +02:00
7e3919e25d
xP: add basic buffer input history
...
Bind M-p and M-n as in xC.
Also make all our bindings reachable on macOS.
2022-09-11 03:10:23 +02:00
add670212f
xP: remember buffer input selections
2022-09-11 01:01:53 +02:00
95aa89ee97
xP: bind M-h to toggle history, and adjust focus
2022-09-10 20:39:03 +02:00
0bc2c12eec
xP: handle the M-Tab binding from xC
2022-09-10 19:36:49 +02:00
3330683ad6
xP: handle M-a and M-! bindings from xC
2022-09-10 19:34:01 +02:00
0015d26dc8
xC/xP: support hiding unimportant messages at all
2022-09-10 19:01:42 +02:00
36529a46fd
xP: also scroll to bottom on window resize
2022-09-10 18:10:08 +02:00
632ac992ab
xC/xP: only send buffer stats in the initial sync
...
The client and frontends track these separately,
there is no need for hard synchronization.
2022-09-10 17:38:33 +02:00
d29e2cbfe8
xP: detect links in the log
2022-09-10 17:18:22 +02:00
240fac4d90
xP: only allow vertical textarea resizing
2022-09-10 17:08:14 +02:00
c06894b291
xP: fix command sequence number generation
2022-09-10 17:05:39 +02:00
9eaf78f823
xP: open links in a new tab/window
2022-09-10 17:05:39 +02:00
5f02dddd11
xP: advance unread marker when the log is visible
2022-09-10 17:05:39 +02:00
6f4a3f4657
xP: advance unread marker in an inactive tab
2022-09-10 17:05:39 +02:00
6387145adc
xP: improve line wrapping
2022-09-10 17:05:38 +02:00
8c8e06b015
xP: enhance mobile experience
...
The left column used to jump around, and phones were near-unusable.
2022-09-08 17:11:10 +02:00
d7b6967b6f
xP: allow setting a fixed WS URI
...
For reverse proxies.
2022-09-08 17:11:01 +02:00
8c3ee80b21
xC/xP: finalize and implement Event.PING
2022-09-08 02:45:37 +02:00
4ba28c6ed3
xC/xP: mark highlights and buffer activity
...
And more or less finalize out the protocol for this use case.
2022-09-08 01:28:51 +02:00
45aa0e8dfb
xP: remember to differentiate today
2022-09-07 19:23:47 +02:00
2075c38fd1
xP: use an industry-standard name for a button
2022-09-07 17:33:38 +02:00
88a7b1a2d9
xP: resolve various issues, mostly in styling
2022-09-07 17:26:43 +02:00
2341228efd
xP: implement buffer line leakage
...
Rather than on redisplay, these get cleared on reconnect.
2022-09-07 15:34:52 +02:00
2e3005d88b
xP: abort autocomplete when no longer applicable
2022-09-07 15:10:17 +02:00
2b13f891c9
xP: clean up
2022-09-07 14:45:44 +02:00
d55402234c
xP: add a temporary lock for autoscroll
2022-09-07 13:53:28 +02:00
e3149b9abf
xP: support showing buffer logs
2022-09-07 13:53:28 +02:00
976e7bfbb4
xP: separate input buffers
2022-09-07 13:04:30 +02:00
93b66b6a26
xP: scroll to bottom and focus the input on switch
2022-09-06 22:33:00 +02:00
ee1750c23c
xP: clean up
2022-09-06 22:33:00 +02:00
f5104c807d
xP: indicate connection state
2022-09-06 20:17:40 +02:00
8cd94b30f6
xP: implement tab completion
...
Currently it only goes for the longest common prefix.
Refactor WebSocket handling into an abstraction for our protocol.
The Go code generater finally needed fixing.
2022-09-06 19:41:05 +02:00
31e9c6d2d5
xC/xP: pass timestamps with millisecond precision
...
Future-proofing the protocol.
2022-09-06 14:39:01 +02:00
d2af6cf64c
xP: convert links to link elements
2022-09-06 14:36:30 +02:00
d7b0b447b7
xC/xP: turn the action asterisk into a rendition
2022-09-05 23:22:09 +02:00
25ad5ae0ec
xC/xP: fix colour values, and render them with CSS
2022-09-05 23:22:09 +02:00
aceac26cbb
Fix up xP's module path, mention the licence
2022-09-05 23:07:20 +02:00
1639235a48
Start X11 and web frontends for xC
...
For this, we needed a wire protocol. After surveying available options,
it was decided to implement an XDR-like protocol code generator
in portable AWK. It now has two backends, per each of:
- xF, the X11 frontend, is in C, and is meant to be the primary
user interface in the future.
- xP, the web frontend, relies on a protocol proxy written in Go,
and is meant for use on-the-go (no pun intended).
They are very much work-in-progress proofs of concept right now,
and the relay protocol is certain to change.
2022-09-05 14:26:00 +02:00