Commit Graph

2849 Commits

Author SHA1 Message Date
Aram Drevekenin
e96491a3cf
feat(ux): change themes at runtime (#3559) 2024-08-20 16:10:27 +02:00
Aram Drevekenin
45501793d1
docs(changelog): reload config at runtime 2024-08-19 19:03:45 +02:00
Aram Drevekenin
cfbc0ff490
feat(ux): reload config at runtime (#3558)
* feat(ux): reload config at runtime

* style(fmt): rustfmt
2024-08-19 19:02:52 +02:00
Aram Drevekenin
d76c4e5e49
docs(changelog): first run setup wizard 2024-08-16 14:01:32 +02:00
Aram Drevekenin
056537d3ee
feat(ux): first run setup-wizard (#3556)
* separate saved/runtime structure, kind of working

* serializing config

* work

* work

* save config through the configuration screen

* work

* startup wizard

* style(code): cleanups

* fix(session): reload config from disk when switching sessions

* style(fmt): rustfmt

* fix(config): propagate cli config options to screen

* style(fmt): rustfmt
2024-08-16 14:00:01 +02:00
Aram Drevekenin
c25166c30a
docs(changelog): CommandPaneReRun plugin event 2024-08-14 16:49:24 +02:00
Aram Drevekenin
a3ad621dc7
feat(plugins): command pane re-run event (#3553) 2024-08-14 16:47:46 +02:00
Aram Drevekenin
affbd9237e
docs(changelog): rerun command pane plugin API 2024-08-07 19:22:10 +02:00
Aram Drevekenin
d44950a5bd
feat(plugins): rerun_command_pane API (#3546)
* feat(plugins): rerun_command_pane API

* fix tests
2024-08-07 19:20:41 +02:00
Aram Drevekenin
28d90df6dd
docs(changelog): floating_panes cwd fix 2024-08-07 13:47:35 +02:00
Aram Drevekenin
8080050aac
fix(plugins): various cwd fixes (#3545)
* fix(plugins): various cwd fixes

* fix tests
2024-08-07 13:46:08 +02:00
Aram Drevekenin
47caeb66a6
docs(changelog): background command panes 2024-07-29 11:42:14 +02:00
Aram Drevekenin
355463383a
feat(plugins): allow opening command panes in the background (hidden) (#3530)
* start background pane

* open command and edit panes in the background

* some cleanups

* style(fmt): rustfmt

* more cleanups
2024-07-29 11:40:01 +02:00
Aram Drevekenin
a6fe5ff1d5
docs(changelog): more plugin apis 2024-07-22 18:31:28 +02:00
Aram Drevekenin
ffbdb095ec
feat(plugins): some APIs for controlling and receiving information about other panes (#3515)
* add context to opening command panes, and events for their start/finish

* show/hide other panes plugin apis

* get tests to pass

* style(fmt): rustfmt

* update plugin test snapshots
2024-07-22 18:30:18 +02:00
Aram Drevekenin
5f64bf03fd
docs(changelog): current process refresh fix 2024-07-19 16:14:19 +02:00
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