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

942 Commits

Author SHA1 Message Date
Wez Furlong
89d94e1a07 docs: changelog for https://github.com/wez/wezterm/pull/1377 2021-12-08 08:28:33 -07:00
Wez Furlong
15dcfa4c48 docs: changelog for https://github.com/wez/wezterm/issues/1365 2021-12-05 20:21:18 -07:00
Wez Furlong
54f1914cce docs: changelog for windows/mux fixes 2021-12-05 19:24:59 -07:00
Wez Furlong
2457eeea18 Windows: fix spawning wezterm-gui
The attach-parent-console should go before any other arguments.

refs: #1278
2021-12-05 07:03:52 -08:00
Wez Furlong
0ada2d7fc3 docs: fix typo 2021-12-04 10:22:03 -07:00
Wez Furlong
56c2b823ab docs: update changelog for release 2021-12-04 10:21:25 -07:00
Wez Furlong
a66c61ee99 docs: changelog for https://github.com/wez/wezterm/issues/1279
closes: https://github.com/wez/wezterm/issues/1279
2021-12-04 08:22:13 -07:00
Wez Furlong
4b71d41c5a docs: changelog for #1256 2021-12-04 08:19:03 -07:00
Wez Furlong
20475ab32e docs: fix typo in changelog 2021-12-03 08:56:09 -07:00
Wez Furlong
6c26b9e524 docs: changelog for code signing on macos
closes: https://github.com/wez/wezterm/issues/482
2021-12-02 21:33:04 -07:00
Wez Furlong
d8864696c7 docs: changelog for https://github.com/wez/wezterm/pull/1338 2021-12-02 21:25:55 -07:00
Wez Furlong
8e864c16e1 docs: changelog for #1278
closes: #1278
2021-11-25 12:30:41 -07:00
Wez Furlong
d69df605cd Add escape sequence to control unicode version
As promised in the previous commit, this one implements an escape
sequence to control the unicode version.

Unknown to me in the previous commit, iTerm2 already defines such
an escape sequence, so we simply implement it here with the same
semantics.

refs: #1231
refs: #997
2021-11-25 12:12:52 -07:00
Wez Furlong
bf9a95ea1b remove our incomplete allsorts shaper implementation
We rely on using freetype in order to support more fonts in more
situations, and we have a deeper existing integration with harfbuzz.

I'm unlikely to come back to allsorts to complete our integration,
and in the meantime, it just adds overhead to build/test and those
builds are taking longer and longer.

I loved the idea of using pure rust for all the font stuff, but
its time is not now.

closes: #587
closes: #66
2021-11-23 05:43:13 -07:00
Wez Furlong
a006f9a119 docs: changelog for #1330 2021-11-21 08:51:53 -07:00
Wez Furlong
f3a2e841ca allow using relative cwd for wezterm cli subcommands
refs: #1243
2021-11-13 21:00:09 -07:00
Wez Furlong
da3296892e docs: changelog for #1301 2021-11-13 12:44:51 -07:00
Wez Furlong
30ab6f2026 docs: changelog for #1311 2021-11-13 09:34:58 -07:00
Wez Furlong
4225610c09 add config option to enable resize increments, disable by default
refs: #1254
refs: #1289
2021-11-09 08:30:58 -07:00
Wez Furlong
1ec7e10c19 fonts: ls-fonts now handles system fallback lists, adds Menlo on macos
It appears as though Menlo is the only font on macos to contain the
heavy ballot cross symbol, which is commonly used on macos (eg: in
`brew` output).

Our fallback list, despite starting with Menlo, didn't include menlo
itself in the candidates.

Furthermore, `ls-fonts` wouldn never see the result of the system
fallback resolution because it didn't know to try again, and was
using the list of handles from before the fallback.

This commit resolves all of these concerns.

refs: #849
2021-11-08 22:49:52 -07:00
Wez Furlong
2dc3db7648 docs: changelog for #1249 2021-11-03 07:01:27 -07:00
Wez Furlong
c1a766404c config: add ssh_backend config, and default to libssh
refs: #1014
2021-10-21 07:16:42 -07:00
Wez Furlong
24875004f6 add canonicalize_pasted_newlines config option
refs: #1213
2021-10-17 13:14:16 -07:00
Wez Furlong
3b12aa1038 mux: mux_env_remove config to control which env var are removed
closes: #1225
2021-10-17 12:46:16 -07:00
Wez Furlong
32d18905cc Add wezterm.background_child_process 2021-10-17 10:37:47 -07:00
Wez Furlong
cf58d5b696 docs: add categories to changelog
Just a quick first-pass for @bew :-)
2021-10-17 10:14:25 -07:00
Wez Furlong
c3c7ac3a58 docs: changelog for #1222 2021-10-17 10:05:05 -07:00
Wez Furlong
e7fc5f0e9e fix: whole tab terminated when only zoomed pane exited
closes: https://github.com/wez/wezterm/issues/1235
2021-10-17 08:34:35 -07:00
Wez Furlong
52d18d4564 docs: changelog for *BSD toast notifications
https://github.com/wez/wezterm/issues/489
2021-10-10 17:20:36 -07:00
Wez Furlong
8c3477006f Allow using unit like "1cell" or "5%" for window_padding
This commit introduces the `Dimension` type which allows specifying
a value in a variety of units; pixels, points, cells, percent.

`Dimension` needs contextual information to be evaluated as pixel
values, which makes resolving the value from the config slightly
more of a chore.

However, this type allows more flexible configurations that scale
with the font size and display dpi.

refs: #1124, #291, #195
2021-10-07 19:26:22 -07:00
Wez Furlong
e25deaaed1 fonts: align emoji fonts with the primary font baseline
refs: #1203
2021-10-05 22:01:21 -07:00
Wez Furlong
4eef20320d search: auto-update when the pane content changes
refs: https://github.com/wez/wezterm/issues/1205
2021-10-05 20:17:45 -07:00
Wez Furlong
87ea33f2f8 partially revert ligature cursor fix
refs: #478
2021-10-05 19:46:36 -07:00
Wez Furlong
fae5435824 fix incorrect fg color when cursoring over ligatured glyph
More of a "fix"; we use some heuristics based on the bearing
and glyph width to figure out if a sequence looks like a funky
ligature that moves left to render the glyph.

This may be prone to false positives, but the consequences are low:
when we think a glyph is part of a ligature, then rather than using
the cursor_fg color (which is typically black, or close to invisible),
we retain the normal text fg color.

This way the portion of the glyph outside of the cursor retains its
foreground color, and just the cell containing the cursor may have
a slightly funky fg color in the case where the heuristic was bad.

closes: #478
2021-10-04 17:35:54 -07:00
Wez Furlong
3ab08107cf docs: fix typo in changelog 2021-10-03 10:46:25 -07:00
Wez Furlong
8da9196491 ssh: Host is space delimited, not comma delimited
closes: #1196
2021-10-03 08:09:04 -07:00
Wez Furlong
401719fb01 fonts: improve cap-height and use_cap_height_to_scale_fallback_fonts
We now compute the cap-height from the rasterized glyph data.

Moved the scaling action of use_cap_height_to_scale_fallback_fonts from
glyphcache into the font resolver: when enabled, and we have data
about the baseline font and the font being resolved, then the resolving
font will be scaled such that the cap-height of both fonts has the same
pixel size.

The effect of this is that `I` glyphs from both fonts should appear to
have the same height.

Added a row of `I`'s in differing styles at the bottom of styles.txt
to make this easier to visualize.

refs: #1189
2021-10-02 18:23:51 -07:00
Wez Furlong
d3c748e18f fonts: enable matching against bitmap strike sizes
This is to handle situations such as some versions of the Terminus
bitmap font, where the individual bitmap strike sizes are broken
out across multiple individual files.

Font matching now passes down the nominal pixel height based on
the current DPI and font scale factor, and will use that to select
the font file that has the closest pixel size.

Previously, it would be potentially undefined which of the Terminus
font files would be selected.

