1
1
mirror of https://github.com/wez/wezterm.git synced 2024-11-30 06:03:39 +03:00
Commit Graph

2293 Commits

Author SHA1 Message Date
Wez Furlong
3468896ec1 wezterm: generate version info resource at build time
Bake in the git version info
2020-05-25 12:36:29 -07:00
Wez Furlong
07386e446b Windows: Add Inno Setup based installer
closes: https://github.com/wez/wezterm/pull/193
2020-05-25 11:48:58 -07:00
Wez Furlong
b8738c769d docs: ratelimit_output_bytes_per_second default value was incorrect 2020-05-24 07:29:14 -07:00
Wez Furlong
e65c138231 wezterm: fix copy and paste from tab overlays
The root cause of this was that the dirtyness test always considered
the display to be changed and was clearing the selection to ensure
visual consistency.

This was actually a stealthy bug where we'd use more CPU and memory
than we strictly needed.

closes: https://github.com/wez/wezterm/issues/189
2020-05-23 11:18:32 -07:00
Wez Furlong
e06286252a docs: fix install -> config links
refs: https://github.com/wez/wezterm/issues/191
2020-05-23 08:12:50 -07:00
Wez Furlong
ed1450326d window: Windows: dos->unix line endings when fetching clipboard 2020-05-22 18:22:33 -07:00
Wez Furlong
6d007712bd wezterm: enable mouse binding assignments
This commit caps hooks up the mouse event plumbing to the config
system and enables mouse button event bindings.

closes: https://github.com/wez/wezterm/issues/119
2020-05-22 08:05:59 -07:00
Wez Furlong
4f92c82734 docs: update key binding assignment docs 2020-05-21 23:09:57 -07:00
Wez Furlong
b67682ddc9 wezterm: move most click related mouse events to InputMap
The click/movement related events are now "table driven" with
defaults contained in the InputMap object.

This gives the the potential to be configured from the config
file, but there is not glue in the config layer to enable
this yet.

This also does not include mouse wheel events.
2020-05-21 18:51:20 -07:00
Wez Furlong
b18e66968d wezterm: refactor mouse event processing
introduce a helper enum that represents a mouse event in a more
ergnomic form and break the processing into two stages.

This will enable moving the mouse actions into assignable
actions in a later commit.
2020-05-21 08:46:56 -07:00
Wez Furlong
db13b4dfe9 wezterm: add KeyAssignment::OpenLinkAtMouseCursor 2020-05-21 08:46:56 -07:00
Wez Furlong
24474fdf98 wezterm: add KeyAssignment::{SelectTextAtMouseCursor, ExtendSelectionToMouseCursor}
Add plumbing to trigger these actions; the default assignments for
the mouse are still currently hard coded.

refs: https://github.com/wez/wezterm/issues/119
2020-05-21 08:46:56 -07:00
Wez Furlong
57d270cae0 wezterm: add PastePrimarySelection key assignment
refs: https://github.com/wez/wezterm/issues/183
2020-05-21 08:46:56 -07:00
Wez Furlong
f6743086ac wezterm: remove KeyAction toml translation helper
Now that the toml file support is removed, we can directly
express the key actions as enum variants so remove this
intermediate type and use the enum directly.
2020-05-21 08:46:40 -07:00
Wez Furlong
448fa084a9 wezterm: remove old TOML config file loading 2020-05-21 08:46:40 -07:00
Wez Furlong
a9d1429888 window: allow specifying the clipboard context when getting clipboard
refs: https://github.com/wez/wezterm/issues/183
2020-05-21 08:46:16 -07:00
Wez Furlong
fa86850a85 Add note about AltGr to changelog
refs: https://github.com/wez/wezterm/issues/185
2020-05-20 22:14:49 -07:00
Wez Furlong
7ddff705a4 window: Windows: improve AltGr handling
Adds some detection to see if the active keyboard layout has
AltGr, and if so, adjust our key mapping logic to accomodate it.

With this change, when using an ENG layout, I can use either left
or right alt-b/alt-f to move through words in wsl.  When I switch
to DEU my left alt is still alt and my right alt causes the
Windows On-Screen keyboard to act as though AltGr is pressed.

I can then use the On-Screen keyboard to press the `<` key which
is to the left of the `Z` key on a German layout and have it produce
the `|` character.

