1
1
mirror of https://github.com/wez/wezterm.git synced 2024-11-27 02:25:28 +03:00
Commit Graph

565 Commits

Author SHA1 Message Date
Wez Furlong
c7b689e369
fonts: starting building out harfbuzz rasterizer
This seems like it might be a way to get COLR support without
too much effort.

This commit just adds bitmap image support as a first step
2023-08-20 15:18:09 -07:00
UserIsntAvailable
fd9afa18c6 add awesome to default tiling_desktop_environments. 2023-08-19 16:31:09 -07:00
Wez Furlong
0499ab0430
mlua 0.9 is now stable; update 2023-08-17 09:26:47 -07:00
Wez Furlong
edbf4ac1e4
add experiemental svg font support
The vertical alignment is wonky, and some glyphs have the wrong
aspect and are missig colors. eg: the watermelon glyph in Noto Color
Emoji (U+1f349).

Turn this off by default, and skip loading fonts that have svg by
default.
2023-08-15 10:33:45 -07:00
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
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
Wez Furlong
69e610041b
sync color schemes 2023-07-16 23:13: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
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
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
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
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
Wez Furlong
dbed5017f8
Add new color schemes: hardhacker and bamboo
refs: https://github.com/wez/wezterm/issues/3831
refs: https://github.com/ribru17/bamboo.nvim/issues/4
2023-07-09 21:26:18 -07:00
Wez Furlong
633e6e4481
color schemes: adjust sync aliasing
* Change aliasing to exact matches of the color data.
* Don't "GC" away schemes that are no longer reachable from aggregators;
  just because they are no longer listed elsewhere, doesn't mean that we
  should remove the name/scheme from wezterm if it was already made
  available in an earlier release.

refs: #3831
2023-07-09 21:20:48 -07:00
Ye Sijun
95ab807aab add color config for char select
Signed-off-by: Ye Sijun <junnplus@gmail.com>
2023-05-28 09:01:22 -07:00
Wez Furlong
6bcb8eed56
add i3 to default tiling_desktop_environments 2023-05-17 06:34:45 -07:00
Wez Furlong
dc2cd706dc
macos: remove about dialog
Replace it with a menu item that shows the version number, and
that you can click to copy the version number.

closes: https://github.com/wez/wezterm/issues/3507
2023-04-24 11:08:18 -07:00
Wez Furlong
1e8fd7a95b
expand tiling_desktop_environments list 2023-04-17 22:35:02 -07:00
Wez Furlong
87cd9c5f6c
adjust_window_size_when_changing_font_size now considers tiling WMs
It's a little limited in the scope of its detection: we have a built-in
list of tiling WM environments and if the current one is on the list
then we set an appropriate value for this option.

The list currently has just a single entry.
2023-04-17 21:58:08 -07:00
Wez Furlong
b9f6bbd495
make the default front_end=WebGpu 2023-04-17 18:00:51 -07:00
kingavatar
eef5ffb0ce
feat: add acrylic accent color as config and other refactors 2023-04-17 06:33:01 -07:00
kingavatar
a0b625985e
feat: add systembackdrop like acrylic and mica for windows os
Added functionality which enables Setting SystemBackdrop for windows os like mica, Acrylic, tabbed.
2023-04-17 06:33:00 -07:00
Erich Gubler
a58baacdef feat: add nu.exe to default skip_close_confirmation_for_processes_named
It's obvious that Nushell is intended to be skipped by default for close
confirmation. However, on Windows, Nushell instances are named `nu.exe`,
not `nu`, so they don't get skip-closed properly. Add `nu.exe` alongside
`nu`, so Windows behaves as expected.
2023-04-10 09:11:42 -07:00
Wez Furlong
5e5989f3e2
build: revise dep graph for version changes
Previously, the config crate would get rebuilt each time the
git state changed, which has a lot of fan out and makes the build
take longer than it really needs to.

This commit breaks out the version changing stuff to its own crate
and then provides a runtime mechanism for assigning the version
information back into the config crate.

The env-bootstrap crate is responsible for setting that up.
2023-04-08 17:03:03 -07:00
Wez Furlong
62256c80b4
config: defer evaluating default wsl domains
The stack trace in https://github.com/wez/wezterm/issues/3425
shows a recursive borrow triggered indirectly by spawning
a subprocess and having that trigger the wndproc.

This commit doesn't really fix the recursive problem, but may
sidestep it, and it's probably best to avoid always running
the `wsl` command to get this list anyway, similar to the
change in 25255d90d6

refs: https://github.com/wez/wezterm/issues/3425
2023-04-08 08:51:47 -07:00
Wez Furlong
cbbe0da9d7
schemes: fix origin url when importing toml files 2023-04-07 10:48:19 -07:00
Wez Furlong
0a0c939c6f
add more color schemes
Primarily those from https://codeberg.org/anhsirk0/wezterm-themes
but also updated the others
2023-04-07 10:43:32 -07:00
Wez Furlong
b45a4d7215
add wezterm.has_action
refs: https://github.com/wez/wezterm/issues/3454
2023-04-06 20:46:32 -07:00
Wez Furlong
e3e9821c4d
Add InputSelector action
Allows prompting the user to select from a list and then
triggering some action on the selected item.

