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

2319 Commits

Author SHA1 Message Date
Wez Furlong
584ced1944 wezterm: search add regex as an pattern option 2020-05-29 09:24:30 -07:00
Wez Furlong
8b92fbdde3 wezterm: search ctrl-r cycles pattern matching mode
When the search overlay is active, pressing ctrl-r cycles through
the different pattern matching modes; currently case sensitive and
case insensitive, but shortly to add regex.

The search ui now also indicates the current mode.
2020-05-29 09:14:05 -07:00
Wez Furlong
7f83d2172c wezterm: add case insensitive search option 2020-05-29 09:06:04 -07:00
Wez Furlong
6b939c9048 wezterm: search: allow specifying pattern in key assignment
The default opens up search with an empty pattern in case sensitive
string matching mode.

The revised structure will allow doing things like eg: defining a key
assignment that searches for git hashes by regex.
2020-05-29 08:41:06 -07:00
Wez Furlong
44c3ee0e83 wezterm: search: fix cursor position to use grapheme width 2020-05-29 08:27:05 -07:00
Wez Furlong
633a4baad1 wezterm: fixup search result coords to be cell based indices 2020-05-29 08:24:04 -07:00
Wez Furlong
ed7b33d134 wezterm: fix pasting when an overlay is active
We would always send to the underlying terminal, which was wrong!
2020-05-29 08:18:36 -07:00
Wez Furlong
9f02e88de1 wezterm: simplify search API 2020-05-29 07:49:09 -07:00
Wez Furlong
92fdf043b8 termwiz: fix panic in RgbColor::from_rgb_str w/ empty string
Need to check the len before looking at the first character!

closes https://github.com/wez/wezterm/issues/198
2020-05-29 07:15:45 -07:00
Wez Furlong
9e89a557d4 wezterm: add disable_default_(key|mouse)_bindings config
If set to true, then none of the default key or mouse bindings,
respectively, will be registered in the GUI, leaving it up to
the user to provide all key assignments.
2020-05-28 22:22:02 -07:00
Wez Furlong
acd016cdd4 wezterm: send_composed_key_when_alt_is_pressed now defaults true
This should make our behavior more consistent with other terminal
emulators on macOS.

closes https://github.com/wez/wezterm/issues/158
2020-05-28 19:54:13 -07:00
Wez Furlong
9ff9bf15fd window: allow for stronger separation between raw and composed keys
The goal at the window layer is to preserve enough useful information
for other layers.  In this specific circumstance on macos we'd like
to be able know both that eg: ALT-1 was pressed and that ALT-1 composes
to a different unmodified sequence and then allow the user's key
binding assignment to potentially match on both.

We sort of allowed for this, but didn't separate out the modifier keys.
This commit adds a `raw_modifiers` concept to the underlying event
struct so that we can carry both the raw key and modifier information
as well as the composed key and modifier information.

In the scenario above, we want the raw key/modifier tuple to be ALT-1
but the composed key/modifier to be eg: unmodified `¡` in my english
keymap.

refs: https://github.com/wez/wezterm/issues/158
2020-05-28 19:35:50 -07:00
Wez Furlong
71d98d84ca wezterm: windows installer: add Open WezTerm here context menu to explorer
When installed by the installer, we add registry entries to configure
directory context entries in explorer.exe that enable "Open WezTerm
here" to function.

This works by running your default program with the current working
directory set to the one specified.

I plan to only enable this when installed by the installer so that
these can be deleted/updated by the installer later on.

If you want wezterm to run a different program by default, then
you can change the default_prog config in the wezterm configuration;
I don't plan on adding lot of context menu entries for this.

Note that attempting to open in the `C:\` root doesn't always seem
to work for me.  I haven't had a chance to understand what's going
on there.

refs: https://github.com/wez/wezterm/issues/155
2020-05-28 09:13:52 -07:00
Wez Furlong
264ba0d8b6 wezterm: add --cwd option to the start subcommand
This allows for: `wezterm start --cwd c:/` to spawn the default
program explicitly in the `c:/` location, rather than the default
behavior for determining the cwd.

refs: https://github.com/wez/wezterm/issues/155
2020-05-28 08:08:31 -07:00
Wez Furlong
2f6d72899f wezterm: search: ctrl-n, ctrl-p to move through search results
refs: https://github.com/wez/wezterm/issues/91
2020-05-28 06:55:27 -07:00
Wez Furlong
5c0f568f84 wezterm: search: handle resizing better 2020-05-27 20:44:15 -07:00
Wez Furlong
c1c6ef6ddb Add scrollback search function
For the moment this is basic case sensitive substring matching,
but it is extensible to case insentive and regex matching.

refs: https://github.com/wez/wezterm/issues/91
refs: https://github.com/wez/wezterm/issues/106
2020-05-27 18:19:22 -07:00
Wez Furlong
81ededa9ac define basic search interface 2020-05-26 06:25:08 -07:00
Wez Furlong
b88dcf85d2 cargo update 2020-05-25 22:25:39 -07:00
Wez Furlong
b8acbac113 wezterm: add ClearScrollback key assignment
Bound to CMD-K and CTRL+SHIFT-K by default.  This also functions
while the output is filling up (eg: `find /` and hit the key binding
to keep pruning the scrollback).

closes: https://github.com/wez/wezterm/issues/194
2020-05-25 17:29:22 -07:00
Wez Furlong
33e387be7d term: implement EraseInDisplay::EraseScrollback
refs: https://github.com/wez/wezterm/issues/194
2020-05-25 17:13:08 -07:00
Wez Furlong
4d5848422d really fixup the windows build 2020-05-25 16:48:49 -07:00
Wez Furlong
b8238ac123 windows: maybe fix CI build
the environment we're using for the dir seems wonky in the CI
build, so try an alternative.
2020-05-25 15:39:04 -07:00
Wez Furlong
1e373c39c9 docs: add stable ubuntu 20 deb to download list 2020-05-25 12:58:38 -07:00
Wez Furlong
3d1b52267e wezterm: teach updater about setup.exe 2020-05-25 12:55:59 -07:00
Wez Furlong
f57338edc7 docs: update for setup.exe installer 2020-05-25 12:52:06 -07:00
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