1
1
mirror of https://github.com/wez/wezterm.git synced 2024-11-13 07:22:52 +03:00
Commit Graph

99 Commits

Author SHA1 Message Date
Wez Furlong
95ab1b34e1 Update color schemes
Sync with 0966005b77
2020-10-19 22:51:48 -07:00
Wez Furlong
eaa6536325 wezterm: remove OldSoftware frontend
Upcoming changes to the GUI mean that it will be double
the work to keep maintaining this, and it is already lagging
behind on pane support.

With the Mesa llvmpipe fallback we should be in a pretty
good state to not need another non-GL implementation.
2020-10-19 09:22:02 -07:00
Wez Furlong
21eab3430b docs: add docs on background/opacity configs
refs: #141
2020-10-18 14:32:17 -07:00
Wez Furlong
191b047126 macos: implement opacity for CGL and Metal
There's a few different knobs to turn, but this
commit turns them and we're now able to respect
opacity settings for both OpenGL/CGL and Metal
renderers.

closes: #141
2020-10-18 14:00:06 -07:00
Wez Furlong
b7e303f39c Windows: prefer to use Direct3D11 via ANGLE
This is similar in spirit to the work in 4d71a7913a
but for Windows.

This commit adds ANGLE binaries built from
07ea804e62
to the repo.  The build and packaging will copy those into the same
directory as wezterm.exe so that they can be resolved at runtime.

By default, `prefer_egl = true`, which will cause the window
crate to first try to load an EGL implementation.  If that fails,
or if `prefer_egl = false`, then the window crate will perform
the usual WGL initialization.

The practical effect of this change is that Direct3D11 is used for the
underlying render, which avoids problematic OpenGL drivers and means
that the process can survive graphics drivers being updated.

It may also increase the chances that the GPU will really be used
in an RDP session rather than the pessimised use of the software
renderer.

The one downside that I've noticed is that the resize behavior feels a
little janky in comparison to WGL (frames can render with mismatched
surface/window sizes which makes the window contents feel like they're
zooming/rippling slightly as the window is live resized). I think this
is specific to the ANGLE D3D implementation as EGL on other platforms
feels more solid.

I'm a little on the fence about making this the default; I think
it makes sense to prefer something that won't quit unexpectedly
while a software update is in progress, so that's a strong plus
in favor of EGL as the default, but I'm not sure how much the
resize wobble is going to set people off.

If you prefer WGL and are fine with the risk of a drive update
killing wezterm, then you can set this in your config:

```lua
return {
  prefer_egl = false,
}
```

refs: https://github.com/wez/wezterm/issues/265
closes: https://github.com/wez/wezterm/issues/156
2020-10-17 19:08:16 -07:00
Wez Furlong
4d71a7913a macOS: bundle and use MetalANGLE to enable Metal rendering
This commit adjusts the window layer to have it try to load EGL
implementations on macOS.  This is important as the system
provided OpenGL implementation is deprecated and I wanted to
have a path forward for when it is finally removed.

If EGL fails to initialize, we fall back to the CGL/OpenGL
implementation that we used previously.

I've included binaries built for 64-bit intel from the MetalANGLE
project; here's how I built them:

```
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git --depth 1
git clone https://github.com/kakashidinho/metalangle --depth 1
cd metalangle
PATH=$PWD/../depot_tools:$PATH python scripts/bootstrap.py
PATH=$PWD/../depot_tools:$PATH gclient sync
PATH=$PWD/../depot_tools:$PATH gn --args="is_debug=false angle_enable_metal=true angle_enable_vulkan=false angle_enable_gl=false angle_build_all=false" gen out/Release
PATH=$PWD/../depot_tools:$PATH autoninja -C out/Release
```

Those steps are a little too long to want to put them directly
into the wezterm CI.

It is important for metalangle to be >= 8230df39a5
in order for scaling to be handled correctly when dragging windows
between monitors.

refs: https://github.com/kakashidinho/metalangle/issues/34
2020-10-17 09:34:01 -07:00
Wez Furlong
4a43c30c9a docs: changelog for Hide fix
refs: #296
2020-10-16 12:15:11 -07:00
Wez Furlong
2a8a0a6740 docs: changelog and info on dead keys on Windows
refs: #296
refs: #275
2020-10-16 12:13:30 -07:00
Wez Furlong
157de37079 docs: note about the rcgen TLS PKI fix 2020-10-16 07:59:01 -07:00
Wez Furlong
9e46ac83be Windows: force Mesa/Software mode when started in an RDP session
refs: #265
2020-10-14 09:21:30 -07:00
Wez Furlong
b24082714e docs: more changelog updates
refs: #265
2020-10-13 20:26:27 -07:00
Wez Furlong
d2d604f002 docs: note about fixing EGL init on Linux
closes: #272
2020-10-13 20:17:19 -07:00
Wez Furlong
11c6d905a7 docs: note about macos trackpad sensitivity fix
closes: #206
2020-10-13 20:14:38 -07:00
Wez Furlong
c8d59dffb6 macos: fix an issue where new windows created cocoa tabs
To reproduce the problem, maximize wezterm, then press CMD-N.

