1
1
mirror of https://github.com/wez/wezterm.git synced 2024-12-26 23:04:49 +03:00
Commit Graph

158 Commits

Author SHA1 Message Date
Wez Furlong
e773cff24e adjust tests for pty -> Write changes 2019-03-02 12:29:17 -08:00
Wez Furlong
6c8a9e999e splitting writer out of Tab::pty() 2019-03-02 11:27:11 -08:00
Wez Furlong
0c3410fb6a factor out more of the mouse processing 2019-03-02 09:45:10 -08:00
Wez Furlong
61e7f2d0fe slightly refine some mouse processing code 2019-03-02 09:40:05 -08:00
Wez Furlong
bc15fc4665 split mouse event processing into separate functions 2019-03-02 09:33:58 -08:00
Wez Furlong
5565ccd30e remove host from key_down signature 2019-03-02 09:33:58 -08:00
Wez Furlong
8f13e53ac8 move gui keyboard shortcut processing to guicommon 2019-03-02 09:33:58 -08:00
Wez Furlong
f261f079f7 lift clipboard hotkeys up to gui layer
My original idea was that I would centralize of the key binding
logic in the terminalstate, but this places a bit of a burden on
the TerminalHost portion of the interface.

In particular: when running a multiplexer server we may be headless
or have multiple heads.  In that scenario we want the terminal
to be backed by a virtualized screen, and that means removing
the direct callback to access eg: the host clipboard.  This
diff is the first of a couple that have the goal of removing
those sorts of dependencies.
2019-03-02 09:33:58 -08:00
Wez Furlong
d7b55382b4 big initial mux change
This is an unfortunately large diff that:

* Separates Tab ownership from TerminalWindow
* Introduces a Mux container for all of the tabs in the application,
  across all windows
* Moves ownership of processing pty responses to the mux; it sets
  up and has logic to process data for the ptys and apply to the
  tabs

I've moved the logic for processing new tab and new window hotkeys
to the TerminalWindow's themselves as we need some context to
associate the tab with the right window and to create a new window.

I think that will simplify and allow unifying more code.
2019-02-25 00:03:35 -08:00
Wez Furlong
184befae09 adjust double-click selection class
previously this just used unicode word segmentation rules, but that
is insufficient for most technical users.

Change this to look for sequences that are non-whitespace and not
enclosed by bracket/quote delimiters.  This allows selecting file names
with a double click, which was my main issue.
2019-02-24 13:13:35 -08:00
Wez Furlong
dba88d2102 clippy 2019-02-24 12:01:08 -08:00
Wez Furlong
db5aac6681 implement tabs in the glutin gui system
There's a bunch of code duplication that I want to clean up later.
2019-02-23 13:33:32 -08:00
Wez Furlong
5b126b3f1e Restore fullscreen toggle hotkey and fixup for macos 2019-02-23 13:27:59 -08:00
Wez Furlong
b448cfec4d fix shift-insert for paste on linux
the match guard was applying to both arms, so break
this into two separate matches
2019-02-22 20:31:04 -08:00
Wez Furlong
c818225a5d ctrl|cmd +/- to manipulate font size with glutin backend
Simliar code needs to be added to the x11 backend in a follow on
commit.

Refs: https://github.com/wez/wezterm/issues/2
2019-02-22 15:22:31 -08:00
Wez Furlong
42fb687759 more fun with keyboard input with glutin/winit
There isn't really any reliable consistency in the virtual_keycodes
being set for simple keys or shifted keys, so we need to go all in
and add our own scancode processing as a fall back.

