1
1
mirror of https://github.com/wez/wezterm.git synced 2024-12-26 14:54:16 +03:00
Commit Graph

1421 Commits

Author SHA1 Message Date
Wez Furlong
44b7753ef5 docs: changelog
refs: https://github.com/wez/wezterm/issues/1209
refs: https://github.com/wez/wezterm/issues/2483
2022-09-05 09:27:37 -07:00
Wez Furlong
68380188e8 fix hangul NFC shaping
We were getting data like this back from harfbuzz:

shaped font_idx=0 "파인더에서 만든 폴더" as: [.notdef=0+448|.notdef=0+448|.notdef=6+448|.notde=6+448|.notdef=6+448|.notdef=15+448|.notdef=15+448|.notdef=21+448|.notdef=21+448|.notdef=27+448|.notdef=27+448|space=33+448|.notdef=34+448|.notdef=34+448|.notdef=34+448|.notdef=43+448|.notdef=43+448|.notdef=43+448|space=52+448|.notdef=53+448|.notdef=53+448|.notdef=53+448|.notdef=62+448|.notdef=62+448]

which had a series of discontiguous and repeated runs for the same
cluster/region, but due to a logic error, we weren't coalescing them
together and were passing somewhat nonsensical ranges to the
next font for shaping.

This commit "simply" ensures that we code the checks for codepoint==0
(the `.nodef` seen above) and the results are at least correct
for this particular case.

refs: https://github.com/wez/wezterm/issues/2482
2022-09-04 21:24:30 -07:00
Wez Furlong
7158c435d5 lua: patch os.getenv with our own function
ad9490ee8f unset SHELL from the
environment on startup which had the consequence of causing
`os.getenv("SHELL")` to return `nil` when used in the config file.

Rather than simply restoring SHELL env var, recognize that reading
the environment from a long lived process is prone to seeing
stable environment forever.

We already compensate for this in the pty crate's understanding
of the base environment, so this commit patches `os.getenv`
and replaces it with our own imlementation that uses that same
logic.

The base environment logic has been extended to set SHELL from
the passwd database to round things out.

refs: https://github.com/wez/wezterm/discussions/2481
2022-09-04 15:39:28 -07:00
Wez Furlong
1bb9a3fe81 docs: charselect and paneselect font & size config 2022-09-04 08:39:32 -07:00
Wez Furlong
c38816fc6e fontconfig: allow proportional fallbacks for codepoints
refs: https://github.com/wez/wezterm/discussions/2468#discussioncomment-3528085
2022-09-04 07:05:58 -07:00
Wez Furlong
821e833ad0 docs: changelog for 20220904-064125-9a6cee2b 2022-09-04 06:43:24 -07:00
Wez Furlong
ecd7bc9842 docs: update for latest release 2022-09-03 20:54:27 -07:00
Wez Furlong
3bb1ed61b5 docs: pane:get_metadata
refs: https://github.com/wez/wezterm/issues/2460
2022-09-03 19:45:23 -07:00
Wez Furlong
9ad4f4ab5f docs: explain about ~ in default_cwd docs 2022-09-03 18:46:11 -07:00
Wez Furlong
cf40906b9a docs: refine CharSelect docs 2022-09-03 14:28:52 -07:00
Wez Furlong
a29d8ed4ae charselect: options to control copy behavior, + docs
refs: https://github.com/wez/wezterm/issues/2163
2022-09-03 13:58:50 -07:00
Wez Furlong
1b9ea2de3f change text cursor to fa_lock when entering passwords
There are caveats to determining this, but when we think
password entry is enabled, switch the cursor to the font-awesome
lock glyph instead of the normal cursor sprite.

fa_lock is used because it is monochrome and can thus be tinted
to the configured cursor color, and it respects blinking/easing.

