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
7cdd1876d1
Enable serializing various Line and Cell related 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
891bd89939
add codec skeleton and tests
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
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
4b4be6ac21
remove futurecore
2019-03-04 22:32:59 +00:00
Wez Furlong
1d37e44b62
move promise to its own crate
2019-03-04 15:38:56 +00:00
Wez Furlong
e8a4f8f94c
add executor for promise/future library
2019-03-04 10:48:15 +00:00
Wez Furlong
7ef388e607
add promise library
2019-03-03 15:22:22 -08:00
Wez Furlong
d71ac26b93
add very bare bones skeleton for unix domain socket bits
2019-03-03 05:08:58 -08:00
Wez Furlong
20dcced8f7
fixup windows build
2019-03-02 13:16:25 -08:00
Wez Furlong
5b126b3f1e
Restore fullscreen toggle hotkey and fixup for macos
2019-02-23 13:27:59 -08:00
Stephane Fontaine
b94527664f
Initial xkbcommon support
...
Remove detailed xcb select event hack
Only remove consumed "mod5" for now
which is AltGr.
Get actual modifiers from xkb.
it should enable 1:1 match with user's xmodmad
[clippy] allow keys deadcodes
handle mods & keys separately. Allows passing down `ctrl+2`
state.key_get_utf8 will interpret ctrl+2 (or @, space, ~) to 'ctrl \u{0}'
no need to wait for events.
+ Send delete as enum variant not by char value
Hook XKeysym to termwiz::KeyCode
prefer dealing with chars instead of utf8
Actually this breaks multi unicode characters .. such as J́
Others can be found with
perl -lane '/"\s+#/ && print' < /usr/share/X11/locale/en_US.UTF-8/Compose
Anyway we will need to return a Vec of chars for those.
cleanup
apply rustfmt
query locale via libc
2019-02-23 13:04:39 -08:00
Wez Furlong
983eca1209
enable debug symbols in release builds
2019-02-22 20:59:03 -08:00
Wez Furlong
d35dd3721b
fixup macos build on !wez's laptop
...
Refs: https://github.com/servo/rust-harfbuzz/pull/128
2019-02-22 17:59:48 -08:00
Wez Furlong
97096ffc5d
implement coretext font rendering
...
This uses harfbuzz for shaping and thus can render both emoji and
ligatures
Refs: https://github.com/wez/wezterm/issues/5
2019-02-22 15:21:04 -08:00
Wez Furlong
b0c2704118
clap -> structopt
...
This looks like it will help with some enum parsing
2019-02-20 07:54:31 -08:00
Wez Furlong
98275e78e1
update various crate versions
2019-02-19 20:59:14 -08:00
Wez Furlong
571562351d
migrate wezterm to 2018 edition
2019-02-18 23:17:33 -08:00
Wez Furlong
4c39faffbe
use the open
crate for url clicking
2019-02-18 22:57:40 -08:00
Wez Furlong
ad55946f07
extract freetype font impl to its own module
2019-02-18 12:52:31 -08:00
Wez Furlong
418aa1d458
start teaching rusttype about fallback
2019-02-18 10:22:31 -08:00
Wez Furlong
48cd20a7a9
update coretext dep version
2019-02-18 09:23:18 -08:00
Wez Furlong
4aa1e65505
upgrade glium+glutin to get macos rendering in the center of the window
...
This makes macos basically usable!
2019-02-18 02:37:05 -08:00
Wez Furlong
dc8af0c2bc
basic, comical looking macos support via glium/glutin
2019-02-18 00:34:02 -08:00
Wez Furlong
d69c718a73
use the clipboard crate
...
This removes some tricksy code in favor of a third party crate,
which unlocks the clipboard on windows. I'm not sure how well
this will work on the pure x11 impl yet.
2019-02-17 18:49:22 -08:00
Wez Furlong
de52ce356d
don't build mio on win32
2019-02-17 14:37:07 -08:00
Wez Furlong
ad41cecd6e
make harfbuzz dep optional
2019-02-17 12:55:02 -08:00
Wez Furlong
c650cbbf08
flesh out some of the windows pty impl
2019-02-16 23:46:18 -08:00
Wez Furlong
12e2dcd181
add incomplete shaping plumbing
2019-02-16 17:12:54 -08:00
Wez Furlong
a4e1bd827e
start integrating rusttype and font_loader for windows
2019-02-16 16:15:39 -08:00
Wez Furlong
d95da9c159
add feature to force building with glutin on linux
...
this helps me verify from WSL that I didn't break compilation in
the refactoring to follow
2019-02-16 09:27:22 -08:00
Wez Furlong
9bc99f5f1c
tweak windows imports
2019-02-16 08:54:24 -08:00
Wez Furlong
1ec7feb7fa
add glium dep for windows
2019-02-16 00:12:41 -08:00
Wez Furlong
3090d5c6f4
update freetype and improve loading of emoji fonts on ubuntu 18.04
2018-09-19 17:53:13 -07:00
Wez Furlong
e2461b2380
add concept of implicit hyperlink to termwiz
...
Moves that functionality from wezterm+term into termwiz
2018-08-05 09:13:55 -07:00
Wez Furlong
381e572700
relax some of the dep requirements
2018-08-04 15:35:38 -07:00
Wez Furlong
b7a095ef3f
Update to use termwiz hosted on github
2018-08-04 09:46:46 -07:00
Wez Furlong
f37de9cbe5
use termwiz to replace most of the escape parsing
2018-08-03 22:37:04 -07:00
Wez Furlong
6efce9943c
std::env::home_dir is deprecated, use an alternative
2018-07-11 08:29:11 -07:00
Wez Furlong
41cfcfdb15
Bring back my original xcb+egl window bits
2018-03-04 07:27:18 -08:00
Wez Furlong
079ac49c6b
add guiloop as indirection over glutinloop
...
... and remove dep on glutin. We don't properly compile yet,
but this is a step to bringing back the egl bits we had originally.
2018-03-03 22:03:12 -08:00
Wez Furlong
048a6403bc
Start building out future executor
2018-03-03 08:14:34 -08:00
Wez Furlong
60e89f6328
Fix latency issue with clipboard/selection handling
...
We now use mio to select on both the xcb connection and the
channel that we're using to bridge the threads.
2018-02-27 23:56:20 -08:00
Wez Furlong
981d939298
More gracefully handle running out of texture space
...
I manually checked this by setting TEX_SIZE to a small value
and watching the log reallocate progressively larger sizes.
2018-02-24 23:05:20 -08:00
Wez Furlong
478c64e05e
Parse command line arguments
...
We can now run something other than the shell.
2018-02-23 08:41:46 -08:00
Wez Furlong
9673c8c1b7
roll back bundling of harfbuzz
...
This will likely break travis; I'll follow up with something to help with that.
Refs: https://github.com/wez/wezterm/issues/1
2018-02-22 21:07:17 -08:00