* fix(cli): take default shell from config if it exists when opening new tab
* fix(cli): take layout dir from config when opening new tab if it exists
* style(fmt): rustfmt
* fix(layout): error on nodes outside layout node
* fix(layout): move stacked property to pane
* fix(layout): various stack exceptions
* fix(ui): non-flexible stacked pane titles now take up their full length
* fix(ui): stack titles with no-pane-frames take up their proper length
* style(fmt): rustfmt
* relayout working with hard coded layout
* work
* refactor(layout): PaneLayout => TiledPaneLayout
* tests passing
* tests passing
* tests passing
* stacked panes and passing tests
* tests for stacked panes
* refactor(panes): stacked panes
* fix: focusing into stacked panes from the left/right
* fix(layouts): handle stacked layouts in the middle of the screen
* fix(pane-stack): focus correctly when coming to stack from above/below
* fix(stacked-panes): resize stack
* fix(stacked-panes): focus with mouse
* fix(stacked-panes): focus next pane
* fix(layout-applier): sane focus order
* fix(stacked-panes): better titles for one-liners
* fix(stacked-panes): handle moving pane location in stack
* fix(relayout): properly calculate display area
* fix(relayout): properly calculate rounding errors
* fix(stacked-panes): properly handle closing a pane near a stack
* fix(swap-layouts): adjust swap layout sort order
* feat(swap-layouts): ui + ux
* fix(swap-layouts): include base layout
* refactor(layout): remove unused method
* fix(swap-layouts): respect pane contents and focus
* work
* fix(swap-layouts): load swap layouts from external file
* fix(swap-layouts): properly truncate layout children
* fix(stacked-panes): allow stacked panes to become fullscreen
* fix(swap-layouts): work with multiple tabs
* fix(swap-layouts): embed/eject panes properly with auto-layout
* fix(stacked-panes): close last pane in stack
* fix(stacked-panes): move focus for all clients in stack
* fix(floating-panes): set layout damaged when moving panes
* fix(relayout): move out of unfitting layout when resizing whole tab
* fix(ui): background color for swap layout indicator
* fix(keybinds): add switch next layout in tmux
* fix(ui): swap layout indication in compact layout
* fix(compact): correct swap constraint
* fix(tests): tmux swap config shortcut
* fix(resizes): cache resizes so as not to confuse panes (eg. vim) with multiple resizes that it debounces weirdly
* feat(cli): dump swap layouts
* fix(ui): stacked panes without pane frames
* fix(ux): move pane forward/backwards also with floating panes
* refactor(lint): remove unused stuff
* refactor(tab): move swap layouts to separate file
* style(fmt): rustfmt
* style(fmt): rustfmt
* refactor(panes): various cleanups
* chore(deps): upgrade termwiz to get alt left-bracket
* fix(assets): merge conflicts of binary files
* style(fmt): rustfmt
* style(clippy): no thank you!
* chore(repo): remove garbage file
* server/os_i_o: Add fixme to IPC queue
between server and client, explaining why the queue has its current
length.
* utils/ipc: Don't advertise terminal emulators
and use a more generic phrasing instead. zellij as application isn't the
place to recommend specific terminals to use it with.
* style(comment): redraw-on-backpressure comment
---------
Co-authored-by: Aram Drevekenin <aram@poor.dev>
* Add new feature flags
* Use singlepass in debug mode
* Use Cow to avoid unnecessary copies
- Instead of removing and reinserting into the memory cache, use Cow to
model both owned an borrowed data
- Log at debug-level the time to compile/load a wasm module
- A little clippy drive-by on touched files
* Satisfy the assumption from zellij-utils/src/consts.rs for target-dir
* Allow forcing cranlift in debug mode
* Remove deprecated comments
* PR comment: typo
* Remove extras
* Add `GoToTabName` action to switch tab by name
* rm blank file
* add --create option
* format
* add some doc
* add test case
* format
* add test case
* change variable name
* Fix status bar not displaying if size=1. Show shortcuts if not in normal mode when size=1
* formatting
Co-authored-by: Felix Pankratz <mail@felixpankratz.de>
* xtask/run: Use varargs when run with `-data-dir`
Previously any additional arguments passed on the command line were
ignored. Now they are appended to `cargo run ...` as documented.
* server/os_i_o: Improve error message when IPC dies
and display the last send/recv error to the user instead of a generic
"Buffer full" message.
* server/lib: Log error in `send_to_client!`
so we will know when an error occured while trying to send a message to
the client. The most likely cause for this is that the client buffer
filled up and hence we cannot send any new messages. While we still
disconnect the client as before, now we also write a log message that
explains the situation.
* utils/channel: Apply rustfmt
* server/lib: Detect when client responds too slow
and log a message before disconnecting it.
* server/os_i_o: Add retry queue to client senders
that is dynamically allocated on-demand and stores `ServerToClientMsg`
in case the regular IPC channel is currently full. This acts as a
dynamic buffer to hold and buffer messages for a while until the client
hopefully catches up.
Also write a message to the log to indicate when the client is
recognized to be too slow in handling server messages.
* server: apply rustfmt
* utils/ipc: Add session name to "Disconnect" error
* utils/ipc: Fix error message indent
* server/os_i_o: Undo IPC channel extension
via `Vec` and drastically increase the IPC message queue size instead.
Measurements didn't discover a drastic increase in RAM caused by this,
and it is a much easier fix for the problem at hand.
* CHANGELOG: Add PR #2068
* server/plugins: Always recreate plugin folders
in case they aren't existent and don't mark errors to do so as
non-fatal. The latter masks the underlying cause when e.g. the `.cache`
folder is, for some reason, not writable by zellij (See #2092), whereas
the former fixes problems arising from the user having purged their
.cache/zellij folder entirely.
* utils/errors: Rewrite panic message
* changelog: Add PR #2093