This is the guts of the launcher menu hooked up to user-supplied
arbitrary entries.
2023-04-05 17:22:09 -07:00
Wez Furlong
336fefb52f
Add PromptInputLine and examples of (re)naming tabs/workspaces
refs: https://github.com/wez/wezterm/issues/522
refs: https://github.com/wez/wezterm/issues/1598
2023-04-04 21:11:08 -07:00
Wez Furlong
adcadca480
mux: increase default fetch throttle limit
I've seen a few warnings about hitting the throttle in vim
when running locally, raise the headroom a bit
2023-04-04 17:17:07 -07:00
Wez Furlong
4be2b9dbeb
make config_builder work with table.insert(config.keys, ...)
This had a referencing issue, similar to the more recent GLOBALS
issue.

The resolution in this case is a lot simpler: we can just return
a regular lua table and use all the same underlying semantics,
but stick a metatable over the top to handle assignment and
provide the strict mode method.
2023-04-04 11:43:21 -07:00
Jalil David Salamé Messina
b32863cc2f fix(clippy): Implement From instead of Into
Implementing `From` is prefered as this also implements the `Into` trait, may
not be desireable for code size/compilation time reasons.
2023-04-03 08:31:12 -07:00
Wez Furlong
d36ad7ca7f
mux: reduce volume of bonus lines sent by server
At 80x24 (< 2k cells), sending all 24 lines of the viewport as an
optimistic prefetch is "OK", but for full screen 4k (80*250 = 20k cells)
the volume is oversized and pushes latency up.

This commit dials that back down to the minimal useful data; the
cursor row + any changed rows in the viewport.  When navigating
in vim that reduces things down to 2 rows of prefetch per movement,
assuming that the status line is being updated to show the cursor
position.

This feels a little more snappy for me.

refs: https://github.com/wez/wezterm/issues/2503
refs: https://github.com/wez/wezterm/issues/1872
2023-04-02 16:26:11 -07:00
Wez Furlong
49296500da
mux: forward ClearScrollback requests to remote server
refs: #2624
2023-04-02 14:17:05 -07:00
Wez Furlong
25255d90d6
config: lazyily produce ssh domain list
I noticed that in debug builds, `wezterm set-working-directory` had
high/variable latency, and I traced part of it to the ssh config parsing
logic.

Make that lazily evaluate the ssh config.

refs: #3402
2023-04-02 10:34:46 -07:00
Wez Furlong
e000e91683
maybe fix freebsd build
rlim_t is signed on that platform, so take care to convert
to appease the compiler.
2023-04-02 06:36:46 -07:00
Wez Furlong
8582165ffc
add display_pixel_geometry config option for subpixel geometry
refs: #3422
2023-04-01 11:05:09 -07:00
Wez Furlong
28417ada78
font: minor refact to derive Default for FreeTypeLoadTarget 2023-04-01 10:46:38 -07:00
Wez Furlong
929e86225d
cheaper case insensitive compare 2023-03-31 21:52:54 -07:00
YuraIz
ab52277393
integrated-title-bar: Replace window button recoloring
also change shape of rounded corners to ovals
2023-03-31 19:59:01 -07:00
YuraIz
01aeb506c0
integrated-title-bar: Update config options
and rename the "FANCY" option to "INTEGRATED_BUTTONS"
2023-03-31 19:51:46 -07:00
YuraIz
7d79933d28
integrated-title-bar: Ignore style config on macos and windows 2023-03-31 19:45:28 -07:00
YuraIz
2333046e1b
integrated-title-bar: Add button placement option 2023-03-31 19:45:26 -07:00
YuraIz
0401dc26d6
integrated-title-bar: Add libadwaita styled buttons 2023-03-31 19:44:20 -07:00
YuraIz
29fe4709ce
integrated-title-bar: Add color configuration 2023-03-31 19:44:19 -07:00
YuraIz
36f41af81e
integrated-title-bar: Add window buttons to the tabbar 2023-03-31 19:44:13 -07:00
Wez Furlong
74da631430
mux: allow client to provide palette to mux server
The server-side ownership of the palette is a stumbling block for
many users, so let's fix it.

This commit allows the client to pass its configured palette to
the server when it connects, and when the config is changed.

That palette takes precedence over the palette from the server config.

However, if the remote application uses any escape sequences that
redefine the color palette, the color palette that was active at
that point in time is forked and use as the basis, and will remain
the active palette until the palette is reset via escape sequences.

refs: https://github.com/wez/wezterm/issues/2686
refs: https://github.com/wez/wezterm/issues/3397
2023-03-31 08:02:32 -07:00
Wez Furlong
d1c2257bd8
macos: fix CTRL key behavior when use_ime=true
refs: https://github.com/wez/wezterm/pull/2435
refs: https://github.com/wez/wezterm/issues/2771
refs: https://github.com/wez/wezterm/issues/2630
2023-03-30 21:49:48 -07:00