refs: https://github.com/wez/wezterm/issues/1189
2021-10-02 09:33:55 -07:00
Wez Furlong
ca89181098 bell: allow changing the cursor color when the bell is rung
I find this less distracting than both the audible and the default
background color flashing.
2021-09-29 08:02:34 -07:00
Wez Furlong
3566b82458 add wezterm connect --class option 2021-09-29 07:15:25 -07:00
Wez Furlong
72cb110b65 add audible_bell config option
This allows using the system beep sound, currently only on macos.

refs: #3
2021-09-26 12:55:19 -07:00
Wez Furlong
90dab9723f docs: changelog for #1151 2021-09-25 15:44:09 -07:00
Wez Furlong
0c1ad718d0 add visual bell
refs: #3
2021-09-25 12:40:22 -07:00
Wez Furlong
e287474973 fonts: fix a spacing issue for Goho OTB font
This font is a bit funky; the bitmap strikes are only 4px wide:

```
; ftdump gohufont.otb
There is 1 face in this file.

----- Face number: 0 -----

font name entries
   family:              Gohu GohuFont
   style:               Regular
   postscript:          UNAVAILABLE
   created:             1904-01-01
   modified:            1904-01-01
   revision:            1.00
   glyph count:         1694

font type entries
   FreeType driver:     truetype
   sfnt wrapped:        yes
   type:                fixed size
   direction:           horizontal
   fixed width:         no
   glyph names:         no

fixed size
     0: height 11, width 3
        size 11.000, x_ppem 11.000, y_ppem 11.000
     1: height 14, width 4
        size 14.000, x_ppem 14.000, y_ppem 14.000

charmaps (1)
   0: format  4, platform 3, encoding  1   language 0 (active)
```

but using that the cell size isn't right.

We draw from the metrics we compute via cell_metrics to get more
information; we don't get a valid height from that (just 0!), but
we do get the much more plausible width of 8 pixels.

So we take the max of the two techniques for figuring the metrics.

That appears to work out, and also doesn't appear to break emoji
fonts.

refs: #1165
2021-09-25 08:57:26 -07:00
Wez Furlong
f648d8a6a5 deps: Upgrade to freetype 2.11 2021-09-25 00:43:23 -07:00
Wez Furlong
2337c06c0f gui: new bell event for running lua when the bell is rung
This commit adjusts the the window event routing/queuing so that
a queued event can capture a pane_id other than the focused pane.

Since we only allow one queued instance of a given named event in a
window, a consequence of this is that multiple bell events coming
from different panes at the same time may race and the loser's
event will be dropped. We log a warning in that case.

refs: #3
2021-09-23 08:22:01 -07:00
Wez Furlong
b19162b995 docs: changelog for https://github.com/wez/wezterm/issues/1162
closes: #1162
2021-09-22 21:54:54 -07:00
Wez Furlong
0ee1f7529b fonts: Fix shaping metrics
This was a bit of a PITA to run down; the essence of the problem
was that the shaper was returning an x_advance of 0 for U+3000,
which caused wezterm's shaping layer to elide that glyph.

I eventually tracked down the x_advance to be the result of
scaling by an x_scale of 0, which in turn is the result of
harfbuzz not knowing the font size.

The critical portion of this diff is the line that advises
harfbuzz that the font has changed after we've applied the
font size.

The rest is just stuff to make it easier to debug and verify.

This:

```
printf "x\u3000x."
```

Now correctly renders on screen as "x  x".

fixes: #1161
2021-09-22 08:34:40 -07:00
Wez Furlong
1ec7c3843d docs: update incremental resize for #1133 wayland 2021-09-21 08:20:53 -07:00
Wez Furlong
2e12d3bf60 docs: changelog for #1144 2021-09-19 16:01:28 -07:00
Wez Furlong
b16f584866 deps: harfbuzz -> 3.0.0 2021-09-18 09:04:23 -07:00
Wez Furlong
82cf33e0ab .debs now provide x-terminal-emulator
refs: #1139
2021-09-13 08:36:58 -07:00
Wez Furlong
140d9fd345 fix font matching issue with .ttcs holding multiple families
refs: #1137
2021-09-12 13:31:21 -07:00
Wez Furlong
53eea54fed docs: changelog for #1132 2021-09-12 09:55:07 -07:00
Wez Furlong
c870c73dbe deps: update harfbuzz to 2.9.1 2021-09-09 09:01:42 -07:00
Wez Furlong
8282faf31f window: allow specifying window resize increments on macos and x11
This commit introduces a mechanism for specifying resize increments
for a window, and then arranges for the termwindow to set those
to match the current font cell metrics.

This should help to avoid cases where there is excess padding pixels
resulting from the window being slightly larger than computed number
of cells and the font metrics.
2021-09-08 22:57:42 -07:00
Wez Furlong
3e8e0aa7f4 docs: changelog for https://github.com/wez/wezterm/pull/1127 2021-09-08 17:47:20 -07:00
Wez Furlong
bd9b964106 docs: changelog for #1126 2021-09-08 17:40:25 -07:00
Wez Furlong
8eefe7a764 docs: changelog for #1074
closes: #1074
2021-09-08 09:43:19 -07:00
Wez Furlong
9fe11669fd docs: changelog for #1120 2021-09-08 09:34:49 -07:00
Wez Furlong
27153e1cea docs: changelog for #1122, #1123 2021-09-08 09:28:36 -07:00
Wez Furlong
aa61a6b065 gui: force cursor to be visible in copy mode
It appears as though kakoune hides the terminal cursor and renders
its own version of the cursor.

The hidden state was being picked up by the copymode overlay,
making it awkward to use.

This commit forces the cursor to be visible (and a block) when
copy mode is active.

closes: #1113
2021-09-06 19:51:20 -07:00
Wez Furlong
7da1971bad docs: changelog for #1111, #1112 2021-09-06 19:27:51 -07:00
Wez Furlong
86f0bae1db fonts: tidy up fontconfig charset acceleration
and add a changelog entry!

refs: #250
2021-09-06 11:05:16 -07:00
Wez Furlong
4d5a923cb4 docs: changelog for #947 2021-09-06 10:13:28 -07:00
Wez Furlong
311bd78902 Fix SU (scroll up) using default-blank cells
closes: https://github.com/wez/wezterm/issues/1102#
2021-09-04 17:35:33 -07:00
Wez Furlong
fea3a527dd Fixed invisible I-beam/underline cursor w/force_reverse_video_cursor
closes: https://github.com/wez/wezterm/issues/1076
2021-09-04 14:24:58 -07:00
Wez Furlong
4c8ccf8efc Add Multiple key assignment
refs: https://github.com/wez/wezterm/pull/1091
2021-09-04 13:01:34 -07:00
Wez Furlong
67e8bdc5c2 term: fix DCH removing cells instead of setting to current bg color
refs: #789
2021-09-03 16:21:15 -07:00
Wez Furlong
e9f1c319e7 docs: changelog for 1031
closes: https://github.com/wez/wezterm/issues/1031
2021-09-03 12:19:44 -07:00
Wez Furlong
bc4ed3735d Add SendKey key assignment
refs: https://github.com/wez/wezterm/pull/1091
2021-09-03 12:07:17 -07:00
Wez Furlong
8da1f676a8 ALT+ "function" keys incorrectly sent ESC prefixed sequences
closes: #892
2021-09-03 11:35:01 -07:00
Wez Furlong
da455cafa1 window: plumb get_appearance on x11/wayland systems
Not sure what happened here: presumably a borked merge or something
similar, but this commit allows `window:get_appearance` to return
the actual appearance value on X11.

Even though this plumbs the call through to Wayland, Wayland doesn't
provide an equivalent concept so still always return Light, as is
mentioned on our docs.

