342d1629d0
* utils/errors: Fix function order in `to_anyhow` impl for `SendError`. Previously we attached the context to `anyhow!`, which is wrong (because it doesn't create an `Err` type itself) and leads to strange behavior where the error seemingly is immediately panicked upon. Instead, Wrap `anyhow!` into an `Err()` and then attach the context to that. This achieves the intended goal and doesn't lead to premature termination. * server/terminal_bytes: Ignore error in `listen` which occurs when quitting zellij with the `Ctrl+q` keybinding. At the end of the `listen` function we break out of a loop and send a final `Render` instruction to the Screen. However, when quitting zellij as mentioned above, the Screen thread is likely dead already and hence we cannot send it any Instructions. This causes an error in the async tasks of the panes that handle reading the PTY input. If we leave the error unhandled, we will have error messages in the log whenever we quit zellij, even though the application exited normally. Hence, we now send the final `Render` instruction but do not care whether it is sent successfully or not. This is a "workaround" for the fact that we cannot tell whether the application is quitting or not. * server/terminal_bytes: Add FIXME note * changelog: Add PR #1918 don't log errors from async pane threads when quitting zellij |
||
---|---|---|
.cargo | ||
.github | ||
.nix | ||
assets | ||
default-plugins | ||
docs | ||
example | ||
src | ||
zellij-client | ||
zellij-server | ||
zellij-tile | ||
zellij-tile-utils | ||
zellij-utils | ||
.editorconfig | ||
.envrc | ||
.git-blame-ignore-revs | ||
.gitignore | ||
.rustfmt.toml | ||
Cargo.lock | ||
Cargo.toml | ||
CHANGELOG.md | ||
CODE_OF_CONDUCT.md | ||
CONTRIBUTING.md | ||
docker-compose.yml | ||
flake.lock | ||
flake.nix | ||
GOVERNANCE.md | ||
LICENSE.md | ||
Makefile.toml | ||
README.md | ||
rust-toolchain.toml | ||
treefmt.toml |
Zellij
[Installation] [Overview] [Configuration] [Templates] [FAQ]
What is this?
Zellij is a workspace aimed at developers, ops-oriented people and anyone who loves the terminal. At its core, it is a terminal multiplexer (similar to tmux and GNU Screen), but this is merely its infrastructure layer.
Zellij includes a layout system, and a plugin system allowing one to create plugins in any language that compiles to WebAssembly.
You can get started by installing Zellij and reading the overview.
For more details about our future plans, read about upcoming features in our roadmap.
Zellij was initially called Mosaic.
How do I install it?
You can install with cargo
:
cargo install --locked zellij
Or if want to a prebuilt binary, you can download it from our releases, or use cargo-binstall
.
cargo-binstall zellij
Or you can also use Third Party Repositories.
Try Zellij without installing
bash/zsh:
bash <(curl -L zellij.dev/launch)
fish:
bash (curl -L zellij.dev/launch | psub)
How do I get involved?
Zellij is a labour of love built by an enthusiastic team of volunteers. We eagerly welcome anyone who would like to join us, regardless of experience level, so long as they adhere to our Code of Conduct.
Please report any code of conduct violations to aram@poor.dev
To get started, you can:
- Take a look at the Issues in this repository - especially those marked "good first issue". Those with the "help wanted" tag probably don't have anyone else working on them.
- Drop by our Discord, or Matrix chat and ask what you can work on, or how to get started.
- Open an issue with your idea(s) for the project or tell us about them in our chat.
How do I start a development environment?
- Clone the project
- Install cargo-make with
cargo install --locked --force cargo-make
- In the project folder, for debug builds run:
cargo make run
- To run all tests:
cargo make test
For more build commands, see CONTRIBUTING.md.
Configuration
For configuring Zellij, please see the Configuration Documentation.
What is the current status of the project?
Zellij should be ready for everyday use, but it's still classified as a beta. This means that there might be a rare crash or wrong behaviour here and there, but that once found it should be fixed rather quickly. If this happens to you, we would be very happy if you could open an issue and tell us how to reproduce it as best you can.
Roadmap
Presented here is the project roadmap, divided into three main sections.
These are issues that are either being actively worked on or are planned for the near future.
If you'll click on the image, you'll be led to an SVG version of it on the website where you can directly click on every issue
License
MIT