1
1
mirror of https://github.com/wez/wezterm.git synced 2024-12-25 22:33:52 +03:00
Commit Graph

4509 Commits

Author SHA1 Message Date
Chip Senkbeil
fca3bd6904 Add some initial tests to wezterm-ssh, ignoring read/write of file as those are hanging 2021-10-10 14:54:45 -07:00
Chip Senkbeil
23fd145ceb Rewrite File to be smol::io::{AsyncRead, AsyncWrite} 2021-10-10 14:54:45 -07:00
Chip Senkbeil
9c8bdfd177 Add untested sftp methods 2021-10-10 14:54:45 -07:00
Chip Senkbeil
55b85b5424 Re-export portable_pty::Child as it is available in a public API 2021-10-10 14:54:45 -07:00
Chip Senkbeil
e25c4f4a22 Re-export filedescriptor::FileDescriptor as it is available in a public API 2021-10-10 14:54:45 -07:00
Chip Senkbeil
2c69c306b6 Bump to 0.2.0 2021-10-10 14:54:45 -07:00
Chip Senkbeil
e7110b20c4 Expose vendored-openssl feature of ssh2 from wezterm-ssh 2021-10-10 14:54:45 -07:00
Wez Furlong
b8bc9dc01b freetype: expose some more constants 2021-10-10 10:18:47 -07:00
Wez Furlong
2a4cbf0d59 freetype: expose sfnt name functions 2021-10-10 10:14:41 -07:00
Wez Furlong
bb2c534a56 ssh: my openssl+windows ssh2 patch was published upstream
So remove my local patch
2021-10-10 07:29:54 -07:00
Wez Furlong
8c613d8588 wayland: partially respect window_decorations
When using client-side decorations, we can now skip rendering
the header/title bar.

If you've set NONE decorations, then wezterm will configure
the window that way, but that is only respected when the window
is created, as weston crashed when I tried to change this in
a window config reload event.

The wayland frame now also observes config change events,
so frame color adjustments should now take effect without
restarting.

refs: #1077
2021-10-09 17:34:26 -07:00
Wez Furlong
64271288ac gui: avoid false cache sharing in glyph cache, fix custom block advance
Since we may have two different sizes/namespaces of fonts between
the title font and the main terminal font, we need to be a bit more
careful to pass down distinguishing font information when caching
glyphs.

In addition, I noticed that the advance for custom block glyphs
(eg: powerline!) weren't right in the tab bar.  To resolve this,
when shaping, we skip using the glyph from the font and synthesize
a placeholder with the appropriate advance.
2021-10-09 13:38:15 -07:00
Wez Furlong
5a6317ebe4 gui: draw a hint of a dividing line on fancy tab edges 2021-10-09 08:34:47 -07:00
Wez Furlong
7e59916c5c fixup title font selection on linux
Was mistakenly trying to use the windows font because of negative logic.
Tidy up, and prefer the gnome default theme font (Cantarell), but fall
back to DejaVu Sans.
2021-10-09 08:12:26 -07:00
Wez Furlong
23a0d67589 make fancy tab bar corners more rounded 2021-10-09 08:12:11 -07:00
Wez Furlong
d54762bf4b gui: fixup status bar boundary math for new padding
We were truncating the right-status text because we were passing
the padded number of cols for the tab bar, but since the tab bar
now exists outside the padding, that value was too small.
2021-10-09 07:32:56 -07:00
Wez Furlong
854ea8f2d1 change default window padding
This makes the default terminal config look a little nicer.
2021-10-08 20:38:28 -07:00
Wez Furlong
5d765e2efe config: adjust default title bar font
Make it a little large, bold, and pick a better approximation of the macOS
titlebar font on macOS.
2021-10-08 19:30:40 -07:00
Wez Furlong
b576b31f0a gui: more refinements to fancy tab bar presentation 2021-10-08 08:29:17 -07:00
Wez Furlong
a20fe39e50 gui: tidy up fancy tab bar layout logic
Use more euclid types to clarify what goes where and make it easier
to change this code.
2021-10-08 07:32:46 -07:00
Wez Furlong
8c3477006f Allow using unit like "1cell" or "5%" for window_padding
This commit introduces the `Dimension` type which allows specifying
a value in a variety of units; pixels, points, cells, percent.

`Dimension` needs contextual information to be evaluated as pixel
values, which makes resolving the value from the config slightly
more of a chore.

However, this type allows more flexible configurations that scale
with the font size and display dpi.

refs: #1124, #291, #195
2021-10-07 19:26:22 -07:00
Wez Furlong
9b4f7e78d6 fonts: properly fixup emoji baseline
The previous commit was partially OK, but the main cause of
emoji being wonky was this bit of macos specific code that I
added ages ago.

Remove that hack and the portion of the code from the previous
commit that was working to undo it.

This should make the baselines consistent across all platforms.

refs: #1203
2021-10-06 19:40:30 -07:00
Wez Furlong
e25deaaed1 fonts: align emoji fonts with the primary font baseline
refs: #1203
2021-10-05 22:01:21 -07:00
Wez Furlong
4eef20320d search: auto-update when the pane content changes
refs: https://github.com/wez/wezterm/issues/1205
2021-10-05 20:17:45 -07:00
Wez Furlong
87ea33f2f8 partially revert ligature cursor fix
refs: #478
2021-10-05 19:46:36 -07:00
Wez Furlong
f3159b6689 gui: add rounded corners to fancy tab buttons 2021-10-05 09:12:13 -07:00
follower
6d26a84cf1 Typo fix: "boudaries" -> "boundaries" 2021-10-05 07:02:41 -07:00
Wez Furlong
49d77138ae gui: refine text positioning math around fancy tab bar
Avoid accidentally scaling the tab bar when using IncreaseFontSize.