refs: https://github.com/wez/wezterm/issues/2460
2022-09-02 09:00:28 -07:00
Wez Furlong
8adc78b587 reset mouse cursor to arrow when mouse leaves the window
refs: https://github.com/wez/wezterm/issues/2471
2022-09-01 18:45:20 -07:00
Wez Furlong
ab2c368a3c docs: update default assignments 2022-09-01 08:41:36 -07:00
Wez Furlong
ad9490ee8f posix: prefer to resolve shell via the password database
I've had a couple of people report issues like
https://github.com/wez/wezterm/issues/2378 recently, and we can avoid
this class of problem by unsetting SHELL at proces startup, so that's
what we do.
2022-08-31 20:40:06 -07:00
Wez Furlong
ed731a0d8d Add CharSelect modal for emoji/nerdfont/unicode input
CTRL-SHIFT-U is a new default key assignment for this new modal.
It opens up a fuzzy searchable browser that defaults to showing
emoji/emoticons.  The category can by cycled through the suggested
emoji categories using CTRL-r.  Unlike the system emoji palette,
wezterm includes a category for nerdfont symbols, and another
that is a list of all unicode codepoint names, so you should be
able to browse for pretty much any codepoint you can think of.

The modal also allows fuzzy searching based on:

* The official unicode name
* The github shortcode
* codepoint value in hex

so if you know the codepoint value but not the name, you can
still find a way to input what you're looking for.

Pressing Enter will copy the selected item to the clipboard
send it to the active pane, and cancel the modal. You can therefore
repeat the insert by simply pasting.

I plan to add frecency to this in a later commit: that way the
frequently/recently used selections will show in a category of
their own and make it easier to re-input them.

refs: https://github.com/wez/wezterm/issues/2163
2022-08-31 18:15:28 -07:00
Wez Furlong
ba88bda9eb new color scheme: poimandres
refs: https://github.com/olivercederborg/poimandres-wezterm/issues/2
2022-08-30 18:02:14 -07:00
Wez Furlong
fdb7c557e9 ssh: close stdout, stderr bridges if child is done and there is no data
Inspecting the wezterm process with `lsof -p`, before and after closing
a pane with `CloseCurrentPane`, the same number of unix domain sockets
are open, which is bad.

This commit tries a bit harder to clean things up: if we got a process
exit condition we now remember that we had it, and, while processing
the IO for that channel, if we have no data for stdout or stderr
(respectively) and the channel exited, we close our end of the
socketpair to encourage EOF to be detected on the other end.

This is sufficient to restore the number of open files to the same
number wezterm had opened prior to opening that pane.

@chipsenkbeil: this might possibly be a factor in the issue you
reported, but I haven't had time to really dig into that yet!

refs: https://github.com/wez/wezterm/issues/2466
refs: https://github.com/wez/wezterm/issues/2456
2022-08-30 08:00:49 -07:00
Wez Furlong
0d85d05442 update conpty to v1.14.2281.0 release 2022-08-29 08:32:08 -07:00
Wez Furlong
1398c0d4b0 add user-var-changed event 2022-08-27 17:22:21 -07:00
Wez Furlong
f4fa87eca1 docs: mention CPU utilization improvements in changelog 2022-08-23 10:41:36 -07:00
Wez Furlong
53bc871147 ssh: correctly expand %h tokens in ssh config
refs: https://github.com/wez/wezterm/issues/2448
2022-08-23 10:32:07 -07:00
Wez Furlong
619b1ad292 scroll to bottom on mouse input when mouse is grabbed
refs: https://github.com/wez/wezterm/issues/2447
2022-08-23 10:15:39 -07:00
Wez Furlong
57b10ac094 Avoid full path canonicalization when resolving cwd
It can have some surprising effects, so leave it at the basic logical
composition of cwd + relative rather than physical.

