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
Wez Furlong
d4bc053493
Add Mux::default_domain and use it
...
This tidies up the various spawning call sites and
reduces some code duplication too!
2019-06-04 08:11:55 -07:00
Wez Furlong
f642bd56d6
introduce mux Domain concept
...
All locations that were setting up ptys now do so via the
Domain concept. We still need a way to set up a persistent
global domain.
2019-06-04 08:11:55 -07:00
Wez Furlong
74bbf01014
fix 'already borrowed' panic with large pastes
2019-06-02 13:00:30 -07:00
Wez Furlong
bf719caaf3
allow using cmd-v to paste on linux
...
This is useful in a vmware vm on macos
2019-06-02 07:44:22 -07:00
Wez Furlong
71fd9c3ed7
thread palette through on each render call
...
This is slightly inefficient in that it copies the palette
for each call, so may want to revisit this if things feel
sluggish.
2019-06-01 16:07:08 -07:00
Wez Furlong
2ec436a4b9
make the frontends get the palette from the terminalstate
...
This isn't complete because it only copies it at startup
into the renderer.
2019-06-01 16:01:00 -07:00
Wez Furlong
038100922a
clippy
2019-05-26 12:49:10 -07:00
Wez Furlong
e1a1530d22
remove boxfnonce: now require rust 1.35+
...
Rust can now naturally deal with with these constructs, so drop the
external crate.
2019-05-26 09:14:20 -07:00
Wez Furlong
f87901c484
tidy up some failure usage
2019-05-26 08:58:59 -07:00
Wez Furlong
7bf1d99d77
move pty to its own crate in preparation for publishing
...
Refs: https://github.com/wez/wezterm/issues/27
2019-05-19 18:40:26 -07:00
Wez Furlong
c207142bcf
Improve performance on windows
...
I noticed that things were feeling laggy in general and when I
added some debugging prints I noticed that we were getting a
continuous stream of CursorMoved events with the same coordinates
while the window had focus.
This diff short circuits mouse processing in that situation and
makes things feel a bit more snappy.
2019-05-18 19:15:04 -07:00
Wez Furlong
70593c215f
Prevent resizing smalling than 1x1
...
Fixes https://github.com/wez/wezterm/issues/25
2019-05-04 09:18:43 -07:00
Wez Furlong
9646e035df
don't self deadlock when processing a lot of eg: resize events
...
This is fixed by allowing the gui thread to use an unbounded queue
of spawned functions, and keeping non-gui-threads bounded.
2019-05-04 09:07:43 -07:00
Wez Furlong
736f617f13
make the window close button kill the current tab
2019-03-25 22:14:19 -07:00
Wez Furlong
cac06e5506
rename pty traits, make selectable via enum
2019-03-25 12:06:49 -07:00
Wez Furlong
10165fac32
traitify the pty module
2019-03-25 11:45:52 -07:00
Wez Furlong
a56f37598c
Embed icon into windows executable and titlebar
...
This also applies to X11 when using the glutin frontend
2019-03-24 19:08:07 -07:00
Wez Furlong
acc895f1cd
avoid deadlock while pasting large chunks of text
...
A big paste could saturate the input/output of the pty and
lead to an effective deadlock; the application wants to send
output to us but we are busy trying to write the paste to it.
Break up large pastes into chunks and send them piece by piece.
This does mean that a large bracketed paste is not an atomic
unit any longer, but it seems to work out ok when pasting into
vim.
2019-03-23 15:25:49 -07:00
Wez Furlong
93020c7553
bump glutin sync channel size
...
This is a workaround; need to remove the sync restriction when
queuing up work from the gui thread as I occasionally deadlock
myself.
2019-03-22 20:41:50 -07:00
Wez Furlong
6cbb3ba432
impl IRM insert mode and improve esctest conformance
...
I've had mixed results with esctest; the IRM and cursor save/restore
tests fail for me in terminal.app, iterm2 and xterm, and fail in the
same way on wezterm, so I'm not sure if I'm not running those tests
correctly. However, they did encourage the discovery of some other
real issues in the wezterm emulation.
2019-03-22 20:41:50 -07:00
Wez Furlong
ff64ba727b
fix Executor names copypasta
2019-03-22 20:41:50 -07:00
Wez Furlong
1c06430b3a
Add Null
frontend; intended for testing purposes
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
2b4b27c9c0
start a unix listener when running the mux server
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
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