1
1
mirror of https://github.com/wez/wezterm.git synced 2024-12-28 07:55:03 +03:00
Commit Graph

3828 Commits

Author SHA1 Message Date
Wez Furlong
2c7e5196ac fonts: improve debugging for windows font loading
We didn't have as much info here as I thought; improve it!

refs: https://github.com/wez/wezterm/issues/624
2021-04-03 17:42:44 -07:00
Wez Furlong
c22765c1a7 docs: changelog updates 2021-04-03 15:14:44 -07:00
Wez Furlong
5cc29d1d8c wezterm-mux-server: keep running after all panes are gone
This has been a commonly requested feature in the past week,
and it's a reasonable one.  The mux server inherited the
close-when-done behavior from when it used to be an alternate
front-end in the same executable as the gui, but it doesn't
need to be that way any more.

We also need to accomodate that case in the client: if the
newly attached domain doesn't result in any panes being imported,
we need to spawn a new command there in order to keep the client
alive.  The pre-existing check for whether the mux was empty had
false positives because the local mux may still reference the
pane from the connection UI, which would finish closing out shortly
after we had decided not to spawn anything, and then the client
would close.

refs: https://github.com/wez/wezterm/issues/631
refs: https://github.com/wez/wezterm/issues/507
2021-04-03 15:00:08 -07:00
Wez Furlong
fe6a3a2cf0 mux client: revise log level
These aren't errors per-se, so make them warnings.
2021-04-03 14:59:40 -07:00
Wez Furlong
1658627e2c macos: the event loop would keep running until mouse moved after quit
On macos, once all panes were closed, the GUI would request that the app
stop, but it wouldn't actually exit until a UI event occurred.

This was mostly noticeable when running debug builds from another
terminal.

Calling NSApp::abortModal is sufficient to knock us out of that state.
2021-04-03 14:57:20 -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
b441be3ac9 gui: vertically center cell within adjusted line height
When line_height is specified, rather than applying the offset
to just the top of the cell, apply it in equal parts to the top
and the bottom so that the cell is vertically centered.

closes: https://github.com/wez/wezterm/issues/582
2021-04-03 10:41:28 -07:00
Wez Furlong
4112b74f8a spawn local domain when starting gui in mux mode
This allows explicitly spawning commands locally, rather than
in the target mux.

this is similar to 12225a099a

