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

20 Commits

Author SHA1 Message Date
Wez Furlong
09c70930b9 improve resize handling
Both in terms of resizing the window and running the `resize` utility.
2018-02-04 09:17:05 -08:00
Wez Furlong
4c8e3ffd75 improve clustering and cursor rendering
We weren't quite right with handling the cursor around double-width
characters.  We're now a bit more robust at this because we're
clustering and taking pains to consider the printable width of the
cell as well as the width of the shaped (eg: with contextual ligatures)
glyph.

There may still be issues with contextual ligatures of length 3,
but I haven't managed to nail down exactly the issue yet.
2018-02-04 08:28:32 -08:00
Wez Furlong
904f8fc059 better typing for rows and cursor position 2018-02-02 08:16:07 -08:00
Wez Furlong
5cdb5149c3 suppress keypress debug prints 2018-02-01 00:26:01 -08:00
Wez Furlong
659ce4fc2d Make answerback more generic, enable title changing 2018-01-31 15:15:23 -08:00
Wez Furlong
11e6d538fc move term to its own crate
This makes it harder to accidentally violate separation of concerns.
2018-01-31 10:50:21 -08:00
Wez Furlong
cb9a2129be handle reverse index escape sequence
This unlocks pressing `b` in `less` and `more` to scroll backwards.
To facilitate this I had to do a better job at scrolling up and down,
so beef up the code to enable that.  Scroll regions still need some
work; test case for that is running vim and then opening help.

Also: fixup the y position when rending rows; it was off by one row.
2018-01-29 23:29:56 -08:00
Wez Furlong
0ebf84ee1c adopt dirtying mechanism for more efficient screen updates
We now keep track of the dirty status on a per-line basis
and use that status to realize when we need to repaint a portion
of the screen.  This reduces the compute cost of redrawing
quite significantly; we're no longer on `top` when we're running
`top`!
2018-01-29 20:38:48 -08:00
Wez Furlong
740c3339a5 Add glyph caching 2018-01-29 09:38:06 -08:00
Wez Furlong
be30b1cb54 there's already a wterm, rename to wezterm 2018-01-28 23:52:21 -08:00
Wez Furlong
5dbf90412f bounds check should be on the actual number of cols
Don't trust that a given Line has exactly phys_cols columns.
2018-01-28 23:33:31 -08:00
Wez Furlong
78c3aee697 Add support for responding to escape sequences 2018-01-28 16:43:10 -08:00
Wez Furlong
cedc62e91a fix cursor positioning when ligatures are used 2018-01-28 09:55:28 -08:00
Wez Furlong
dbeda14566 Add ShmImage, a shared memory Pixmap
Using the SHM extension of the X server saves us from sending ~1MB of
bitmap data to the server on many screen update operations for a
modestly sized terminal window.

SHM may not be available in some situations so we need to keep a
fallback that basically works.  This is done via a helper enum
in xwin.rs.

I've removed the unused Pixmap class; the pixmap concept makes the
most sense for us only when SHM is available.
2018-01-28 09:43:36 -08:00
Wez Furlong
91424e427f factor out BitmapImage from Image 2018-01-27 22:58:40 -08:00
Wez Furlong
bf854d0eb0 remove some unused code 2018-01-27 22:24:44 -08:00
Wez Furlong
0ab8cf1eec Render the cursor position, fixup colors
I thought it would be nice to use the default xterm palette, but
I really hate the contrast of its default blue on black, so switch
to the palette from my xterm config.
2018-01-27 22:17:31 -08:00
Wez Furlong
1ae85b2349 send keyboard input to the pty 2018-01-27 21:54:57 -08:00
Wez Furlong
f879447d59 add xgfx::Connection, store atoms inside it 2018-01-27 14:49:15 -08:00
Wez Furlong
ec3c8f04ba move TerminalWindow into its own file 2018-01-27 14:29:07 -08:00