closes: #1098
2021-09-02 09:08:21 -07:00
Wez Furlong
f3e5c337fd docs: changelog for https://github.com/wez/wezterm/issues/1051
closes: #1051
2021-09-02 08:53:31 -07:00
Wez Furlong
3d227d27cc docs: changelog for https://github.com/wez/wezterm/pull/1096 2021-09-01 21:13:14 -07:00
Wez Furlong
af23d64e97 docs: changelog for #1083 2021-08-27 07:51:27 -07:00
Sandro Jäckel
6ed16441c0 Revert "docs: changelog for https://github.com/wez/wezterm/pull/1081"
This reverts commit 14e6f9c4a8.
2021-08-25 13:37:00 -07:00
Wez Furlong
14e6f9c4a8 docs: changelog for https://github.com/wez/wezterm/pull/1081 2021-08-25 09:42:31 -07:00
Wez Furlong
fc441e9879 Upgrade bundled harfbuzz library to 2.9.0 2021-08-23 21:59:16 -07:00
Wez Furlong
006fa6caac docs: changelog for https://github.com/wez/wezterm/issues/1027
closes: #1027
2021-08-23 21:19:34 -07:00
Wez Furlong
0f6d2bc565 docs: changelog for #841 #1056 2021-08-23 16:37:42 -07:00
Wez Furlong
ab9291b6c6 docs: changelog for #250
refs: #250
refs: #1043
2021-08-19 21:00:56 -07:00
Wez Furlong
4a809b4077 docs: changelog updates
closes: https://github.com/wez/wezterm/issues/1042
2021-08-18 09:19:43 -07:00
Wez Furlong
2a39e8ad88 docs: changelog for https://github.com/wez/wezterm/issues/1029 2021-08-16 09:38:36 -07:00
Wez Furlong
befdc7ac3a Fixed: text_background_opacity was not respected 2021-08-15 08:33:09 -07:00
Wez Furlong
10812c936d docs: update for new 20210814-124438-54e29167 release 2021-08-14 14:15:05 -07:00
Wez Furlong
ba0aa5432b sync colorschemes with upstream
Built from 7f73027b71141a878cd3705ec664f5af8f3cfec5 in
https://github.com/mbadolato/iTerm2-Color-Schemes.git
2021-08-14 12:12:27 -07:00
Wez Furlong
ab6c4777cb config: add wezterm.gradient_colors 2021-08-13 23:52:32 -07:00
Wez Furlong
cbfb6d59c5 added new window_background_gradient config option 2021-08-12 23:08:38 -07:00
Wez Furlong
0866e5d213 fonts/shaping: respect the Presentation selection for a cluster
This commit annotates fonts with a boolean that indicates whether
we think it contains glyphs with emoji presentation, and then
passes the cluster.presentation field down to the shaper.

If the presentation doesn't match the current font in the fallback,
then it will be skipped until we exhaust its options.

`wezterm ls-fonts` also shows whether we think a font has emoji
presentation.

refs: #997
2021-08-11 09:11:59 -07:00
Wez Furlong
40cb141ad7 docs: for add_to_config_reload_watch_list
refs: #989
2021-08-10 20:44:49 -07:00
Wez Furlong
5bfdb88849 docs: changelog for #874
closes: https://github.com/wez/wezterm/issues/874
2021-08-10 20:25:31 -07:00
Wez Furlong
48a02faf58 docs: changelog for #932
closes: #932
2021-08-10 20:23:24 -07:00
Wez Furlong
1d94fe5fda docs: changelog for macos bright/transparency issue
closes: #653
closes: #716
closes: #1000
2021-08-09 21:01:24 -07:00
Wez Furlong
23097993e5 docs: changelog for https://github.com/wez/wezterm/issues/641
closes: https://github.com/wez/wezterm/issues/641
2021-08-08 19:21:47 -07:00
Wez Furlong
fdc924bc7f docs: changelog for #695 2021-08-08 08:03:13 -07:00
Wez Furlong
5905a1f919 docs: changelog for #973
closes: https://github.com/wez/wezterm/issues/973
2021-08-08 07:53:51 -07:00
Wez Furlong
19206cc96c docs: changelog for https://github.com/wez/wezterm/issues/884 2021-08-07 16:47:36 -07:00
Wez Furlong
406782fb31 docs: changelog for #1003 2021-08-06 10:56:54 -07:00
Wez Furlong
29aaa075d6 docs: changelog for #879
refs: https://github.com/wez/wezterm/issues/879
2021-08-01 19:31:57 -07:00
Wez Furlong
25f4308e4f docs: changelog for #532
closes: https://github.com/wez/wezterm/issues/532
2021-08-01 13:58:27 -07:00
Wez Furlong
6ef039a726 docs: changelog and more info on custom block glyphs
closes: #584
2021-07-25 09:11:39 -07:00
Wez Furlong
1be7665c14 docs: changelog and brief docs for synchronized rendering
closes: #882
2021-07-25 08:52:12 -07:00
Wez Furlong
613bc5a4f1 docs: fix some broken links/typos 2021-07-25 08:46:10 -07:00
Wez Furlong
50c3e171c6 docs: text_blink_rate
refs: #904
2021-07-25 08:43:03 -07:00
Wez Furlong
bd7a2a6692 docs: changelog for #904
closes: #904
refs: #133
2021-07-25 08:25:20 -07:00
Wez Furlong
61a0419f40 docs: changelog for https://github.com/wez/wezterm/issues/857
refs: https://github.com/wez/wezterm/issues/857
2021-07-22 07:52:14 -07:00
Wez Furlong
5076fe2dda term: fix rewrap issue for lines == terminal width
closes: https://github.com/wez/wezterm/issues/971
2021-07-22 07:49:18 -07:00
Wez Furlong
eaddd72a2d docs: changelog for #950 2021-07-18 19:15:08 -07:00
Wez Furlong
adc0ff276f docs: show how to switch color schemes for dark/light mode changes
refs: #806
2021-07-18 15:28:04 -07:00
Wez Furlong
88a2162823 docs for wayland window_frame config options
closes #761
2021-07-17 09:37:13 -07:00
Wez Furlong
b4c4c85683 changing the active pane now passes the focus event to the terminal
Test scenario is:

* Create a split
* in each pane run: `printf "\e[?1004h" ; od -c`
* Focus the panes, focus another window, and focus the window again
* The I and O events appear in the panes when changing their focus.
* Previously, only the active pane would get focus events when the
  window focus changed.

refs: https://github.com/wez/wezterm/issues/941
2021-07-13 08:58:18 -07:00
Wez Furlong
ac5199c216 config: add bypass_mouse_reporting_modifiers option
This allows changing eg: SHIFT to ALT for bypassing mouse reporting.

refs: https://github.com/wez/wezterm/issues/911
2021-07-11 22:02:23 -07:00
Wez Furlong
be680955d7 scroll to bottom on paste
closes: https://github.com/wez/wezterm/issues/931
2021-07-10 22:04:43 -07:00
Wez Furlong
0208e91cbd docs: changelog for https://github.com/wez/wezterm/issues/933
closes: https://github.com/wez/wezterm/issues/933
2021-07-10 08:22:41 -07:00
Benoit de Chezelles
6f64c747e8 Update changelog for braille 2021-07-08 09:30:27 -07:00
Wez Furlong
d3deca60cd ssh-config: allow multiple IdentityFile lines in ssh config
The man page states:

> For each parameter, the first obtained value will be used.

but then later says:

> It is possible to have multiple identity files specified in
> configuration files; all these identities will be tried in sequence.
> Multiple IdentityFile directives will add to the list of identities
> tried (this behaviour differs from that of other configuration
> directives).

So that's what this commit does
2021-06-30 12:08:28 -07:00
Wez Furlong
e05ddb1737 fix force_reverse_video_cursor 2021-06-28 09:18:13 -07:00
Wez Furlong
0a00ffe98b wayland: fix key repeat
The main culprit was the calloop feature that is used by default
in the underlying SCTK crate.

This commit:

* Routes keyboard processing via the same keyboard mapping code
  that we use for X11
* Implements key repeats directly, and with awareness of elapsed
  time in case the repeat rate is quicker than the event dispatching
  quantum
* Disables the calloop feature of SCTK and let us do our own polling
  of the wayland connection.

Critically, key repeat is sticky and unpredictable while calloop is
enabled.