This commit tells the window not to use cocoa native tabs and
instead really create a new window when we ask it to create
a new window.

closes: #254
2020-10-12 17:20:12 -07:00
Wez Furlong
b3f51e8ee2 termwiz: save 8 bytes per Cell in common case
Moved the image and hyperlink portion of CellAttributes out
to a separate heap structure, saving 8 bytes per Cell
for the common case of no hyperlink and no image.
2020-10-11 13:32:53 -07:00
Wez Furlong
787f956e24 docs: add LEADER to changelog 2020-10-10 10:55:22 -07:00
Wez Furlong
40d07088d9 docs: Update for confirm parameter when closing panes, tabs 2020-10-10 09:19:57 -07:00
Wez Furlong
3f466b1fc3 wezterm: add automatically_reload_config=false option
closes: https://github.com/wez/wezterm/issues/287
2020-09-30 08:47:41 -07:00
Wez Furlong
d880c2b86f docs: update changelog for nightly 2020-09-30 08:33:21 -07:00
Wez Furlong
146b4465ba wezterm: update mux protocol for splits
refs: https://github.com/wez/wezterm/issues/157
2020-09-26 20:14:28 -07:00
Wez Furlong
2d3f4f9bf9 wezterm: guess at cwd associated with pty on linux
We still prefer to consume the OSC 7 value, but can fall back
to guessing the cwd for a target process.
2020-09-26 11:51:21 -07:00
Wez Furlong
81ba73d5b8 wezterm: display tab indices in tab bar by default
More details in the included changelog update

refs: https://github.com/wez/wezterm/issues/157#issuecomment-699520149
2020-09-26 09:52:16 -07:00
Wez Furlong
6708ea4b36 window: normalize SHIFT modifier state
When a keypress is ASCII uppercase and SHIFT is held, remove SHIFT
from the set of active modifiers.

refs: https://github.com/wez/wezterm/issues/157#issuecomment-699516096
2020-09-26 09:17:51 -07:00
Wez Furlong
13dc7bd95b docs: fixup link to splits issue 2020-09-25 20:21:18 -07:00
Wez Furlong
77eabed349 docs: add note about splits/panes in master/nightly builds
refs: https://github.com/wez/wezterm/issues/157
2020-09-23 21:19:12 -07:00
Wez Furlong
d939211dc5 docs: fix typo in changelog 2020-09-12 09:39:51 -07:00
Wez Furlong
581ef0a448 docs: 20200909-002054-4c9af461 2020-09-09 00:21:42 -07:00
Wez Furlong
99b8fb2612 wezterm: add tab_max_width config option
This allows setting the maximum width of a tab in the tab tab.
It defaults to 16 glyphs in width.

refs: https://github.com/wez/wezterm/issues/255
2020-08-29 10:45:01 -07:00
Wez Furlong
70fc76a040 window: fix segv when using multiple egl windows with linux/X11
This could be reproduced via `wezterm connect localhost`.
This bug was surfaced after the last release added a Drop impl
to cleanup the display.

This commit tracks the display in the connection.

closes: https://github.com/wez/wezterm/issues/252
2020-08-16 10:43:14 -07:00
Wez Furlong
5457c09590 wezterm: enable_wayland = false by default
refs: https://github.com/wez/wezterm/issues/224
2020-08-16 09:50:00 -07:00
Wez Furlong
5de6e88a68 docs: changelog update for nightly builds 2020-08-16 09:44:14 -07:00
Wez Furlong
cbc065cfd9 docs: fix link to color schemes 2020-07-18 10:06:38 -07:00
Wez Furlong
b3fad71768 docs: update for latest release 2020-07-18 10:05:31 -07:00
Wez Furlong
d23156403d Re-sync color schemes 2020-07-18 09:29:50 -07:00
Wez Furlong
bffcf9dbaf docs: add note about WGL fallback fix
closes: https://github.com/wez/wezterm/issues/235
2020-07-18 09:18:31 -07:00
Wez Furlong
b2aff76183 docs: add note about improved non-24bpp support
closes: https://github.com/wez/wezterm/issues/240
2020-07-18 09:14:17 -07:00
Wez Furlong
8f27301820 docs: add note about vim/rgb answerback bug
refs: https://github.com/wez/wezterm/issues/241
2020-07-18 09:10:57 -07:00
Wez Furlong
aff3b7028a docs: add note about pty fix
refs: https://github.com/wez/wezterm/pull/245
2020-07-18 09:08:10 -07:00
Wez Furlong
313690d484 docs: Add note about the bold color fix in openconsole.exe
refs: https://github.com/wez/wezterm/issues/244
2020-07-18 09:05:10 -07:00
Wez Furlong
1209cde2b1 Add bold_brightens_ansi_colors configuration option
refs: https://github.com/wez/wezterm/issues/244
2020-07-18 09:02:56 -07:00
Wez Furlong
076cf3d177 wezterm: teach renderer about overline
This commit adds an overline glyph which is simply a line drawn at
the top of the cell.