refs: https://github.com/wez/wezterm/issues/2449
2022-08-23 09:55:45 -07:00
Wez Furlong
a8b1b6bd88 Add official dracula color scheme
refs: https://github.com/dracula/wezterm/issues/2
2022-08-23 09:45:12 -07:00
Wez Furlong
35ed9ac197 conpty: work around mangled tmux title sequence
refs: https://github.com/wez/wezterm/issues/2442
2022-08-21 18:14:13 -07:00
Wez Furlong
3ae647048e Add Sequoia color schemes
refs: https://github.com/Hiroya-W/wezterm-sequoia-theme/issues/1
2022-08-21 16:50:34 -07:00
Wez Furlong
94e95fca33 docs: changelog for max_fps https://github.com/wez/wezterm/discussions/2419 2022-08-21 15:27:45 -07:00
Wez Furlong
7caaf136e4 compensate for flickery TUI programs by going slower(!)
It's not the first time that I've solved a problem by slowing things
down... in this situation, a couple of very inefficient TUI programs had
flickering outputs in wezterm because they were filling a buffer with a
bunch of spaces to erase a screen before sending the main body of their
updates in a subsequent buffer chunk. wezterm would render the
intervening partially blank frame and appear to flicker.

The resolution is to add a small delay (3ms by default) before sending
data to the terminal model. If the output is readable in that time
we'll accumulate it with the pending set of actions so that the
whole batch can be applied "more atomically".

Take care: `time cat bigfile` is sensitive to this, so we want to
keep the latency as small as possible, and we also want to avoid
accumulating actions and only flushing them at the end of the file.

We use the existing buffer size (~1MB) as a threshold: we bump
a count of the number of input bytes that resulted in the current
set of actions, and if that exceeds that buffer size we flush it.

refs: https://github.com/wez/wezterm/issues/2443
2022-08-21 14:40:06 -07:00
Wez Furlong
a6ed7ef7ab docs: fix typo 2022-08-21 12:59:39 -07:00
Wez Furlong
9d6b4a3e17 docs: CopyMode assignments now have their own individual pages
refs: https://github.com/wez/wezterm/issues/2346
2022-08-21 11:05:56 -07:00
Wez Furlong
84df280b38 docs: changelog for https://github.com/wez/wezterm/issues/2350 2022-08-21 09:48:22 -07:00
Wez Furlong
58eecab4f8 docs: changelog for https://github.com/wez/wezterm/issues/2399 2022-08-20 23:02:29 -07:00
Wez Furlong
944ea1444e docs: fix link 2022-08-20 17:06:32 -07:00
Wez Furlong
78b5ac0eb5 add border size and color config
refs: https://github.com/wez/wezterm/issues/2417
2022-08-20 17:05:17 -07:00
Wez Furlong
8b3a52ba9a colors now override color_scheme
The prior mutually exclusive behavior kept surprising people so let's
just flip this around.

This is potentially a "breaking" change for folks, but I think it is
worth it.
2022-08-20 11:48:22 -07:00
Wez Furlong
8b2ef50ca7 gui-startup event now also works for wezterm ssh.
This is done by adjusting how `wezterm ssh` works; we now set up
the default domain and call into the main `wezterm start` logic.

refs: #284
2022-08-20 08:01:45 -07:00
Wez Furlong
2ab330efdd docs: changelog for https://github.com/wez/wezterm/pull/2402 2022-08-20 06:08:30 -07:00
Wez Furlong
4fead3171e macos: report max_fps in ScreenInfo
Other platforms can be added later
2022-08-19 21:02:51 -07:00
Wez Furlong
ed9fafbc67 docs: changelog for #2434
Looks like we bonus-fixed an issue we didn't know we had as
part of the pty API adjustments in e6421d1b72

refs: https://github.com/wez/wezterm/issues/2434
refs: https://github.com/wez/wezterm/issues/1396
2022-08-19 19:00:34 -07:00
Lucy
eb65b5fb63 Add control key in docs 2022-08-18 13:50:00 -07:00
Wez Furlong
f6f36b454b docs: changelog for https://github.com/wez/wezterm/pull/2394 2022-08-12 20:09:48 -07:00
EdenEast
c31b1deb62 chore: Sync color schemes with nightfox changes
This adds `carboxfox` and updated retro tab colors.
2022-08-12 20:09:02 -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
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
5dc7bf5682 docs: remove not yet bit 2022-08-07 22:45:46 -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
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
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
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
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
Wez Furlong
7dda063c27 update harfbuzz to 5.1.0 2022-07-31 10:53:25 -07:00
Wez Furlong
4485b2966f mouse bindings: remove WheelUp/Down aliases
They prevented using other types of mouse events!