closes: #669
2021-06-27 14:29:03 -07:00
Wez Furlong
e0a6ba9404 docs: update for #906 2021-06-27 10:28:46 -07:00
Wez Furlong
2fc143e6dd click to focus window now focuses the pane under the mouse cursor
refs: https://github.com/wez/wezterm/issues/881
2021-06-26 15:24:17 -07:00
Wez Furlong
ea58c2311a docs: changelog for https://github.com/wez/wezterm/pull/891 2021-06-20 09:08:26 -07:00
Wez Furlong
ae4bfae5c4 mouse cursor -> Arrow when app grabs mouse
closes: https://github.com/wez/wezterm/issues/859
2021-06-19 17:35:16 -07:00
Wez Furlong
fdf871c3cb fonts: add wezterm ls-fonts --text "hello" to explain per-glyph font
```
; ./target/debug/wezterm ls-fonts --text "␉ ␌ ␍ ␊ ␋"
␉    \u{2409}     glyph=885  wezterm.font("Terminus", weight="Bold", stretch="Normal", italic=false)
                             /home/wez/.fonts/terminus-bold.otb, FontDirs
     \u{20}       glyph=2    wezterm.font("Operator Mono SSm Lig", weight="DemiLight", stretch="Normal", italic=false)
                             /home/wez/.fonts/OperatorMonoSSmLig-Medium.otf, FontDirs
␌    \u{240c}     glyph=888  wezterm.font("Terminus", weight="Bold", stretch="Normal", italic=false)
                             /home/wez/.fonts/terminus-bold.otb, FontDirs
     \u{20}       glyph=2    wezterm.font("Operator Mono SSm Lig", weight="DemiLight", stretch="Normal", italic=false)
                             /home/wez/.fonts/OperatorMonoSSmLig-Medium.otf, FontDirs
␍    \u{240d}     glyph=889  wezterm.font("Terminus", weight="Bold", stretch="Normal", italic=false)
                             /home/wez/.fonts/terminus-bold.otb, FontDirs
     \u{20}       glyph=2    wezterm.font("Operator Mono SSm Lig", weight="DemiLight", stretch="Normal", italic=false)
                             /home/wez/.fonts/OperatorMonoSSmLig-Medium.otf, FontDirs
␊    \u{240a}     glyph=886  wezterm.font("Terminus", weight="Bold", stretch="Normal", italic=false)
                             /home/wez/.fonts/terminus-bold.otb, FontDirs
     \u{20}       glyph=2    wezterm.font("Operator Mono SSm Lig", weight="DemiLight", stretch="Normal", italic=false)
                             /home/wez/.fonts/OperatorMonoSSmLig-Medium.otf, FontDirs
␋    \u{240b}     glyph=887  wezterm.font("Terminus", weight="Bold", stretch="Normal", italic=false)
                             /home/wez/.fonts/terminus-bold.otb, FontDirs
```
2021-06-19 16:55:45 -07:00
Wez Furlong
d57bc9b3dc CloseCurrentPane on last pane in a tab results in window closing
The issue is that the pane was only removed from the tab when explicitly
closed, leaving it to be later detected and flushed.

However, in the meantime, when performing eg: cursor blink maintenance,
if the set of panes in the tab is empty then the window would close.

The resolution is to ask the mux (rather than the tab) to kill the pane,
so that the cascading closure of the tab causes the window's active
tab to reference the correct remaining tab.

refs: #890
2021-06-19 11:06:14 -07:00
Wez Furlong
e3fdef7fb4 add wezterm cli spawn --new-window flag
refs: https://github.com/wez/wezterm/issues/887
2021-06-18 22:12:25 -07:00
Wez Furlong
f752d0e7ac set COLORTERM=truecolor in the environment
closes: https://github.com/wez/wezterm/issues/875
2021-06-15 19:34:31 -07:00
Wez Furlong
c7ec47e2c0 add sextant glyphs to custom block glyphs
While I'm in here, teach the font fallback code that it doesn't
need to search for these glyphs when custom block glyphs are
enabled.

refs: https://github.com/dankamongmen/notcurses/issues/1715
refs: #584
refs: #588
2021-06-10 20:38:48 -07:00
Wez Furlong
db9a65ae42 docs: changelog for https://github.com/wez/wezterm/issues/839
closes: https://github.com/wez/wezterm/issues/839
2021-06-10 07:43:48 -07:00
Wez Furlong
cc19aaca9f revise skip_close_confirmation_for_processes_named for Windows
closes: #843
2021-06-10 07:39:00 -07:00
Wez Furlong
e41c23dd71 docs: changelog for https://github.com/wez/wezterm/pull/851 2021-06-10 07:14:17 -07:00
Wez Furlong
434f54fae7 docs: changelog for https://github.com/wez/wezterm/pull/838 2021-05-31 16:34:38 -07:00
Wez Furlong
717a2157f6 fonts: synthesize dim when a light weight font is unavailable 2021-05-30 20:52:10 -07:00
Wez Furlong
cb4da18021 key assignment and docs for ShowDebugOverlay
refs: https://github.com/wez/wezterm/issues/641
2021-05-30 19:56:11 -07:00
Wez Furlong
2e924c9627 fix over-reporting of mouse drag events
neovim doesn't like it when multiple drag events with the same
coordinates are received; it appears to treat that as though
the mouse button was double clicked.

This commit teaches the mouse report encoding to suppress multiple
drag events in succession that have the same payload.

refs: https://github.com/wez/wezterm/discussions/823
2021-05-30 12:36:50 -07:00
Wez Furlong
846787d543 docs: changelog for #748 and #489 2021-05-30 11:56:50 -07:00
Wez Furlong
b8a93a0b66 mux client: use pane_id instead of tab id when splitting!
This looks like a honest typo from when panes were introduced!
We were passing the tab id rather than the pane id when specifying
the target of a split.

likely fix for this issue:

refs: https://github.com/wez/wezterm/issues/781
2021-05-30 08:50:44 -07:00
Wez Furlong
a652896418 fix OSC 52 not working in multiplexer
closes: https://github.com/wez/wezterm/issues/764
2021-05-30 07:40:00 -07:00
Wez Furlong
529b709277 windows: ssh: detect resizes during authentication
refs: https://github.com/wez/wezterm/issues/696
2021-05-29 15:15:42 -07:00
Wez Furlong
eaa0d2f4d3 ssh: fix lost character after keyboard auth on windows
closes: https://github.com/wez/wezterm/issues/771
2021-05-29 10:05:55 -07:00
Wez Furlong
3093fb3eb6 wezterm-ssh: process Include statements
refs: https://github.com/wez/wezterm/issues/824
2021-05-28 22:16:24 -07:00
Wez Furlong
3f6ff534d3 windows: fix lingering cmd.exe panes
Since removing the regular periodic background tasks, we're now
prone to not noticing child processes exiting.

This commit explicictly schedules a thread to do that on Windows
so that we can close a tab as soon as it exits.
2021-05-28 15:11:29 -07:00
Wez Furlong
b5bfec6510 update conpty to v1.9.1445.0
refs: https://github.com/microsoft/terminal/issues/376

This also enables as the conpty layer the new win32 mode discussed in
https://github.com/wez/wezterm/issues/318
wezterm itself is not able to use this mode yet.
2021-05-28 15:11:29 -07:00
Wez Furlong
0519b5499a fonts: can now synthesize italics for bitmap fonts
refs: #815
2021-05-23 08:27:36 -07:00
Wez Furlong
c37ee01222 fonts: synthesize bold when missing
refs: #815
2021-05-22 16:20:35 -07:00
Wez Furlong
2bbe2bd154 fonts: synthesize italics for fonts that don't have it
This commit adds a slant to *scalable* (not bitmap!) fonts whose
originating font attributes requested italics but for for which
the resolved face is not italic.

refs: #815
2021-05-22 16:01:16 -07:00
Wez Furlong
8418495dbd brew tap is now a Cask on macOS
This updates the docs to reflect the changes in
https://github.com/wez/homebrew-wezterm/pull/2 and updates the
automation to use the cask as the template, and to update and commit the
task version of the formula.

