1
1
mirror of https://github.com/wez/wezterm.git synced 2024-11-23 23:21:08 +03:00
Commit Graph

1009 Commits

Author SHA1 Message Date
Wez Furlong
7b7258d410 plumb title for mux tabs 2019-06-11 08:35:07 -07:00
Wez Furlong
a7306f520a improve window<->tab management in spawn and mux
spawn now requires that the window_id be passed in; this makes it
a bit easier to spawn a remote tab into an existing window.
As part of this, beef up how we manage the window/tab association.
2019-06-11 08:23:21 -07:00
Wez Furlong
7456c06028 basically working attach to remote tabs/windows
The Domain::spawn interface needs to be adjusted to allow indicating
which window we want to spawn into, or whether the spawn should
create a new window, but aside from that, we can now attach to
a mux server and instantiate tabs and windows!
2019-06-11 06:48:19 -07:00
Wez Furlong
9b6800f589 we can now pass the clipboard back from the remote tab
So clicking to select now populates the clipboard
2019-06-10 08:13:14 -07:00
Wez Furlong
2ae68209b7 improve dirty line management in client tabs
This fixes up a case where a tab was closed and the screen
didn't repaint to show the now-current tab.
2019-06-10 07:57:08 -07:00
Wez Furlong
2a91921b6e poll more frequently 2019-06-10 07:49:55 -07:00
Wez Furlong
b5856cf474 clear dirty lines as part of obtaining the coarse data 2019-06-10 07:45:04 -07:00
Wez Furlong
abd81d1c01 slightly improve cpu usage by limiting poll frequency
The client domain stuff is now what I'd describe as almost
basically functional.  It's not a great experience because
the latency is a bit high (it uses the coarse render data
as a proof of concept, and polls that every 100ms), and doesn't
connect the clipboard to the remote session.  It also doesn't
enumerate and instantiate tabs for existing tabs on the remote
server, and doesn't have a way to gracefully detach from the
remote.

However, it is possible to connect and spawn tabs and interact
with them.
2019-06-10 07:27:35 -07:00
Wez Furlong
f95cdfad0e clippy 2019-06-09 21:15:43 -07:00
Wez Furlong
70579b45b7 improve error handling in mux codec 2019-06-09 21:00:00 -07:00
Wez Furlong
24559d508f fix a couple of warnings 2019-06-09 18:00:46 -07:00
Wez Furlong
8b6317ba19 add resize to clienttab 2019-06-09 17:59:41 -07:00
Wez Furlong
d00eb0cab4 implement client side send paste 2019-06-09 16:39:54 -07:00
Wez Furlong
86cd39eb4e we can now send input to a client tab 2019-06-09 16:33:57 -07:00
Wez Furlong
c1e605aedf register client tab with mux, add reader that never reads 2019-06-09 15:58:06 -07:00
Wez Furlong
46fb1fe40c we can now see the remote tab rendered via the muxed domain 2019-06-09 13:38:19 -07:00
Wez Furlong
ee54864d6a allow writing to a muxed tab 2019-06-09 13:00:36 -07:00
Wez Furlong
661daa4f77 add stub renderable for muxed tab 2019-06-09 12:44:22 -07:00
Wez Furlong
e55233aa3d add option to use mux domain 2019-06-09 11:41:47 -07:00
Wez Furlong
18d5814b4f add stub for muxed tab 2019-06-09 11:35:17 -07:00
Wez Furlong
a89373be63 make mux traits Downcast-able 2019-06-09 11:14:43 -07:00
Wez Furlong
7197ee6277 add Downcast trait to FrontEnd
This removes some awkwardness in the impl by allowing casting
to a concrete implementation.  This is a pattern I want to use
more widely and this diff proves the concept.
2019-06-09 11:13:05 -07:00
Wez Furlong
bfdeca4b79 start building out the muxed client Domain 2019-06-09 10:58:52 -07:00
Wez Furlong
e98d8acb96 add spawn rpc 2019-06-09 08:15:37 -07:00
Wez Furlong
0a1dd49409 more dyn courtesy of cargo +nightly fix 2019-06-09 07:44:02 -07:00
Wez Furlong
b43c207167 remove defunkt write_all function
This was from a time when we were miusing non-blocking io
2019-06-09 07:36:30 -07:00
Wez Furlong
8055957406 clippy 2019-06-09 07:33:00 -07:00
Wez Furlong
92917a3a66 use PtySize in Tab::resize interface 2019-06-09 06:53:24 -07:00
Wez Furlong
c8ad858a29 connect domain id to spawn_tab
Even though we currently only have a single domain, we're now able
to spawn tabs in alternate domains.
2019-06-08 21:31:33 -07:00
Wez Furlong
87e7a7089c assign domains ids and associate tabs with them
The idea is that we can use this to spawn a tab in a
specific domain.  For example, "spawn tab in domain of current tab"
or "spawn tab in default domain".
2019-06-08 21:30:54 -07:00
Wez Furlong
5ebad9e63a dyn everywhere 2019-06-08 21:28:11 -07:00
Wez Furlong
f41c62c07b another linux build fix 2019-06-08 18:46:53 -07:00
Wez Furlong
68d5287acb fixup linux build 2019-06-08 18:25:12 -07:00
Wez Furlong
63b18c4951 couple of readme fixes 2019-06-08 16:26:34 -07:00
Wez Furlong
75a950328a tweak log level for ignored freetype error 2019-06-08 15:40:57 -07:00
Wez Furlong
5ccff722ef more log 2019-06-08 15:37:55 -07:00
Wez Furlong
5bf2268292 more log changes 2019-06-08 15:30:47 -07:00
Wez Furlong
34d6d95b6f adopt log and env_logger for logging 2019-06-08 15:17:41 -07:00
Wez Furlong
000c5eddac Add CloseCurrentTab key binding
Added CMD-W as a default binding for this action.

