1
1
mirror of https://github.com/wez/wezterm.git synced 2024-12-25 22:33:52 +03:00
Commit Graph

6343 Commits

Author SHA1 Message Date
Wez Furlong
53febb14ff pty: fixup for macos
e6421d1b72 removed this bit from the
example:

```
-
-    // Note that we're waiting until after we've read the output
-    // to call `wait` on the process.
-    // On macOS Catalina, waiting on the process seems to prevent
-    // its output from making it into the pty.
-    println!("child status: {:?}", child.wait().unwrap());
```

This commit revisits that and puts in place a differently horrible
solution for macos.

The issue is that if we don't put in a short sleep on macos, then
for a short lived process like `whoami` in this example, we end up
reading output like this:

```
; cargo run --example whoami
   Compiling portable-pty v0.8.0 (/Users/wez/wez-personal/wezterm/pty)
    Finished dev [unoptimized + debuginfo] target(s) in 0.60s
     Running `/Users/wez/wez-personal/wezterm/target/debug/examples/whoami`
child status: ExitStatus { code: 0, signal: None }
output: \r\n^D\u{8}\u{8}wez\r\n%
```

where the EOT that we send on Drop somehow gets *prepended* to the output
that we read from the pty with a couple of BELs thrown in.

I'm not sure WTF is happening on macOS for that to occur; feels like
some kind of race wrt. process startup and initializing the pty in the
system.

The reader has to be started before we close it as well, otherwise
the same issue can occur.
2022-08-12 08:37:20 -07:00
Wez Furlong
e6421d1b72 pty: try_clone_writer -> take_writer
This breaking API change allows us to explicitly generate EOF when the
taken writer is dropped.

The examples have been updated to show how to manage read, write
and waiting without deadlock for both linux and windows.
Need to confirm that this is still good on macOS, but my
confidence is high.

I've also removed ssh2 support from this crate as part of this
change. We haven't used it directly in wezterm in a long while
and removing it from here means that there is slightly less code
to keep compiling over and over.

refs: https://github.com/wez/wezterm/discussions/2392
refs: https://github.com/wez/wezterm/issues/1396
2022-08-12 07:56:46 -07:00
Wez Furlong
259210dc2d term: hook flush up to ThreadedWriter
I'd forgotten that this was in here.
The recentish fixes to flush for various terminal queries
likely need this to be 100% good.  Surprised this hasn't
come up as a bug already :-/
2022-08-12 07:55:18 -07:00
Muhammed Zakir
4e0c7771bb Fix alias for Flatpak: command wasn't quoted 2022-08-11 13:08:24 -07:00
Wez Furlong
3602a839eb docs: add stable download links for suse and alpine 2022-08-11 08:27:11 -07:00
Wez Furlong
555bce3f7d fix bypass_mouse_reporting_modifiers
refs: https://github.com/wez/wezterm/issues/2389
2022-08-11 07:38:55 -07:00
Wez Furlong
130645414d add update-status event. deprecates update-right-status
refs: #1561
2022-08-10 06:10:48 -07:00
Wez Furlong
04bc838b63 fix overly truncated tab titles
refs: https://github.com/wez/wezterm/issues/2379
2022-08-09 20:46:41 -07:00
Wez Furlong
6542566e8f apply executable checks to $SHELL and /etc/passwd lookup
refs: https://github.com/wez/wezterm/issues/2378
2022-08-09 20:12:28 -07:00
Wez Furlong
9cd72fefe2 pty: cmdbuilder: check for executable access when resolving program
`wezterm start -- /etc/profile` would crash on macOS because
`/etc/profile` isn't executable.

This commit checks for executable access as a prereq for both the
path search and the absolute path cases and generates a non-crashing
error:

```
$ wezterm start -- /etc/profile
17:24:03.574  ERROR  wezterm_gui > Unable to spawn /etc/profile because it doesn't exist on the filesystem or is not executable (EACCES: Permission denied); terminating
```
2022-08-09 17:29:22 -07:00
Wez Furlong
c496f1ce97 fix fedora download links
I think I may have inadvertently changed whether the arch portion
was included in the filename for stable releases.

Allow for that in the regex.