Thanks @laggardkernel!

closes: https://github.com/wez/homebrew-wezterm/issues/1
refs: https://github.com/wez/wezterm/issues/501
2021-05-22 08:30:10 -07:00
Wez Furlong
e23ea64864 changelog for #799
refs: https://github.com/wez/wezterm/pull/799
2021-05-18 08:37:22 -07:00
Wez Furlong
9b082edb8d log errors when a color scheme fails to load
refs: https://github.com/wez/wezterm/issues/794
2021-05-15 13:39:31 -07:00
Wez Furlong
db45238769 improve exit_behavior messaging
The status information now explains the exit status and the
exit_behavior, as well as links to the docs on exit_behavior.

refs: https://github.com/wez/wezterm/issues/795
2021-05-15 08:32:29 -07:00
Wez Furlong
69561b96c8 fix wrong starting row for split paints when tab bar is at bottom
refs: https://github.com/wez/wezterm/issues/797
2021-05-15 07:47:33 -07:00
Wez Furlong
3c6fb77879 docs for https://github.com/wez/wezterm/issues/785
closes: https://github.com/wez/wezterm/issues/785
2021-05-11 18:59:46 -07:00
Wez Furlong
01de37b709 fix Sixel HLS interpretation
Two issues here:

* The hue angles need adjusting to work with the palette library
* The resultant RGB color had the wrong gamma level, resulting in
  an overly bright image.

refs: https://github.com/wez/wezterm/issues/775
2021-05-09 11:43:26 -07:00
Wez Furlong
99cc5a2242 changelog for #699
closes: https://github.com/wez/wezterm/issues/699
2021-05-09 08:21:38 -07:00
Wez Furlong
b8acdf592f fix panic when double-click-selection drags across line boundary
closes: https://github.com/wez/wezterm/issues/762
2021-05-09 08:17:56 -07:00
Wez Furlong
55289013ed wezterm cli split-pane now respects cwd of source pane
closes: https://github.com/wez/wezterm/issues/766
2021-05-09 08:02:35 -07:00
Wez Furlong
ff153ba27f vtparse: recognize utf8 encoded c1 codes in more cases
There were two bugs here:

* \u8D (the utf8 encoded representation of 0x8d, aka: RI) was not
  recognized as a C1 code and was instead passed through as printable
  text.
* The \u8D is a zero-width sequence which means that a subsequent
  set_cell call on the new empty-by-default line wouldn't allocate
  any cells in the line array, and the assigment to the line would
  panic.

This commit avoids the panic for the second case, and then fixes up
the vtparser to correctly recognize the sequence as a C1 control.

refs: https://github.com/wez/wezterm/issues/768
2021-05-08 00:39:29 -07:00
Wez Furlong
9a1314c5b1 docs: changelog for voidsymbol 2021-05-07 07:59:26 -07:00
Wez Furlong
494fa999bb fix system ssh config path 2021-05-03 19:54:09 -07:00
Wez Furlong
fbcea3a2f4 docs: update for 20210502-154244-3f7122cb 2021-05-02 16:13:32 -07:00
Wez Furlong
bff6815df1 docs: typo fix changelog 2021-05-02 13:02:08 -07:00
Wez Furlong
a45c500eba update colorschemes
https://github.com/mbadolato/iTerm2-Color-Schemes.git @
ea6f5ff97f23902bb62334bfc8f4974fbd65b48b
2021-05-02 07:47:23 -07:00
Wez Furlong
f084f4d61f changelog for #740
closes: https://github.com/wez/wezterm/issues/740
2021-05-02 07:31:53 -07:00
Wez Furlong
4a024c3af5 docs: fix typo 2021-05-01 19:50:31 -07:00
Wez Furlong
04c083ee8a docs: for use_cap_height_to_scale_fallback_fonts option 2021-05-01 19:50:31 -07:00
Wez Furlong
82d825ab37 split padding out from truncation
This makes these functions a bit more composable!

Heads up @jankatins; this is a breaking change (for the better!)

refs: https://github.com/wez/wezterm/issues/647
2021-05-01 18:26:53 -07:00
Wez Furlong
e119313e37 ssh: add basic support for Match Host, Match User in ssh_config parser 2021-05-01 08:53:51 -07:00
Wez Furlong
bc0766396d use -$SHELL rather than $SHELL -l to trigger a login shell
Since the original code was written, Rust grew and stabilized
an interface for specifying argv0 for the child process, so
we can remove the fragile `-l` argument passing.

refs: https://github.com/wez/wezterm/issues/753
2021-05-01 07:31:35 -07:00
Wez Furlong
d4da670294 docs for and minor tweak of curly underline improvement
refs: https://github.com/wez/wezterm/pull/733
2021-04-30 09:22:01 -07:00
Wez Furlong
acb4df4934 term: clear mouse button when focus is lost
refs: https://github.com/wez/wezterm/issues/744
2021-04-27 08:38:40 -07:00
Wez Furlong
45262c3091 macos: fix numpad enter key reporting
refs: https://github.com/wez/wezterm/issues/739
2021-04-27 07:39:10 -07:00
Wez Furlong
bc6f93ccf0 docs: changelog for #742
refs: https://github.com/wez/wezterm/pull/742
2021-04-27 06:27:15 -07:00
Wez Furlong
c4dc358282 add truncate_left_to_width
refs: #647
2021-04-27 06:23:19 -07:00
Wez Furlong
7e996950f6 add wezterm.truncate_to_width
refs: https://github.com/wez/wezterm/issues/647
2021-04-26 22:27:12 -07:00
Wez Furlong
be9c60bfc8 removed tab_bar_style options in favor of format-tab-title
refs: https://github.com/wez/wezterm/issues/647
2021-04-26 20:16:47 -07:00
Wez Furlong
0f2f3734d9 add wezterm.column_width
refs: https://github.com/wez/wezterm/issues/647
2021-04-26 20:10:27 -07:00
Wez Furlong
3028756ccb add tab_bar_at_bottom config option
closes: https://github.com/wez/wezterm/issues/278
2021-04-25 20:49:48 -07:00
Wez Furlong
f3706c706c de-hover tab when moving cursor down into the terminal
It's not perfect; this only handles the case where you move down
into the terminal.  I couldn't easily make the same thing happen
when moving the mouse up or left outside of the window.  It's
probably fixable but this is better than it was.

closes: https://github.com/wez/wezterm/issues/591
2021-04-25 17:01:21 -07:00
Wez Furlong
8ce376753f round out quick select mode
* Make alphabet and patterns configurable
* add docs
* Enhance scrollback search to support regex captures so that
  searching for eg: `fo(o)` will select the last `o` in `foo`.

refs: https://github.com/wez/wezterm/issues/732
2021-04-25 16:27:39 -07:00
Wez Furlong
5b281c42b9 docs: changelog for https://github.com/wez/wezterm/issues/729 2021-04-25 08:15:07 -07:00
Wez Furlong
2c89e47f9e add force_reverse_video_cursor option
refs: https://github.com/wez/wezterm/issues/706
2021-04-24 21:16:58 -07:00
Wez Furlong
09e101c268 add format-tab-title event
refs: https://github.com/wez/wezterm/issues/647
2021-04-24 17:59:39 -07:00
Wez Furlong
e3fcdc9f36 add format-window-title event
This provides a flexible way for users to customize what gets
shown in the window title bar.

