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

6490 Commits

Author SHA1 Message Date
Wez Furlong
49b9839fdb
fix IME composition status applying to all panes
refs: https://github.com/wez/wezterm/issues/2569
2022-11-19 14:50:34 -07:00
Wez Furlong
2dd3968b9e
allow disabling tabs, new tab button in tab bar
refs: https://github.com/wez/wezterm/issues/2082
2022-11-19 13:54:10 -07:00
C.D. MacEachern
aa72cd24d0
Update macos docs with wezterm CLI installation (#2619)
* Update macos docs with wezterm CLI installation

wezterm binary is not by default available in shells like the default zsh or bash, on macos we need to explicitly add the path to the wezterm binaries inside the WezTerm.app

* Update docs/install/macos.markdown

Co-authored-by: Wez Furlong <wez@wezfurlong.org>
2022-11-19 09:44:28 -07:00
Wez Furlong
dbeeaef2f0
docs: changelog for https://github.com/wez/wezterm/pull/2661 2022-11-19 09:12:38 -07:00
kas
74e55d09e1 Fix relative CWD path given on command line being interpreted as within the server's CWD 2022-11-19 08:11:13 -08:00
jakehl
d3d1db8663 fixes flow chart and typo in config file docs 2022-11-19 07:53:04 -08:00
Wez Furlong
d31aeadd5a
docs: changelog for https://github.com/wez/wezterm/pull/2636 2022-11-19 08:35:54 -07:00
Jet Spark
ec2715a354 Fix background cover algorithm 2022-11-19 07:34:36 -08:00
Wez Furlong
fde535faf1
Fix dragging by left or right status with retro tab bar
Another good example of why `_ =>` in a match is probably a bad idea.

refs: https://github.com/wez/wezterm/issues/2758
2022-11-19 08:26:33 -07:00
Wez Furlong
d96b05c06c
docs: fix MoveTabRelative default key assignments
closes: https://github.com/wez/wezterm/issues/2705
2022-11-19 08:14:00 -07:00
Wez Furlong
94f2225c82
docs: update first example to use wezterm.action style
closes: https://github.com/wez/wezterm/issues/2704
2022-11-19 08:08:50 -07:00
KevinSilvester
2c6748daa6
gui: improve error message for unsupported height/width values for Color and Gradient
closes: https://github.com/wez/wezterm/pull/2681
2022-11-19 08:01:57 -07:00
Wez Furlong
e0aa66489f
webgpu: improve messaging when no adapters are found
refs: #2756
2022-11-19 07:30:08 -07:00
Wez Furlong
7afe0c5f40
webgpu: minor optimization of shader
compute the actual color once for the vertex, rather than for each
fragment.
2022-11-19 07:13:34 -07:00
Wez Furlong
a4ec2560a2
use constants for has_color values in wgsl shader and in the rust code
Slightly improve the efficiency of the hsv transform for text
by multiplying the two transforms together and performing just
one hsv color conversion.
2022-11-18 13:22:18 -07:00
Wez Furlong
dad5fbd1f9
webgpu: support hsv transforms 2022-11-18 10:29:31 -07:00
Wez Furlong
1f7a34f8b2
fix resizing on windows when wgpu is enabled 2022-11-18 10:03:49 -07:00
Wez Furlong
783b39aae1
add some config options to influence webgpu selection 2022-11-18 10:03:49 -07:00
Wez Furlong
883e2d11d7
make drawRect work on macos when using webgpu 2022-11-18 10:03:49 -07:00
Wez Furlong
76576daa69
This makes webgpu actually render
It doesn't have some of the functions from the egl shader yet,
but the text is visible!
2022-11-18 10:03:49 -07:00
Wez Furlong
acbec709b5
fixup crash when running in webgpu mode 2022-11-18 10:03:49 -07:00
Wez Furlong
ac15dd54c0
plumb webgpu code into draw path
Using the new abstractions, we can call into webgpu code now.

It doesn't do anything useful, and in fact crashes because
the mapping of the quads is doing the wrong thing.

Will fix in the next commit.
2022-11-18 10:03:49 -07:00
Wez Furlong
9c1a88d797
Abstract more over the render state, add RenderContext 2022-11-18 10:03:49 -07:00
Wez Furlong
19385d3355
put WebGpuState into an Rc
So that we can pass it to RenderState
2022-11-18 10:03:49 -07:00
Wez Furlong
334fb8a2ed
Add IndexBuffer abstraction 2022-11-18 10:03:49 -07:00
Wez Furlong
d712559b72
Add VertexBuffer abstraction 2022-11-18 10:03:49 -07:00
Wez Furlong
7a77854bf0
Add MappedVertexBuffer abstraction 2022-11-18 10:03:49 -07:00
Wez Furlong
c1f9fe3a84
make TripleLayerQuadAlloctor::Gpu(BorrowedLayers) self-referential
This makes it easier to manage the lifetimes of the various pieces
needed to allocate vertices, and to make it work with webgpu
in the future.
2022-11-18 10:03:49 -07:00
Wez Furlong
043606772f
use a self-referential struct for mapping vertexbuffers 2022-11-18 10:03:49 -07:00
Wez Furlong
09f1ecbf82
erase generic T from Atlas, Sprite, CachedGlyph etc.
This will make it easier to use the same impl for webgpu and opengl
for a bunch of this stuff.
2022-11-18 10:03:49 -07:00
Wez Furlong
8e7eb82a22
notionally allow webgpu texture atlas creation
Nothing calls it yet, may not be correct
2022-11-18 10:03:49 -07:00
Wez Furlong
00943345b6
make Vertex conform to Pod 2022-11-18 10:03:49 -07:00
Wez Furlong
8479be7465
Basic useless wgpu based rendering foundation 2022-11-18 10:03:49 -07:00
Wez Furlong
eaa91e9314
deps: update raw-window-handle 2022-11-18 10:03:49 -07:00
Wez Furlong
35e3e30d7a
docs: add_wsl_distributions_to_launch_menu was removed
Update WSL related info to reflect its removal and note about
how to achieve the same effect as turning it off.

refs: #2750
2022-11-17 06:29:41 -07:00
Wez Furlong
35fd69b0d5
partially handling overflowing tab titles
The recent changes to clustering make this more likely to happen.
This doesn't handle overflow resulting from changing styles in the tab
title, but those are less common.

refs: https://github.com/wez/wezterm/issues/2560
2022-11-15 15:38:45 -07:00
Wez Furlong
62e2e996da
changelog for https://github.com/wez/wezterm/pull/2746
closes: https://github.com/wez/wezterm/issues/2667
2022-11-15 09:44:44 -07:00
Xeysz Matrasx
c55cecaee5 Allow windows installer to run on arm64 emulating x64 2022-11-15 08:41:18 -08:00
Wez Furlong
387d0ad3e3
rustdoc markdown fences-- 2022-11-15 09:40:10 -07:00
Wez Furlong
9569028d98
xcursor: parse and follow theme inheritance
A couple of users ran into an issue where wezterm couldn't find
their mouse cursor icons.

Looking more deeply into this, we weren't looking at `index.theme`
files and following the inheritance chain from them.

This commit addresses that!

refs: https://github.com/wez/wezterm/issues/2687
refs: https://github.com/wez/wezterm/issues/2743
2022-11-15 09:15:43 -07:00
Wez Furlong
30daed40b3
reduce size of BoxedQuad by 2/3
Since we're no longer tied to contiguous Vertex slices, we can
record the Quad data used for HeapQuadAllocator in a smaller structure,
so that's what this does.

It reduces the per-Quad storage from 272 bytes down to 84 bytes,
which helps with overall memory usage: the default cache size is 1024
lines worth of quads, so this can add up to multiple MB of RAM.

refs:  https://github.com/wez/wezterm/issues/2626
2022-11-14 23:11:02 -07:00
Wez Furlong
a852e47dba
quads: switch to allocating quads rather than contiguous vertices
This reduces peak heap usage by several MB by making better use
of allocated memory--no wasted overhead in the Vec capacity.

refs: https://github.com/wez/wezterm/issues/2626
2022-11-14 14:44:25 -07:00
Wez Furlong
84e2501df2
remove dead code 2022-11-14 13:47:38 -07:00
Wez Furlong
173e27d2e8
Add support for heap profiling using dhat
refs: https://github.com/wez/wezterm/issues/2626
2022-11-14 13:26:02 -07:00
Wez Furlong
831eda86b9
perf: adjust clustering when bidi is disabled
When a line is rapidly updated with only some of the cells being
actually changed (eg: progress counter or other status being frequently
updated), it is desirable to avoid paying the cost of shaping the entire
line.

When bidi is not enabled we can assume that it is safe to break clusters
on whitespace boundaries. Doing so allows each of those whitespace
separated words to be shaped and potentially cached independently,
which reduces the amount of CPU time spent for the whole line.

This commit just adjusts the clustering, which reduces the CPU
utilization a bit.

refs: https://github.com/wez/wezterm/issues/2701
2022-11-14 10:05:20 -07:00
Wez Furlong
0516b61f62
lfucache: improve LFU algorithm and structure
Do it "more properly": use intrusive list linkage to manage three
indices:

* hash lookup
* recency
* frequency

eviction is frequency based, but in order to avoid things that were
super hot in the past and that are no longer hot clogging up the cache,
eviction will incrementally age out least recently used entries that
haven't been active in the span of some number of get/put operations.

Aging scales down the frequency value to reduce its strength, so an aged
item isn't necessarily immediately a candidate for removal, it just
makes it more likely to be picked up by the frequency based removal as
it goes unused for an extended period.
2022-11-14 10:00:49 -07:00
Wez Furlong
72757b8849
refactor: move lfucache into its own crate 2022-11-14 07:35:37 -07:00
Wez Furlong
36f215c03e
cargo update 2022-11-13 18:24:31 -07:00
Wez Furlong
38ab42b5bf
docs: remove wezterm-nightly-bin AUR link
I plan to retire that as it has ABI compatibility issues on arch

refs: https://github.com/wez/wezterm/issues/2712
2022-11-13 17:09:52 -07:00
Wez Furlong
1c8a20d577
gui: fix cursor color invalidation issue
Things like compose cursor and dynamically changed cursor colors
were not factored into our cache keys, making the cursor color
"sticky" in the wrong ways.

refs: https://github.com/wez/wezterm/issues/2708

Might possibly also help with https://github.com/wez/wezterm/issues/2635
2022-11-13 16:47:34 -07:00