Wez Furlong
1a883a40e9
use vte with larger OSC buffer support
...
I wanted to see how much work remains to enable iterm2 image
display; one of the blockers was a limit in the size of the
buffer in the vte crate, which has been removed in my fork
of vte.
As part of testing our ability to absorb that data, I found
a couple of issues with applying the image cells to the display,
so this commit also takes care of that.
We still don't have code to connect the cell image data to the
opengl render layer.
2019-03-22 20:41:50 -07:00
Wez Furlong
a4a078cf98
Employ zstd compression for large pdus
...
This cuts down the coarse data from ~13k to ~200 bytes
2019-03-22 20:41:50 -07:00
Wez Furlong
2077e3fd21
use varbincode for mux protocol; results in ~3x smaller packets
...
Reduces the size of the full screen serialized size from 40k -> 13k.
Note that the `zlo` crate (which doesn't appear to have a repo
on github any longer; sources are only found in the crates.io
documentation source view), employes zigzag encoding of all integers
and floating point values and takes the size down to just under 10k.
A todo is to follow up on that and see if we could adopt the same
scheme in varbincode.
2019-03-22 20:41:50 -07:00
Wez Furlong
322f7c74e6
add varbincode
2019-03-22 20:41:50 -07:00
Wez Furlong
217ad94c80
fixup tests for Rc<Hyperlink> -> Arc<Hyperlink> change
2019-03-22 20:41:50 -07:00
Wez Furlong
fe7502fc0b
implement coarse tab data rpc PoC
...
This required switching away from Rc to Arc so that the data in the
client can transit between threads.
This isn't useful yet.
2019-03-22 20:41:50 -07:00
Wez Furlong
7cdd1876d1
Enable serializing various Line and Cell related structs
2019-03-22 20:41:50 -07:00
Wez Furlong
86ed003428
factor out diff state local vars, add diff_lines method
...
The intent is to use this together with the terminal emulator;
when running the mux we'd like to use the Surface change stream.
2019-03-22 20:41:50 -07:00
Wez Furlong
4bdbb072f9
add ListTabs rpc
2019-03-22 20:41:50 -07:00
Wez Furlong
4269f6ff5e
reduce boilerplate for the mux client
2019-03-22 20:41:50 -07:00
Wez Furlong
c6d9364901
move serial number to framing layer
...
This makes it generally smaller because we can use a varint encoding
for it, and avoids repeating that field in all of the pdu structs.
2019-03-22 20:41:50 -07:00
Wez Furlong
6575f50ffc
the directories crate spawns a lot of children! stop using it
...
The `directories` crate unconditionally and eagerly tries to spawn
`xdg-user-dir` for all possible directories that it might be asked
about. This is relatively expensive and undesirable.
Shift to the `dirs` crate instead, which doesn't seem to need
to run `xdg-user-dir` at all.
Maintain these probed dirs as singletons via lazy_static.
2019-03-22 20:41:50 -07:00
Wez Furlong
bd1b66e758
add simple ping/pong cli rpc
2019-03-22 20:41:50 -07:00
Wez Furlong
d3b3027cfc
introduce subcommands; wezterm start
now spawns the frontend
...
This is to allow adding subcommands like `wezterm cli` to interact
with the mux server.
2019-03-22 20:41:50 -07:00
Wez Furlong
891bd89939
add codec skeleton and tests
2019-03-22 20:41:50 -07:00
Wez Furlong
2b4b27c9c0
start a unix listener when running the mux server
2019-03-22 20:41:50 -07:00
Wez Furlong
0d51fd0e7d
pass config into Mux
2019-03-22 20:41:50 -07:00
Wez Furlong
ea8fa17f6e
add config for the mux socket path
2019-03-22 20:41:50 -07:00
Wez Furlong
05c14e5bc7
add MuxExecutor
2019-03-22 20:41:50 -07:00
Wez Furlong
0eb7f05eff
GuiSender doesn't need to be pub
2019-03-22 20:41:50 -07:00
Wez Furlong
27de21ccc3
remove unused method
2019-03-22 20:41:50 -07:00
Wez Furlong
3c7eeac2da
stub out muxserver frontend
2019-03-22 20:41:50 -07:00
Wez Furlong
c6acc36ee5
GuiSystem -> FrontEnd
2019-03-22 20:41:50 -07:00
Wez Furlong
943fd74d5e
rename GuiSelection -> FrontEndSelection
2019-03-22 20:41:50 -07:00
Wez Furlong
6d82ee89a4
move SessionTerminated to mux module
2019-03-22 20:41:50 -07:00
Wez Furlong
bc313522a8
restructure to put gui loop and window impls closer together
2019-03-22 20:41:50 -07:00
Wez Furlong
271dd0edf4
remove unused import
2019-03-22 20:41:50 -07:00
Wez Furlong
4b5d51f708
remove old fontconfig pattern code
2019-03-22 20:41:50 -07:00
Wez Furlong
9d9fd6eb6b
pin harfbuzz to my version so that macos continues to build
2019-03-22 12:24:52 -07:00
Wez Furlong
c19e0fb5d8
fixup x11 compilation
2019-03-13 08:22:54 -07:00
Wez Furlong
d1b9974147
fixup windows build
2019-03-13 08:17:16 -07:00
Wez Furlong
fcc747329e
remove unused import
2019-03-13 08:06:29 -07:00
Wez Furlong
551630c3a6
add missing windows specific constraint
2019-03-13 08:04:23 -07:00
Wez Furlong
5b2bc3cc6a
remove some dead code
2019-03-13 08:00:53 -07:00
Wez Furlong
e923473b5c
guicommon::tabs -> guicommon::localtab
2019-03-13 07:44:31 -07:00
Wez Furlong
e69290715b
move Tabs -> Mux windows hash
2019-03-10 10:55:33 +00:00
Wez Furlong
a1bdddd8e5
move Tab trait to mux module
2019-03-07 23:39:10 +00:00
Wez Furlong
431e32d719
Tab -> trait + LocalTab impl
2019-03-07 23:29:06 +00:00
Wez Furlong
a0a0bc0902
Add base91 crate
...
The plan is to use this to tunnel the mux protocol over a pty.
2019-03-07 09:03:19 +00:00
Wez Furlong
4c322e1c69
add useless mux server mode
2019-03-06 23:06:38 +00:00
Wez Furlong
e3fa12ee41
refactor error/eof case in mux pty reader
2019-03-05 20:13:40 +00:00
Wez Furlong
b24f27d2a7
fix compilation with x11
2019-03-05 20:03:30 +00:00
Wez Furlong
1f9d95d57f
tweak executor trait for compat with x11
2019-03-04 23:13:37 +00:00
Wez Furlong
89dff14c4a
maybe fixup x11 build
2019-03-04 22:58:50 +00:00
Wez Furlong
2bfc4fe401
fix warning
2019-03-04 22:44:09 +00:00
Wez Furlong
75be9d31cc
maybe remove futurecore stuff from x11
2019-03-04 22:42:22 +00:00
Wez Furlong
4b4be6ac21
remove futurecore
2019-03-04 22:32:59 +00:00
Wez Furlong
12e93fce57
register mux as a gui thread local variable
2019-03-04 20:44:52 +00:00
Wez Furlong
aa6cfb00dd
thread executor through to mux code
2019-03-04 20:19:08 +00:00
Wez Furlong
ac016c0494
maybe remove a couple of poll_fn uses from x11
...
(I can't compile it locally atm)
2019-03-04 20:00:08 +00:00