closes: https://github.com/wez/wezterm/pull/603
2021-04-24 16:47:26 -07:00
Wez Furlong
87d49e45fc fix: multi-glyph tab titles
closes: https://github.com/wez/wezterm/issues/711
2021-04-23 22:51:53 -07:00
Wez Furlong
52b57ca512 fix splitting panes while a pane is zoomed
closes: https://github.com/wez/wezterm/issues/723
2021-04-23 22:32:47 -07:00
Wez Furlong
d705886b53 Add pane_focus_follows_mouse
closes: https://github.com/wez/wezterm/issues/600
2021-04-23 22:17:33 -07:00
Wez Furlong
657ed92d82 add swallow_mouse_click_on_pane_focus option
refs: https://github.com/wez/wezterm/issues/724
2021-04-23 22:17:06 -07:00
Wez Furlong
501836fece docs: changelog for https://github.com/wez/wezterm/issues/714 2021-04-23 19:11:59 -07:00
Wez Furlong
d6cfa9c610 fix a possible panic when word-selecting off the top of viewport
refs: https://github.com/wez/wezterm/issues/713
2021-04-23 19:10:26 -07:00
Wez Furlong
76353a6240 fix: InputMap reading global config instead of window overrides
refs: #656
2021-04-16 08:59:49 -07:00
Wez Furlong
aea4fd5020 macos: ensure window is always miniaturizable
We need to keep the miniaturizable flag in even when there is no
titlebar, otherwise the miniaturize action has no effect.
2021-04-15 18:12:14 -07:00
Wez Furlong
27f4c01ea1 docs: a couple of changelog updates 2021-04-15 17:36:22 -07:00
Wez Furlong
1b12b0a23d fonts: improve font_rules behavior
We now always append the synthetic rules to the those in the config,
and include rules for generating half-bright font selection.
2021-04-15 09:43:24 -07:00
Wez Furlong
d5886e6297 changelog for fixing mouse cursor hiding
closes: https://github.com/wez/wezterm/issues/618
2021-04-14 19:42:22 -07:00
Wez Furlong
adbe545d44 fix window vanishing when a tab is closed
We weren't fixing up the active tab position correctly after removing
a tab.  I think this bug crept in around the ActivateLastTab changes.

We now try harder to set active idx back to the tab that was active
prior to the remove, and ensure that we set the active index to
something within range if it was the active tab that was removed.

Refs: https://github.com/wez/wezterm/issues/690
2021-04-13 08:18:52 -07:00
Wez Furlong
776aedf97e fonts: allow specifying weight/stretch/italic for each fallback font 2021-04-12 22:30:55 -07:00
Wez Furlong
ca1a261892 docs: changelog for https://github.com/wez/wezterm/issues/614 2021-04-11 22:37:32 -07:00
Wez Furlong
e5665e80a1 add window:toast_notification method
refs: https://github.com/wez/wezterm/issues/619
2021-04-11 22:01:06 -07:00
Wez Furlong
33ca16df44 docs: changelog for recent font unload/stream/mmap improvements 2021-04-10 14:18:30 -07:00
Wez Furlong
1415d16c9f window: x11: explicitly set titles in utf8
closes: https://github.com/wez/wezterm/issues/673
2021-04-10 07:44:51 -07:00
Wez Furlong
21ce3f3262 docs: clean up the font documentation
Migrate information into the relevant config option pages, and
instead summarize with a demonstration of configuring the font.

For wezterm.font, there's now an expanded discussion on naming
and matching fonts.

closes: https://github.com/wez/wezterm/issues/560
2021-04-09 21:52:25 -07:00
Wez Furlong
7524dc3826 changelog for #667
closes: https://github.com/wez/wezterm/issues/667
2021-04-09 19:53:38 -07:00
Wez Furlong
6a817fd26e changelog for https://github.com/wez/wezterm/issues/668
closes: https://github.com/wez/wezterm/issues/668
2021-04-09 19:52:26 -07:00
Wez Furlong
99fc3ee3cd fonts: rename width/FontWidth to stretch/FontStretch
This terminology is consistent with that used in CSS to describe
this same property of the font.
2021-04-09 12:00:18 -07:00
Wez Furlong
ecc500af05 ssh: don't override the ssh config User value 2021-04-08 16:17:49 -07:00
Wez Furlong
dcf41d7338 docs: freetype_render_target
refs: #639
2021-04-08 15:52:06 -07:00
Wez Furlong
43ea2f192a Allow matching font weight and font width in wezterm.font
refs: https://github.com/wez/wezterm/issues/655
2021-04-08 15:42:53 -07:00
Wez Furlong
c14ec06ff6 docs: changelog for #655 2021-04-08 12:47:04 -07:00
Wez Furlong
b689d192c6 docs: changelog for #661 2021-04-08 12:45:22 -07:00
Wez Furlong
fc20c6a047 docs: changelog for #639
refs: #639
2021-04-07 08:46:45 -07:00
Wez Furlong
81946d0144 fix under-invalidation of the selection
The repro scenario for this case was:

* open GNU nano
* hit enter twice
* type hello
* move the text cursor to the top line
* double click on hello
* hit enter

Prior to this commit, the selection would remain on the now-blank line
that previously held `hello`.

refs: #644
2021-04-07 08:43:45 -07:00
Wez Furlong
b8c2b309fe docs: changelog update for 20210405-110924-a5bb5be8 2021-04-05 11:42:30 -07:00
Wez Furlong
e0da31f2e3 docs: changelog for #648 2021-04-05 11:11:11 -07:00
Wez Furlong
8ab9468ba5 docs: revise wording about the nightly builds 2021-04-04 11:31:06 -07:00
Wez Furlong
7be590ecc0 docs: update for 20210404-112810-b63a949d release 2021-04-04 11:30:58 -07:00
Wez Furlong
b63a949df8 config: fix wezterm.config_dir, add wezterm.config_file
refs: https://github.com/wez/wezterm/discussions/635#discussioncomment-567968
2021-04-04 08:53:50 -07:00
Wez Furlong
c22765c1a7 docs: changelog updates 2021-04-03 15:14:44 -07:00
Wez Furlong
7deb215303 macos: recognize CTRL-Tab
macOS only sends key up events for this, so we remap them to
key down events.

closes: https://github.com/wez/wezterm/issues/630
2021-04-03 11:29:03 -07:00
Wez Furlong
298e0b8d76 hide mouse cursor each time we send key input to a pane
Mouse movement will show the cursor again.

macOS: fix hiding the cursor

refs: https://github.com/wez/wezterm/issues/618
2021-04-02 22:34:58 -07:00
Wez Furlong
47e62cc243 Avoid confusing error when the font has no bold/italic variant
refs: https://github.com/wez/wezterm/issues/617
2021-04-02 17:59:27 -07:00
Wez Furlong
f2334fc46c docs: changelog for https://github.com/wez/wezterm/issues/609
closes: https://github.com/wez/wezterm/issues/609
2021-04-02 17:37:11 -07:00
Wez Furlong
4a3e0615f5 tweak ActivateLastTab and add a changelog entry for it
refs: https://github.com/wez/wezterm/pull/610
2021-04-02 09:29:52 -07:00
Wez Furlong
c4cac94aab docs: changelog for https://github.com/wez/wezterm/pull/599 2021-04-01 08:44:04 -07:00
Wez Furlong
0e581b151f docs: changelog and ssh doc updates 2021-03-29 07:46:14 -07:00
Wez Furlong
c6308202cb hyperlinks, selection by word and line deal with wrapping better
These now operate in terms of logical lines so they deal with
lines that have wrapped outside the viewport better than in
previous releases.

closes: https://github.com/wez/wezterm/issues/408
2021-03-26 14:52:00 -07:00
Wez Furlong
0643e8b0ed add window:get_selection_text_for_pane
refs: https://github.com/wez/wezterm/issues/575
2021-03-25 22:10:29 -07:00
Wez Furlong
eefdb667d5 changelog for #508
closes: https://github.com/wez/wezterm/issues/508
2021-03-23 20:01:27 -07:00
Wez Furlong
8d4138bca6 fix X10 mouse encoding issue
This manifests under GNU screen when the window is large.

cc: @babar
2021-03-23 11:09:56 -07:00
Wez Furlong
785645cd86 changelog for https://github.com/wez/wezterm/issues/572
closes: https://github.com/wez/wezterm/issues/572
2021-03-22 14:10:17 -07:00
Wez Furlong
ad4b3b4648 add skip_close_confirmation_for_processes_named option
Currently only respected on linux.

