A terminal workspace with batteries included | patched for cargo-deb packaging by pogmommy
Find a file
Jae-Heon Ji c8ddb23297
feat: add plugin permission system (#2624)
* WIP: add exaple of permission ui

* feat: add request permission ui

* feat: add caching permission in memory

* feat: add permission check

* feat: add file caching

* fix: changes request

* feat(ui): new status bar mode (#2619)

* supermode prototype

* fix integration tests

* fix tests

* style(fmt): rustfmt

* docs(changelog): status-bar supermode

* fix(rendering): occasional glitches while resizing (#2621)

* docs(changelog): resize glitches fix

* chore(version): bump development version

* Fix colored pane frames in mirrored sessions (#2625)

* server/panes/tiled: Fix colored frames

in mirrored sessions. Colored frames were previously ignored because
they were treated like floating panes when rendering tiled panes.

* CHANGELOG: Add PR #2625

* server/tab/unit: Fix unit tests for server.

* fix(sessions): use custom lists of adjectives and nouns for generating session names (#2122)

* Create custom lists of adjectives and nouns for generating session names

* move word lists to const slices

* add logic to retry name generation

* refactor

 - reuse the name generator
 - iterator instead of for loop

---------

Co-authored-by: Thomas Linford <linford.t@gmail.com>

* docs(changelog): generate session names with custom words list

* feat(plugins): make plugins configurable (#2646)

* work

* make every plugin entry point configurable

* make integration tests pass

* make e2e tests pass

* add test for plugin configuration

* add test snapshot

* add plugin config parsing test

* cleanups

* style(fmt): rustfmt

* style(comment): remove commented code

* docs(changelog): configurable plugins

* style(fmt): rustfmt

* touch up ui

* fix: don't save permission data in memory

* feat: load cached permission

* test: add example test (WIP)

* fix: issue event are always denied

* test: update snapshot

* apply formatting

* refactor: update default cache function

* test: add more new test

* apply formatting

* Revert "apply formatting"

This reverts commit a4e93703fbfdb6865131daa1c8b90fc5c36ab25e.

* apply format

* fix: update cache path

* apply format

* fix: cache path

* fix: update log level

* test for github workflow

* Revert "test for github workflow"

This reverts commit 01eff3bc5d1627a4e60bc6dac8ebe5500bc5b56e.

* refactor: permission cache

* fix(test): permission grant/deny race condition

* style(fmt): rustfmt

* style(fmt): rustfmt

* configure permissions

* permission denied test

* snapshot

* add ui for small plugins

* style(fmt): rustfmt

* some cleanups

---------

Co-authored-by: Aram Drevekenin <aram@poor.dev>
Co-authored-by: har7an <99636919+har7an@users.noreply.github.com>
Co-authored-by: Kyle Sutherland-Cash <kyle.sutherlandcash@gmail.com>
Co-authored-by: Thomas Linford <linford.t@gmail.com>
Co-authored-by: Thomas Linford <tlinford@users.noreply.github.com>
2023-08-12 15:35:42 +02:00
.cargo Use rust 1.67 (#2375) 2023-05-09 02:43:28 +00:00
.github feat(plugins): use protocol buffers for serializing across the wasm boundary (#2686) 2023-08-09 22:26:00 +02:00
assets chore(assets): adjust logo (#2358) 2023-04-12 15:04:01 +02:00
default-plugins feat: add plugin permission system (#2624) 2023-08-12 15:35:42 +02:00
docs Update architecture doc (#2371) 2023-04-21 09:50:21 +09:00
example chore(release): v0.37.0 2023-06-18 14:17:39 +02:00
src feat(ui): break pane to new tab and move panes between tabs (#2664) 2023-08-02 11:41:51 +02:00
xtask feat(plugins): Plugin workers and strider (#2449) 2023-05-16 12:47:18 +02:00
zellij-client chore(version): bump development version 2023-07-12 20:32:53 +02:00
zellij-server feat: add plugin permission system (#2624) 2023-08-12 15:35:42 +02:00
zellij-tile feat: add plugin permission system (#2624) 2023-08-12 15:35:42 +02:00
zellij-tile-utils chore(version): bump development version 2023-07-12 20:32:53 +02:00
zellij-utils feat: add plugin permission system (#2624) 2023-08-12 15:35:42 +02: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 feat(plugins): use protocol buffers for serializing across the wasm boundary (#2686) 2023-08-09 22:26:00 +02:00
Cargo.toml chore(version): bump development version 2023-07-12 20:32:53 +02:00
CHANGELOG.md docs(changelog): protobuffers 2023-08-09 22:27:06 +02:00
CODE_OF_CONDUCT.md docs(coc): initial 2020-10-27 11:11:10 +01:00
CONTRIBUTING.md docs(contributing): status of contributions 2023-06-14 13:24:34 +02: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(governance): Project Governance Change (#2174) 2023-02-17 23:10:39 +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 Add 'launch in xonsh' in README (#2323) 2023-03-30 11:14:51 +02:00
rust-toolchain.toml Use rust 1.67 (#2375) 2023-05-09 02:43:28 +00:00


logo
Zellij

Discord Chat Matrix Chat Zellij documentation

demo

[Installation] [Screencasts & Tutorials] [Configuration] [Layouts] [FAQ]

What is this?

Zellij is a workspace aimed at developers, ops-oriented people and anyone who loves the terminal. Similar programs are sometimes called "Terminal Multiplexers".

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.

Zellij is geared toward beginner and power users alike - allowing deep customizability, personal automation through layouts, true multiplayer collaboration, unique UX features such as floating and stacked panes, and a plugin system allowing one to create plugins in any language that compiles to WebAssembly.

You can get started by installing Zellij and checking out the Screencasts & Tutorials.

For more details about our future plans, read about upcoming features in our roadmap.

How do I install it?

The easiest way to install Zellij is through a package for your OS.

If one is not available for your OS, you could download a prebuilt binary from the latest release and place it in your $PATH. If you'd like, we could automatically choose one for you.

You can also install (compile) with cargo:

cargo install --locked zellij

Try Zellij without installing

bash/zsh:

bash <(curl -L zellij.dev/launch)

fish/xonsh:

bash -c 'bash <(curl -L zellij.dev/launch)'

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