Use a "better" default title font based on the platform.

Avoid a gap between bottom of tab button and dividing line at
certain font sizes.
2021-10-04 23:13:21 -07:00
Wez Furlong
97ef6b71bd gui: add filled_rectangle helper function
This is used to allocate a quad that makes a simple rectangular
block of solid color.
2021-10-04 22:30:37 -07:00
Wez Furlong
d430d3eef1 fix: title_font didn't respect changed dpi 2021-10-04 21:09:31 -07:00
Wez Furlong
f511f9f52e gui: fixup some alignment/layout math for tab bar
bottom placement had mismatched render and hit test locations.
Tweak how we generate per-tab info for fancy tab mode.
2021-10-04 17:35:54 -07:00
Wez Furlong
839fe2d8cc resolve false style/cache/shaper sharing in fancy tab bar 2021-10-04 17:35:54 -07:00
Wez Furlong
43bc96b521 re-use core render_line function in fancy renderer
There's some false cache sharing that needs to be resolved though.
2021-10-04 17:35:54 -07:00
Wez Furlong
b1509fa0d1 re-use main shaper helper for fancy tab text rendering 2021-10-04 17:35:54 -07:00
Wez Furlong
a5319d66bd fix an issue where a selection could bleed out of a pane
When split horizontally, selecting multiple lines at the top of the left
pane could paint a horizontal selection line all the way across the rest
of the terminal to the right hand edge.
2021-10-04 17:35:54 -07:00
Wez Furlong
3da775d0e5 gui: add use_pixel_positioning mode to render_screen_line_opengl
I've tested this with the regular tab bar to prove that it essentially
works; the intent is to use it with the fancy tab bar rendering.
2021-10-04 17:35:54 -07:00
Wez Furlong
d6149382a3 gui: refactor Line shaping 2021-10-04 17:35:54 -07:00
Wez Furlong
a4956c1c05 gui: more refactoring of positioning math for cell/glyph rendering
Removes the dependency on knowing where the pane top/left position
is so that the line render routine could be used in more places.

Adjusts the tab bar and scroll bar positioning so that the tab bar
ignores window padding and is always flush with the top/bottom window
edge (full width as well), and that the scroll bar top/bottom respects
the tab bar position and height.
2021-10-04 17:35:54 -07:00
Wez Furlong
efa437b16d gui: factor y pixel coordinate out of render_screen_line_opengl
Instead, pass in the y pixel value that it should use to calculate
the position.
2021-10-04 17:35:54 -07:00
Wez Furlong
fae5435824 fix incorrect fg color when cursoring over ligatured glyph
More of a "fix"; we use some heuristics based on the bearing
and glyph width to figure out if a sequence looks like a funky
ligature that moves left to render the glyph.

This may be prone to false positives, but the consequences are low:
when we think a glyph is part of a ligature, then rather than using
the cursor_fg color (which is typically black, or close to invisible),
we retain the normal text fg color.

This way the portion of the glyph outside of the cursor retains its
foreground color, and just the cell containing the cursor may have
a slightly funky fg color in the case where the heuristic was bad.

closes: #478
2021-10-04 17:35:54 -07:00
Wez Furlong
904d2a948d tidy up milli uptime for blinking text 2021-10-04 17:35:54 -07:00
Wez Furlong
b4255c3b86 Refactor shaping helper 2021-10-04 17:35:54 -07:00
Wez Furlong
962e44bbfb WIP: fancier tab bar
`use_fancy_tab_bar` switches to an alternate rendering of the tab
bar that uses the window_frame config to get a proportional
title font to use to render tabs, as well as rendering a few
additional elements to space out and make the tabs feel more
like tabs.

Computing the number of tabs doesn't respect the alternate font
at this time.

Formatted tab item foreground and background colors are also
not respected at this time.

refs: #1180
2021-10-04 17:35:54 -07:00
Wez Furlong
8652f2e7d3 gui: factor tab bar drawing into own method 2021-10-04 17:35:54 -07:00
Wez Furlong
da30ecd5b3 tab bar: use UIItem for hit testing 2021-10-04 17:35:54 -07:00
Wez Furlong
68418b89ee deps: cargo update 2021-10-03 22:10:01 -07:00
Wez Furlong
3ab08107cf docs: fix typo in changelog 2021-10-03 10:46:25 -07:00
Wez Furlong
c21c1e2857 docs: fixup Nop example
The description of Nop was incorrect; it was describing
DisableDefaultAssignment.  Just make this bit use the same
example from DisableDefaultAssignment's docs.
2021-10-03 09:18:41 -07:00
Wez Furlong
fc3f6cb9ce docs: slightly clarify key assignment docs
refs: #1190
2021-10-03 09:10:04 -07:00
Wez Furlong
6eb6fd6088 docs: flesh out use_ime docs
closes: #1188
2021-10-03 08:46:13 -07:00