1
1
mirror of https://github.com/wez/wezterm.git synced 2024-12-26 23:04:49 +03:00
Commit Graph

5781 Commits

Author SHA1 Message Date
Wez Furlong
d4219444d8 docs: changelog for #2106 2022-06-21 14:54:02 -07:00
Funami580
6a9056d77c Fix mouse selection including the first character of the next line
ref: #2089

Co-authored-by: Wez Furlong <wez@wezfurlong.org>
2022-06-21 14:52:09 -07:00
Wez Furlong
42b83626f2 docs: update changelog for #2150 and #2086 2022-06-21 13:52:57 -07:00
Benoit de Chezelles
f79ce00b65 Implement line selection for copy mode 2022-06-21 13:43:11 -07:00
Benoit de Chezelles
6767144a09 Update wezterm-gui/src/overlay/copy.rs
Co-authored-by: Wez Furlong <wez@wezfurlong.org>
2022-06-21 11:53:37 -07:00
Benoit de Chezelles
097abc4fe8 Implement o & O to move cursor to other end of selection in copy mode 2022-06-21 11:53:37 -07:00
Wez Furlong
55e63d867b docs: keyboard encoding
refs: https://github.com/wez/wezterm/issues/2152
2022-06-21 09:36:59 -07:00
Wez Furlong
1b2efe8c70 x11: fix copy and paste between wezterm windows race
This commit adds more trace logging around selection
related events.

That tracing uncovered a situation, when multiple wezterm windows within
the same process were involved, where one window didn't receive a
selection-clear event notification.

Since Window::get_clipboard trusted our local understand of the
clipboard contents, it would return those until the selection was
changed in that window.

This commit changes that code to always ask the X server for the
selection. It makes pasting slightly slower, but should always produce
consistent results.

