Commit Graph

2783 Commits

Author SHA1 Message Date
Edward Shin
b4f176facd
fix(terminal): only refresh process specifics for given PID in get_cwd() (#3472)
Update `get_cwd()` to only refresh process specifics for the given PID,
matching the `get_cwds()` implementation.

This significantly reduces the latency of opening a new Pane or Tab.

On a 64-core Threadripper system, this reduces the latency of
`get_cwd()` from 850ms to 1ms. On an 8-core Ryzen system, the
improvement is smaller, but still perceptible.
2024-07-19 16:13:16 +02:00
Aram Drevekenin
591722a5d8
docs(changelog): startup delay fix 2024-07-18 16:43:36 +02:00
Aram Drevekenin
4df7b42766
fix(startup): do not parse resurrectable sessions on startup (#3505)
* fix(startup): do not parse resurrectable sessions on startup

* style(fmt): rustfmt
2024-07-18 16:35:07 +02:00
Aram Drevekenin
206ea3230b
docs(changelog): serialization fix 2024-07-18 14:30:17 +02:00
Aram Drevekenin
579a54ec45
fix(serialization): do not serialize junk sessions (#3504)
* fix(serialization): do not serialize junk sessions

* style(fmt): rustfmt
2024-07-18 14:29:03 +02:00
Aram Drevekenin
ce1a70032c
docs(changelog): stringified layout plugin api 2024-07-18 10:46:32 +02:00
Aram Drevekenin
2deffc3289
feat(plugins): add stringified layout to switch_session_with_layout (#3503) 2024-07-18 10:45:42 +02:00
Aram Drevekenin
fe30f08575
docs(changelog): configuration screen 2024-07-17 16:09:21 +02:00
Aram Drevekenin
84ff29dd02
feat(ui): configuration screen + configure non-colliding keys at runtime (#3502)
* rebind => reconfigure

* persist keybinds and mode info to new tabs

* add configuration plugin

* make tests pass

* remove warnings

* style(fmt): rustfmt
2024-07-17 16:08:31 +02:00
Aram Drevekenin
f6ec1a1385
docs(changelog): scroll region fix 2024-07-12 12:25:59 +02:00
Aram Drevekenin
f9ded24b21
fix(terminal): prevent escaping pane through scroll region (#3491) 2024-07-12 12:22:44 +02:00
Aram Drevekenin
5b3a9b5dad
docs(readme): about issues 2024-07-09 16:46:46 +02:00
har7an
abe0f87211
cargo: Reintroduce rust-version field (#3482)
* cargo: Reintroduce `rust-version` field

in `Cargo.toml` since it appears that client-side `cargo` will check
this field and [error when the users rust toolchain is too old][1]. Add
comments in `Cargo.toml` and `rust-toolchain.toml` pointing to each
other so the rust versions mentioned in each file are hopefully kept in
sync in the future.

[1]: https://doc.rust-lang.org/cargo/reference/manifest.html#the-rust-version-field

* CHANGELOG: Add MR #3482.
2024-07-08 15:38:28 +00:00
Aram Drevekenin
dc1a85c989
docs(changelog): multi-modifier fixes 2024-07-08 17:37:17 +02:00
Aram Drevekenin
dcd3ae2861
fix(terminal): session-manager enter and some more keys (#3484) 2024-07-08 17:36:24 +02:00
Aram Drevekenin
a49009de13
docs(changelog): cursor rendering fix 2024-07-08 14:31:38 +02:00
Aram Drevekenin
ffca97f5a9
fix(terminal): properly cache cursor position for synchronized renders (#3483)
* fix(terminal): properly cache cursor position for synchronized renders

* style(fmt): rustfmt
2024-07-08 14:30:31 +02:00
har7an
c886af41c2
cargo: Remove rust-version (msrv) field (#3480)
* cargo: Remove `rust-version` (msrv) field

from `Cargo.toml`. This has gone out of sync with the rust version
specified in `rust-toolchain.toml` and appears to have little
consequence to development, since it defines only the MSRV. We're using
`rust-toolchain.toml` to strictly enforce a specific rust version for
development, hence we stick with that.

Closes #3476

* CHANGELOG: Add MR #3480.
2024-07-07 05:24:16 +00:00
Aram Drevekenin
38318587e0
docs(readme): warning about pre-release versions 2024-07-05 16:14:07 +02:00
Aram Drevekenin
765f1493cd
docs(changelog): status-bar redesign 2024-07-05 15:14:31 +02:00
Aram Drevekenin
a6d6c0e4ff
feat(ui): status bar redesign (#3475)
* work

* work

* working

* get default mode from server and some ui responsiveness

* work

* finish design and get tests to pass

* get e2e tests to pass

* add classic layout

* add classic layout assets

* fix e2e tests

* style(fmt): rustfmt

* fix plugin system test

* style(fmt): some cleanups
2024-07-05 15:13:51 +02:00
Aram Drevekenin
8e33b20559
docs(changelog): wasmer -> wasmtime 2024-06-28 16:48:49 +02:00
bjorn3
7d7848cddc
dependencies: switch from Wasmer to Wasmtime (#3349)
* Remove ForeignFunctionEnv wrapper around PluginEnv

This will enable PluginEnv to be the Store context when migrating to
Wasmtime.

* Pass PluginEnv by value to load_plugin_instance

This will allow removing the Clone impl from PluginEnv when migrating to
Wasmtime as required by the missing Clone impl on Wasmtime's WasiCtx.

* Avoid passing a Store around when an Engine is enough

* Pass PluginEnv to the wasi read/write functions

Wasmtime requires storing the read/write end of the pipe outside of the
WasiCtx. Passing PluginEnv to these functions allows storing them in the
PluginEnv.

* Migrate to Wasmtime

* Switch from wasi-common to wasmtime-wasi

* Reduce verbosity of wasmtime_wasi logs

* Increase startup delay

To wait for all plugins to be compiled.

* Disable some wasmtime features

* Update to Wasmtime 21.0.1
2024-06-28 16:47:43 +02:00
Aram Drevekenin
fa110515aa
docs(changelog): mouse fix 2024-06-21 16:20:03 +02:00
Aram Drevekenin
5aed8daa9f
fix(mouse): mouse click translation to kitty keyboard programs (#3441) 2024-06-21 16:19:23 +02:00
Aram Drevekenin
048086de68
docs(changelog): underline color workaround 2024-06-21 13:48:32 +02:00
tranzystorekk
475dd08623
fix(terminal): use ITU T.418 format for emitted CSI 58 sequences (#3440) 2024-06-21 13:46:17 +02:00
Aram Drevekenin
0a0e062e6b
docs(changelog): sync-renders fix 2024-06-21 13:34:31 +02:00
Aram Drevekenin
3edc7cebf7
fix(rendering): do not render cursor if there's nothign to render (#3439) 2024-06-21 13:33:39 +02:00
Aram Drevekenin
91cf593836
docs(changelog): rebind keys at runtime 2024-06-14 17:11:47 +02:00
Aram Drevekenin
1f0ae94f01
feat(plugins): rebind keys at runtime (#3422)
* refactor(server): interpret keys on server so they can be rebound

* feat(plugins): allow rebinding keys at runtime

* various cleanups

* add tests

* style(fmt): rustfmt

* fix(tests): address (some) e2e test flakiness

* style(fmt): rustfmt
2024-06-14 17:11:02 +02:00
djalal
2ac8b15191
docs(readme): add name origin section (#3391)
* add name section in readme

* Adjust wording

---------

Co-authored-by: Aram Drevekenin <aram@poor.dev>
2024-06-14 11:13:11 +02:00
Aram Drevekenin
883855587c
docs(changelog): render fix 2024-06-11 15:21:10 +02:00
Aram Drevekenin
0db3db059d
fix(rendering): do not render if resizing screen to same size (#3413) 2024-06-11 15:19:29 +02:00
Aram Drevekenin
56baf0b13d
docs(changelog): scroll region fixes 2024-05-27 17:32:06 +02:00
Koichi Murase
3188e6971c
fix(grid): fix DL/IL being ineffective without scrolling region (#3382) 2024-05-27 17:30:32 +02:00
Koichi Murase
5f5d6df22e
fix(grid): fix the default bound of DECSTBM lying outside the screen (#3381) 2024-05-27 17:18:44 +02:00
Aram Drevekenin
626516050f
docs(changelog): support multiple modifier keybindings 2024-05-27 16:16:37 +02:00
Aram Drevekenin
62c37a87cc
feat(keybindings): support multiple modifiers (eg. Ctrl+Alt) and the kitty keyboard protocol (#3383)
* parse kitty keys from STDIN

* work

* work

* replace internal Key representation with the new KeyWithModifier in all the places

* work

* work

* allow disabling with config

* adjust ordering

* handle enabling/disabling properly on the client

* support multiple modifiers without kitty too

* normalize uppercase keys

* get tests to pass

* various cleanups

* style(fmt): rustfmt
2024-05-27 16:15:09 +02:00
Aram Drevekenin
c72f3a712b
docs(changelog): ooo plugin events fix 2024-05-22 11:13:21 +02:00
Aram Drevekenin
fda5ab1830
fix(plugins): synchronize event batch handling (#3367)
* fix(plugins): synchronize event batch handling

* style(fmt): rustfmt

* fix(tests): graceful shutdown for async tasks
2024-05-22 11:09:10 +02:00
har7an
64a5ac095c
Update soon-to-be incompatible dependencies (#3315)
* utils/cargo: Bump `wezterm` dependency

to 0.22.0 which, according to [their changelog][1], doesn't introduce
any changes at all over the previously used 0.20.0. It does, however,
update some of its' dependencies allowing us to update the transitive
deps `nom v5.1.2` and `terminfo v0.7.3`, which have caused warnings
during build/installation for quite some time now.

[1]: https://github.com/wez/wezterm/blob/main/termwiz/CHANGELOG.md

* server/cargo: Bump `daemonize` dependency

to v0.5.0, which eliminates a future-compat warning that has been around
for a while now. It doesn't state changes in the Changelog that we
should be aware of and doesn't cause apparent breakage during builds
either.

* utils/cargo: Sort dependencies alphabetically.

* CHANGELOG: Add PR #3315.

* server/lib: Convert bitmask to u32

to avoid type conversion issues on MacOS builds.
2024-05-18 11:59:14 +00:00
Aram Drevekenin
78b3909112
docs(changelog): consume layout from a url 2024-05-15 11:21:22 +02:00
Aram Drevekenin
90a62217fd
feat(layouts): allow consuming a layout from a url (#3351)
* feat(cli): allow loading layouts directly from a url

* feat(plugins): allow loading layouts directly from a url

* style(fmt): rustfmt
2024-05-15 11:20:36 +02:00
Aram Drevekenin
81c5a2a9df chore(version): bump development version 2024-05-02 10:43:25 +02:00
Aram Drevekenin
cd0cc06cec chore(release): v0.40.1 2024-05-02 09:02:03 +02:00
Aram Drevekenin
d81bda0937 chore(version): adjust version for release 2024-05-02 08:56:36 +02:00
Aram Drevekenin
3bac38c899
docs(changelog): allow binding ctrl j 2024-05-02 08:39:11 +02:00
hiasr
1338962568
feat(stdin): allow binding Ctrl J (#3307)
* Fixed Control j keybindings

* Fix formatting
2024-05-02 08:38:19 +02:00
Aram Drevekenin
1fda2e2c73
docs(changelog): list clients cli 2024-04-30 15:22:12 +02:00