1
1
mirror of https://github.com/wez/wezterm.git synced 2024-12-21 04:11:44 +03:00
Commit Graph

7153 Commits

Author SHA1 Message Date
Wez Furlong
e3e9821c4d
Add InputSelector action
Allows prompting the user to select from a list and then
triggering some action on the selected item.

This is the guts of the launcher menu hooked up to user-supplied
arbitrary entries.
2023-04-05 17:22:09 -07:00
Wez Furlong
153497d01d
admit defeat to intel shader weirdness
I dug out my pixelbook which has intel graphics and runs linux
to try to make sense of this issue, but I'm baffled.
It doesn't appear to NaN going in, but we end up with something
weird happening if we don't fixup the alpha.

Relevant entry to the discussion/background on this is:
https://github.com/wez/wezterm/issues/1180#issuecomment-1496102764

I don't think it's worth sweating over this, so let's just suck it
up.

refs: https://github.com/wez/wezterm/issues/1180
2023-04-05 15:07:22 -07:00
Wez Furlong
37e8a5041f
refine charselect move logic per comments on #3449 2023-04-05 08:45:02 -07:00
Chris
6354f01327
character select pgup/down, less jerky navigation, selected centered in list (#3449)
* character select pgup/down support for bigger jumps

* fix jerky selected_row clamping, keeps selected center offset

* die dead code

Co-authored-by: Wez Furlong <wez@wezfurlong.org>

* thx silly rustisms

Co-authored-by: Wez Furlong <wez@wezfurlong.org>

* charselect movements now spcified by amount, or 0 which does full pgsz

* rustfmt

---------

Co-authored-by: Wez Furlong <wez@wezfurlong.org>
2023-04-05 08:41:30 -07:00
Wez Furlong
dacd19c9f7
docs: ... and format the examples 2023-04-05 08:19:54 -07:00
Wez Furlong
3910291d4d
docs: update format-tab-title examples
nudge folks towards making their custom formatting aware of the
new tab title stuff
2023-04-05 08:18:50 -07:00
Wez Furlong
96f1585b10
wezterm cli list: add is_active and is_zoomed fields to json output
is_active is true if the pane is considered to be the active pane
within its containing tab.

If you want to reason about the focused pane regardless of tab,
`wezterm cli list-clients` has that pane_id.

refs: https://github.com/wez/wezterm/issues/3413
2023-04-05 07:30:38 -07:00
Wez Furlong
9b67a71485
add wezterm cli get-pane-direction
refs: https://github.com/mrjones2014/smart-splits.nvim/issues/53
2023-04-05 07:00:49 -07:00
Wez Furlong
336fefb52f
Add PromptInputLine and examples of (re)naming tabs/workspaces
refs: https://github.com/wez/wezterm/issues/522
refs: https://github.com/wez/wezterm/issues/1598
2023-04-04 21:11:08 -07:00
Wez Furlong
b2b5c64aff
remove stray debug 2023-04-04 17:43:10 -07:00
Wez Furlong
11dc59b613
mux: explicitly update tab/pane active status on focus change
Previously, we'd record the focused pane only in the per-client
view.

That status didn't propagate through the model fully, leading to
inconsistencies when using activate-pane-direction.

This commit does the full model update to force that through.
I may regret this later: the focus state was intended to be
a per-client attribute and this effectively prevents that
from ever being useful.

Maybe the per-client state should just be removed?
Will ponder that later.

refs: https://github.com/wez/wezterm/issues/3448
refs: https://github.com/wez/wezterm/issues/3387

Also sneaking in here is not updating the last input time
for a client unless the input was taken by a user.
2023-04-04 17:31:35 -07:00
Wez Furlong
9d44d6d864
cli: add --pane-id option to activate-pane-direction
This matches the other subcommands that use this
2023-04-04 17:18:14 -07:00
Wez Furlong
adcadca480
mux: increase default fetch throttle limit
I've seen a few warnings about hitting the throttle in vim
when running locally, raise the headroom a bit
2023-04-04 17:17:07 -07:00
Wez Furlong
084e656996
cli: defer parsing config in most cases
refs: https://github.com/mrjones2014/smart-splits.nvim/discussions/52
refs: #3402
2023-04-04 14:43:16 -07:00
Wez Furlong
4be2b9dbeb
make config_builder work with table.insert(config.keys, ...)
This had a referencing issue, similar to the more recent GLOBALS
issue.

The resolution in this case is a lot simpler: we can just return
a regular lua table and use all the same underlying semantics,
but stick a metatable over the top to handle assignment and
provide the strict mode method.
2023-04-04 11:43:21 -07:00
Wez Furlong
8ddd0d986d
mux: spawn: only use the cwd from a pane in a compatible domain
If the target domain_id doesn't match the source pane.domain_id(),
then we consider the filesystem namespace to be incompatible and
won't try to use it.

refs: https://github.com/wez/wezterm/issues/3442
2023-04-03 22:46:17 -07:00
Wez Furlong
e28b3cec4e
mux: fix unseen output status for remote panes
refs: #2625
2023-04-03 21:12:18 -07:00
Wez Furlong
ad953c535e
docs: changelog for #1872 2023-04-03 20:37:10 -07:00
Wez Furlong
fd634c2450
fix unused import warning 2023-04-03 20:26:33 -07:00
Wez Furlong
25be7fb9b1
mux: avoid WindowTitleChanged cycle
double-tapping the window title could lead to a cycle between
client and server.

The cycle is broken here by having the client defer advising
the server of a title change, and sending the now-current
title rather than the title embedded in the notification
from the mux layer.

refs: #1598
refs: #522
2023-04-03 20:23:47 -07:00
Wez Furlong
c3472cc969
ssh: fix token expansion for ProxyCommand
refs: https://github.com/wez/wezterm/issues/3437
2023-04-03 17:04:53 -07:00
Wez Furlong
45db43aa95
fix permute_any_mods
The termwiz Modifiers type isn't the right one!
Use the input layer types instead, and then we get the correct
string formatting.

refs: https://github.com/wez/wezterm/issues/3434
2023-04-03 08:43:03 -07:00
Jalil David Salamé Messina
b32863cc2f fix(clippy): Implement From instead of Into
Implementing `From` is prefered as this also implements the `Into` trait, may
not be desireable for code size/compilation time reasons.
2023-04-03 08:31:12 -07:00
Wez Furlong
d3492b27c6
fix: 'wezterm connect --workspace foo dom' part 2
In the spawn initial mux case, we didn't verify that the mux
had no windows with the requested workspace, so we'd start up
with just the default session spawned by the mux when it starts
up.

This commit tries a bit harder to confirm that there is matching
domain/workspace combo before deciding that it is sufficient.

refs: #2734
2023-04-03 08:10:47 -07:00
Wez Furlong
718397d054
render: ensure alt color and mix are well-defined for poly quads
Potentially the root cause of the gnome-style button alpha issue

https://github.com/wez/wezterm/issues/1180#issuecomment-1493818652
a278dbf43f

refs: #1180
2023-04-03 07:47:02 -07:00
Wez Furlong
1e2717de31
Expand sponsor section of readme 2023-04-02 23:37:54 -07:00
Wez Furlong
b3f52acc02
docs: Add sponsor page 2023-04-02 23:14:42 -07:00
Wez Furlong
d25dbdd833
cargo update 2023-04-02 19:05:54 -07:00
Wez Furlong
81d38e6b04
Update FUNDING.yml
Add patreon
2023-04-02 17:32:02 -07:00
Wez Furlong
d36ad7ca7f
mux: reduce volume of bonus lines sent by server
At 80x24 (< 2k cells), sending all 24 lines of the viewport as an
optimistic prefetch is "OK", but for full screen 4k (80*250 = 20k cells)
the volume is oversized and pushes latency up.

This commit dials that back down to the minimal useful data; the
cursor row + any changed rows in the viewport.  When navigating
in vim that reduces things down to 2 rows of prefetch per movement,
assuming that the status line is being updated to show the cursor
position.

This feels a little more snappy for me.

refs: https://github.com/wez/wezterm/issues/2503
refs: https://github.com/wez/wezterm/issues/1872
2023-04-02 16:26:11 -07:00
Wez Furlong
764cc8bb3d
skip pruning old logs unless we are the gui
refs: #3402
2023-04-02 14:44:41 -07:00
Wez Furlong
49296500da
mux: forward ClearScrollback requests to remote server
refs: #2624
2023-04-02 14:17:05 -07:00
Wez Furlong
3dc2ac0a75
fix wezterm connect --workspace
When creating the initial window, we didn't pass through the
provided workspace name.

refs: #2734
2023-04-02 14:04:20 -07:00
Wez Furlong
ec85c243e9
mux: increase unix reconnect delay
In debug builds I noticed that sometimes we'd fail to connect
to a newly spawned unix server.

Increase the timeout to give it a chance to start up before
we error out.
2023-04-02 13:51:34 -07:00
Wez Furlong
7735602bfa
suppress dead code warning for locate_app_wide_key_assignment
It is used, just not currently on all platforms, and I want to
compile and verify it on linux which I use most often.
2023-04-02 13:36:13 -07:00
Wez Furlong
b853d00cff
mux: detach domain on window close
refs: #2644
2023-04-02 13:35:12 -07:00
Wez Furlong
f57df9bbaf
wezterm: defer parsing config
Some of the `wezterm` subcommands (such as `wezterm
set-working-directory`) don't need the config at all

Loading the config can be relatively expensive and can slow
down those commands, so this commit defers loading the config
until a subcommand actually needs it.

refs: #3402
2023-04-02 10:34:54 -07:00
Wez Furlong
25255d90d6
config: lazyily produce ssh domain list
I noticed that in debug builds, `wezterm set-working-directory` had
high/variable latency, and I traced part of it to the ssh config parsing
logic.

Make that lazily evaluate the ssh config.

refs: #3402
2023-04-02 10:34:46 -07:00
Wez Furlong
5be7f93317
refactor: split cli subcommand into separate modules 2023-04-02 09:21:33 -07:00
Wez Furlong
50172f2e88
add wezterm.mux.rename_workspace
refs: #2787
2023-04-02 08:03:07 -07:00
Wez Furlong
741570563d
add wezterm cli rename-workspace
refs: #2787
2023-04-02 07:37:45 -07:00
Wez Furlong
e000e91683
maybe fix freebsd build
rlim_t is signed on that platform, so take care to convert
to appease the compiler.
2023-04-02 06:36:46 -07:00
Wez Furlong
000269261b
add wezterm cli set-tab-title and wezterm cli set-window-title
refs: #1598
refs: #522
2023-04-01 23:00:00 -07:00
Wez Furlong
ee68e31bbd
tab navigator: use tab title > pane title if set
refs: #1598
refs: #522
2023-04-01 21:52:46 -07:00
Wez Furlong
dd7d22ed6b
mux: propagate tab and window title when it changes
refs: #1598
2023-04-01 21:31:37 -07:00
Wez Furlong
ac3e2307d2
default format-tab-title now respects tab:set_title
Finally getting around to wrapping this up; previously you had
to define your own format-tab-title event handler if you wanted
to show the title that you had set via `tab:set_title`.

Now, if that string is not empty, it will be used instead of
the title string from the active pane.

refs: #1598
2023-04-01 20:06:18 -07:00
Wez Furlong
ea28fb891a
add window:active_tab(), window:active_pane(), tab:active_pane() 2023-04-01 19:46:15 -07:00
Wez Furlong
8582165ffc
add display_pixel_geometry config option for subpixel geometry
refs: #3422
2023-04-01 11:05:09 -07:00
Wez Furlong
28417ada78
font: minor refact to derive Default for FreeTypeLoadTarget 2023-04-01 10:46:38 -07:00
Wez Furlong
c7ee705eaf
windows: fix INTEGRATED_BUTTONS|RESIZE 2023-04-01 08:32:24 -07:00