This makes it even harder to process unicode input, particularly
because we have no idea whether a ReceivedCharacter event will
follow.
2019-02-20 20:30:19 -08:00
Wez Furlong
9f6b21f0db update term to 2018 edition 2019-02-18 23:20:59 -08:00
Wez Furlong
9c9261f332 fix delete on macos 2019-02-18 03:04:48 -08:00
Wez Furlong
1252eaf153 CMD-V -> paste 2019-02-18 02:47:00 -08:00
Wez Furlong
2db17562a6 rustfmt 2019-02-16 00:08:38 -08:00
Wez Furlong
61fec42216 cargo fmt with current stable rustfmt 2018-09-19 20:06:31 -07:00
Wez Furlong
3d3a718182 Fixup phantom release mouse code when using mouse wheel
This was breaking scrolling in vim
2018-09-04 00:34:53 -07:00
Wez Furlong
62d43ddd63 avoid panic when some clients change scroll margins 2018-08-09 00:04:28 -07:00
Wez Furlong
9219dbb327 We can now take iterm images into the wezterm terminalstate
We don't yet have any code to render them, and the vte parser seems
to truncate incoming image sequences ~1kb in size, so more work is
needed to make this useful.
2018-08-08 09:00:07 -07:00
Wez Furlong
2f8ffab213 parse and encode some iTerm specific escape sequences 2018-08-06 01:23:25 -07:00
Wez Furlong
dfa3ef5ae6 fix missing paren for the bell print 2018-08-05 17:22:46 -07:00
Wez Furlong
a8ae14bb6b fix panic when resizing smaller leaves the cursor off screen 2018-08-05 16:32:29 -07:00
Wez Furlong
60c24a9e41 consolidate on one set of input keycodes and modifiers 2018-08-05 14:28:29 -07:00
Wez Furlong
c0ea601645 add helper for managing primary and alt screen 2018-08-05 13:49:03 -07:00
Wez Furlong
cee63e74e1 consolidate term::Line -> termwiz::Line 2018-08-05 12:37:01 -07:00
Wez Furlong
2c7a27c42a move CellCluster to termwiz 2018-08-05 12:10:50 -07:00
Wez Furlong
18f34545b3 rustfmt 2018-08-05 09:14:40 -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
8a188cfd74 tweak manifest to point to in-tree termwiz 2018-08-05 08:00:45 -07:00
Wez Furlong
5482323be5 really fix the erase in display issue
We also need an implicit erase in line in the appropriate direction
2018-08-04 23:23:04 -07:00
Wez Furlong
899593745e fix growing bounds for Line::set_cell 2018-08-04 20:18:02 -07:00
Wez Furlong
e0b6fbfb1f fix off-by-one for EraseInDisplay
We were deleting the current row and below rather than the rows below.
This was the cause of lines going blank during `apt upgrade` runs;
the line just above the bottom would get erased instead of scrolling
up.

I found this by running the termwiz widget demo; the top line was being
erased by mistake.
2018-08-04 19:28:18 -07:00
Wez Furlong
6c1f089f13 buffer processing in Performer::print
This helps to accumulate multi-char grapheme sequences into a single
cell.
2018-08-04 19:02:46 -07:00
Wez Furlong
10f0403973 improve encapsulation of Line struct 2018-08-04 18:33:44 -07:00
Wez Furlong
381e572700 relax some of the dep requirements 2018-08-04 15:35:38 -07:00
Wez Furlong
a597a23aef fix cargo fmt 2018-08-04 14:30:34 -07:00
Wez Furlong
e0cc46fe4f log unhandled cursor shape sequence 2018-08-04 12:43:15 -07:00
Wez Furlong
204d741be7 improve display for unhandled csi 2018-08-04 11:59:20 -07:00
Wez Furlong
b7a095ef3f Update to use termwiz hosted on github 2018-08-04 09:46:46 -07:00
Wez Furlong
472d243a33 cut over to termwiz Cell 2018-08-04 09:35:39 -07:00
Wez Furlong
1ec83706e7 use termwiz::Hyperlink 2018-08-04 00:26:24 -07:00
Wez Furlong
f37de9cbe5 use termwiz to replace most of the escape parsing 2018-08-03 22:37:04 -07:00
Wez Furlong
039eadc05f update rustfmt 2018-07-11 08:30:49 -07:00
Wez Furlong
8fae5f56a8 remove dead_code marker from some exported constants 2018-07-11 08:14:09 -07:00
Wez Furlong
8b24d34a74 fix panic for large pastes 2018-04-28 21:54:39 -07:00