Commit graph

2965 commits

Author SHA1 Message Date
Aram Drevekenin
a88b34f54f
docs(changelog): resurrection fixes 2024-10-02 16:17:30 +02:00
Aram Drevekenin
0511ae1ae2
fix(resurrection): various serialization issues (#3636)
* fix(serialization): use kdl-rs for serialization

* style(fmt): remove dead code

* tests(serialization): update snapshots

* style(fmt): rustfmt
2024-10-02 16:16:22 +02:00
Aram Drevekenin
0c8787d5c9
docs(changelog): plugin-manager 2024-09-30 18:05:37 +02:00
Aram Drevekenin
9f1e38f9fa
feat(ui): built-in plugin manager (#3633)
* add plugin list to session info

* feat(plugins): new_plugin and reload_plugin API commands

* feat(plugins): built-in plugin manager

* style(fmt): rustfmt

* update plugins
2024-09-30 18:04:40 +02:00
Aram Drevekenin
3569daf7c9
docs(changelog): background plugins 2024-09-20 15:39:17 +02:00
Aram Drevekenin
ce8e3995df
feat(config): allow loading background plugins on startup (#3616)
* remove old partial implementation

* feat(plugins): allow loading background plugins on startup

* add e2e test

* update config

* udpate config merging

* style(fmt): rustfmt
2024-09-20 15:38:20 +02:00
Aram Drevekenin
d92ee89a9d
docs(changelog): break multiple panes APIs 2024-09-16 21:03:45 +02:00
Aram Drevekenin
d78f3586dd
feat(plugins): APIs to break multiple panes into a new tab or an existing tab (#3610)
* feat(plugins): break multiple panes to a new tab

* fix(layouts): properly ignore run instructions when breaking panes

* feat(plugins): break multiple panes to existing tab

* feat(apis): allow these methods to also specify whether they want focus changed to the tab

* various fixes

* allow specifying name for the new tab when breaking out panes

* style(fmt): rustfmt
2024-09-16 21:02:04 +02:00
Aram Drevekenin
5868aa297c
docs(readme): update sponsors 2024-09-16 21:01:17 +02:00
Aram Drevekenin
489c4da5ff
docs(changelog): new plugin apis 2024-08-29 17:36:31 +02:00
Aram Drevekenin
1776d240da
feat(plugins): add plugin APIs to affect other panes (#3576)
* resize_pane_with_id and close_pane_with_id

* focus_pane_with_id and edit_scrollback_for_pane_with_id

* write_to_pane_id and write_chars_to_pane_id

* lots more commands

* style(fmt): rustfmt
2024-08-29 17:35:21 +02:00
Aram Drevekenin
240a53aa1a
docs(changelog): reload config options at runtime 2024-08-23 15:42:26 +02:00
Aram Drevekenin
820ff85231
feat(ux): reload config options at runtime (#3564)
* change simplified_ui at runtime

* change default_shell at runtime

* change pane_frames (from config) at runtime

* all other options

* some refactoring

* style(fmt): rustfmt
2024-08-23 15:41:48 +02:00
Aram Drevekenin
3923bf5027
docs(changelog): message to specific plugins API 2024-08-21 16:47:12 +02:00
Aram Drevekenin
08b6072a69
feat(plugins): API to temporarily bind keys to send a message to a specific plugin id (#3561) 2024-08-21 16:46:01 +02:00
Aram Drevekenin
905ce0a27d
docs(changelog): change themes at runtime 2024-08-20 16:11:10 +02:00
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