1
1
mirror of https://github.com/wez/wezterm.git synced 2024-09-20 19:27:22 +03:00
Commit Graph

1346 Commits

Author SHA1 Message Date
Wez Furlong
da90ad7ec6 fix byteorder for bitmaps on macos 2019-09-15 19:09:08 -07:00
Wez Furlong
0b7556893d bunch of plumbing to allow using new window layer as software rendered frontend 2019-09-15 19:09:08 -07:00
Wez Furlong
9e63038391 propagate errors from set_cursor 2019-09-15 19:09:08 -07:00
Wez Furlong
c54d3b55be prove that spawning additional windows works 2019-09-15 19:09:08 -07:00
Wez Furlong
dff8e1e652 introduce WindowContext for manipulating the window in a callback 2019-09-15 19:09:08 -07:00
Wez Furlong
e6265c93a4 add arbitrary line drawing with anti-aliasing 2019-09-15 19:09:08 -07:00
Wez Furlong
5d40733d8c implement basic rendering for macos 2019-09-15 19:09:08 -07:00
Wez Furlong
e371e0385d x11: mouse cursors 2019-09-15 19:09:08 -07:00
Wez Furlong
cc4a089c41 remove some debug prints 2019-09-15 19:09:08 -07:00
Wez Furlong
6902de9da4 mouse events for x11 2019-09-15 19:09:08 -07:00
Wez Furlong
f8f470ab1d add mouse event processing for windows 2019-09-15 19:09:08 -07:00
Wez Furlong
05a60e6e8b plumb keyboard events for x11 2019-09-15 19:09:08 -07:00
Wez Furlong
93f4008719 add keyboard support for windows 2019-09-15 19:09:08 -07:00
Wez Furlong
bed8664617 borrow input types from termwiz 2019-09-15 19:09:08 -07:00
Wez Furlong
7cd92a92c8 introduce Connection::executor() -> impl BasicExecutor
This can be called from any thread
2019-09-15 19:09:08 -07:00
Wez Furlong
cab062118b promise: split execute out to BasicExecutor
This makes it easier to implement just the scheduling portion
without imposing other restrictions on the executor type.
2019-09-15 19:09:08 -07:00
Wez Furlong
7761b76d3c almost impl Executor for x11 Connection 2019-09-15 19:09:08 -07:00
Wez Furlong
0ce4a0fb0d impl Executor for win32 Connection 2019-09-15 19:09:08 -07:00
Wez Furlong
37541eef96 fixup probing for SHM support 2019-09-15 19:09:08 -07:00
Wez Furlong
95cc66e9c0 x11: maintain the image buffer across paint calls 2019-09-15 19:09:08 -07:00
Wez Furlong
ff0d079737 use shm when available 2019-09-15 19:09:08 -07:00
Wez Furlong
3a2493dc9e fixup build on linux 2019-09-15 19:09:08 -07:00
Wez Furlong
b9b94aa516 add resize callback 2019-09-15 19:09:08 -07:00
Wez Furlong
56dc24a1ee hook up paint method for x11 2019-09-15 19:09:08 -07:00
Wez Furlong
1de4165152 x11: plumb destroy notification more correctly 2019-09-15 19:09:08 -07:00
Wez Furlong
ee203b0b76 improve lifecycle management on macos
I'm not totally convinced that the refcounting is right
because I've not seen `dealloc` get triggered, but the
important thing is that closing the window does cause the
rust level objects to be dropped.
2019-09-15 19:09:08 -07:00
Wez Furlong
645f4f6315 really basic macos window 2019-09-15 19:09:08 -07:00
Wez Furlong
dc6ef6c55d basic xcb windows too 2019-09-15 19:09:08 -07:00
Wez Furlong
ddd323464b refactor traits to top level 2019-09-15 19:09:08 -07:00
Wez Furlong
29e3dce2c6 query the dpi for the context 2019-09-15 19:09:08 -07:00
Wez Furlong
cf586cd1d3 use BeginPaint 2019-09-15 19:09:08 -07:00
Wez Furlong
311760df90 introduce a paint context trait 2019-09-15 19:09:08 -07:00
Wez Furlong
a88f0f1beb improve performance for clear operations 2019-09-15 19:09:08 -07:00
Wez Furlong
de7446b172 add beginnings of painting 2019-09-15 19:09:08 -07:00
Wez Furlong
f2928053aa resurrect bitmap render code from 236960e1a8
Earlier in the life of wezterm we had software rendering in src/xgfx.rs.
This is the bitmap portion of that code from rev
236960e1a8, tweaked slightly for more
recent changes to the palette crate.
2019-09-15 19:09:08 -07:00
Wez Furlong
f8e36b22eb window: tidy up crate deps 2019-09-15 19:09:08 -07:00
Wez Furlong
723b76a5ea DRY: use Option so we only call DefWindowProc once 2019-09-15 19:09:08 -07:00
Wez Furlong
f908d6aad3 add destroy callback 2019-09-15 19:09:08 -07:00
Wez Furlong
f678d02193 use dark mode 2019-09-15 19:09:08 -07:00
Wez Furlong
3b572cb35e add window callback trait 2019-09-15 19:09:08 -07:00
Wez Furlong
276041a1db add very basic win32 window creation 2019-09-15 19:09:08 -07:00
Wez Furlong
986cfcd41a Bump version for publish with ssh support 2019-09-15 18:16:43 -07:00
Wez Furlong
16a17857f6 update to ssh2 0.4.0 2019-09-15 17:54:37 -07:00
dependabot[bot]
67b500b891 Bump nokogiri from 1.10.3 to 1.10.4 in /docs
Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.10.3 to 1.10.4.
- [Release notes](https://github.com/sparklemotion/nokogiri/releases)
- [Changelog](https://github.com/sparklemotion/nokogiri/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sparklemotion/nokogiri/compare/v1.10.3...v1.10.4)

Signed-off-by: dependabot[bot] <support@github.com>
2019-09-15 14:37:47 -07:00
Wez Furlong
e818ad9dd1 pty, wezterm: add support for serial ports
Tested only on windows with a USB serial connector to my NUC running
linux.

This allows opening up wezterm on a serial port connection.
Serial is closer to a tty than a pty, so it is a bit different
to configure and use.

This commit allows running:

```
wezterm serial COM3
```

to open a window that connects to the specified COM port.

You can change the baud rate with:

```
wezterm serial --baud 9600 COM3
```

There are more options that could be set, but I'm a bit lazy and
have only exposed the baud rate to the wezterm cli so far.
2019-08-07 10:59:42 -07:00
Wez Furlong
24f6d90ccf improve error reporting for mux-over-ssh 2019-08-06 18:55:55 -07:00
Wez Furlong
786a4c8551 pty: add concept of "default prog" to the pty layer
Previously we had the logic for this in wezterm itself; it would know
how to figure out which shell to run, or whether we should run a
different program by default (the `default_prog` setting).

This was OK, but when I added support for ssh we hit a conceptual
issue: the local side of the ssh session doesn't have any information
about the shell that should be invoked on the remote side and instead
needs to ask the remote to figure that out.   The interfaces defined
in the code didn't allow for this.

This commit formalizes the concept of a default program and allows
it to be carried through to the pty layer, including over ssh sessions.

Since we now have enough smarts to figure out the local shell and the
local home dir, I've removed the logic that run `login -pf` on macos
by default; this should make the terminal startup very slightly faster
on macos, but since I'm currently on a windows system, I can only test
linux and windows on this side of this commit.  I'll follow up on macos
later.
2019-08-06 15:03:25 -07:00
Wez Furlong
073615ef39 pty: remove some dead code 2019-08-06 14:24:06 -07:00
Wez Furlong
863cf1768a pty: fixup passing term to ssh pty requests 2019-08-06 14:17:03 -07:00
Wez Furlong
acfd712efc pty: fix passing env to windows child processes 2019-08-06 14:11:49 -07:00