zellij/README.md

102 lines
5.6 KiB
Markdown
Raw Normal View History

2020-10-26 18:28:20 +03:00
<h1 align="center">
<br>
<img src="https://raw.githubusercontent.com/zellij-org/zellij/main/assets/logo.png" alt="logo" width="200">
2020-10-26 18:28:20 +03:00
<br>
Zellij
2020-10-26 18:28:20 +03:00
<br>
<br>
</h1>
2020-10-29 17:42:00 +03:00
<p align="center">
<a href="https://discord.gg/CrUAFH3"><img alt="Discord Chat" src="https://img.shields.io/discord/771367133715628073?color=5865F2&label=discord&style=flat-square"></a>
<a href="https://matrix.to/#/#zellij_general:matrix.org"><img alt="Matrix Chat" src="https://img.shields.io/matrix/zellij_general:matrix.org?color=1d7e64&label=matrix%20chat&style=flat-square&logo=matrix"></a>
2021-11-25 23:19:31 +03:00
<a href="https://zellij.dev/documentation/"><img alt="Zellij documentation" src="https://img.shields.io/badge/zellij-documentation-fc0060?style=flat-square"></a>
2020-10-29 17:42:00 +03:00
</p>
<p align="center">
<img src="https://raw.githubusercontent.com/zellij-org/zellij/main/assets/demo.gif" alt="demo">
</p>
<h4 align="center">
[<a href="https://zellij.dev/documentation/installation">Installation</a>]
[<a href="https://zellij.dev/screencasts/">Screencasts & Tutorials</a>]
[<a href="https://zellij.dev/documentation/configuration">Configuration</a>]
[<a href="https://zellij.dev/documentation/layouts">Layouts</a>]
[<a href="https://zellij.dev/documentation/faq">FAQ</a>]
</h4>
2020-10-26 17:46:25 +03:00
# What is this?
[Zellij](#origin-of-the-name) is a workspace aimed at developers, ops-oriented people and anyone who loves the terminal. Similar programs are sometimes called "Terminal Multiplexers".
2020-10-26 17:46:25 +03:00
Zellij is designed around the philosophy that one must not sacrifice simplicity for power, taking pride in its great experience out of the box as well as the advanced features it places at its users' fingertips.
2020-10-26 17:46:25 +03:00
Zellij is geared toward beginner and power users alike - allowing deep customizability, personal automation through [layouts](https://zellij.dev/documentation/layouts.html), true multiplayer collaboration, unique UX features such as floating and stacked panes, and a [plugin system](https://zellij.dev/documentation/plugins.html) allowing one to create plugins in any language that compiles to WebAssembly.
You can get started by [installing](https://zellij.dev/documentation/installation.html) Zellij and checking out the [Screencasts & Tutorials](https://zellij.dev/screencasts/).
2020-10-26 19:30:21 +03:00
For more details about our future plans, read about upcoming features in our [roadmap](#roadmap).
2021-02-10 15:40:31 +03:00
2021-04-20 00:00:02 +03:00
## How do I install it?
The easiest way to install Zellij is through a [package for your OS](./docs/THIRD_PARTY_INSTALL.md).
2021-03-13 14:48:27 +03:00
If one is not available for your OS, you could download a prebuilt binary from the [latest release](https://github.com/zellij-org/zellij/releases/latest) and place it in your `$PATH`. If you'd like, we could [automatically choose one for you](#try-zellij-without-installing).
2021-03-13 14:48:27 +03:00
You can also install (compile) with `cargo`:
2022-03-14 08:04:31 +03:00
```
cargo install --locked zellij
2022-03-14 08:04:31 +03:00
```
#### Try Zellij without installing
bash/zsh:
```bash
bash <(curl -L zellij.dev/launch)
```
fish/xonsh:
```bash
bash -c 'bash <(curl -L zellij.dev/launch)'
```
#### Installing from `main`
Installing Zellij from the `main` branch is not recommended. This branch represents pre-release code, is constantly being worked on and may contain broken or unusable features. In addition, using it may corrupt the cache for future versions, forcing users to clear it before they can use the officially released version.
That being said - no-one will stop you from using it (and bug reports involving new features are greatly appreciated), but please consider using the latest release instead as detailed at the top of this section.
2021-09-29 17:12:56 +03:00
## How do I start a development environment?
2021-04-20 00:00:02 +03:00
* Clone the project
WIP: Use `xtask` as build system (#2012) * xtask: Implement a new build system xtask is a cargo alias that is used to extend the cargo build system with custom commands. For an introduction to xtask, see here: https://github.com/matklad/cargo-xtask/ The idea is that instead of writing makefiles, xtask requires no additional dependencies except `cargo` and `rustc`, which must be available to build the project anyway. This commit provides a basic implementation of the `build` and `test` subcommands. * xtask/deps: Add 'which' * xtask/test: Handle error when cargo not found * xtask/flags: Add more commands to perform different useful tasks. Includes: - clippy - format - "make" (composite) - "install" (composite) Also add more options to `build` to selectively compile plugins or leave them out entirely. * xtask/main: Return error when cargo not found * xtask/build: Add more subtasks - `wasm_opt_plugins` and - `manpage` that perform other build commands. Add thorough documentation on what each of these does and also handle the new `build` cli flags appropriately. * xtask/clippy: Add job to run clippy * xtask/format: Add job to run rustfmt * xtask/pipeline: Add composite commands that perform multiple atomic xtask commands sequentially in a pipeline sort of fashion. * xtask/deps: Pin dependencies * xtask/main: Integrate new jobs and add documentation. * xtask: Implement 'dist' which performs an 'install' and copies the resulting zellij binary along with some other assets to a `target/dist` folder. * cargo: Update xflags version * xtask: Measure task time, update tty title * xtask: Update various tasks * xtask: wasm-opt plugins in release builds automatically. * xtask/build: Copy debug plugins to assets folder * xtask: Add 'run' subcommand * xtask: Add arbitrary args to test and run * xtask: Rearrange CLI commands in help * xtask: Add deprecation notice * docs: Replace `cargo make` with `xtask` * github: Use `xtask` in workflows. * xtask: Add support for CI commands * xtask: Streamline error handling * github: Use new xtask commands in CI * xtask: Add 'publish' job * xtask/publish: Add retry when publish fails * xtask: Apply rustfmt * xtask: Refine 'make' deprecation warning * xtask: add task to build manpage * contributing: Fix e2e commands * xtask/run: Add missing `--` to pass all arguments following `xtask run` directly to the zellij binary being run. * xtask: Stay in invocation dir and make all tasks that need it change to the project root dir themselves. * xtask/run: Add `--data-dir` flag which will allow very quick iterations when not changing the plugins between builds. * xtask/ci: Install dependencies without asking * utils: Allow including plugins from target folder * utils/assets: Reduce asset map complexity * utils/consts: Update asset map docs * xtask: Fix plugin includes * xtask/test: Build plugins first because the zellij binary needs to include the plugins. * xtask/test: Fix formatting * xtask: Add notice on how to disable it
2022-12-17 16:27:18 +03:00
* In the project folder, for debug builds run: `cargo xtask run`
* To run all tests: `cargo xtask test`
2022-11-08 18:48:12 +03:00
For more build commands, see [CONTRIBUTING.md](CONTRIBUTING.md).
2021-04-20 00:00:02 +03:00
## Configuration
2022-11-08 18:48:12 +03:00
For configuring Zellij, please see the [Configuration Documentation](https://zellij.dev/documentation/configuration.html).
2020-10-27 13:00:48 +03:00
2024-07-09 17:46:46 +03:00
## About issues in this repository
Issues in this repository, whether open or closed, do not necessarily indicate a problem or a bug in the software. They only indicate that the reporter wanted to communicate their experiences or thoughts to the maintainers. The Zellij maintainers do their best to go over and reply to all issue reports, but unfortunately cannot promise these will always be dealt with or even read. Your understanding is appreciated.
2020-10-27 13:00:48 +03:00
2021-04-20 00:00:02 +03:00
## Roadmap
2022-05-13 18:16:29 +03:00
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.
2022-11-08 18:48:12 +03:00
***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***
2022-05-13 18:16:29 +03:00
[![roadmap](https://github.com/zellij-org/zellij/assets/795598/9c5b573b-20f5-41c6-908b-6b21c5fd456e)](https://zellij.dev/roadmap)
## Origin of the Name
[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Zellij)
Zellij (Arabic: الزليج, romanized: zillīj; also spelled zillij or zellige) is a style of mosaic tilework made from individually hand-chiseled tile pieces. The pieces were typically of different colours and fitted together to form various patterns on the basis of tessellations, most notably elaborate Islamic geometric motifs such as radiating star patterns composed of various polygons. This form of Islamic art is one of the main characteristics of architecture in the western Islamic world. It is found in the architecture of Morocco, the architecture of Algeria, early Islamic sites in Tunisia, and in the historic monuments of al-Andalus (in the Iberian Peninsula).
2020-11-04 12:58:48 +03:00
2021-04-20 00:00:02 +03:00
## License
2020-10-26 17:46:25 +03:00
MIT
2024-02-04 22:28:52 +03:00
## Sponsored by
2024-03-27 11:18:29 +03:00
<a href="https://terminaltrove.com/"><img src="https://avatars.githubusercontent.com/u/121595180?s=200&v=4" width="80px"></a>