refs: https://github.com/wez/wezterm/issues/185
2020-05-20 20:35:04 -07:00
Wez Furlong
58686f925f termwiz: fix a widget layout and optimization issue
This commit adds a simple example of nested widgets, which uncovered
an issue with respecting the layout positioning, and adds a secondary
screen buffer to make the widget render cycle more optimal:

```
cargo run --example widgets_nested --features widgets --release
```

refs: https://github.com/wez/wezterm/issues/171
2020-05-18 07:40:09 -07:00
Wez Furlong
845d990304 add strip-ansi-escape utility to wezterm package
I've been meaning to do this for a while: the intended purpose
is to use this to filter ansi escape sequences out of the prompt
in the shell pre-command hook.
2020-05-17 21:51:07 -07:00
Wez Furlong
77fafd512b termwiz: add example program that strips escape sequences 2020-05-17 21:30:12 -07:00
Wez Furlong
eaafce59ce wezterm: link to correct section of changelog in the update ui 2020-05-17 14:18:28 -07:00
Wez Furlong
81683bd898 docs: fixup latest tag in the docs 2020-05-17 12:34:07 -07:00
Wez Furlong
92c201c657 wezterm: release 20200517-122836
* AppImage: Support looking for configuration in `WezTerm.AppImage.config` and
  `WezTerm.AppImage.home` to support portable thumbdrive use of wezterm on
  linux systems
* We now check the github releases section for updated stable releases and show
  a simple UI to let you know about the update, with links to download/install
  it.  We don't automatically download the release: just make a small REST API
  call to github.  There is no data collection performed by the wezterm project
  as part of this.  We check once every 24 hours.  You can set
  `check_for_updates = false` in your config to disable this completely if
  desired, or set `check_for_updates_interval_seconds` to an alternative update
  interval.