Remove debian 9 which is no longer supported.

closes: https://github.com/wez/wezterm/issues/2382
2022-08-09 09:05:29 -07:00
Wez Furlong
7bf8ea8f6e docs: update info about number of color schemes 2022-08-09 07:46:24 -07:00
Wez Furlong
b832b29c68 docs: add missing COMMANDS entry for ShowLauncherArgs
refs: https://github.com/wez/wezterm/issues/2377
2022-08-09 07:36:58 -07:00
Wez Furlong
626830ab3e docs: clarify ShowLauncherArgs flags behavior
closes: https://github.com/wez/wezterm/issues/2377
2022-08-09 07:18:52 -07:00
Wez Furlong
d49acf2b9f docs: wezterm is now on flathub
refs: https://github.com/wez/wezterm/issues/2229
2022-08-09 06:50:46 -07:00
Wez Furlong
d2892c6ff0 ActivatePaneDirection uses recency to resolve ambiguous moves
refs: https://github.com/wez/wezterm/issues/2374
2022-08-08 21:16:01 -07:00
Wez Furlong
d5755f3ee8 sync color schemes with nightfox
refs: https://github.com/EdenEast/nightfox.nvim/issues/191
2022-08-08 08:45:02 -07:00
Wez Furlong
b814ff5bf4 remove flatpak-unsupported link types
They pass this:

```
flatpak run --env=G_DEBUG=fatal-criticals org.freedesktop.appstream-glib validate assets/wezterm.appdata.xml
assets/wezterm.appdata.xml: OK
```

but break when building a flatpak
2022-08-08 07:45:59 -07:00
Wez Furlong
773e66d91c fix typo in appdata id tag 2022-08-08 07:28:55 -07:00
Wez Furlong
27b587ef1f flesh out appdata a bit more 2022-08-08 07:25:38 -07:00
Wez Furlong
8b8d8f61e6 add content rating and release info to appdata
Required for flathub submission

refs: https://github.com/flathub/flathub/pull/3398
2022-08-08 06:44:22 -07:00
Wez Furlong
5dc7bf5682 docs: remove not yet bit 2022-08-07 22:45:46 -07:00
Wez Furlong
ac3a9c001b cargo update 2022-08-07 19:31:29 -07:00
Wez Furlong
948f8d2faf cleanup log files older than 1 week 2022-08-07 16:44:48 -07:00
Sam M W
8a625a941e don't recompile dependencies we've already got 2022-08-07 14:28:45 -07:00
Sam M W
263282a75b disambiguate which "git" we want 2022-08-07 14:28:45 -07:00
Wez Furlong
ef3400c66e color schemes: update version in .rs, re-sync, add helper for changelog
This mostly automates adding entries to the changelog; now I just
have to copy and paste the summary line.
2022-08-07 14:27:29 -07:00
Wez Furlong
52af7a2b2b docs: 20220807-113146-c2fee766 release 2022-08-07 13:26:59 -07:00
Wez Furlong
c2fee76638 ci: nth time's the charm for winget tag pr thing 2022-08-07 11:31:46 -07:00
Wez Furlong
608750d5e0 ci: format with black 2022-08-07 10:52:16 -07:00
Wez Furlong
306da9d448 ci: tweak winget pr stuff a bit more 2022-08-07 10:51:56 -07:00
Wez Furlong
56aa71331e ci: maybe fixup winget pr submission when tagging a release 2022-08-07 09:38:23 -07:00
Wez Furlong
e2bf468393 wayland: disable use of wlr-output-management protocol
refs: #2297
refs: #2293
refs: #2360
2022-08-07 08:13:38 -07:00
Wez Furlong
e4435938a8 add window:set_left_status
refs: https://github.com/wez/wezterm/issues/1561
2022-08-06 20:41:39 -07:00
Wez Furlong
28d803e3f4 refine dual source blending / subpixel aa and RGBA color interaction
Previously, we'd unconditionally enable dual source blending for the
text foreground layer when rendering. That meant that if the user had
configured the fg color to include an alpha value it would get "stamped
through" the draw all the way to the background, making that whole pixel
take on that alpha value rather than allowing it to blend through the
way you might expect.

