summaryrefslogtreecommitdiffstats
path: root/zellij-utils
AgeCommit message (Collapse)Author
10 daysfeat(plugins): add plugin APIs to affect other panes (#3576)Aram Drevekenin
* 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-23feat(ux): reload config options at runtime (#3564)Aram Drevekenin
* 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-21feat(plugins): API to temporarily bind keys to send a message to a specific ↵Aram Drevekenin
plugin id (#3561)
2024-08-20feat(ux): change themes at runtime (#3559)Aram Drevekenin
2024-08-19feat(ux): reload config at runtime (#3558)Aram Drevekenin
* feat(ux): reload config at runtime * style(fmt): rustfmt
2024-08-16feat(ux): first run setup-wizard (#3556)Aram Drevekenin
* 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-14feat(plugins): command pane re-run event (#3553)Aram Drevekenin
2024-08-07feat(plugins): rerun_command_pane API (#3546)Aram Drevekenin
* feat(plugins): rerun_command_pane API * fix tests
2024-08-07fix(plugins): various cwd fixes (#3545)Aram Drevekenin
* fix(plugins): various cwd fixes * fix tests
2024-07-29feat(plugins): allow opening command panes in the background (hidden) (#3530)Aram Drevekenin
* start background pane * open command and edit panes in the background * some cleanups * style(fmt): rustfmt * more cleanups
2024-07-22feat(plugins): some APIs for controlling and receiving information about ↵Aram Drevekenin
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-18fix(serialization): do not serialize junk sessions (#3504)Aram Drevekenin
* fix(serialization): do not serialize junk sessions * style(fmt): rustfmt
2024-07-18feat(plugins): add stringified layout to switch_session_with_layout (#3503)Aram Drevekenin
2024-07-17feat(ui): configuration screen + configure non-colliding keys at runtime (#3502)Aram Drevekenin
* rebind => reconfigure * persist keybinds and mode info to new tabs * add configuration plugin * make tests pass * remove warnings * style(fmt): rustfmt
2024-07-08fix(terminal): session-manager enter and some more keys (#3484)Aram Drevekenin
2024-07-05feat(ui): status bar redesign (#3475)Aram Drevekenin
* 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-06-28dependencies: switch from Wasmer to Wasmtime (#3349)bjorn3
* 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-14feat(plugins): rebind keys at runtime (#3422)Aram Drevekenin
* 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-05-27feat(keybindings): support multiple modifiers (eg. Ctrl+Alt) and the kitty ↵Aram Drevekenin
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-18Update soon-to-be incompatible dependencies (#3315)har7an
* 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-15feat(layouts): allow consuming a layout from a url (#3351)Aram Drevekenin
* feat(cli): allow loading layouts directly from a url * feat(plugins): allow loading layouts directly from a url * style(fmt): rustfmt
2024-05-02chore(version): bump development versionAram Drevekenin
2024-05-02chore(release): v0.40.1v0.40.1Aram Drevekenin
2024-05-02chore(version): adjust version for releaseAram Drevekenin
2024-05-02feat(stdin): allow binding Ctrl J (#3307)hiasr
* Fixed Control j keybindings * Fix formatting
2024-04-30feat(cli): list clients, their focused pane_id and the running command (#3314)Aram Drevekenin
* feat(cli): list clients * style(fmt): rustfmt
2024-04-26feat(plugins): add API to open new tabs with a LayoutInfo (#3305)Aram Drevekenin
* feat(plugins): add api to open new tabs with a layout info * fix tests
2024-04-22fix(cli): merge attach options (#3288)Aram Drevekenin
2024-04-16chore(version): bump development versionAram Drevekenin
2024-04-16chore(release): v0.40.0v0.40.0Aram Drevekenin
2024-04-15fix(cli): rename `attach --background` to `attach --create-background` (#3265)Aram Drevekenin
* fix(cli): rename background to create_background * fix(cli): change create-background shortcut
2024-04-12feat(config): allow disabling writing session metadata to disk (#3258)Aram Drevekenin
* feat(config): allow disabling writing session metadata to disk * style(fmt): rustfmt
2024-04-12feat(cli): allow starting a session detached (#3257)Aram Drevekenin
* feat(cli): allow starting a session detached * fix tests
2024-04-10fix(swap-layouts): properly identify plugin aliases with initial cwd (#3250)Aram Drevekenin
* fix(swap-layouts): properly identify plugin aliases with initial cwd * style(fmt): rustfmt
2024-04-10fix(layouts): recover from resurrection crash and pick up swap layouts ↵Aram Drevekenin
properly (#3249) * fix(layouts): recover from issues in the constraint system * fix(keybinds): pick up swap layouts for new tab keybinding
2024-04-05fix(plugins): various pre-release issues (#3246)Aram Drevekenin
* fix(strider): close_self instead of close_focus * fix(plugins): populate caller_cwd for all aliases * fix(config): launch the session-manager alias rather than the explicit internal url * style(fmt): rustfmt * fix tests
2024-04-04utils/cli: Add `move-tab` action (#3244)har7an
* utils/cli: Add `move-tab` action which was previously only exposed through keybindings. * CHANGELOG: Add PR 3244.
2024-03-27feat(plugins): add api to close current plugin instance (#3228)Aram Drevekenin
2024-03-27fix(plugins): session layouts are still serialized using the legacy plugin ↵Axel H
syntax (remote:) (#3224) * fix(plugins): session layouts were still serialized using the legacy plugin syntax (remote:) * use example domain * style(fmt): rustfmt --------- Co-authored-by: Aram Drevekenin <aram@poor.dev>
2024-03-26feat(plugins): add api to dump the current session layout to a plugin (#3227)Aram Drevekenin
2024-03-26fix(keybindings): add support for binding Ctrl-Space (#3101)Ido Yariv
* Add support for binding Ctrl-@ On most terminals, typing Ctrl-@ results in a null character with no modifier. Moreover, Ctrl-Space is commonly mapped as an alias for Ctrl-@, making it easier to bind it as well. * style(fmt): rustfmt --------- Co-authored-by: Aram Drevekenin <aram@poor.dev>
2024-03-25fix(config): add support for Ctrl and Alt modifiers on function keys in ↵Bradford Hovinen
keybindings (#3179) Previously, it was not possible to define keybindings with a modifier and a function key. The `Key` enum only supported combinging the Ctrl and Alt modifiers with letters. This is somewhat limiting: I would like to make the Zellij keybindings more "distant" than those used in the programs I use from within Zelilj, so that Zellij does not intefere with those programs. Thus I would like to move some of the keybindings from Ctrl+<character> to Ctrl+<function key>. This change adds: * support for function keys with the Ctrl and Alt modifiers in the `Key` enum, * support for parsing such keybindings from the configuration file, * support for such keybindings in the protobuf which communicates the keybindings to plugins, and * support for these keybindings in the plugin API. This is tested by modifying one of the e2e tests to include an example of such keybindings. This verifies that the configuration is correctly parsed, communicated with the plugin, and rendered.
2024-03-25style(fmt): fix warnings (#3223)Aram Drevekenin
* fix warnings in zellij-server * style(fmt): remove warnings * style(fmt): rustfmt
2024-03-25feat(cli): add run/edit in-place functions (#3038)Cristian Dominguez
Co-authored-by: Aram Drevekenin <aram@poor.dev>
2024-03-25fix(startup): recover from race condition that causes Zellij to start in the ↵Aram Drevekenin
wrong size (#3218) * fix(startup): recover from Zellij starting up in the wrong size * style(fmt): rustfmt * fix tests
2024-03-24feat: `list-sessions` show newest sessions last, for better user experience ↵toymil
(#3194) * feat: sort `list-sessions` from oldest to newest by putting the most recent sessions last, the user won't need to scroll back up to see active sessions when there are a lot of resurrectable sessions. * feat: add an `--reverse` option to the `list-sessions` subcommand the `--reverse` flag reverts sorting order back to the old "newest sessions first". also updated call sites of `list_sessions` and `print_sessions` with `reverse: true`, to keep the original behavior everywhere else except the output of `list-sessions` subcommand. * chore: update the help message --------- Co-authored-by: Jae-Heon Ji <atx6419@gmail.com>
2024-03-22fix(swap-layouts): properly identify plugin aliases (#3217)Aram Drevekenin
2024-03-21feat(pipes): allow piping messages to plugins from keybindings (#3212)Aram Drevekenin
2024-03-20HOTFIX: remove debug pathAram Drevekenin
2024-03-20chore(integrations): zpipe alias (#3210)Aram Drevekenin
* chore(completions): zpipe alias * chore(integrations): zpipe alias