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

2281 Commits

Author SHA1 Message Date
Wez Furlong
d19db3c87b middle click on a tab to close it
Closes: https://github.com/wez/wezterm/issues/123
2020-01-26 10:21:47 -08:00
Wez Furlong
50caecfd9d fixup term tests for set_title cleanup 2020-01-26 10:02:07 -08:00
Wez Furlong
f3e42c3d2a point to local filedescriptor crate 2020-01-26 09:15:24 -08:00
Wez Furlong
872d350ac5 Import filedescriptor crate from the wzsh repo
I'm moving that crate into this repo
2020-01-26 09:11:57 -08:00
Wez Furlong
f41d82a254 remove some dead TerminalHost code 2020-01-26 08:55:56 -08:00
Wez Furlong
ee70ec3ae0 Add support for OSC 104 (ResetColors) 2020-01-26 08:26:01 -08:00
Wez Furlong
3bc30d2d47 accept rgb:XX/XX/XX color syntax for OSC 4
The `vis` editor uses that syntax to apply its color schemes.

refs: https://github.com/wez/wezterm/issues/134
2020-01-26 07:37:08 -08:00
Wez Furlong
e67022344f remove a debug print 2020-01-25 23:20:01 -08:00
Wez Furlong
f125bd863a remove dead click_link method from terminal host
This is now handled by the gui layer
2020-01-25 23:17:45 -08:00
Wez Furlong
cdbb131833 mux: respect color scheme option for remote tabs 2020-01-25 23:05:02 -08:00
Wez Furlong
d52881a04e overlay: tab navigator fix down arrow
We'd allow going off the bottom of the list; fix the math to limit it
2020-01-25 22:42:13 -08:00
Wez Furlong
1c7e0d4e20 remove some debug prints 2020-01-25 22:32:01 -08:00
Wez Furlong
6ddf9ec3dd default dec auto wrap mode to on 2020-01-25 22:28:45 -08:00
Wez Furlong
1bb39835c0 vttest: respect dec auto wrap mode
refs: https://github.com/wez/wezterm/issues/133
2020-01-25 20:49:39 -08:00
Wez Furlong
2de60e3791 vttest: handle dec origin mode
This makes us pass the cursor positioning tests
(with the exception of the 132 column mode)

refs: https://github.com/wez/wezterm/issues/133
2020-01-25 20:35:33 -08:00
Wez Furlong
9d63d30fc0 vttest: make the E's show up on the cursor positioning test
Refs: https://github.com/wez/wezterm/issues/133
2020-01-25 20:20:31 -08:00
Wez Furlong
50d07acf99 Flesh out the tab navigator overlay
We now display a list of tabs and allow selecting them with either
the up/down arrows or the k/j keys.  Enter activates the selected
tab, Escape cancels the overlay.
2020-01-25 19:16:23 -08:00
Wez Furlong
42379d4edf remove unused local variables 2020-01-25 17:18:45 -08:00
Wez Furlong
ff82b63fb8 alt-9 pops up an overlay on the current tab
This is placeholder for the moment, but proves the concept
2020-01-25 17:18:45 -08:00
Wez Furlong
3940684b4e respect color scheme for termwiz derived tabs 2020-01-25 17:18:45 -08:00
Wez Furlong
0822c67e32 overlay: initial prep
An overlay is a little termwiz app that can be overlaid over the
content of a gui tab.

The intent is for these to provide the mechanism for meta operations;
listing all tabs in a long-form list and switching between them,
dropping into configuration or error log review and so on.
2020-01-25 17:18:45 -08:00
Wez Furlong
78ab99e0d0 avoid allocating an empty window id
This prevents logging a message about a window being removed
from being printed at startup when connecting to a remote mux.
2020-01-25 17:18:45 -08:00
Wez Furlong
a773d74bf8 cargo update (pick up newer ssh crate) 2020-01-25 16:00:51 -08:00
Wez Furlong
eff682e0bb add connecting status UI for mux connection attempts
We now show a little status window when we're making a connection
for a remote mux domain.

This should make things feel slightly nicer if there is a connectivity
problem.

refs: https://github.com/wez/wezterm/issues/127
2020-01-25 15:58:12 -08:00
Wez Furlong
1fe9e16f25 refactor ssh connection ui into its own module
I want to re-use this for the mux client
2020-01-25 15:10:34 -08:00
Wez Furlong
fd8f28960f ssh: use a single window for authenticating a session
This makes it so that we preserve context while showing the connection
status and authentication prompts.
2020-01-25 13:00:16 -08:00
Wez Furlong
1ef95b917a do a better job at tearing down termwiztermtabs
This avoids lingering on shutdown after showing one of these windows.
2020-01-25 12:59:28 -08:00
Wez Furlong
a1b9d04709 Update structopt to 0.3 2020-01-24 21:49:42 -08:00
Wez Furlong
4f08d010b7 move unix listener to its own module 2020-01-24 19:31:04 -08:00
Wez Furlong
df58a12827 deps: update to ssh2 0.7.0 2020-01-24 17:49:37 -08:00
Wez Furlong
ee1c335703 ssh: canonicalize line endings for prompt text
We most likely get instructions with unix line endings, but the
termwiz surface wants canonical CRLF, so fix that up.
2020-01-24 16:41:23 -08:00
Wez Furlong
b58a4e251c CI: remove --target from windows build
I'd like to try to converge on fewer differences in the workflow files,
so let's see if this works.
2020-01-24 16:28:24 -08:00
Wez Furlong
a2ad333f43 CI: target older macos versions
I'm just randomly picking 10.9 to see if it even builds... if that
doesn't work out I'll probably just pick 10.14

