1
1
mirror of https://github.com/wez/wezterm.git synced 2024-11-22 04:56:12 +03:00
Commit Graph

1450 Commits

Author SHA1 Message Date
Wez Furlong
67603e73e0
PromptInputLine: fixup per code review
Apply my suggestions from code review.

closes: https://github.com/wez/wezterm/pull/6007
2024-09-22 14:45:11 -07:00
Eduard Korchmar
b59cc5b008
feat: add a way to spawn populated LineEditor
feat: support pre-filled content in prompts

docs: document new PromptInputLine parameter

fix: remove reset of line contents
2024-09-22 14:45:11 -07:00
mgpinf
6a12dd1a13
Custom prompt for PromptInputLine (#6054)
* option to configure PromptInputLine prompt

- Introduces an option to set custom prompt text
- If 'prompt' not passed in parameters, default value of "> " used

* commit: update documentation for PromptInputLine

* Update docs/config/lua/keyassignment/PromptInputLine.md

---------

Co-authored-by: Wez Furlong <wez@wezfurlong.org>
2024-09-22 10:55:55 -07:00
Wez Furlong
09ac8c5377
wgpu -> 22.1
Tested on X11 and Wayland via weston and seems to work

closes: https://github.com/wez/wezterm/pull/5814
2024-09-15 05:56:56 -07:00
Sean
e5387997ba
Restrict bell events to the proper window. (#6012)
* Restrict bell events to the proper window.

As per the comment in mod.rs, bell events are sent to
all windows; not just the window containing the pane
which generated the event.

To prevent each bell ringing multiple times, the window
event handler must check if it has the pane, and ignore
the bell event if it doesn't.

This fixes bug #5985

Co-authored-by: Sean Estabrooks <sean.estabrooks@eztux.com>
2024-09-14 08:25:44 -07:00
Wez Furlong
c0649ad4bb
remove cfg_attr(feature = "cargo-clippy" noise
I never liked clippy for dropping turds like this throughout the
code. I'm glad it is no longer required, but now rust is warning
about this syntax being redundant.
2024-09-14 06:49:13 -07:00
Wez Furlong
56a27e93a9
cargo update
plus some noise around the image crate api evolving and deprecating
some type aliases.
2024-07-30 08:27:27 -07:00
Leszek Swirski
fef52df952
Add a CloseWithoutClear copy mode key assignment (#4924)
* Add a CloseWithoutClear copy mode key assignment

Closing the copy overlay currently unconditionally clears the viewport,
in particular resetting scroll. For the search overlay, we don't
necessarily want to scroll back to the prompt after finding a match --
indeed, the old search overlay (which didn't use copy mode) had this
behaviour.

Add a CloseWithoutClear key assignment which has this desired behaviour,
and make it the default for ESC in search mode.

* Change CloseWithoutClear into normal Close, and add ResetViewport

* Remove ResetViewport, add helper for keys
2024-07-22 08:06:54 -07:00
Wez Furlong
b20c61926e
switch all fuzzy matches to nucleo
Centralize the thread local state management into the selector module
to make it a bit more convenient to consume from the various other
locations.

closes: https://github.com/wez/wezterm/issues/5532
2024-07-14 11:03:54 -07:00
Wez Furlong
6b5edad360
charselect: switch to nucleo fuzzy matcher
This has more intuitive sorting; eg: `line` used to show the first match
as `linux_endeavour` but now matches `LINEAR B IDEOGRAM VESSEL B212`
first, which feels more relevant (has an exact prefix match).

refs: https://github.com/wez/wezterm/issues/5532
2024-07-14 10:41:26 -07:00
Wez Furlong
824def9e2c
remove some unused fields 2024-07-14 07:59:25 -07:00
Wez Furlong
616eb2fc21
fix: PaneInformation.pixel_height returned width!
Thank you to Rust's unread field warning!
2024-07-14 07:52:05 -07:00
Wez Furlong
209d13bd6b
allow some unused fields
I want these for the future, and they are harmless now
2024-07-14 07:50:30 -07:00
Wez Furlong
f7a0a0f1a6
blob-lease: improve error handling
If someone removed the directory structure, or otherwise messed with
the files, there was a good chance that we'd end up in a panic.

This commit improves the error messaging produced by the blob
lease layer to provide the path as context, log the error,
and then translate the error case to an empty frame so that
the rest of the rendering machinery can proceed in a more reasonable
way.

We take care to log this sort of corrupt frame error only once,
as it is most likely to occur in an animated gif and will thus
trigger multiple times per second for such a file.

refs: #5422
2024-07-14 07:45:10 -07:00
Wez Furlong
ff4528e783
fix: blob leases could be broken by tmpwatch
Let's put them in an application-specific cache directory
location instead.

refs: #5422
2024-07-14 07:10:17 -07:00
Wez Furlong
4e8eb7c2ca
fix: quickselect now matches paths with //
closes: https://github.com/wez/wezterm/issues/5763
2024-07-13 14:25:01 -07:00
Aleksey Kuznetsov
a46bad17d2
config: show/hide close-tab button 2024-07-13 11:32:54 -07:00
dependabot[bot]
b158472099 build(deps): bump the all group across 1 directory with 2 updates
Bumps the all group with 2 updates in the / directory: [http_req](https://github.com/jayjamesjay/http_req) and [gethostname](https://github.com/swsnr/gethostname.rs).


Updates `http_req` from 0.10.3 to 0.11.0
- [Release notes](https://github.com/jayjamesjay/http_req/releases)
- [Commits](https://github.com/jayjamesjay/http_req/compare/v0.10.3...v0.11.0)

Updates `gethostname` from 0.4.3 to 0.5.0
- [Changelog](https://github.com/swsnr/gethostname.rs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swsnr/gethostname.rs/compare/v0.4.3...v0.5.0)

---
updated-dependencies:
- dependency-name: http_req
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all
- dependency-name: gethostname
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-13 06:49:29 -07:00
Andy Georges
17958dbbec
Check for the presence of CARGO_BUILD_TARGET_DIR env variable (#5430)
* feat: use CARGO_BUILD_TARGET_DIR env

When building in the presence of a CARGO_BUILD_TARGET_DIR, there is no
target dir created inside the repo, so copying to a location within the
local repo dir fails, hence we need to copy to the actual target dir
that is being used.

* fix: environment variable with correct name
2024-06-17 08:25:57 -07:00
Ken Chou
1533409ed7
Feature: The search overlay accepts IME composed input (#5564)
* Feature: The search overlay accepts IME composed input
* use LineEditBuffer

Co-authored-by: Wez Furlong <wez@wezfurlong.org>
2024-06-15 05:42:00 -07:00
Ivan Moiseev
72465af6d7
Add arrows support for search field (#5416)
* feat: add arrows support for search field
* refactor: extract LineEditBuffer from LineEditor
* refactor: migrate search field to LineEditBuffer
* feat: add key bindings for search field

Co-authored-by: Ken Chou <kenchou77@gmail.com>
2024-06-14 11:21:07 -07:00
Wez Furlong
9bfcb69139
deps: metrics -> 0.23
refs: https://github.com/wez/wezterm/pull/5512
2024-06-07 17:53:46 -07:00
Wez Furlong
0fcd4a847c
move uds stuff into new wezterm-uds crate
This centralizes the conditional imports and makes a home
for the IoSafe trait annotation for smol/async-io compat.
2024-05-13 17:56:57 -07:00
Wez Furlong
6b493ecd18
windows: another run at fixing up the build 2024-05-13 15:09:48 -07:00
Wez Furlong
2a068cacb7
deps: update terminfo 2024-05-13 12:29:19 -07:00
Wez Furlong
1ca5e6cc90
deps: upgrade smol to 2.0 2024-05-13 10:26:29 -07:00
Wez Furlong
6c890c3995
update metrics to latest version (0.22) 2024-05-13 09:41:12 -07:00
Wez Furlong
281b6e2740
deps: update metrics to a more recent version
This isn't the latest version of metrics; it's just a more recent
version that allows us to remove a duplicate ahash dependency from the
build graph.
2024-05-13 09:41:11 -07:00
Wez Furlong
14d426fea8
add cargo deny config, update lru 2024-05-13 08:29:36 -07:00
Wez Furlong
0711455135
add default_ssh_auth_sock option
This is useful (essential!) for fixing up the default auth sock
under gnome, as we do not have a way to do that via whatever
logic may be present in the shell startup files.
2024-05-09 14:27:03 -07:00
Wez Furlong
265b85be1d
update image to 0.25
This improves how non-conforming jpegs are decoded and displayed.

refs: https://github.com/wez/wezterm/issues/5365
2024-05-05 16:14:46 -07:00
Wez Furlong
25257c6b38
rustfmt 2024-05-05 13:30:42 -07:00
stribor14
1dd5d6deac
Refactoring custom glyph drawing 2024-05-05 13:26:57 -07:00
stribor14
5f55624468
Cell diagonals 2024-05-05 13:26:57 -07:00
stribor14
4b04752ee5
Fill characters 2024-05-05 13:26:57 -07:00
stribor14
536767dc23
Shade characters 2024-05-05 13:26:57 -07:00
stribor14
26ec91d4e6
Rename Edge to Block, add 'Block Elements' 2024-05-05 13:26:57 -07:00
stribor14
314cb75a77
Smooth mosaic terminal graphic characters (quarter triangles) 2024-05-05 13:26:57 -07:00
stribor14
a38793110c
Smooth mosaic terminal graphic characters 2024-05-05 13:26:57 -07:00
Stefan Siegel
3d511bbd67
Accept drag and drop of URLs from browsers and plain text on X11
For filenames and urls an additional space is inserted after the last
item to enable adding more files and urls with another drag-and-drop
operation without the need to manually enter the space in between.
2024-05-05 12:48:09 -07:00
Jeffrey Knockel
753b6e77ea gui: don't repaint during resize
Wait until set_inner_size() has finished before repainting.  If we
repaint while our request to resize is in progress, our understanding of
the current size of the window may be inconsistent with the actual size,
causing the rendered contents of the window to bounce around.
2024-02-18 13:09:37 -07:00
Jeffrey Knockel
cd5d1f5ea1 gui: pass window to set_inner_size()
This fixes a regression from a0974a25 where TermWindow::set_inner_size()
can be called before the TermWindow's window has been set.
2024-02-18 07:22:20 -07:00
Wez Furlong
4f123a461b
macos (mostly): try harder to get initial dpi
There are a number of open issues that relate to getting the dpi
wrong when spawning a window. In theory it shouldn't matter because
we will immediately realize the difference and synthesize the correct
information, but evidence shows this isn't quite true.

What this commit does is:

* Override Connection::default_dpi() on macOS to return the
  effective_dpi from the active screen instead of the default
  non-retina dpi
* Adjust the Config::initial_size() method to accept an optional
  cell pixel dimension
* Add a helper function to wezterm-gui to compute the cell pixel
  dimensions given the config and the (usually default) dpi, and
  feed that through to Config::initial_size
* in the macos window impl, scale the computed geometry based on
  the ratio of the Connection::default_dpi and the default non-retina
  dpi.

This helps to avoid needing to do a fixup in the
https://github.com/wez/wezterm/issues/4966 case, and may help with
the various other macos quirky issues.

refs: https://github.com/wez/wezterm/issues/2958
refs: https://github.com/wez/wezterm/issues/3575
refs: https://github.com/wez/wezterm/issues/3900
refs: https://github.com/wez/wezterm/issues/4250
refs: https://github.com/wez/wezterm/issues/4285
refs: https://github.com/wez/wezterm/issues/4447
refs: https://github.com/wez/wezterm/issues/4851
refs: https://github.com/wez/wezterm/issues/4966
2024-02-06 22:57:05 -07:00
Wez Furlong
39d2b6ca85
remove show_update_window functionality
dependabot is trying to update pulldown-cmark, but it won't
work because the API has changed.

The update window is not enabled by default and I don't think
anyone uses it anyway, so let's just remove it and have less
code to compile and maintain.

closes: https://github.com/wez/wezterm/pull/4964
2024-02-05 07:04:37 -07:00
Jeffrey Knockel
a0974a2537 Implement SetInnerSizeCompleted events
These are used to signal, after a set_inner_size() call, at what point
we can expect any and all of its related Resized events to have already
been dispatched.  SetInnerSizeCompleted events are currently used to fix
a race condition in rescaling the terminal in which the number of cells
of the terminal (e.g., 80x24) can change when quickly rescaling the
terminal.
2024-02-04 09:40:54 -07:00
Wez Furlong
5046fc2259
Revert "text cursor glyph renders at native cell size"
This reverts commit 2c95b98447.

More people were vocally and sometimes toxic about this change
than were in favor of it.

I'm just going to revert it and leave the original issue open.

refs: https://github.com/wez/wezterm/issues/2882
2024-02-03 11:08:09 -07:00
Wez Furlong
91749f7f1f
docs and missing bit of #4535 #4523 2024-02-03 10:52:15 -07:00
Magnus Groß
beb29e8ff7 Mention the -e aliases explicitly in the help
Otherwise it is just hidden forever. We can't use the proper declarative
interface, because we are faking quite some stuff for "-e", so instead
we mention it explicitly in the help output.
2024-02-03 10:36:07 -07:00
Magnus Groß
191d28113e Always start a new process on "wezterm -e $CMD"
This is done for compatibility, as many tools assume that running a
command with "$TERMINAL -e $COMMAND" blocks until the command is
finished.

For example some tools delete a needed file after the command returns.
But since we always return immediately (in case --always-new-process is
not provided and if another wezterm instance is already running), this
would mean that the file is deleted before the command could do
anything.

Fixes #4523
2024-02-03 10:36:07 -07:00
Wez Furlong
99c17b166f
add wezterm start --new-tab and wezterm connect --new-tab
refs: https://github.com/wez/wezterm/discussions/4854
refs: https://github.com/wez/wezterm/discussions/4946
2024-02-03 07:51:06 -07:00