In prior releases that didn't matter, but since we now allow configuring
the fg color with alpha, and allow using escape sequences to set the fg
for a span to something with alpha, there is now a much higher chance of
something looking weird.

Dual source blending is only really needed for subpixel-aa and that
isn't enabled by default.

This commit changes the behavior to use regular alpha blending if the
main config (rather than a per-font override) hasn't set the freetype
load/render target to one that enables subpixel-aa.

That means that alpha channel values work as expected for fg color
by default.

If you want to enable subpixel-aa you need to enable it globally
and be aware that it will cause weirdness when trying to use alpha
channels for the fg text color.

The docs now also indicate this behavior.

This limitation could be removed by making text rendering significantly
more complex and I don't fancy doing that at this time.
2022-08-06 17:41:44 -07:00
Wez Furlong
4c1fd693b4 fix positioning of visual bell
refs: https://github.com/wez/wezterm/issues/2364
2022-08-06 13:42:28 -07:00
Wez Furlong
3941d2a564 boxmodel: fix missing bearing_x / x_offset
Fixes up horizontal positioning in the fancy tab bar and spacing
in tab titles in some cases.

refs: https://github.com/wez/wezterm/issues/2357
2022-08-06 12:46:54 -07:00
Wez Furlong
3e298dc63a add wezterm ls-fonts --rasterize-ascii --text foo
This renders the glyph in ascii blocks, and shows some
additional data about the glyphs.
2022-08-06 12:46:01 -07:00
Wez Furlong
ef532fc7e5 mux: adjust window size after attach
Since the initial attach is async, we'd create the window at the
default/initial size and then never reconcile the size of the remote
tabs once they'd attached.

This commit introduces an event that allows the gui window to do that.

The action that it takes is to take the max width and height between
its current size and the size of a newly added tab and resizes to
that new size, if it changed.

refs: https://github.com/wez/wezterm/issues/2133
refs: https://github.com/wez/wezterm/issues/2351
2022-08-05 07:53:44 -07:00
Wez Furlong
1212865974 use titlebar bg for right status background
We were using the tab background, which is a bit awkward.

refs: https://github.com/wez/wezterm/issues/2356
2022-08-04 20:45:05 -07:00
Wez Furlong
d5b910abed docs: clarify that we might be showing more recent info
for copy mode and search mode
2022-08-04 06:31:40 -07:00
Wez Furlong
3f7443f4c1 showkeys/docs: generate copy_mode defaults from the code
Uses `wezterm show-keys --lua --key-table copy_mode` to dump the
actual copy mode key table.  Include that in the docs.

Same for search_mode.
2022-08-04 06:28:32 -07:00
Wez Furlong
9cce9ff81b fix potential panic when computing hyperlink rules
refs: https://github.com/wez/wezterm/issues/2355
2022-08-03 21:34:12 -07:00
Wez Furlong
7d01d3f683 docs: a bit more detail for RGBA sequences
refs: https://github.com/wez/wezterm/issues/2313
2022-08-03 21:10:00 -07:00
Wez Furlong
decde7c3be wezterm show-keys --lua to print a lua version of the config
This is handy for eg: copying and pasting out the default config.

I think I'll use this to update some parts of the docs in a more
automated fashion.
2022-08-03 18:14:00 -07:00
Wez Furlong
dfe4d8cb79 docs: update wezterm.font
Consolidate the attributes together rather than having them in separate
versioned sections so that it is a bit more readable.

Make a note about how attributes select from existing fonts rather than
apply styling effects to fonts.

refs: https://github.com/wez/wezterm/issues/2348
2022-08-03 08:55:56 -07:00
Wez Furlong
c222c7956f docs: changelog for #2352 2022-08-03 08:24:30 -07:00
aznhe21
63d5c00af9 Add new action CopyMode('ClearSelectionMode') 2022-08-03 08:21:04 -07:00
Wez Furlong
fa6fd959e0 prune flatpak dirs out of gitignore
I moved the repo and state dir out the git repo
2022-08-03 07:04:51 -07:00
Wez Furlong
9c75292450 flatpak: use /.flatpak-info file to test if we are in flatpak sandbox 2022-08-03 07:04:31 -07:00