refs: https://github.com/wez/wezterm/issues/468
2021-04-03 09:18:24 -07:00
Wez Furlong
fe48951e7a macos: fixup SUPER+SHIFT+[ key decoding
One of the default key assignments was registered as `SUPER+SHIFT+{`
which worked on macOS, but on Linux, would never match because the
keypress over there was (correctly) reporting as `SUPER+{`.

I originally thought that the user reported issue was a linux
normalization problem, but in looking deeper, the issue is really
that macos is doing something funky!

On macos we collect the interpreted key event as a string, and also
the interpretation of that event without any modifiers applied.

For letters this means that eg: `ALT-l` reports as `¬` for the
processed string and `l` for the unmodified string.  That's good!

However, for punctuation we get a backwards result: SUPER+SHIFT+[
produces `[` for the processed text and `{` for the unmodified
text!

This commit tries to detect this, using a heuristic that is
potentially bad on non-US layouts: if both the processed and
unmodified strings are punctuation then we bias to the unmodified
version.

With that change, that key press is correctly reported as `SUPER+{`,
and we can fix the key assignment registration to reflect that.

I quickly checked the behavior of pressing that same physical key
combination with a DEU layout active, and it appears that the unmodified
stuff is also flipped there; we get a lower-case version of something
that I think should be uppercase.  This commit doesn't change that
behavior:

```
key_event KeyEvent { key: Char('ü'), modifiers: NONE,
        raw_key: Some(Char('Ü')),
        raw_modifiers: SHIFT | SUPER,
        raw_code: Some(33),
        repeat_count: 1, key_is_down: true }
```

refs: https://github.com/wez/wezterm/issues/601
2021-04-03 06:32:13 -07:00
Wez Furlong
d7b78b4163 x11: handle setting cursor to None (= hide)
refs: https://github.com/wez/wezterm/issues/618
2021-04-03 05:43:01 -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
5509c0af69 fix Pane::get_lines_with_hyperlinks_applied
This function could return 1 more line than was requested in the case
where resizing had caused long lines to rewrap.

That extra line would cause the partial bottom row of the quads to
populated with bogus data and rendered over the top of the background
fill.

The resolution is to stop populating lines once we've reached the
upper bound based on the input range.

refs: https://github.com/wez/wezterm/issues/605
2021-04-02 19:56:11 -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
4e25a399b2 fonts: improve trace diagnostics
refs: #607
2021-04-02 09:09:09 -07:00
Wez Furlong
62f7589066 docs: fix typo in ssh docs 2021-04-02 08:57:39 -07:00
Wez Furlong
3dfdd08b79 parse and respond to XTSMGRAPHICS queries
refs: https://github.com/wez/wezterm/issues/609
2021-04-01 22:42:28 -07:00
Wez Furlong
c4cac94aab docs: changelog for https://github.com/wez/wezterm/pull/599 2021-04-01 08:44:04 -07:00
Gus Wynn
b057e1f671 switch to just button 2 2021-04-01 08:38:50 -07:00
Gus Wynn
76041265d6 other_mouse_down as well 2021-04-01 08:38:50 -07:00
Gus Wynn
e84811085e filter mouse buttons 2021-04-01 08:38:50 -07:00
Gus Wynn
0bae61d580 Capture middle mouse events on macos 2021-04-01 08:38:50 -07:00
Nicolas
217dbfb99d Fix Mulitplexing typo in sidebar 2021-03-31 18:09:16 -07:00
Wez Furlong
d45bbed3fd ssh: fix handling wezterm ssh user@host:22 2021-03-29 21:21:31 -07:00
Wez Furlong
3ee86a2e8b wezterm-ssh: don't assume sh is in /bin
This improves compat with nixos
2021-03-29 21:11:54 -07:00
Wez Furlong
0e581b151f docs: changelog and ssh doc updates 2021-03-29 07:46:14 -07:00
Wez Furlong
1af47804d2 ci: fixup cirrus exclusion 2021-03-28 20:39:49 -07:00
Wez Furlong
5e9bbdeab3 ci: tweak freebsd ci for getdeps rust version check 2021-03-28 20:37:09 -07:00
Wez Furlong
e7e90c7390 ci: pass PATH into get-deps
I think this will help find rustc for platforms that use sudo
2021-03-28 20:33:32 -07:00
Wez Furlong
8a402411f0 get-deps: check min rust version 2021-03-28 20:26:07 -07:00
Wez Furlong
c6cd1a6a33 add placeholder for agent forwarding
It's not fully implemented by libssh2.
refs: https://github.com/libssh2/libssh2/issues/535
2021-03-28 18:27:03 -07:00
Wez Furlong
a3d4b4c722 tidy up unused config field 2021-03-28 18:26:51 -07:00
Wez Furlong
5cfce34b12 add wezterm cli spawn command
This spawns a new tab into the current window by default.
2021-03-28 13:57:29 -07:00
Wez Furlong
98604ff52e Add support for ProxyCommand
`wezterm ssh "-oProxyCommand=nc localhost 22" localhost`

refs: #233
2021-03-28 08:58:26 -07:00
Wez Furlong
32fa186c99 wezterm-gui: add wezterm ssh -oIdentityFile=/some/thing
Allow overriding ssh config options from the command line.

I don't want to replicate the many options that `ssh(1)` has;
this just exposes the `-oNAME=VALUE` syntax.  The config names
are those from `man ssh_config`; `IdentityFile` rather than `-i`.

refs: #457
2021-03-28 08:24:35 -07:00
Wez Furlong
a3a07c8da5 mux: add kill_pane rpc call
This is especially important now that exit_behavior can keep
empty panes around in unexpected circumstances.
2021-03-28 08:07:51 -07:00
Wez Furlong
b48f7f6c6a wezterm-client: adjust log level for TLS creds 2021-03-28 07:34:49 -07:00
Wez Furlong
f6db68564b wezterm-ssh: don't accidentally blend stdout into stderr 2021-03-28 07:29:57 -07:00
Wez Furlong
369888c94e wezterm-client: cut over to new wezterm-ssh bits
refs: https://github.com/wez/wezterm/issues/507
2021-03-28 07:18:38 -07:00
Wez Furlong
e96011bc26 wezterm-client: sort dep list
no functional change
2021-03-28 07:11:31 -07:00
Wez Furlong
be5c255f1b remove dead code 2021-03-28 07:11:31 -07:00
Wez Furlong
9745a24c63 fix: cli proxy would terminate too soon
refs: https://github.com/wez/wezterm/issues/507
2021-03-28 07:10:30 -07:00