1
1
mirror of https://github.com/wez/wezterm.git synced 2024-12-18 19:01:36 +03:00
Commit Graph

7344 Commits

Author SHA1 Message Date
Wez Furlong
f7f253ec28
macos: add config.dpi_by_screen config option
Allows specifying the precise dpi to use on a per-screen basis:

```lua
return {
  dpi_by_screen = {
    ["Built-in Retina Display"] = 144,
  },
}
```

The screen names are the same as those returned from
`wezterm.gui.screens()`.

Changing either `dpi` or `dpi_by_screen` in the config will now cause
the window to be immediately resized/adjusted to the changed dpi
override.

Ultimately, I'd like to deprecate `dpi` in favor of `dpi_by_screen`,
but can't do that until this functionality is ported to windows, x11
and wayland.

refs: #4096
2023-08-05 20:48:59 -07:00
Wez Furlong
085e8da478
macos: fonts: use alternative fallback approach
The approach we were using previously was to ask macOS for the fallback
font list, but it didn't include the correct fonts for certain
codepoints.

Switch to using an alternative API that asks macOS which font to use for
a specific codepoint.

refs: #4099
2023-08-05 18:15:08 -07:00
Wez Furlong
33187d0e79
macos: fonts: use full list of user fallback languages
The hope was that this would find more fonts, but it doesn't actually
help for this case.

refs: https://github.com/wez/wezterm/issues/4099
2023-08-05 17:33:59 -07:00
Wez Furlong
a7c6ea8c1e
deps: harfbuzz -> 8.1.1
Second attempt to get on 8.1, tests seem good!