Due to the way that we use a single glyph for the line layer, this
actually adds a handful of combination glyphs for the different
underline, overline and strikethrough possibilities.

It's getting a bit hefty.  Adding another similar attribute in
the future (eg: maybe wiggly underlines?) might prove to be too
much for the simple approach we have right now.

```bash
printf "\x1b[53moverline\x1b[0m\n"
```
2020-06-20 23:18:52 -07:00
Wez Furlong
4e6357b218 term: enable DECSET 1004 Focus Reporting
This is enabled only for local terminals for now; the multiplexer
protocol will need to be extended to carry this signal.
2020-06-20 22:01:56 -07:00
Wez Furlong
2ab87b29a7 docs: update for latest release tag 2020-06-20 16:07:21 -07:00
Wez Furlong
98fe7cabba docs: add note about hyperlink matching improvements
closes: https://github.com/wez/wezterm/issues/221
2020-06-20 12:51:00 -07:00
Wez Furlong
843ce152ec wezterm: ActivateTab now accepts negative numbers
This allows setting up shortcuts relative to the final tab in
a window, rather than always being relative to the first.

The default assignment for CTRL+SHIFT+9 is now `ActivateTab=-1`
as a convenient way to always reach the last tab.

refs: https://github.com/wez/wezterm/issues/228
2020-06-20 12:45:09 -07:00
Wez Furlong
59ca0da7ad term: fix representation of unmodified F5+
We were unconditionally adding the encoded form of the modifier
mask (eg: appending `;1~` to the sequence) and not all apps know
how to interpret that.

refs: https://github.com/wez/wezterm/issues/227
2020-06-20 12:11:35 -07:00
Wez Furlong
35a3f802c2 termwiz+term: improved emulation conformance in a number of areas
This commit adds support for left/right margins and has been
tested against esctest, with a final status of:

```
309 tests passed, 239 known bugs
```

"known bugs" also includes unimplemented features; we have a
similar degree as iTerm2.

As of this commit, we now report as a vt520ish machine to DA1.
I confess to not having read enough of the relevant docs
to know whether this is totally righteous.
2020-06-19 21:20:05 -07:00
Wez Furlong
d9f84da6ec fonts: fix second parameter of wezterm.font
The following configuration now works as intended:

```lua
local wezterm = require 'wezterm';
return {
  -- font = wezterm.font('JetBrains Mono'),
  font_rules = {
    {
      italic = false,
      intensity = "Normal",
      font = wezterm.font("JetBrains Mono"),
    },
    {
      italic = true,
      font = wezterm.font("JetBrains Mono", {italic=true}),
    },
    {
      intensity = "Bold",
      font = wezterm.font("JetBrains Mono", {bold=true}),
    },
    {
      italic = true,
      intensity = "Bold",
      font = wezterm.font("JetBrains Mono", {bold=true, italic=true}),
    }
  },
}
```
2020-06-16 08:27:35 -07:00
Wez Furlong
2803e8fc58 wezterm: improve left vs right alt behavior on macos
This commit allows distinguishing between left and right alt
modifiers at the window layer.  So far only macos provides
this additional information.

Expand the logic that decides whether Alt should emit the
composed key or act as the raw key with the Alt modifier flag
set so that we can set that behavior separately for the left
and right modifiers on systems that support it, and use the
existing config for systems that don't support it.

The default settings for these flags is that Left Alt will
send the uncomposed key + Alt modifier while the Right Alt
will behave more like AltGr (which is typically on the RHS
of the keyboard) and send the composed key.

This gives more flexibility by default and hopefully matches
expectations a bit better.

refs: https://github.com/wez/wezterm/issues/216
2020-06-13 22:45:13 -07:00
Wez Furlong
8250f9e4cf wezterm: set a reasonable default LANG on macos
If LANG isn't set then ask NSLocale for the language and country code
and see if we can conjure up a valid UTF-8 locale name.  If so,
export that in the LANG environment for our children to inherit.

refs: https://github.com/wez/wezterm/issues/220
refs: https://github.com/wez/wezterm/issues/216
2020-06-13 20:41:52 -07:00