refs: https://github.com/wez/wezterm/issues/128
2020-01-24 16:24:45 -08:00
Wez Furlong
8eb5a0e72c ssh: fix for sites that use 2fac 2020-01-24 16:08:20 -08:00
Wez Furlong
b59893fd9f ssh: allow a number of auth retries
Rather than just a single attempt at each mechanism, let's allow up
to 3 loops, each time trying all supported mechanisms.  This helps
for the case where the user makes a typo with their password, and
should also help for more complicated auth setups where succeeding
with one mechanism may not be sufficient.

While testing this out I noticed that were deferring closing the
OS level window until after the entire auth attempt, so I added
some logic to proactively close the prompt windows.  In the longer
term I'd like all related prompts to render in the same window
for improved cognotive continuity.
2020-01-24 08:39:34 -08:00
Wez Furlong
970e4a8e64 ssh: try password auth before keyboard interactive
This may help for sites that use 2fac; after entering the password
correctly, the 2fac prompt may appear.
2020-01-24 00:04:37 -08:00
Wez Furlong
e45bace9eb shift-space now emits space
This isn't a 100% righteous fix, but is sufficient to reduce
the irritation in refs: https://github.com/wez/wezterm/issues/126

The full fix is pending another round of review of the CSI-u stuff
in refs: https://github.com/wez/wezterm/issues/63
2020-01-23 23:29:42 -08:00
Wez Furlong
ffa00bef29 pty: the compiler needed these types for macos
I don't know why this only was a problem on macos, but this fixes
the release build for me on my macos.
2020-01-23 10:50:34 -08:00
Wez Furlong
ae2bcb0207 adjust appimage filename for nightly builds
They shouldn't have the hash in the nightly build
2020-01-20 23:34:50 -08:00
Wez Furlong
cb89ec73e3
First pass at building an AppImage (#125)
refs: https://github.com/wez/wezterm/issues/124
2020-01-20 23:11:38 -08:00
Wez Furlong
d84e8531a3 pty: implement awaitable conpty for windows
A bit of a PITA, but it appears to be functional
2020-01-20 15:23:56 -08:00
Wez Furlong
ca836ff95b pty: unix: add awaitable interface 2020-01-20 15:23:55 -08:00
Jun Wu
70e9c7cb16 Make Shift+LeftClick extend existing selection
This matches cmd.exe and other programs (notepad, office, etc) behavior:
First click selects "start", then Shift+click selects "end". They form
a range.

This is particularly useful to select a large range of text, since the
user can release the left button, then operate on the scroll bar without
worrying about messing up text selection.

It gets a bit more complicated with the POSIX "mouse grabbed" situation.
When the mouse is grabbed, it's usually a full-screen ncurses-like
application. Selection mostly likely only makes sense within a single
screen. So Shift + LeftClick just works as starting a selection in this
case (otherwise it'll be hard to clear a selection).
2020-01-20 15:18:36 -08:00
Jun Wu
511fc55b10 Respect wheel scrolling speed settings on Windows
The default values are 3 lines. With this change, scrolling speed now seems
similar to other programs like cmd.exe. Before this change it feels too slow.
2020-01-20 15:18:33 -08:00
Jun Wu
ff6ff649af Make mouse wheel scroll smooth on Windows
I noticed my trackpoint or touchpad reports a lot of < 120 (WHEEL_DELTA) events.
They shouldn't be ignored.

Also https://docs.microsoft.com/en-us/windows/win32/inputdev/wm-mousewheel says:

> The wheel rotation will be a multiple of WHEEL_DELTA, which is set at 120.
> This is the threshold for action to be taken, and one such action (for
> example, scrolling one increment) should occur for each delta.
>
> The delta was set to 120 to allow Microsoft or other vendors to build
> finer-resolution wheels (a freely-rotating wheel with no notches) to send
> more messages per rotation, but with a smaller value in each message. To use
> this feature, you can either add the incoming delta values until WHEEL_DELTA
> is reached (so for a delta-rotation you get the same response), or scroll
> partial lines in response to the more frequent messages. You can also choose
> your scroll granularity and accumulate deltas until it is reached.
2020-01-20 15:17:44 -08:00
Jun Wu
6f3c52f5d3 Fix IME position on Windows
The IME position is related to on-screen Window, not the
off-screen buffer.

    Buffer
    +- 0
    |
    |                    Window
    |                    +- 0
    |                    | (Tab bar)
    +- 20 physical_top   +- 1
    |                    | (Terminal view)
    |                    |
    |                    |
    +- 30 cursor.y       +- 11 Correct IME position
2020-01-20 13:58:21 -08:00
Jun Wu
dba0fdd94f Drop an unused &mut 2020-01-20 13:58:21 -08:00
Jun Wu
b5c3734f3d Make rustfmt happy about "async move"
Without this I cannot rustfmt a file I touched later.
See https://github.com/rust-lang/rustfmt/issues/3149
2020-01-20 13:58:21 -08:00
Wez Furlong
118b91bdf6 pty: fix windows build 2020-01-20 08:20:38 -08:00
Wez Furlong
82c824f371 pty: remove conpty support
It's too fiddly to setup in practice, and literally no one has
expressed an interest in using it.

Removing it simplifies some upcoming work.

Closes: https://github.com/wez/wezterm/issues/35
2020-01-20 07:55:51 -08:00