refs: https://github.com/harfbuzz/harfbuzz/issues/4358
2023-08-02 19:06:52 -07:00
xqrdot
419210bc14 corrected front_end.md 2023-08-02 07:15:27 -07:00
Daniel Vainsencher
6238da2f1b Support [https://pop.system76.com/](POP!_OS) in get-deps
A debian variant IIUC
2023-08-02 07:14:11 -07:00
Wez Furlong
ca9cf23019
Revert "deps: harfbuzz -> 8.1.0"
This reverts commit e7bf2b4088.

The tests fail when built and run in release mode. There's
something fishy that needs investigation; will do so later.
2023-07-31 23:10:25 -07:00
Wez Furlong
e7bf2b4088
deps: harfbuzz -> 8.1.0 2023-07-31 22:32:21 -07:00
Wez Furlong
d1d4db20be
cargo update
Transitive deps now require rust 1.71, so update for that, as well
as some other minor changes required by transitive deps.
2023-07-30 20:09:15 -07:00
Ran Shaham
afb485eb47 docs: fix building without wayland command 2023-07-30 07:20:49 -07:00
Wez Furlong
3aa7da611a
fixup doc build for mkdocs 1.5 2023-07-26 16:10:42 -07:00
Wez Furlong
a07ab883af
persist charselect, repl history and others in data dir
We were using the runtime dir with a fallback to a directory
that was equivalent to the data dir on !xdg systems.  That
meant that the state in the runtime dir was often scrubbed
around a reboot.

refs: https://github.com/wez/wezterm/discussions/4019
refs: https://github.com/wez/wezterm/issues/4047
2023-07-22 10:31:03 -07:00
Wez Furlong
3e3df823e4
deps: update wgpu -> 0.17
Pick up my fix from https://github.com/gfx-rs/wgpu/pull/3924

closes: https://github.com/wez/wezterm/issues/3612
2023-07-22 08:00:59 -07:00
Malthe Larsen
94ab049637
add plugin_dir field to RepoSpec (#4017) 2023-07-17 11:16:33 -07:00
Wez Furlong
e048410491
imgcat: add resize and resample functionality
This is primarily to improve the chances of displaying an arbitrary
image without resorting to additional external tools, that may be
difficult or impossible to install.

refs: #3716
refs: #3264
2023-07-17 10:55:53 -07:00
Wez Furlong
69e610041b
sync color schemes 2023-07-16 23:13:08 -07:00
Wez Furlong
b9673249d9
cargo update 2023-07-16 20:34:39 -07:00
dependabot[bot]
c2e0395fac build(deps): bump actions/upload-pages-artifact from 1 to 2
Bumps [actions/upload-pages-artifact](https://github.com/actions/upload-pages-artifact) from 1 to 2.
- [Release notes](https://github.com/actions/upload-pages-artifact/releases)
- [Commits](https://github.com/actions/upload-pages-artifact/compare/v1...v2)

---
updated-dependencies:
- dependency-name: actions/upload-pages-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-16 20:34:16 -07:00
Wez Furlong
7214470073
docs: fix typo
closes: https://github.com/wez/wezterm/issues/4006
2023-07-16 12:31:27 -07:00
Wez Furlong
360247fe8d
windows: remove positional mods from termwiz overlay panes
otherwise, the termwiz line reader can become confused and
fail to recognize key presses like `(` which have SHIFT and LEFT_SHIFT
set.

refs: https://github.com/wez/wezterm/issues/3999
2023-07-16 09:45:22 -07:00
Wez Furlong
822a766761
conpty: adjust screensize probing
We need a delay, and to be able to swallow a couple of
excess xtversion responses in order to read the pixel
dimension response.
2023-07-16 08:46:45 -07:00
Wez Furlong
e2c9c60acd
termwiz: fix windows build 2023-07-16 07:02:12 -07:00
Wez Furlong
feb9e11b33
termwiz: refactor terminal probing
Factor out the probe_screen_size method from the Terminal
trait and put it into a ProbeCapabilities struct.

This makes it easier to introduce other sorts of probed
information without making the Terminal trait grow all sorts
of additional methods.

A Terminal may choose not to support probing, which it cannot
if it doesn't have Read + Write handles to an underlying terminal
(such as some special cases in wezterm).
2023-07-16 06:53:17 -07:00
Wez Furlong
abc92e56e0
Fix vim pilot error
refs: https://github.com/wez/wezterm/issues/3624
refs: https://github.com/wez/wezterm/issues/3716
2023-07-15 22:22:10 -07:00
Wez Furlong
b7771feef6
imgcat: work better with tmux and conpty
Neither of these understand image protocols, and both are
an additional processing layer between the application and
wezterm.

This commit detects and wraps OSC sequences in tmux's passthru
sequence so that the data is passed on to wezterm rather than
elided from the data stream.

For image protocols in both tmux and conpty, work a little
smarter and explicitly move the cursor position to the same
location that wezterm would move it to.  That prevents the
display from being as mangled by tmux/conpty due to a diverging
understanding of the cursor position.

The logic isn't perfect, and can result in the x-coordinate
being incorrect, and this won't work with the new --position
argument either in its current state, without adding a lot
of complexity to deal with scrolling and relative and absolute
positioning handling.

To facilitate that, a new termwiz Terminal trait method has
been added to probe the terminal name, version, cell and pixel
dimensions. It's not pretty.

refs: https://github.com/wez/wezterm/issues/3624
refs: https://github.com/wez/wezterm/issues/3716
2023-07-15 22:13:19 -07:00
Wez Furlong
2e505ad869
imgcat: add --position, --no-move-cursor and --hold options
These allow additional control over image placement

refs: https://github.com/wez/wezterm/issues/3716
2023-07-15 16:27:52 -07:00
Wez Furlong
b54b0ce404
fix old NF 2.0 symbols for shortcuts in command palette
These got overlooked because they weren't using symbolic names.
Fix that while we're in here.

refs: #3988
2023-07-14 11:08:39 -07:00
Wez Furlong
115e629ec1
fix pane:split{}
Similar issue as 31eb4fe271

refs: https://github.com/wez/wezterm/issues/3985
2023-07-13 17:44:00 -07:00
Wez Furlong
f73f718098
Revert "ci: don't use release mode for tests"
This reverts commit cc567ab464.

It didn't improve anything and seems to have broken the windows CI.
2023-07-13 08:14:19 -07:00
Wez Furlong
31eb4fe271
fix window:perform_action
Accidentally broken by 750f49f0ae

refs: https://github.com/wez/wezterm/issues/3981
2023-07-13 07:37:05 -07:00
Wez Furlong
4924fd5137
repl: improve printing of various lua types
We can now delegate to the new mlua helpers for a lot of this stuff.
We do still take first dibs on printing userdata so that we can use
our dynamic data interpretation when available, but otherwise, we
can now show reasonable information about things like builtin file
objects, and include the pointer address of things like functions
to help disambiguate them when printing them.

refs: #3849
refs: https://github.com/khvzak/mlua/issues/291
2023-07-12 14:15:08 -07:00
Wez Furlong
750f49f0ae
deps: upgrade mlua to 0.9.0-rc.1
refs: https://github.com/khvzak/mlua/issues/291
refs: #3849
2023-07-12 14:14:55 -07:00
Wez Furlong
af6134df4f
docs: fedora 35 is no longer supported 2023-07-12 12:59:37 -07:00
Wez Furlong
dfd1bb0ea4
docs: update for available linux builds
refs: https://github.com/wez/wezterm/issues/3973
2023-07-12 12:57:19 -07:00
Wez Furlong
719a513d0b
ci: add debian 12
refs: https://github.com/wez/wezterm/issues/3973
2023-07-12 12:02:47 -07:00
Wez Furlong
cc567ab464
ci: don't use release mode for tests
The original thinking was that it would be quicker to reuse
the existing release mode deps, but I'm not sure if that is
still true, so let's test it to see.

At the time of writing, the test phase takes 8-12 minutes depending
on the OS, with most of that being compilation.
2023-07-12 08:35:14 -07:00
Wez Furlong
5d1136d29b
Revert "front_end defaults to OpenGL again"
This reverts commit f4abf8fde7 so that
webgpu is the default again in nightly builds
2023-07-12 07:47:12 -07:00
Wez Furlong
35df521f76
docs: update for release 2023-07-12 07:46:13 -07:00
Wez Furlong
f4abf8fde7
front_end defaults to OpenGL again
Feels safest to do this until we can make a smoother fallback
experience for webgpu.

I will revert this after tagging the release so that nightly
runs webgpu by default.
2023-07-12 07:26:01 -07:00
Wez Furlong
28dcea0ab6
deps: harfbuzz -> 8.0.1 2023-07-12 06:37:34 -07:00
Wez Furlong
523660c192
lua: suppress userdata is not expected type error in repl
When printing built-in-to-lua userdata, avoid tripping over
an error message from mlua.

refs: https://github.com/khvzak/mlua/issues/291
refs: https://github.com/wez/wezterm/issues/3849
2023-07-11 10:27:30 -07:00
Wez Furlong
c7ff432581
mux server: register additional domains
Relocate the helper function to mux-server-impl and have both the GUI
and the mux server call it at the appropriate times.

Introduce default_mux_server_domain which is used instead of
default_domain in the mux server.  This is to avoid recursive
cycles when starting up the mux; we don't want the default
domain to be a unix client that connects to our selves because
we'll try to connect to ourselves, then in act of handling that
spawn in the default domain and try to connect to ourselves and
repeat.

refs: https://github.com/wez/wezterm/issues/3907
2023-07-11 09:34:34 -07:00
Wez Furlong
46e14461eb
mux: improve domain name is invalid error message
refs: #3907
2023-07-11 08:11:39 -07:00
Wez Furlong
51294e03c1
docs: link tab:set_title to PromptInputLine example 2023-07-11 06:56:13 -07:00
Wez Furlong
64c3759091
docs: fix see-also list
mkdocs is a bit particular about markdown list syntax
2023-07-10 22:54:06 -07:00
Wez Furlong
58434ef685
docs: faq: add note about macos and sparse default path 2023-07-10 22:48:22 -07:00
Wez Furlong
cbccbd3478
wayland: speculative fix for reading keymap from a pipe on chromebook
refs: #3958
2023-07-10 20:19:20 -07:00
Wez Furlong
d07ec3e8bb
docs: changelog for #3674 2023-07-10 17:17:39 -07:00
Magnus Groß
087e11ebbb Drop duplicate entries from CharSelect menu
Previously the same emoji was able to appear multiple times in the
CharSelect modal for emoji input, because one emoji might have multiple
aliases. In fact, often the aliases have similar names, making it
especially likely that a fuzzy match matches multiple aliases at the
same time.

The same Unicode char may even match multiple times both as
Character::Unicode as well as a Character::Emoji.

To make the deduplication easy, store the results in a hash map instead
of a vector. We use the glyph as the key of the map to get free
deduplication.

Only update the mapped value, if a duplicate entry would improve the
score.

Performance-wise this is pretty much identical to the previous state.
We do see minor performance regression for very large n - granted, this
is expected as we do more work - but the use of the HashMap covers up
for a large part of it.

If the user types more than 3 characters, the performance is absolutely
identical. For less than 3 characters, the performance was unacceptable
anyway (700 ms before this patch, 800 ms after this patch on my system).

Here is a side-by-side comparison for a user iteratively typing the
query "no-evil":

#  Before         After
1  718.361276ms   837.612275ms
2  719.532450ms   816.348394ms
3  349.625101ms   369.726458ms
4  356.349671ms   354.367768ms
5  363.862194ms   361.985546ms
6  372.339582ms   370.022932ms
7  381.123785ms   378.349672ms

In fact, for small n, the hash map seems to perform even slightly better
than the vector.
For large n we need to optimize the performance anyway, as both 700ms
and 800ms are unacceptable.
Thus, this is worth it for the benefit of Unicode symbol deduplication.
2023-07-10 17:16:23 -07:00
Wez Furlong
b9c23d19a1
new exit_behavior_messaging option
Controls the message that is shown when holding a pane open
after a process has completed.

refs: #3423
2023-07-10 17:14:48 -07:00