| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
remove old testing infra (#589)
* tests(integration): move basic integration tests to be unit tests
* fix(tests): silently fail threadbus for tests
* tests(unit): move compatibility tests to become unit tests for grid
* tests(unit): move close_pane tests to become unit tests for grid
* tests(e2e): move basic layout test to e2e
* tests(unit): move move_focus tests to be unit tests
* tests(unit): move resize_down tests to be unit tests
* tests(unit): move resize_left tests to be unit tests
* tests(unit): move resize_right tests to be unit tests
* tests(unit): move resize_up tests to be unit tests
* tests(infra): remove unused infra
* style(fmt): make rustfmt happy
* debug
* debug
* debug
* debug
* chore(test): shift volume mounting around because github actions is a special child
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* default layouts won't be installed by anymore,
instead they will be directly loaded
* `layout-dir` is now a subdirectory of the
`config-dir` by default, instead of the `data-dir`
POSSIBLE BREAKING CHANGE:
In case of having custom layouts in the previous
`layout-dir` one can switch either the layouts to
the new dir, or set the `layout-dir` to be the current
`layout-dir`
* it is possible to change the location of the `layout-dir`:
- `zellij options --layout-dir [LAYOUR_DIR]`
- `layout_dir: [LAYOUT_DIR]`
|
| |\ |
|
| | | |
|
| |/
|
|
| |
* give feedback on most errors in the layout-file
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Pty reads a command's output and feeds it to Screen using an unbounded
queue.
However, if the command produces output faster than what `Screen` can
render, `Pty` still pushes it on the queue, causing it to grow
indefinitely, resulting in high memory usage and latency.
This patch fixes this by using a bounded queue between Pty and Screen,
so if Screen can't keep up with Pty, the queue will fill up, exerting
back pressure on Pty, making it read the command's output only as fast
as Screen renders it.
The unbounded queue is kept between Screen and producers other than Pty
to avoid a deadlock such as this scenario:
* pty thread filling up screen queue as soon as screen thread pops
something from it
* wasm thread is processing a Render instruction, blocking on the screen
queue
* screen thread is trying to render a plugin pane. It attempts to send a
Render insturction to the blocked wasm thread running the plugin.
This patch also adds a generous amount of sleeps to the integration
tests as having backpressure changes the timing of how instructions are
processed.
Fixes #525.
|
| |\ |
|
| | | |
|
| | | |
|
| |\| |
|
| | | |
|
| | | |
|
| |/
|
|
|
|
|
| |
* Split Layout Flag into `layout` that searches in default layout
directories and `layout-path` that takes a path to a layout file
Close #506.
|
| |\
| |
| |
| | |
fix-simplified-ui
|
| | |
| |
| |
| |
| | |
* fix(ui): handle pasted text properly
* style(fmt): rustfmt
|
| |/
|
|
|
| |
Propagate the config now, in all the places, as opposed to
fallback to a default.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
New behavior for h and l, will change tabs if there are no available
panes in the direction.
cargo clippy
Ensuring atomicity for the MoveFocusOrTab
- Blocking the input thread for the action MoveFocusOrTab
- Using "unreachable" macro in match arm to make it clear that the
directions Up and Down should not be used with the action MoveFocusOrTab
Adding tests
|
| |
|
|
|
| |
* fix(compatibility): upgrade vte to support csi subparameters
* style(fmt): rustfmt and clippy
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, a config file was loaded within `start()`, and if the config
file is invalid, Zellij was supposed to show a user what's wrong with
it. However, since `start()` starts setting up its terminal with an
alternative screen buffer, neither standard output nor standard error
could display such an error.
This change intends to address this issue by making Zellij load a config
file before `start()`.
In addition, the patch also includes some refactorings:
* Redefine `from_cli_config` with `TryFrom`, which was introduced in
Rust 1.34
* Remove conditional declaration `cfg(not(test))` because `start()` now
receive a `Config` as the third argument
* Introduce [`tempfile`](https://crates.io/crates/tempfile) in order to
run tests with actual files
* Typo?: "Deserialisation" -> "Deserialization"
|
| | |
|
| |
|
|
|
|
| |
Previous behavior was to go to the largest overlap. Now it should go to
the most recently used pane. Used cargo insta review to update the
snapshots.
|
| |
|
|
|
| |
* fix(ui): draw ui properly on terminal start
* style(fmt): rustfmt
|
| |\
| |
| | |
PR #298
|
| | | |
|
| | | |
|
| |/ |
|
| | |
|
| |
|
|
|
|
|
|
|
| |
* fix(ui): react to terminal window size changes (SIGWINCH)
* style(fmt): rustfmt
* style(format): remove some warnings
* style(fmt): rustfmt
|
| |
|
|
|
| |
* fix(performance): bring back should_render
* style(fmt): rustfmt
|
| |
|
|
|
|
|
| |
* feat(statusbar): new shortcuts
* feat(input): new shortcuts and ui
* style(fmt): rustfmt
|
| |
|
|
|
|
|
|
|
|
|
| |
* work
* feat(tab): expansion boundary
* fix(layout): add expansion boundary to default layout
* style(fmt): rustfmt
* style(fmt): remove unnecessary comment
|
| |
|
|
|
| |
* fix(compatibility): do not forward tabs to the terminal
* style(fmt): rustfmt
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* added some comments in the input module
* InputHandler now has InputState instead of separate InputMode and permanent bool
* keybinds are now associated with a Vec<Action> instead of a single Action
* removing "persistent" modes alltogether to reimplement the feature, help bar broken
* locked command mode by default, fixes #161, help bar still broken
* status bar fixed, still a few improvements/bugs to go
* better shortcut help bar contents
* fixed last bits and i think we are good
* modified tests according to new controls, not working
* Revert "modified tests according to new controls, not working"
This reverts commit f2d9421ff0169feb83dbd9b246e59b9244cafc16.
* basic.rs tests now pass, not the rest
* close_pane.rs tests pass, but very slowly?
* compatibility.rs tests pass, very slowly as well
* {layout, {move_focus_*}}.rs all working mildly slowly
* {resize_*}.rs should all work but very slowly and funky, see PR comments
* {tabs,toggle_fullscreen}.rs pass. Test performance issue yet to be fixed
* tests now work, with a hack :| ready for merge
* rustfmt + deleted references to InputState and mode persistency
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
* work
* feat(statusbar): new design and keybindings
* fix(ipc): add missing const
* style(fmt): rustfmt
* style(input): remove accidental comment
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Initial definitions and thoughts for hotkeys
* Actually document InputKey properly
* Add a to string function for input keys
* Define keybinds and actions; restructure
* Implement hash and start on defining key bindings
* Derive Serialize for input keys
* Store the key strings as tuples for two-way mapping
* Some string to key functions
* Use termion's Key definition and implement action dispatch
* Fix some borrow-checker errors
* Missing keybind and command mode switching
* Fix incorrect handling of spawn terminal command
* fix(plugins): work with new input - tests not passing
* fix(infra): stabilize tests and properly close pty sessions
* style(fmt): rustfmt
Co-authored-by: Brooks J Rady <b.j.rady@gmail.com>
Co-authored-by: Aram Drevekenin <aram@poor.dev>
|
| |
|
|
|
| |
* feat(tab): min/max pane height
* style(fmt): rustfmt
|
| | |
|