refs: https://github.com/wez/wezterm/pull/26
2019-06-08 10:27:45 -07:00
Wez Furlong
25da2ebbbf
fix stray ' in the readme 2019-06-08 10:04:18 -07:00
Wez Furlong
c143a4105b
fix quoting of modifiers in the readme 2019-06-08 10:03:37 -07:00
Wez Furlong
9552d3d5eb add some docs on keybindings 2019-06-08 10:01:41 -07:00
Wez Furlong
9d13429fc9 refactor default key assignment, add CMD-M to Hide
refs: https://github.com/wez/wezterm/issues/32
2019-06-08 09:16:59 -07:00
Wez Furlong
f10e59245e add Hide/Show key actions
Usage example is to put this in your `wezterm.toml` to get the
macOS CMD-M shortcut for minimizing a window:

```
[[keys]]
key = "m"
mods = "CMD"
action = "Hide"
```

Refs: https://github.com/wez/wezterm/issues/32
2019-06-08 08:37:50 -07:00
Wez Furlong
3b94cddf8e allow specifying key bindings in wezterm.toml
refs: https://github.com/wez/wezterm/issues/32
2019-06-08 08:28:34 -07:00
Wez Furlong
45596f44be refactor key handling; add KeyAssignment
This is a step towards having configurable key bindings
refs: https://github.com/wez/wezterm/issues/32
2019-06-07 21:53:44 -07:00
Wez Furlong
024e1afcda move CMD-N new window dispatch into guicommon
This was blocked by some awkwardness in figuring out which
gui frontend was in use and queueing up the spawn and then
more ugliness in glutin.

That has subsequently been sorted out with the newer executor
stuff, so cut this over.

This is a tiny baby step towards a bigger key binding config
and thus refs: https://github.com/wez/wezterm/issues/32
2019-06-07 20:43:13 -07:00
Wez Furlong
12d49980c8 speculative fix for linux build 2019-06-04 21:34:09 -07:00
Wez Furlong
0c8cba99af centralize calling Mux::add_tab to Domain::spawn 2019-06-04 08:11:55 -07:00
Wez Furlong
95d2479ea6 gui_executor is intended to be obtainable from any thread 2019-06-04 08:11:55 -07:00