* feat: add capability to dispatch actions from cli
Add capability to dispatch actions from the cli.
Can be invoked through `zellij action [actions]`
Automatically sends the action either to the current session,
or if there is only one session to the single session.
If there are multiple sessions, and no session is specified it will
error out.
Example:
1.
```
zellij action "[NewTab: , NewTab: ]"
```
2.
```
zellij -s fluffy-cat action '[NewPane: , WriteChars: "echo Purrr\n" ]'
```
3.
```
zellij -s fluffy-cat action '[ CloseTab, ]
```
* add: error message on malformed input
Add an error message on malformed input, for the `action`'s dispatch.
Rather than resulting in a panic.
* add: function to query the client id
* add: send specific actions to certain clients
Adds ability to send actions, that don't impact the server state
to all connected clients. For example `MoveFocus`
* add: client_id to non blocking actions
* chore(fmt): `cargo fmt`
* add: pick correct session, if there is exactly one
* add: use correct `client_id` for detach action
* add: make `[ ]` opaque to the user
* add: miette to toplevel to improve error message
* add: fake client reading configuration
Add the fake client reading configuration files,
this allows actions, that rely on configuration work
correctly. This is an intermediate solution, and should ideally not
be needed. It would be better if most of this state would be handled
by the server itself.
* chore(fmt): rustmt
* add: ability to detach multiple clients
Add ability to detach multiple clients at the same time.
* remove: obsolete functionality
* remove: unused functionality
* add: send correct action upon exiting
* chore(update): cargo update
add the ability to toggle boolean options with a cli flag:
example:
if the pane frames are turned off in the config file,
then passing in the `--no-pane-frames` flag will toggle the
pane frames on
feat(attach): Support `--first` option for `attach` sub-command to let zellij choose the alphabetically first session; resolve#823
fix(attach-first): Fix `--first` option to choose the first created session in the existent sessions
feat(attach): Support `--index` option to choose the session indexed by provided number like -t option of tmux
feat(attach): Support listing active sessions with index when a provided number is not found in the active sessions
feat(attach): Support listing active sessions with index when a provided number is not found in the active sessions
feat: Add anyhow to uniformly treat error types and avoid panics
* feat(sessions): mirrored sessions
* fix(tests): input units
* style(fmt): make rustfmt happy
* fix(tests): make mirrored sessions e2e test more robust
* refactor(sessions): remove force attach
* style(fmt): rustfmtify
* docs(changelog): update change
* fix(e2e): retry on all errors
fixes#688
- the `options` subcommand of `attach` functions the same,
as the `options` subcommand of creating the normal session,
but not every option will have an effect on reattaching,
for example the `default_mode` setting would make no sense
to switch.
In the future it would make sense to be able to hot swap some
of the options on reattach, but we are not able to do that yet,
for example the `default_shell` one.
Eg:
```
zellij attach <session-name> options --theme <theme>
```