A terminal workspace with batteries included | patched for cargo-deb packaging by pogmommy
Find a file
Aram Drevekenin f1ff272b0b
feat(ui): swap layouts and stacked panes (#2167)
* 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
2023-02-17 12:05:50 +01:00
.cargo WIP: Use xtask as build system (#2012) 2022-12-17 13:27:18 +00:00
.github chore(repo): remove nix support (#2038) 2022-12-20 12:24:19 +01:00
assets HOTFIX: utils: Move plugins into new assets folder (#2003) 2022-12-09 10:49:32 +00:00
default-plugins feat(ui): swap layouts and stacked panes (#2167) 2023-02-17 12:05:50 +01:00
docs docs: Improve error handling docs (#1919) 2022-11-09 18:01:36 +00:00
example feat(themes): add pencil light (#2157) 2023-02-13 18:01:33 +01:00
src feat(ui): swap layouts and stacked panes (#2167) 2023-02-17 12:05:50 +01:00
xtask chore(build): make the singlepass compiler opt-in through flags (#2146) 2023-02-13 17:52:10 +01:00
zellij-client feat(cli): add GoToTabName action to switch tab by name (#2120) 2023-02-07 15:45:59 +01:00
zellij-server feat(ui): swap layouts and stacked panes (#2167) 2023-02-17 12:05:50 +01:00
zellij-tile chore: Bump development version 2022-12-13 17:24:19 +01:00
zellij-tile-utils chore: Bump development version 2022-12-13 17:24:19 +01:00
zellij-utils feat(ui): swap layouts and stacked panes (#2167) 2023-02-17 12:05:50 +01:00
.editorconfig add: editorconfig (#1156) 2022-03-02 12:12:26 +01:00
.gitignore chore(repo): remove nix support (#2038) 2022-12-20 12:24:19 +01:00
.rustfmt.toml add(style): add trailing comma in match blocks (#1483) 2022-06-10 20:03:13 +02:00
Cargo.lock chore(deps): update termwiz to v0.20.0 (#2169) 2023-02-17 11:01:47 +01:00
Cargo.toml chore(build): make the singlepass compiler opt-in through flags (#2146) 2023-02-13 17:52:10 +01:00
CHANGELOG.md docs(changelog): termwiz update 2023-02-17 11:05:15 +01:00
CODE_OF_CONDUCT.md docs(coc): initial 2020-10-27 11:11:10 +01:00
CONTRIBUTING.md chore(build): make the singlepass compiler opt-in through flags (#2146) 2023-02-13 17:52:10 +01:00
docker-compose.yml fix(docker-compose): Use the key-value style for environments to prevent human errors (#840) 2021-11-09 20:29:22 +01:00
GOVERNANCE.md docs(changelog): add emeritus 2022-12-20 10:04:34 +01:00
LICENSE.md Update references of mosaic to Zellij in md files 2021-02-10 12:12:19 +05:30
Makefile.toml Makefile: Fix CI ordering/dependencies (#2004) 2022-12-09 11:06:11 +00:00
README.md chore(repo): remove nix support (#2038) 2022-12-20 12:24:19 +01:00
rust-toolchain.toml [create-pull-request] automated change (#1980) 2022-12-01 09:40:36 +01:00


logo
Zellij

Discord Chat Matrix Chat Zellij documentation

demo

[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:

  1. 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.
  2. Drop by our Discord, or Matrix chat and ask what you can work on, or how to get started.
  3. 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
  • In the project folder, for debug builds run: cargo xtask run
  • To run all tests: cargo xtask 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

roadmap

License

MIT