refs: https://github.com/wez/wezterm/issues/562
2021-03-22 12:42:46 -07:00
Wez Furlong
b27e4ce2b2 keys: CMD-Q for QuitApplication is now a default on macos 2021-03-22 11:43:53 -07:00
Wez Furlong
22522dc39e render more symbol/icon/emoji at double width by default
Default `allow_square_glyphs_to_overflow_width="WhenFollowedBySpace"`,
and expand its meaning from mostly square glyphs to glyphs that are
also wider than they are tall.

refs: https://github.com/wez/wezterm/issues/565
2021-03-22 11:36:45 -07:00
Wez Furlong
510580bc48 docs: changelog updates
closes: https://github.com/wez/wezterm/issues/506
Refs: https://github.com/wez/wezterm/issues/546
2021-03-21 20:12:46 -07:00
Wez Furlong
70d2351b7d docs: changelog for https://github.com/wez/wezterm/issues/542
closes: https://github.com/wez/wezterm/issues/542
2021-03-21 20:05:48 -07:00
Wez Furlong
08797e77b5 docs: changelog for https://github.com/wez/wezterm/issues/558 2021-03-21 08:30:57 -07:00
Wez Furlong
f3d01c4d19 windows: fix window_background_opacity
I'm not sure what exactly changed (perhaps it was a Windows updated?)
but window_background_opacity was only taking effect for windows
with no title bar.

I found that explicitly configuring a region makes transparency
work again.

refs: #553
2021-03-21 00:57:09 -07:00
Wez Furlong
70c4cd1a53 fonts: use Cow instead of making a Vec copy for Memory handles
This doesn't change much, just makes things slightly tidier.

refs: https://github.com/wez/wezterm/issues/559
2021-03-20 23:15:33 -07:00
Wez Furlong
8015791dd0 fixup initial pty dimensions to account for font/dpi size
refs: https://github.com/wez/wezterm/issues/563
2021-03-20 13:17:32 -07:00
Wez Furlong
1cf335cb45 fonts: handle bitmap-only fonts better
terminus-bold.otb reports 0 height!

Detect and force that case to go through the bitmap strike loading
code path.

Improve the size selection heuristic for bitmap strikes: previously,
we would just pick the largest bitmap and allow it to be scaled down,
which was OK for emoji fonts that just had 128px square glyphs, but
is not ok for pre-rendered pixel strikes like terminus.

Note that IncreaseFontSize works in terms of percentages only,
so using a font like this may have "gaps" when ctrl-+ or - to change
the font size.

refs: https://github.com/wez/wezterm/issues/560
2021-03-20 12:52:20 -07:00
Wez Furlong
e5ae1d4769 docs: changelog for #556
refs: https://github.com/wez/wezterm/discussions/556
2021-03-19 09:29:58 -07:00
Wez Furlong
56f3e40d56 docs: changelog for #557 2021-03-19 09:21:46 -07:00
Wez Furlong
46227a741f docs: update for version 20210314-114017-04b7cedd 2021-03-14 11:55:12 -07:00
Wez Furlong
c898250141 docs: changelog to summarize timg related changes
refs https://github.com/wez/wezterm/issues/537
2021-03-13 16:32:14 -08:00
Wez Furlong
04a21acdf4 docs: reorder changelog 2021-03-13 10:53:27 -08:00
Wez Furlong
9ddc2da625 docs: document styling the tab bar elements
refs: https://github.com/wez/wezterm/issues/500
2021-03-12 09:23:00 -08:00
Wez Furlong
c5cb0ef66d Added support for animated gifs and pngs
This is first draft; the animation rate is currently tied
to the cursor_blink_rate setting, so if the gif has frames that
are intended to display more frequently than that, they will
animate more slowly.

Animation is only carried out while the window has focus.
Animation increases the load on the GPU and thus uses more power.

It's kinda fun to stick one of these animated pixel gifs in the background:
https://imgur.com/gallery/F9DAH
2021-03-11 00:41:54 -08:00
Wez Furlong
684b7ea95d Windows: fix "Open WezTerm Here" for C:\
closes: https://github.com/wez/wezterm/issues/451
closes: https://github.com/wez/wezterm/issues/526
2021-03-10 20:12:47 -08:00
Wez Furlong
f6c37ae371 increase default font size to 12 points 2021-03-10 19:43:02 -08:00
Wez Furlong
d853be02ad docs: for the new status bar feature
refs: https://github.com/wez/wezterm/issues/500
2021-03-10 19:29:17 -08:00
Wez Furlong
da596b83be docs: clarify which cursor 2021-03-09 23:57:14 -08:00
Wez Furlong
73c9a3e733 docs: fixup typo 2021-03-09 23:56:42 -08:00
Wez Furlong
4c6780bb32 changelog for XCursor theme changes
closes: https://github.com/wez/wezterm/issues/524
2021-03-09 21:16:26 -08:00
Wez Furlong
8f3b8586b0 docs: changelog for https://github.com/wez/wezterm/issues/515
closes: https://github.com/wez/wezterm/issues/515
closes: https://github.com/wez/wezterm/issues/523
2021-03-09 21:13:17 -08:00
Wez Furlong
fa9cf66fa2 Add file:// to the default implicit hyperlink rule list
closes: https://github.com/wez/wezterm/issues/525
2021-03-09 07:43:33 -08:00
Wez Furlong
aceb4933a9 x11: load XCursor.theme based cursors when available
This requires `xcb-util-image-devel` on fedora, not sure about debian
or other systems so far.

refs: #524
2021-03-08 22:00:42 -08:00
Wez Furlong
41a0148c50 x11: fix reporting shift modifiers for SHIFT-Enter, Space, Tab
refs: https://github.com/wez/wezterm/issues/516
2021-03-07 22:13:53 -08:00
Benoit de Chezelles
afe0450201 Add changelog entry for treat_left_ctrlalt_as_altgr 2021-03-07 12:52:03 -08:00
Wez Furlong
ffa106d729 docs: move this changelog entry to the right place! 2021-03-07 10:12:27 -08:00
Wez Furlong
4b7f774bc5 Bundle PowerlineExtraSymbols as a fallback font 2021-03-06 19:12:35 -08:00
Wez Furlong
014acf1a4a add docs for window decoration stuff 2021-03-06 11:32:15 -08:00
Wez Furlong
7e1d16e671 Add SUPER+Drag to drag the window 2021-03-03 23:45:02 -08:00
Wez Furlong
76c7ef56df term: RIS must clear the scrollback
closes: #511
2021-03-03 07:44:57 -08:00
Wez Furlong
0597684ebd Render custom block glyphs
As explained in the docs included in this commit, ideally this
wouldn't be needed, but due to a long-standing hinting bug in
freetype <https://gitlab.freedesktop.org/freetype/freetype/-/issues/761>
it seems most expedient to just render our own block glyphs,
so that's what this does!

refs: #433
2021-02-28 09:43:26 -08:00
Wez Furlong
27837b56b4 fix: triple click (line selection) to consider wrapped lines
closes: https://github.com/wez/wezterm/issues/466
2021-02-28 00:31:26 -08:00
Wez Furlong
04ecd16493 remove --front-end CLI option
Can use `--config front_end="Software"` instead.
2021-02-27 23:59:04 -08:00
Wez Furlong
db08b8c1dc add window:set_config_overrides lua method
This commit expands on the prior commits to introduce the concept
of per-window configuration overrides.

Each TermWindow maintains json compatible object value holding
a map of config key -> config value overrides.

When the window notices that the config has changed, the config
file is loaded, the CLI overrides (if any) are applied, and then
finally the per-window overrides, before attempting to coerce
the resultant lua value into a Config object.

This mechanism has some important constraints:

* Only data can be assigned to the overrides.  Closures or special
  lua userdata object handles are not permitted.  This is because
  the lifetime of those objects is tied to the lua context in which
  they were parsed, which doesn't really exist in the context of
  the window.