* Added support for OSC 110-119 to reset dynamic colors, improving our support for Neovim.
* Change OSC rendering to use the long-form `ST` sequence `ESC \` rather than
  the more convenient alternative `BEL` representation, which was not
  recognized by Neovim when querying for color information.
* Fixed Shift-Tab key on X11 and Wayland
* WezTerm is now also available to Windows users via [Scoop](https://scoop.sh/)
2020-05-17 12:31:03 -07:00
Wez Furlong
1d154a3109 pty: bump for 0.3.0 release
Since the last release we've migrated from failure -> anyhow,
added more functions to the command builder, improved windows
support and have compatibility with the `smol` crate.

refs: https://github.com/wez/wezterm/issues/166
2020-05-17 12:14:55 -07:00
Wez Furlong
1ad6f00696 termwiz: cut 0.9.0 release 2020-05-17 12:05:46 -07:00
Wez Furlong
c45ab2ddd9 Add note about shift-tab fix 2020-05-17 11:57:33 -07:00
Wez Furlong
3349ef0dca termwiz: fix categorization of F keys
refs: https://github.com/wez/wezterm/issues/178
2020-05-16 17:25:23 -07:00
Wez Furlong
4eee0f01fa changelog: remove the section about X11 selection
it was reverted, so no longer applies!
2020-05-16 15:56:19 -07:00
Wez Furlong
a92b33c727 Revert "window: default to reading the PRIMARY selection under X11"
This reverts commit 5ebdcc3642.

It turns out not to be desirable, so lets back it out and think up
a different way to satisfy this.
2020-05-16 15:55:20 -07:00
Wez Furlong
91339d6d17 docs: add note about available in Scoop 2020-05-16 12:56:38 -07:00
Wez Furlong
72d04597d4 update changelog 2020-05-16 12:45:20 -07:00
Wez Furlong
5ebdcc3642 window: default to reading the PRIMARY selection under X11
We switched to using clipboard because of problems under XWayland.
These days we have much better native Wayland support and folks
should use that.

Test plan:

In one window:

```
echo "clipboard" | xclip -i -selection clipboard; echo "primary" | xclip -i -selection primary;
```

then start `wezterm` and press shfit-insert.

Prior to this change we'd always print `clipboard`.
After this change we'll print `primary`.

However, if you run:

```
WEZTERM_X11_PREFER_CLIPBOARD_OVER_PRIMARY=1 wezterm
```

then we'll use the old `clipboard` behavior.
2020-05-16 11:53:42 -07:00
Wez Furlong
f2b12c64ba termwiz: use long form ST when rendering OSC
Neovim doesn't like using BEL as an alternative for ST when
parsing the OSC dynamic color responses.

Use the longer form sequence to make it happier!
2020-05-16 11:01:26 -07:00
Wez Furlong
4522ebfb40 fontconfig: reduce trace logging verbosity 2020-05-16 10:30:01 -07:00
Wez Furlong
b00f383f2b Suppress logging about CSI 8 Y ; X t
neovim will try to force the window to resize after suspend/resume.
No other terminal allows this today, so rather than log it as an
unhandled event, explicitly ignore it.
2020-05-16 09:56:43 -07:00
Wez Furlong
a3921a73fa Explicitly ignore focus tracking (dec private mode 1004)
We still don't support it, but we no longer log that we don't
know what the mode is.
2020-05-16 09:31:02 -07:00
Wez Furlong
a1c0cabf18 term: process OSC 110+: ResetDynamicColors
neovim uses these
2020-05-16 09:25:17 -07:00
Wez Furlong
538ce5e110 window: fix shift-tab processing on X11
This was being silently swallowed.  For some reason shift-tab generates
ISO Left Tab rather than regular Tab and we weren't mapping that.
2020-05-16 08:35:25 -07:00
Wez Furlong
2ef985aa18 pty: async example using smol
refs: https://github.com/wez/wezterm/issues/166
2020-05-09 11:24:14 -07:00
Wez Furlong
e2d044bb14 pty: add MasterPty::try_clone_writer 2020-05-09 11:24:14 -07:00
Wez Furlong
c54c64f395 pty: remove experimental awaitable bits 2020-05-09 11:24:14 -07:00
Wez Furlong
65cc7bb286 filedescriptor: probe for pipes between wsl and win32
This is a port of something I found when developing some changes
in watchman.  When doing something like:

`some win32 command | wsl something`

That pipe doesn't look like a normal win32 pipe and we'd end up
treating it like a socket, but it isn't really a socket either.
2020-05-09 10:56:53 -07:00
Wez Furlong
d39c16c406 wezterm: check for new releases
This commit adds some plumbing that will use the github API to
probe the currently released version of wezterm, and if it is
newer than the running version, show a window with some release
information and links to the changelog and download page.

The checks can be disabled in the config (but require a restart
to take effect!) and default to checking every 24 hours.

If running an AppImage on linux, links directly to the appimage
download.  In the future I'd like to have the download button
use zsync to apply the update to the local image.
2020-05-08 22:18:31 -07:00
Wez Furlong
407e4f855c fix build on windows 2020-05-06 20:53:51 -07:00
Wez Furlong
c53ab60940 wezterm: support portable AppImage invocation
https://github.com/AppImage/AppImageKit/issues/368 introduced a way
to maintain configuration alongside an AppImage file stored on a
flash drive:

```
wez@cube-localdomain  /tmp/portable-wezterm
9:06 130 $ ls -al
total 8720
drwxrwxr-x.  4 wez  wez      100 May  6 08:54 ./
drwxrwxrwt. 19 root root     580 May  6 09:05 ../
-rwxr-xr-x.  1 wez  wez  8929256 May  6 08:59 WezTerm-20200505-090057-31c6155f-Fedora31.AppImage*
drwxrwxr-x.  3 wez  wez       60 May  6 08:15 WezTerm-20200505-090057-31c6155f-Fedora31.AppImage.config/
drwxrwxr-x.  2 wez  wez       40 May  6 08:54 WezTerm-20200505-090057-31c6155f-Fedora31.AppImage.home/
```

When launched and these `<IMAGE>.config` and/or `<IMAGE>.home` dirs
exist, the appimage machinery will redirect the HOME and XDG_CONFIG_DIR
env vars to point to those locations instead of the normal place.

We weren't respecting XDG_CONFIG_DIR (fixed in this commit), but we also
need to take care: we don't want to re-export those locations to
children of wezterm so we need to load those values and then clean
up the environment.
2020-05-06 09:11:13 -07:00
Wez Furlong
31c6155f2b wezterm: avoid weird argv0 misrepresentation with AppImage 2020-05-05 08:57:31 -07:00
Wez Furlong
e6d9183e5b meant to update the workflows too! 2020-05-05 00:03:07 -07:00
Wez Furlong
3d7fc38bb6 Embed update info into appimage 2020-05-04 23:38:50 -07:00
Wez Furlong
90de55f807 include appstream data in AppImage 2020-05-04 22:55:33 -07:00