1
1
mirror of https://github.com/wez/wezterm.git synced 2024-11-23 23:21:08 +03:00
Commit Graph

815 Commits

Author SHA1 Message Date
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
6345caccb0 docs: fix table 2021-07-25 09:16:55 -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
b95317241c docs: fix missing pane parameter in format-window-title-event
closes: #974
2021-07-25 08:32:50 -07:00
Wez Furlong
17a9b60e63 docs: update information about blink, which is now rendered 2021-07-25 08:28:22 -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
Sandro
4a8c4d1c30
docs/term: add information to make it work with WSL (#936)
* docs/term: add information to make it work with WSL

* Adapt recent changes that automatically set WSLENV, add info on how to install terminfo with nixpkgs

* Apply suggestions from code review

Co-authored-by: Wez Furlong <wez@wezfurlong.org>
2021-07-21 08:05:14 -07:00
Wez Furlong
eaddd72a2d docs: changelog for #950 2021-07-18 19:15:08 -07:00
Cédric Schieli
77261ac374 Allow styling of the whole new tab button 2021-07-18 19:11:12 -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
a697b30223 window: add xsettings support on X11 systems
This allows reading xsettings which contain information about
both the active theme as well as the DPI.

refs: #947
2021-07-18 12:54:52 -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
Benoit de Chezelles
4f7b21d532 docs: Add note on issues with binding mouse Up event only 2021-07-04 09:53:57 -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
c61ac590f8 docs: fixup markdown on the mouse binding page 2021-06-30 07:52:01 -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
439fd5145d docs: fix typo 2021-05-30 17:38:24 -07:00
Wez Furlong
8953f816c4 docs: OSC 7 for powershell 2021-05-30 17:27:41 -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
de4ba46731 docs: note about ssh_config Include 2021-05-29 00:19:21 -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
039ddd14dc docs: note about WSL 2 not working with unix mux
refs: https://github.com/microsoft/WSL/issues/5961
2021-05-28 15:16:46 -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
Kerfuffle
258038cd16
docs: Correct Lua example for PasteFrom action. (#773) 2021-05-09 06:54:09 -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
Chris
2add312c5c
Allow VoidSymbol keycode to be seen by wezterm (#759)
* allow voidsymbol for key code

* update docs, cleanup

* cleanup and fmt of files

* remove unnecessary inputs
2021-05-07 07:54:24 -07:00
Wez Furlong
494fa999bb fix system ssh config path 2021-05-03 19:54:09 -07:00
Wez Furlong
0e9d86f9f9 lua: print -> log_info
Make print equivalent to log_info.
Improve the various log functions so that all of their arguments
are considered.

refs: https://github.com/wez/wezterm/issues/641
2021-05-03 09:19:52 -07:00
Frieder Bluemle
0b84df38db Fix docs typos 2021-05-02 19:44:29 -07:00
Wez Furlong
2be2c8832c docs: add fedora 34 stable download 2021-05-02 17:46:32 -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
e210cdf8ea docs: add fedora 34 2021-05-02 09:52:57 -07:00
Wez Furlong
c963f5a7ab docs: update color scheme screenshots
This picks up the new schemes, and also the larger default
font size.
2021-05-02 07:52:38 -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
3d70949d1b docs: fix typo 2021-05-02 07:29:43 -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
e9fcc98d4a quickselect: allow pasting when typing the uppercase prefix
revise the colors to be a bit less glaring.

Updated the screenshot

refs: https://github.com/wez/wezterm/issues/732
2021-04-27 07:06:55 -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
d176af9c30 tidy up format-tab-title, add tab_max_width parameter
refs: https://github.com/wez/wezterm/issues/647
2021-04-26 21:43:30 -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
32c2aa03d2 docs: third time's the charm! 2021-04-25 22:45:36 -07:00
Wez Furlong
5c96dab2e0 docs: fixup screenshot path 2021-04-25 22:38:52 -07:00
Wez Furlong
a554acc5d0 docs: add screenshot for quickselect 2021-04-25 22:36:41 -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
87677a73bf Add support for iTerm2's SetUserVar escape
This doesn't propagate across wezterm's mux protocol
at this time.

refs: https://github.com/wez/wezterm/issues/647

https://iterm2.com/documentation-scripting-fundamentals.html#setting-user-defined-variables
2021-04-25 14:30:06 -07:00
Wez Furlong
1cb2856223 add hover parameter to format-tab-title
refs: https://github.com/wez/wezterm/issues/647
2021-04-25 13:53:06 -07:00
Wez Furlong
a69447fc2a nominally support toast notif timeouts
I've built this on linux, which doesn't respect the timeout.
I've made speculative changes that should build on mac and windows,
but that don't plumb the timeout functionality on those systems
as of yet.

refs: #619
2021-04-25 08:52:43 -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
115fb1e6d4 docs: mention window width/height
refs: #256
2021-04-23 17:45:55 -07:00
Wez Furlong
2a79d2506d docs: fix typo
closes: https://github.com/wez/wezterm/issues/700
2021-04-17 11:57:48 -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
fcd7ceef5c docs: add missing docs for selection_fg and selection_bg
refs: https://github.com/wez/wezterm/issues/684
2021-04-12 09:55:35 -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
406d1044fa fonts: restore messaging about missing glyphs
Now that all platforms know whether the system fallbacks
covered the requested glyph range, it is reasonable to
restore the configuration error window to advise the user
if they are missing fonts for the text they want to display.

refs: https://github.com/wez/wezterm/issues/671
2021-04-10 21:35:58 -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
438b7540ba docs: typo 2021-04-09 22:05:16 -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
Glenn Waters
5c7e07bb60 Update docs/config/lua/window/get_dimensions.md
Co-authored-by: Wez Furlong <wez@wezfurlong.org>
2021-04-07 19:00:28 -07:00
Glenn Waters
84a9cd6da3 Create get_dimensions.md
Missing document.

Was not sure how to populate "Since" from the git has. Here is the commit: ba5d50ba9e
2021-04-07 19:00:28 -07:00
Wez Furlong
5cd414244d docs: link to the macports port page for wezterm 2021-04-07 10:36:03 -07:00
Herby Gillot
e1d07dee62 docs: add info on installing via MacPorts 2021-04-07 10:34:22 -07:00
Wez Furlong
a1aa6e3d6c docs: try to steer away from Allsorts shaper
It isn't finished, and I've seen a few people try to use it.
Make it clearer that they probably shouldn't use it.

refs: https://github.com/wez/wezterm/issues/66
refs: https://github.com/wez/wezterm/issues/587
2021-04-07 08:51:32 -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
97d4de80ba docs: update for wezterm being promoted to the Arch Community repo 2021-04-04 17:33: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
708b383791 docs: mention transparent in the window opacity docs
This should make it easier for folks to find this feature if they
are searching for transparent as a keyword.

refs https://github.com/wez/wezterm/issues/626
2021-04-03 05:14:02 -07:00
Wez Furlong
2dfba9aff7 docs: fix CLTR -> CTRL typo
closes: #625
2021-04-03 05:05:07 -07:00
Shawn Xu
bf4a64f7d5 move sudo into script to not use sudo for rust checking 2021-04-02 22:36:27 -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
Sandro
d179da3e87 docs/hyperlinks: revert s -> S
Co-authored-by: Wez Furlong <wez@wezfurlong.org>
2021-04-02 21:05:47 -07:00
Sandro
d6a08d0e6e docs/hyperlinks: fix invalid escape sequence 2021-04-02 21:05:47 -07:00
Wez Furlong
547b58f223 docs: clarify that all config dirs apply on all operating systems
refs: https://github.com/wez/wezterm/issues/622
2021-04-02 21:01:13 -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
Alex Gartrell
ee4b4b598c Add ActivateLastTab command
This replicates `last-window` in tmux. To pull this off, I
deliberately store the last tab whenever I'm activating a new one or
spawning a new one. I had to do this explicitly rather than hooking
set_active, because we end up setting the active tab briefly for some
common operations like moving a tab.
2021-04-02 09:14:59 -07:00
Wez Furlong
62f7589066 docs: fix typo in ssh docs 2021-04-02 08:57:39 -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
dbd7fc28a5 Raise minimum Rust version to 1.51, de-vendor openssl on unix
Rust 1.51 allows addressesing a long-standing TODO which was that we
shouldn't need to build a vendored copy of openssl on most sensible unix
systems.

We do require a vendored copy on macOS and Windows, but due to the way
that Cargo's feature resolver worked, it wasn't possible for this
requirement to be respected.

Rust 1.51 introduces `resolver="2"` which can deal with this feature
resolution!

https://doc.rust-lang.org/nightly/cargo/reference/features.html#feature-resolver-version-2

The upshot of this is that building wezterm on real unix systems that
are not macos will now link against the system libssl, resulting in both
a shorter compile time and less headaches arising from having a slightly
different openssl used by wezterm than the rest of the system.

cc: @jsgf
2021-03-25 09:43:50 -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
3cf7c9c3c2 refine skip_close_confirmation_for_processes_named to look at proc tree
That means that we won't be fooled by a shell with a backgrounded
editor.

refs: https://github.com/wez/wezterm/issues/562
2021-03-22 21:34:10 -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
4d4fa35557 skip_close_confirmation_for_processes_named now also works on macos
refs: https://github.com/wez/wezterm/issues/562
2021-03-22 12:57:36 -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
7ace4d1efb docs: clarify how to disable per-tab close prompts
https://github.com/wez/wezterm/issues/562
2021-03-22 11:51:56 -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
Daniel Lemm
5805928081 docs: fix typo 2021-03-20 09:27:21 -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
da2239f1be docs: fixup screenshot links
refs: #500
2021-03-10 19:32:23 -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
62e23858d0 docs: fix backslashes in hyperlink docs 2021-03-10 09:00:14 -08:00
Wez Furlong
fc3ebcedc1 docs: improve SEO for finding how to specify window size 2021-03-10 00:12:28 -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
229df874b7 docs: break out events into their own pages
Take the existing open-uri docs and move to their own page.
Add docs for the new window events.
2021-03-09 21:50:48 -08:00
Wez Furlong
354a12a0ff docs: mention the CLI config overrides and per-window overrides 2021-03-09 21:26:03 -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
64a0aab3be docs: mention F1-F24 as available keys
closes: https://github.com/wez/wezterm/issues/521
2021-03-09 07:47:27 -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
Benoit de Chezelles
abcc73fd22 Extract doc of treat_left_ctrlalt_as_altgr and leave a reference 2021-03-07 12:52:03 -08:00
Benoit de Chezelles
683d8e96e8 windows: Add option to treat left ctrl-alt as altgr
The previous behavior was to always treat ctrl-alt as altgr on Windows,
this has been done to better support altgr through a VNC session,
but this is very unintuitive when you don't need this behavior.

ref: #472
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
ec12eed180 docs: migrate misc.md to individual config pages 2021-03-07 00:10:28 -08:00
Wez Furlong
4b7f774bc5 Bundle PowerlineExtraSymbols as a fallback font 2021-03-06 19:12:35 -08:00
Wez Furlong
90eb69f68a docs: add wezterm.battery_info docs with an example
refs: https://github.com/wez/wezterm/issues/500
2021-03-06 16:42:31 -08:00
Wez Furlong
014acf1a4a add docs for window decoration stuff 2021-03-06 11:32:15 -08:00
Wez Furlong
a5bc89e6d3 docs: update build/run from source instructions 2021-03-04 21:56:49 -08:00
Wez Furlong
7e1d16e671 Add SUPER+Drag to drag the window 2021-03-03 23:45:02 -08:00
Wez Furlong
b614719ff3 docs: mention freebsd along with other platforms 2021-03-03 08:48:41 -08:00
Wez Furlong
62917c63b6 docs: add installation info for FreeBSD 2021-03-03 08:45:58 -08:00
Wez Furlong
144a39bf9f docs: add FAQ about powershell cursor key problems
refs: https://github.com/wez/wezterm/issues/510
refs: https://github.com/PowerShell/PowerShell/issues/12268
2021-03-03 08:26:30 -08:00
Wez Furlong
76c7ef56df term: RIS must clear the scrollback
closes: #511
2021-03-03 07:44:57 -08:00
Wez Furlong
ff8bda29e3 lua: add wezterm.strftime
refs: https://github.com/wez/wezterm/issues/500
2021-03-02 09:52:54 -08:00
Wez Furlong
565a4c69d5 lua: add wezterm.format function
The intent is to use this to compose text for a configurable tab bar.

refs: https://github.com/wez/wezterm/issues/500
2021-03-02 09:52:54 -08:00
Wez Furlong
62e14efcb3 lua: add log_info and log_warn 2021-03-02 09:52:54 -08:00
Wez Furlong
522d4ad814 make exit_behavior = "CloseOnCleanExit" the default
It seems generally useful and non-intrusive, so do that.
2021-02-28 12:01:07 -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
60be1a98a0 lua: add window::effective_config() method
Expose the current window configuration to lua scripts.

refs: https://github.com/wez/wezterm/issues/469
2021-02-27 12:39:22 -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