* Only simple keys are supported for the per-window overrides.
  That means that trying to override a very specific field of
  a deeply structured value (eg: something like `font_rules[1].italic = false`
  isn't able to be expressed in this scheme.  Instead, you would
  need to assign the entire `font_rules` key.  I don't anticipate
  this being a common desire at this time; if more advance manipulations
  are required, then I have some thoughts on an event where arbitrary
  lua modifications can be applied.

The implementation details are fairly straight-forward, but in testing
the two examplary use cases I noticed that some hangovers from
supporting overrides for a couple of font related options meant that the
window-specific config wasn't being honored.  I've removed the code that
handled those overrides in favor of the newer more general CLI option
override support, and threaded the config through to the font code.

closes: #469
closes: #329
2021-02-27 14:53:19 -08:00
Wez Furlong
2d02df5f38 add --config name=value CLI options
`wezterm`, `wezterm-gui` and `wezterm-mux-server` now all support
a new `--config name=value` CLI option that can be specified
multiple times to supply config overrides.

Since there isn't a simple, direct way to update arbitrary fields
of a struct in Rust (there's no runtime reflection), we do this
work in lua.

The config file returns a config table. Before that is mapped
to the Rust Config type, we have a new phase that takes each
of the `--config` values and applies it to the config table.

For example, you can think of configuration as working like this
if wezterm is started as `wezterm --config foo="bar"`:

```lua
config = load_config_file();
config.foo = "bar";
return config;
```

The `--config name=value` option is split into `name` and `value`
parts.  The name part is literally concatenated with `config` in
the generated lua code, so the name MUST be valid in that context.
The `value` portion is literally inserted verbatim as the rvalue in the
assignment.  Not quoting or other processing is done, which means
that you can (and must!) use the same form that you would use in
the config file for the RHS.  Strings must be quoted.  This allows
you to use more complicated expressions on the right hand side,
such as:

```
wezterm --config 'font=wezterm.font("Fira Code")'
```

The overrides stick for the lifetime of the process; even if
you change the config file and reload, then the value specified
by the override will take precedence.

refs: https://github.com/wez/wezterm/issues/469
refs: https://github.com/wez/wezterm/issues/499
2021-02-27 10:53:45 -08:00
Wez Furlong
823213703c mux: introduce can_close_without_prompting concept to model
This is defined as a trait method on Pane (default: false), and has the
obvious transitive equivalent methods in Tab and Window (eg: if all
contained items are `can_close_without_prompting`, then that container
is also `can_close_without_prompting`).

The intent is to avoid bothering the user to confirm closing a window
when the content is not stateful and doesn't warrant it.

For example: the window that is displayed in the event of a
configuration error really shouldn't prompt to the user to confirm
closing it.

All termwiztermtab panes are `can_close_without_prompting==true`
to effect this policy.

In the future, we could teach LocalPane to lookup the session leader
process against a list of "uninteresting" or "stateless" processes
and return an appropriate result (as suggested in
https://github.com/wez/wezterm/issues/280).  That functionality
is NOT part of this commit.
2021-02-27 09:03:13 -08:00
Wez Furlong
697a6abd04 add exit_behavior config option
`exit_behavior = "Hold"` will keep the pane alive until explicitly
closed.  More details in the docs that are part of this commit.

refs: https://github.com/wez/wezterm/issues/499
2021-02-27 00:15:51 -08:00
Wez Furlong
38e6a1bc4c window: fix ToggleFullScreen on Windows
closes: https://github.com/wez/wezterm/issues/177
2021-02-26 19:39:35 -08:00
Wez Furlong
39f7332378 changelog: add a couple of items (OSC52, ANGLE in .zip) 2021-02-25 22:31:04 -08:00
Wez Furlong
2dee60587f changelog entry for #475
refs: https://github.com/wez/wezterm/issues/475
2021-02-25 22:25:27 -08:00
Wez Furlong
036c48d76c docs: note about OSC 9 and OSC 777 toast notification support
refs: #489
2021-02-23 09:18:23 -08:00
Wez Furlong
7cecbd50dd docs: add some credits for a couple of issues
refs: #481, #490, #465
2021-02-23 09:01:42 -08:00
Wez Furlong
181ed704c9 docs for freetype_load_target and deprecation of font_antialias
refs: #491
2021-02-23 08:49:46 -08:00
Wez Furlong
c964b69b1d Add ScrollByLine key assignment
refs: #497
2021-02-23 08:02:07 -08:00
Wez Furlong
7a16e71e07 Add ResetFontAndWindowSize key assignment
closes: https://github.com/wez/wezterm/issues/480
2021-02-20 21:50:20 -08:00
Wez Furlong
528a4846c7 docs: changelog and improve the foreground_text_hsb docs
refs: #491
2021-02-20 11:36:04 -08:00
Wez Furlong
c13b592d55 docs: changelog for #470
closes: #470
2021-02-16 20:24:09 -08:00
Wez Furlong
b4ded64e14 wayland: fix an issue with key repeat potentially hanging/spinning 2021-02-13 19:47:06 -08:00
Wez Furlong
f697de82fc wayland: fix initial window decoration, toggle full screen
This fixes a longstanding issue under mutter where client side
decorations are in use.  The decorations were being drawn too
early in the initialization of the window which could leave them
off-screen and weird.  This was masked by a couple of mutter
related bugs with client side decorations.

With these changes I now get sane decorations under mutter,
and the toggle fullscreen action is now enabled as well!

closes: #224
2021-02-13 11:02:04 -08:00
Wez Furlong
894d056947 wayland: allow matching raw modifiers for raw:123 key bindings 2021-02-13 09:11:55 -08:00
Wez Furlong
7b86a84bc3 window: avoid invalidating on mouse move
We weren't didn't treat the "No existing hyperlink, No new hyperlink"
case as no change in hyperlink, and were invalidating the window on
every mouse except for those over text with a hyperlink.
2021-02-13 08:49:09 -08:00
Wez Furlong
475260d3e3 Update bundled JetBrainsMono font to 2.225
refs: #452
2021-02-11 23:56:07 -08:00
Wez Furlong
ece9276624 term: large pastes could hang the terminal
Pasting a lot of text could cause a deadlock between writing
to the input side of the pty and consuming the output side.

Making the writer/input side non-blocking resolves this.
2021-02-11 23:32:19 -08:00
Wez Furlong
04bbfb4760 docs: changelog and a little extra info about --config-file
refs: 459
2021-02-07 09:31:41 -08:00
Wez Furlong
70cb992924 config: improve font_rule synthesis
This should help to avoid frustration for minor config issues.

closes: https://github.com/wez/wezterm/issues/456
2021-02-06 08:23:22 -08:00
Wez Furlong
aa75dda157 docs: note 413 in the changelog
refs: https://github.com/wez/wezterm/issues/413
2021-02-04 08:42:54 -08:00
Wez Furlong
32b2bd446d docs: update for 20210203-095643-70a364eb release 2021-02-03 10:03:04 -08:00
Wez Furlong
6bfadfac0a macos: handle dead keys without IME
Dead key processing respects the
`send_composed_key_when_left_alt_is_pressed` and
`send_composed_key_when_right_alt_is_pressed` options.

See doc changes included in this commit for more info.

refs: https://github.com/wez/wezterm/issues/410
2021-01-31 17:06:30 -08:00
Wez Furlong
df3387e12c wezterm: change default copy/paste behavior on X11
This commit changes mouse-based selection and middle click to use the
PrimarySelection.

CTRL-SHIFT-{C,V} use Clipboard.

{SHIFT,CTRL}-Insert use PrimarySelection.

`CompleteSelection` and `CompleteSelectionOrOpenLinkAtMouseCursor` now
require a parameter to specify the destination clipboard.

Removed the `default_clipboard_XXX` options added in
8dad34fa61 in favor of just explicitly
assigning the key/mouse bindings.

closes: #417
2021-01-31 09:28:42 -08:00
Wez Furlong
9a610358d1 docs: upgrade to mdbook 0.4, enable link checking
Standardize on `thing.md` rather than `thing.markdown` to make it
easier to cross link.
2021-01-30 14:14:29 -08:00