We don't have a good way to specify that kind of alias, so for now,
take it out and replace the examples in the docs with the more verbose
equivalents.

refs: #2173
refs: #2296
2022-07-31 09:33:42 -07:00
Wez Furlong
bd846975fa allow wheel events with no mods. allow mouse events in mouse reporting mode
Adjusts how mouse events are matched so that we can now indicate whether
mouse reporting and alt-screen should be considered as part of the event
trigger criteria.

refs: #2173
refs: #581
2022-07-31 09:15:02 -07:00
Wez Furlong
3db7e72e54 docs: format 2022-07-31 09:11:51 -07:00
Funami580
9346a07d84 docs: add window:current_event() and add scroll events to mouse docs 2022-07-31 07:10:56 -07:00
Bruno Roque
ae2e78d87c
Document CopyMode/QuickSelect Colors (#2324)
* Document CopyMode/QuickSelect colors

* Remove irrelevant line

* Update docs/config/appearance.md

Co-authored-by: Wez Furlong <wez@wezfurlong.org>

* Update docs/config/appearance.md

Co-authored-by: Wez Furlong <wez@wezfurlong.org>

* Add note on copy_mode_active_highlight_*/selection_*

Co-authored-by: Wez Furlong <wez@wezfurlong.org>
2022-07-29 18:00:03 -07:00
Wez Furlong
10121790df copy mode: pressing v while in v mode toggles off v mode. Add yank.
refs: https://github.com/wez/wezterm/discussions/2246
refs: https://github.com/wez/wezterm/issues/993#issuecomment-1118512595
2022-07-29 05:00:35 -07:00
Wez Furlong
cb89f2c36e allow setting alpha for OSC 10, 11, 12
refs: https://github.com/wez/wezterm/issues/2313
2022-07-26 19:02:47 -07:00
Wez Furlong
e7c7ea20f6 deps: harfbuzz -> 5.0.1 2022-07-26 09:09:46 -07:00
Wez Furlong
a25a87c393 docs: fix typo in changelog 2022-07-25 21:15:31 -07:00
Wez Furlong
5e6ce47330 fix "no pane" tab hang when two panes close at once
There was a race condition where we could leave the tab
active index pointing to the wrong pane.

That meant that the tab information computed by the gui
layer would see no panes marked as active, and thus would
end up with no active tab.

This commit fixes that by clamping the active index to
the number of panes.

refs: https://github.com/wez/wezterm/issues/2304
2022-07-25 21:06:24 -07:00
Wez Furlong
39adbb984d Pane::search: expose range, limit. Limit quickselect by default
The recent work on the scrollback made it easier to constrain the
search region, so expose those parameters to the Pane::search
interface and to the mux protocol.

Use those new parameters to constrain quickselect search to
1000 rows above and below the current viewport by default, and
add a new parameter to QuickSelectArgs that allows overriding that
range.

A follow-up commit could make the search/copy overlay issue a series
of searches in chunks so that it avoids blocking the UI when
searching very large scrollback.

refs: https://github.com/wez/wezterm/pull/1317
2022-07-25 18:31:27 -07:00
Wez Furlong
d3ef36dd5f docs: changelog for https://github.com/wez/wezterm/issues/2162 2022-07-24 22:59:05 -07:00
Wez Furlong
a897924e26 docs: changelog for scrollback/search improvements
refs: https://github.com/wez/wezterm/issues/1569
refs: https://github.com/wez/wezterm/issues/1626
2022-07-24 13:39:36 -07:00
yashpalgoyal1304
77cbc31ee9 Docs: Clean and slim the flowchart ...
in keyb-concepts
2022-07-22 07:55:24 -07:00
yashpalgoyal1304
63a9f4989a Docs: Bring the connected nodes together ...
in keyb-concepts
2022-07-22 07:55:24 -07:00
yashpalgoyal1304
b4b7d3069e Docs: Improve the order in this mermaid code ...
In keyb-concepts
2022-07-22 07:55:24 -07:00
yashpalgoyal1304
579b3e095b Docs: Merge the common action in the keyb-concepts 2022-07-22 07:55:24 -07:00
Wez Furlong
c22ee082ad docs: note about wezterm-gui.exe --help not outputting anything
closes: https://github.com/wez/wezterm/issues/1801
2022-07-22 07:52:31 -07:00
Wez Furlong
34f87a9be5 add ClearScrollback example that adds CTRL-L after clearing
refs: https://github.com/wez/wezterm/issues/2290
2022-07-21 19:35:52 -07:00
Wez Furlong
67ae0e021f fix tab x button being obscured by tab title text
Need to explicitly pop it in front of the tab text layer so that
the button is physically rendered on top of the tab title.

refs: https://github.com/wez/wezterm/issues/2269
2022-07-21 18:51:21 -07:00
Wez Furlong
50d5f94ab0 color schemes: add alias concept
Various color schemes have been duplicated as they have been added to
different scheme collections.  They don't always have identical names
(eg: some remove spaces) and sometimes they have very different names
(eg: _bash vs. nightfox, or Miu vs. Blazer).

We already detected duplicates from different collections but previously
we would omit those dupes.

This commit allows us to track those duplicates by recording their
aliases.

When we write out our data, we only include "interesting" alias names;
those where the name isn't trivially identical.

Some scheme collections (eg: iterm2 color schemes) have duplicates
(eg: zenbones and zenbones_light are identical) and we have previously
shipped with both of those names, so we special case to emit dupes
for which we have prior version information in order to avoid
breaking backwards compatibility for our users.

In the doc generation we can generate links to the aliases if we
included them, but also note about the other names and how we don't
include them.  That is so that someone searching the docs for say
"_bash" can discover that it is actually a duplicate of "nightfox" and
use nightfox instead.
2022-07-20 07:32:46 -07:00
Wez Furlong
ffb6ea76cd sync nightfox color schemes
note that "_bash (Gogh)" is removed by this as it is actually
a duplicate of nightfox but with a different name, according
to my dedup logic.

I may add a way to express aliases as a followup.

refs: https://github.com/EdenEast/nightfox.nvim/pull/184
refs: https://github.com/EdenEast/nightfox.nvim/issues/183
refs: https://github.com/EdenEast/nightfox.nvim/issues/156
2022-07-20 05:40:06 -07:00
Wez Furlong
badfae7d23 gui-startup event now accepts SpawnCommand
This allows the hook to choose how to handle eg: `wezterm start -- top`.
Previously, if you had implemented this event you would essentially lose
the ability to specify a command that you wanted to launch.

refs: https://github.com/wez/wezterm/issues/284
2022-07-19 19:45:27 -07:00
Wez Furlong
ec59fb6597 docs: changelog for #2253 #2273 2022-07-19 08:00:26 -07:00
Wez Furlong
e0ea0f46a8 docs: apply stylua formatting
refs: https://github.com/wez/wezterm/pull/2273
refs: https://github.com/wez/wezterm/issues/2253
2022-07-19 07:54:31 -07:00
Wez Furlong
7bd41772ab docs: fix lua syntax 2022-07-19 07:35:52 -07:00
Wez Furlong
98dd864df1 docs: split MuxPane 2022-07-19 07:20:11 -07:00
Wez Furlong
f5ee95d582 docs: fix lua syntax issues 2022-07-19 07:12:25 -07:00
Wez Furlong
aee66daccb key table activation timeout is now reset on matching key presses
refs: https://github.com/wez/wezterm/issues/1129
2022-07-19 06:18:26 -07:00
Wez Furlong
112feb3374 add MuxTab:set_zoomed and SetPaneZoomState keyassignment
refs: #2284
2022-07-19 05:52:38 -07:00
Wez Furlong
d15fd7b4db docs: fix parameters to call_after callback 2022-07-18 12:35:36 -07:00
Wez Furlong
dd327617b1 lua: add wezterm.time.call_after and wezterm.reload_configuration
These allow setting up some basic timers and constructing time-dependent
config files.

Needs to be used respsonsibly!
2022-07-18 07:37:41 -07:00
Wez Furlong
85fb78d788 lua: add wezterm.time and Time object
Includes a method for determining sunrise/sunset.
2022-07-17 11:38:02 -07:00
Wez Furlong
2b17a64d74 docs: changelog for #2103 #2271 2022-07-17 05:54:18 -07:00
Wez Furlong
fc6cfd1f72 term: fix encoding for modified F1-F4
refs: https://github.com/wez/wezterm/issues/2263
2022-07-16 22:12:26 -07:00
Wez Furlong
5e60743519 lua: add wezterm.procinfo module 2022-07-16 08:49:58 -07:00
Wez Furlong
4e4371a312 docs: clarify what happens when appearance changes 2022-07-16 07:40:48 -07:00
Wez Furlong
30e2a1a6d1 add Catppuccin color schemes
refs: https://github.com/catppuccin/wezterm/issues/6
refs: https://github.com/wez/wezterm/pull/2221
2022-07-16 06:55:37 -07:00
Wez Furlong
e277183cb9 overlays: handle resize better
We need to actually tell them that the pane has been resized
so now we do.
2022-07-15 16:32:26 -07:00
Wez Furlong
122ac8a13c docs: fix typos
closes: #2266
2022-07-15 06:39:14 -07:00
Wez Furlong
8484248010 add wezterm.color.save_scheme for exporting color schemes 2022-07-14 23:22:02 -07:00
Wez Furlong
181401a2ca add lua functions for importing color scheme files 2022-07-14 23:03:18 -07:00
Wez Furlong
e566885e7f colors: move wezterm.get_builtin_color_schemes to wezterm.colors.get_builtin_schemes 2022-07-14 21:52:49 -07:00
Wez Furlong
548adf484b add wezterm.color.get_default_colors 2022-07-14 21:41:39 -07:00
Wez Furlong
dba7932e3e add wezterm.gui.get_appearance to retrieve dark mode
This simplifies the "change scheme based on dark mode" example
a lot.  This was previously impossible to do because we didn't
have a lua module associated with the gui until recently, so
the only way to reference a gui-related object was via an
event callback.

refs: https://github.com/wez/wezterm/issues/2258
2022-07-14 16:46:18 -07:00
Wez Furlong
f9ab69950a color schemes: add version metadata
Record the version in which we first saw a color scheme.
For schemes from iterm2-color-schemes, we just assume that
we've had them forever as it isn't easy to reverse engineer
that metadata.

Everything else is tagged as 'nightly builds only' and I'll update
that to match the version number in the next release.

Newly discovered items will be added with 'nightly builds only'
from this point onwards.
2022-07-14 08:45:29 -07:00
Wez Furlong
0ce5ddbb13 color schemes: remove : splitting for prefix extraction
Originally I had names like `base 16:foo` but wanted `foo` to
sort with `f` rather than `b`, so this prefix extraction
handled that.

I later changed the names to be `foo (base 16)` so we don't
need this.

This moves the `X::Erosion` scheme to sort under `x` where it
feels more natural.

Ensure that scheme_data.rs has a deterministic sort order that
matches the json data.
2022-07-14 07:40:50 -07:00
Wez Furlong
810512c2c5 colors: refine importer
Adjust importer to read directly from the source .itermcolors
files in the upstream repo.  Extract some author information
from the comments in those files.

All data is now fetched (and cached!) via relatively minimal
http requests rather than requiring a git repo locally.

Also search for .yml files in base16 repos; found another
couple of schemes this way.

The toml files under assets/colors are no longer read by
anything in the repo. I plan to remove them, but since the
docs reference them as examples, I will first ensure that
there are docs and tooling that explains how to write and
share your own scheme files.
2022-07-14 00:14:16 -07:00
Wez Furlong
a1c8b4a9b3 x11/wayland: subscribe to xdg desktop portal for settings changes
We use this to detect changes in dark mode

refs: https://github.com/wez/wezterm/issues/2258
2022-07-13 18:56:21 -07:00
Wez Furlong
5f8ed00faf docs: fix link discussing subpixel hinting 2022-07-13 17:04:26 -07:00
Wez Furlong
8dcfbc6718 x11/wayland: use xdg desktop portal settings interface to get dark mode
There are some other settings in there that could also help with
things like the cursor theme on Wayland.

Note that we don't currently subscribe to the settings changed
signal: that can be done in a follow up.

refs: https://github.com/wez/wezterm/issues/2258
refs: https://github.com/wez/wezterm/issues/1742
2022-07-13 08:55:43 -07:00
Muhammed Zakir
fede46f6b7 Fix shortcut for "move between panes": shift was missing 2022-07-12 22:42:35 -07:00
Wez Furlong
c6ca88f40b docs: show how to find just the dark color schemes 2022-07-12 21:35:05 -07:00
Wez Furlong
7c5c633668 docs: clarify order of extracted colors 2022-07-12 17:13:46 -07:00
Wez Furlong
1a5fdb41da docs: changelog for https://github.com/wez/wezterm/issues/2234 2022-07-12 17:08:06 -07:00
Funami580
cfa95db0cc lua: add pane:is_alt_screen_active() 2022-07-12 17:06:16 -07:00
Wez Furlong
d4d33369f2 color schemes: import all official base16 schemes 2022-07-12 11:51:19 -07:00
Wez Furlong
179ec9faaf wezterm.mux.set_active_workspace now updates the gui
Attach the mux events to the frontend workspace reconciliation function
so that the window is updated to match the new workspace.

Ensure that we correctly clear out any overlay panes as part of the
switch: we need to remove them from the mux so that the mux will
correctly identify that the mux is empty when the main panes from
the workspace are closed.  The problem case was that the debug overlay
state was forgotten by the gui when activating the new workspace, but
we didn't tell the mux to kill it off, so subsequently CTRL-D'ing
the windows closed the windows but left the wezterm process running with
no head.

refs: #2248
2022-07-12 09:15:38 -07:00
Wez Furlong
79d2f8197b quickselect: select bottom-most match
We don't really know which of the on-screen matches the user was
looking at when they selected the text, but assume that the one
nearest the bottom of the viewport is the one they want to select,
rather than the one closest to the top.

refs: https://github.com/wez/wezterm/issues/2250
2022-07-12 08:17:14 -07:00
Wez Furlong
cc4364ca40 docs: add wezterm.color.from_hsla link to color object docs 2022-07-12 07:54:53 -07:00
Wez Furlong
aa697c72ba color: refactor docs, add a couple more methods
Moved the gradient function into the color module, but kept an alias
under the old name.

Gradients now return color objects.

Converting colors to string now uses rgba format when alpha is not 100%.
2022-07-12 07:45:08 -07:00
Wez Furlong
c8ca2054f6 lua: add wezterm.color.extract_colors_from_image
This function can be used to extra distinct colors from
an image to be fed into eg: color scheme generation.
2022-07-11 17:46:36 -07:00
Wez Furlong
870ffdf59a ensure that we spawn open calls on a background thread
Otherwise we can block the gui waiting for eg: a freshly opened firefox to
terminate.

See also comment worrying about this in
75066cb522.
That fear was realized but now resolved!

refs: https://github.com/wez/wezterm/issues/2245
2022-07-11 08:03:37 -07:00
Wez Furlong
cfd9c0b364 colors: add RYB based complement
Now you can complement_ryb yellow to arrive at a purple color,
just like you were taught in art class.
2022-07-11 00:18:39 -07:00
Wez Furlong
463ca2fa29 add wezterm.color module for working with colors
wezterm.color.parse() returns a color object that can be assigned in the
wezterm color config, and that can be used to adjust hue, saturation and
lightness, as well as calculate harmonizing colors (complements, triads,
squares) from the RGB/HSL color wheel.
2022-07-10 23:41:18 -07:00
Wez Furlong
5939bacf14 Import terminal.sexy themes 2022-07-10 14:33:31 -07:00
Wez Furlong
e866e9390a colorschemes: expand to include Gogh color schemes
This commit expands the toml file definition to include
metadata for the origin url, author and name.

A new sync utility fills out that metadata when it pulls from the iterm2
color schemes repo.

The utility also pulls down the scheme data json maintained by
the Gogh project: https://gogh-co.github.io/Gogh/ and converts
it to wezterm's format.

About 50% of Gogh overlaps with iterm2; we take the iterm2 versions
of those schemes by default because the iterm2 data has more info
about things like cursor and selection colors.

The sync utility is responsible for compiling the de-duplicated
set of scheme data into a form that is used by wezterm and its
docs.
2022-07-10 13:32:17 -07:00
Wez Furlong
4a4787ff41 add wezterm.json_parse and wezterm.json_encode 2022-07-10 09:30:54 -07:00
Wez Furlong
c8cb99a512 vtparse: increase MAX_OSC to load dynamic color scripts 2022-07-10 08:36:38 -07:00
Wez Furlong
93255ac2d9 docs: remove color scheme screenshots 2022-07-09 22:42:08 -07:00
Wez Furlong
d5060ec3c1 docs: use asciinema's web player for screenshots
I've wanted to avoid checking in all the screenshot pics as the png
files change every time I run the generation script, and it bloats
the repo over time.

This commit changes the doc generation step to use the asciinema
web player with the equivalent contents.

Really, it's only a smallish step to go from this to just emitting
the html directly in the doc pages, but I think I might use
the player for some examples in the future.

I think this is still a fine step for now in any case.

While comparing this with the existing screenshots, I noticed the
the Alabaster screen shot png has the wrong color for its rightmost
column: there's an issue in wezterm in parsing the dynamic color
escapes that causes it to pick up the wrong color.

Loading the scheme by name has the correct color and matches
how it is shown as of this commit.
2022-07-09 18:59:44 -07:00
Wez Furlong
8bad7dee58 wezterm.format: accept "ResetAttributes" to reset attributes 2022-07-09 16:19:30 -07:00
Wez Furlong
af5938d414 gui: fix padding color when there are splits
refs: https://github.com/wez/wezterm/issues/2210
2022-07-09 14:53:21 -07:00
Wez Furlong
39e727db58 tab bar: invalidate on resize to avoid gaps on the RHS 2022-07-09 10:45:43 -07:00
Wez Furlong
268ff59a9f docs: fixup changelog for https://github.com/wez/wezterm/issues/1620
I copied and pasted the wrong issue into 5913783d1e
2022-07-09 10:32:34 -07:00
Wez Furlong
5913783d1e wayland: fix transparent gap under tab bar
Not sure why this only really showed up with Wayland, because the
issue was that the computed tab bar height ended up being 1 or 2
pixels shorter than the area we had allotted.

This commit resolves it by forcing the height to match, and
then aligning the content to the bottom of that region to avoid
having an undesirable line under the tab.

refs: #1256
2022-07-09 10:29:46 -07:00
Wez Furlong
e2b748a0d4 wayland: initial support for zwp_text_input_v3 / IME
refs: #1772
2022-07-09 09:44:08 -07:00
Wez Furlong
520a8e306f invalid tab bar on scaling changes
refs: #2208
2022-07-09 07:17:03 -07:00
Wez Furlong
dd27e790c8 docs: add wezterm.gui.screens() to changelog 2022-07-09 06:54:55 -07:00
Wez Furlong
29b7524b9d docs: wrap some text 2022-07-08 23:37:28 -07:00
Wez Furlong
95229d3334 add docs for ExecDomain
refs: https://github.com/wez/wezterm/issues/1776
2022-07-08 23:25:42 -07:00
Wez Furlong
b103cc3ebb docs: fix typo and copy pasta 2022-07-08 22:12:16 -07:00