A terminal workspace with batteries included
Go to file
Bradford Hovinen 312817fcf6
fix(config): add support for Ctrl and Alt modifiers on function keys in keybindings (#3179)
Previously, it was not possible to define keybindings with a modifier
and a function key. The `Key` enum only supported combinging the Ctrl
and Alt modifiers with letters. This is somewhat limiting: I would like
to make the Zellij keybindings more "distant" than those used in the
programs I use from within Zelilj, so that Zellij does not intefere with
those programs. Thus I would like to move some of the keybindings from
Ctrl+<character> to Ctrl+<function key>.

This change adds:

  * support for function keys with the Ctrl and Alt modifiers in the
    `Key` enum,
  * support for parsing such keybindings from the configuration file,
  * support for such keybindings in the protobuf which communicates the
    keybindings to plugins, and
  * support for these keybindings in the plugin API.

This is tested by modifying one of the e2e tests to include an example
of such keybindings. This verifies that the configuration is correctly
parsed, communicated with the plugin, and rendered.
2024-03-25 15:04:38 +01:00
.cargo Use rust 1.67 (#2375) 2023-05-09 02:43:28 +00:00
.github chore(repo): update issue templates 2023-12-28 16:46:14 +01:00
assets chore(assets): adjust logo (#2358) 2023-04-12 15:04:01 +02:00
default-plugins fix(config): add support for Ctrl and Alt modifiers on function keys in keybindings (#3179) 2024-03-25 15:04:38 +01:00
docs docs: Update Arch Linux package URL in THIRD_PARTY_INSTALL.md (#2956) 2023-12-01 18:51:32 +01:00
example chore(release): v0.39.0 2023-11-07 08:36:31 +01:00
src fix(config): add support for Ctrl and Alt modifiers on function keys in keybindings (#3179) 2024-03-25 15:04:38 +01:00
xtask fix(terminal): improve reflow performance and general memory usage by reducing size of TerminalCharacter (#3043) 2024-01-22 15:28:57 +01:00
zellij-client fix(startup): recover from race condition that causes Zellij to start in the wrong size (#3218) 2024-03-25 10:28:21 +01:00
zellij-server style(fmt): fix warnings (#3223) 2024-03-25 14:22:52 +01:00
zellij-tile feat(plugins): session manager cwd and new filepicker (#3200) 2024-03-18 09:19:58 +01:00
zellij-tile-utils chore(version): bump development version 2023-11-29 13:13:23 +01:00
zellij-utils fix(config): add support for Ctrl and Alt modifiers on function keys in keybindings (#3179) 2024-03-25 15:04:38 +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 feat(plugins): session manager cwd and new filepicker (#3200) 2024-03-18 09:19:58 +01:00
Cargo.toml chore(version): bump development version 2023-11-29 13:13:23 +01:00
CHANGELOG.md docs(changelog): fix for wrong window size on terminal startup 2024-03-25 10:30:25 +01:00
CODE_OF_CONDUCT.md docs(coc): initial 2020-10-27 11:11:10 +01:00
CONTRIBUTING.md chore(repo): update build instructions 2023-08-28 17:47:49 +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 docs(readme): add sponsor 2024-02-04 20:28:52 +01:00
rust-toolchain.toml Bump rust version to 1.75.0 (#3039) 2024-01-08 16:56:01 +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

Sponsored by