refs: https://github.com/wez/wezterm/issues/2110
2022-06-21 07:32:53 -07:00
Wez Furlong
ae952e275c docs: wayland drop and drop
refs: #2148
2022-06-20 13:28:39 -07:00
Funami580
b29089ebdc support drag and drop files for wayland 2022-06-20 13:25:32 -07:00
Funami580
b3e160ff4a Fix scrollbar thumb position for modified minimum thumb sizes 2022-06-20 08:08:53 -07:00
dependabot[bot]
43a541a485 build(deps): bump rstest from 0.13.0 to 0.14.0
Bumps [rstest](https://github.com/la10736/rstest) from 0.13.0 to 0.14.0.
- [Release notes](https://github.com/la10736/rstest/releases)
- [Changelog](https://github.com/la10736/rstest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/la10736/rstest/compare/0.13.0...0.14.0)

---
updated-dependencies:
- dependency-name: rstest
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-20 05:23:14 -07:00
Wez Furlong
be8a6e18cc cargo update 2022-06-19 21:40:05 -07:00
Wez Furlong
347e1fdc46 completions: improve zsh completions for --cwd, --config-file, prog
Make these complete the appropriate type of thing
2022-06-19 16:27:59 -07:00
Manolis Stamatogiannakis
bbb78b8845 Updates to documentation for hyperlinks.
- Add regex that captures URLs with IP addresses as hosts.
- Removed redundant non-capturing parentheses from the first regex.
  Mirrored the change to default_hyperlink_rules().
- Switched all but the first example to use literal strings for
  regex (more readable).
2022-06-19 15:35:37 -07:00
Wez Furlong
f6d5dfde15 keyboard: fix key up events in neovim + kitty keyboard protocol
refs:  https://github.com/wez/wezterm/issues/1141
2022-06-19 11:38:57 -07:00
Wez Furlong
f58f47522d docs: fix anchors for some color schemes
they all need to be lowercase
2022-06-19 08:04:35 -07:00
Wez Furlong
e35a59132f docs: remove screenshot width/height calc
It seems "off" in the latest round of updates.
2022-06-19 08:00:09 -07:00
Wez Furlong
dbcc0cb22a sync color schemes
closes: https://github.com/wez/wezterm/pull/2137
2022-06-19 07:35:48 -07:00
Wez Furlong
50ead11ccb fonts: assume emoji presentation based on name
wezterm makes two passes over fonts when resolving emoji, based on
the presentation of the text.  If the text has a defined presentation
via a variation selector, then the first pass will only consider
fonts that match that presentation.

If no fonts match, a second pass is made to locate any font with
the appropriate glyphs.

Previously, the font was assumed to have emoji presentation if it
had color glyphs.  That meant that if you chose a monochrome emoji
font then it would be skipped for regular emoji presentation and
we'd end up matching against the default fallback for the Noto Color
Emoji font.

This commit changes the behavior to consider any explicitly listed
font with "Emoji" in the name as having emoji presentation.

This is also an imperfect heuristic, but perhaps it is good enough?

refs: #1959
2022-06-19 06:54:22 -07:00
Wez Furlong
61510b8393 term: add enable_kitty_keyboard config option
It's been reported that something is funky with nvim, so default
this to false for now until I have time to debug it.

refs: https://github.com/wez/wezterm/issues/1141
2022-06-18 22:44:35 -07:00
Wez Furlong
5385c94314 docs: fix typo 2022-06-18 21:36:45 -07:00
Wez Furlong
5bcb0de442 lua: add wezterm.GLOBAL 2022-06-18 21:31:53 -07:00
Wez Furlong
2f073a7da2 docs: fix some typos in MuxPane.md 2022-06-18 19:58:35 -07:00
Wez Furlong
bf199caa3f remote stray debug 2022-06-18 17:56:26 -07:00
Wez Furlong
5c172e4ed2 term: support kitty keyboard protocol
This enables tentative support for https://sw.kovidgoyal.net/kitty/keyboard-protocol

It's only been lightly tested with the notcurses-input program and
eyeballed against a few random keypresses in kitty running

`printf "\x1b[=11u" ; od -c`

I tried with neovim, but it doesn't seem like the version available
in Fedora 36 supports this yet.

refs: https://github.com/wez/wezterm/issues/1141
2022-06-18 16:16:17 -07:00
Wez Furlong
f7cc8febca term/termwiz: add kitty keyboard CSI control escapes
This parses and keeps track of the kitty keyboard related modes,
but doesn't actually encode input yet.

refs: https://github.com/wez/wezterm/issues/1141
2022-06-18 14:15:16 -07:00
Wez Furlong
3d9898eb54 windows: properly fix shifted dead keys
Don't break AltGr based dead keys with the shift fix from
8e16756474

refs: https://github.com/wez/wezterm/issues/2102
refs: https://github.com/wez/wezterm/issues/473
2022-06-18 11:01:23 -07:00
Wez Furlong
e0616e5eb3 fix AltGr-7 reporting for win32 input mode
We need to carry the RIGHT_ALT modifier flag through to the win32
input mode encoder so that it is correctly handled by both win32
and wsl apps.

Take care to avoid RIGHT_ALT being encoded as ALT for the
non-win32-input-mode case.

refs: https://github.com/wez/wezterm/issues/2127
refs: https://github.com/wez/wezterm/issues/2098
2022-06-18 10:48:07 -07:00
Wez Furlong
8e16756474 windows: fix shifted dead keys
deadkeys that are triggered through shift (eg: backtick on a German
layout) weren't working because we were trying to lookup in our maps
using `SHIFT | LEFT_SHIFT` when the map data was keyed only by `SHIFT`.

This commit removes the positional modifier flags from the modifier
keys and restores the correct behavior.

refs: https://github.com/wez/wezterm/issues/2102
2022-06-18 10:26:48 -07:00
Wez Furlong
32fe7106a9 remove x11_focus_change_repaint_delay_ms code
We found the real root of the problem in so we shouldn't need this any
longer

refs: https://github.com/wez/wezterm/issues/1992
refs: https://github.com/wez/wezterm/issues/1628
refs: https://github.com/wez/wezterm/issues/2063
2022-06-18 07:39:56 -07:00
Wez Furlong
66033e4c6d lua api: improve error handling
Don't prevent wezterm from starting up if the gui-startup event
errors out.

Show a toast notification with the error message.

refs: #674
2022-06-18 07:25:05 -07:00
Wez Furlong
fa02f6d5f0 cargo fmt 2022-06-18 07:17:16 -07:00
Wez Furlong
2aebf56c3e lua api: refine gui-startup example, add some more mux functions
The example now shows how to set up multiple workspaces

refs: #674
2022-06-18 07:14:07 -07:00
Wez Furlong
fdd9726720 docs: link back to the mux module from the startup events 2022-06-18 06:34:50 -07:00
Wez Furlong
5fb60de62a lua: add MuxPane:send_text MuxPane:send_paste 2022-06-17 22:54:13 -07:00
Wez Furlong
1485cf344c x11: make another run at weird resize related issue w/ nvidia
This does two things:

* Sets the event queue owner explicitly to xcb
* Adopts a dri2 resize related workaround from the rust-xcb opengl
  example

I think the latter is probably a NOP, but the former sounds like
something important.

refs: #1992
2022-06-17 21:23:18 -07:00
Wez Furlong
00e5b9aae6 move wezterm.mux.split_pane(pane, {}) to pane:split{}
refs: #1949
refs: #674
2022-06-17 19:23:38 -07:00
Wez Furlong
4c03df884b docs: gui-startup, mux-startup and wezterm.mux
refs: #1949
refs: #674
2022-06-17 16:57:52 -07:00
Wez Furlong
21fc8916f6 docs: move some inline text into files 2022-06-17 15:52:24 -07:00
Wez Furlong
699bbce8e2 add gui-startup and mux-startup events
Using the newly exposed-to-lua mux apis, you may now run some lua code
at GUI startup and/or mux startup, just prior to any default windows
being created.

If you happen to spawn any panes as a result of this, wezterm will
skip creating the default program.

```lua
local wezterm = require 'wezterm'
local mux = wezterm.mux

-- This produces a window split horizontally into three equal parts
wezterm.on("gui-startup", function()
  wezterm.log_info("doing gui startup")
  local tab, pane, window = mux.spawn_window{}
  mux.split_pane(pane, {size=0.3})
  mux.split_pane(pane, {size=0.5})
end)

wezterm.on("mux-startup", function()
  wezterm.log_info("doing mux startup")
  local tab, pane, window = mux.spawn_window{}
  mux.split_pane(pane, {size=0.5, direction="Top"})
end)

return {
  unix_domains = {
    {name="unix"}
  },
}
```

refs: #674
refs: #1949
2022-06-17 12:37:19 -07:00
Wez Furlong
824dc66610 lua mux: add window spawning and pane splitting
refs: #225
2022-06-17 11:56:57 -07:00
Wez Furlong
3170f9a13c lua mux: add a couple of window methods 2022-06-17 09:27:28 -07:00
Wez Furlong
e8bb0e03ee add wezterm.mux lua module
The intent is to expose Mux related functions to lua, so `wezterm.mux`
will be that module table.

In order to test this out in the debug overlay, I realized that the
overlay was running functions in a different thread and didn't have
access to the mux, so this commit also tweaks the debug overlay repl to
execute the input in the main thread.

The result is that it is now possible to do
`wezterm.mux.active_workspace()` in the debug overlay to print the
active workspace name.

More functions will follow.

refs: https://github.com/wez/wezterm/issues/225
2022-06-17 07:46:25 -07:00
Wez Furlong
711d6c82c1 Add sponsor button to readme
closes: https://github.com/wez/wezterm/issues/1339
2022-06-16 12:45:35 -07:00
Wez Furlong
bb1465508b ssh: allow chdir to fail when spawning via ssh. use login shell.
Similar to 3b9be25161, but relax for
the ssh session when assume_shell="Posix".

Augument how we run the shell in this case as well, so that we make
an effort to run it as a login shell.

refs: #2092
refs: #2076
2022-06-16 09:54:39 -07:00
Wez Furlong
479b1384bb Add docs for wezterm cli
refs: #1253
2022-06-16 07:53:34 -07:00
Wez Furlong
adf9679461 macos: use shift-tab hack with ctrl-shift-tab as well
refs: #1902
2022-06-15 22:23:15 -07:00
Wez Furlong
84c429f8ec docs: changelog for https://github.com/wez/wezterm/issues/2063
closes: https://github.com/wez/wezterm/issues/2063
2022-06-15 22:14:02 -07:00
Wez Furlong
297377ae9a rename focus_change_repaint_delay -> x11_focus_change_repaint_delay_ms
and add changelog!

refs: #2111
2022-06-15 20:50:33 -07:00