Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Document the fact that a "sync" mode exists in tab commands #1

Open
wants to merge 56 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
a068618
docs(options): add copy options
tlinford Apr 26, 2022
bdeb30f
Document the fact that a "sync" mode exists in tab commands
dwvisser May 3, 2022
f81701f
feat: make mention of using a command to open a pane in a certain dir…
jmcdo29 May 5, 2022
40e0562
chore: build missing documents
jaeheonji May 10, 2022
8f70503
Merge pull request #126 from zellij-org/update-page
jaeheonji May 11, 2022
9697956
add roadmap
imsnif May 13, 2022
a781301
Merge branch 'main' of github.com:zellij-org/zellij-org.github.io
imsnif May 13, 2022
dbae84b
move svg
imsnif May 13, 2022
2c7243b
docs(integration): add to official link for sk
jaeheonji May 17, 2022
bcd590d
chore: build staticfiles
jaeheonji May 17, 2022
b68988b
Merge pull request #127 from zellij-org/add-deps-desc
jaeheonji May 17, 2022
75176f3
Merge pull request #121 from zellij-org/copy-options
a-kenji May 19, 2022
82dd03e
feat: fix typo and clarify the example is just for zsh
jmcdo29 May 19, 2022
c4cc44b
Merge pull request #125 from jmcdo29/feat/layout-pane-in-directory
a-kenji May 19, 2022
e889a78
Add initial version of bootstrap script
raphCode Jun 5, 2022
f196d43
Do not change working directory
raphCode Jun 5, 2022
940517e
Return zellij exit code or 2 on script failure
raphCode Jun 5, 2022
ff5236f
Rename to launch to make nicer URL
raphCode Jun 5, 2022
d7fefcf
Simplify exit code handling
raphCode Jun 5, 2022
4bfac20
Merge pull request #129 from zellij-org/bootstrap-script
raphCode Jun 6, 2022
cf3ffed
Add info for trying without installing
Jun 7, 2022
133ecd4
minor adjustments
imsnif Jun 7, 2022
a94a57f
Add instructions for trying Zellij without installing
imsnif Jun 7, 2022
c180f7e
add(option): default-layout
a-kenji Jun 7, 2022
2413c0e
Merge pull request #131 from a-kenji/add/default-layout
a-kenji Jun 7, 2022
19ff425
fix: envrc
a-kenji Jun 7, 2022
7d6c210
Merge pull request #132 from a-kenji/fix/envr
a-kenji Jun 7, 2022
adfe516
v0.30.0 post
imsnif Jun 8, 2022
54b37a2
Merge branch 'main' of github.com:zellij-org/zellij-org.github.io
imsnif Jun 8, 2022
1a4d47e
do not mute video
imsnif Jun 8, 2022
52e4411
clarify editor example
imsnif Jun 8, 2022
992739f
Add FAQ and fix layout example
imsnif Jun 8, 2022
4a2915b
Add broken UI and nerdfonts faq
imsnif Jun 8, 2022
d84d777
fix: typo
a-kenji Jun 11, 2022
e1da6b4
Merge pull request #133 from a-kenji/fix/typo-1
a-kenji Jun 11, 2022
e1b352d
add: nerdfont instruction
a-kenji Jun 11, 2022
56f0255
Merge pull request #134 from a-kenji/add/instruction-nerdfonts
a-kenji Jun 11, 2022
9f26ffd
add docs for zig plugins
LordMZTE Jun 13, 2022
fa8a53c
Merge pull request #135 from LordMZTE/zellzig
a-kenji Jun 13, 2022
182fe18
chore(render): render current version
a-kenji Jun 13, 2022
5fdd2b5
Merge pull request #137 from a-kenji/render
a-kenji Jun 13, 2022
7276d5a
add: generate themes
a-kenji Jun 13, 2022
69efa3a
Merge pull request #136 from a-kenji/add/generate-themes
a-kenji Jun 14, 2022
4ed84dc
merge
a-kenji Jun 14, 2022
dc2d421
add: theme gallery
a-kenji Jun 14, 2022
622110b
Merge pull request #139 from a-kenji/add/theme-gallery
a-kenji Jun 14, 2022
ff07d67
fix(gitignore): add theme gallery
a-kenji Jun 14, 2022
787b133
Merge pull request #140 from a-kenji/add/theme-gallery-2
a-kenji Jun 14, 2022
cad0e07
add: update-themes to justfile
a-kenji Jun 15, 2022
bdc55a7
Merge pull request #141 from a-kenji/add/improve-just
a-kenji Jun 15, 2022
9682560
move: actions
a-kenji Jun 15, 2022
041f5ad
Merge pull request #142 from a-kenji/move-actions
a-kenji Jun 15, 2022
fdb301b
add: new actions
a-kenji Jun 15, 2022
e19bca6
Merge pull request #144 from a-kenji/add-actions
a-kenji Jun 15, 2022
6670d61
Merge branch 'main' into dwvisser-patch-1
dwvisser Jun 20, 2022
3817db7
Modified keybinding modes markdown instead, and pushing rebuilt HTML …
dwvisser Jun 20, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .envrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
use_flake
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
.envrc
.direnv/
result/
result
/*.png

# Created by https://www.toptal.com/developers/gitignore/api/hugo
# Edit at https://www.toptal.com/developers/gitignore?templates=hugo
Expand Down
5 changes: 5 additions & 0 deletions config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -175,6 +175,11 @@ disableHugoGeneratorInject = false
identifier = "news"
name = "News"
url = "news/"
[[menu.main]]
weight = 2
identifier = "roadmap"
name = "Roadmap"
url = "roadmap/"
[[menu.main]]
weight = 3
identifier = "screenshots"
Expand Down
66 changes: 66 additions & 0 deletions content/news/edit-scrollback-compact.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
---
author: "Aram Drevekenin"
authorlink: "https://twitter.com/im_snif"
date: 2022-06-08
linktitle: "Zellij 0.30.0: use your $EDITOR to search and save your scrollback"
type:
- post
- posts
title: "Zellij 0.30.0: use your $EDITOR to search and save your scrollback"
images: ["/img/floating-panes-preview.png"]
description: "The latest Zellij version introduces the ability to edit your scrollback with your $EDITOR, a compact layout and much more!"
alttext: "An image of the Zellij terminal multiplexer"
weight: 10
---

We just released [Zellij 0.30.0](https://github.com/zellij-org/zellij/releases/tag/v0.30.0), which adds a few very exciting features.

The new release is available through crates.io with a `cargo install zellij`, a prebuilt binary can be downloaded directly from the release page, or you can check our [third party release page](https://github.com/zellij-org/zellij/blob/main/THIRD_PARTY_INSTALL.md) to see if it's already available for your distro.

Starting this release, you can also try Zellij without installing it (check out the main page: [https://zellij.dev](https://zellij.dev)).

So what's new?

### Edit your scrollback in your default $EDITOR
Imagine you're working in a session and you'd like to:
1. Save all your scrollback for later for reference or to send to a friend
2. Copy parts of the scrollback and save them in a different file
3. Search through the scrollback just like you would through a normal file

Starting with this version, you can issue a `Ctrl + <s> + <e>` and Zellij will open the editor you have defined in `$EDITOR` or `$VISUAL` (eg. /usr/bin/vim) in place instead of your pane.
There you can edit the file, save it, copy from it or search inside it. Once you close the editor (or close the pane normally with `Ctrl + <p> + <x>`), you'll be back in your pane where you started.

{{< video "/video/edit-buffer-demo.mp4" "my-5" >}}

### Compact layout

One of the things we hear a lot from users is that while they really like the discoverability of the Zellij UI, after a while once they've learned the shortcuts it takes up too much screen real-estate.
Starting this version, Zellij also includes a "compact" layout. You can get it by starting Zellij with:

```
zellij --layout compact
```

This version of our UI includes just one bar with the session name, tabs and the current input mode.

{{<figure src="/img/compact-bar.png" class="center">}}

If you'd like even more screen space, you can always additionally disable the pane frames. At run time using `Ctrl + <p> + <z>` or in the config using `pane-frames: false`.

### Handy Tips at Runtime

One of the cool things about Zellij is that a lot of its features are community driven. Contributed not as part of an official roadmap, but in order to scratch an itch for one or more of its users. As such, these can sometimes be a little challenging to discover. No matter how much documentation we add, there is no substitute to finding out about these extra features from the app itself.

Starting this version - if you do choose to load the full UI with the status bar - you'll see a random tip on the bottom line to hopefully help brighten up your workflow.

{{<figure src="/img/tip-preview.png" class="center">}}

#### [And there's lots more in this version!](https://github.com/zellij-org/zellij/releases/tag/v0.30.0)

### So what's next for Zellij?

We've recently published a roadmap for the near to medium future. You can check it out [here](https://zellij.dev/roadmap).

Zellij is a volunteer not-for-profit open-source project. Most of our maintainers have started out contributing features and fixing bugs. If one of the features in the roadmap interests you, we'd be very happy to guide you through implementing it. Feel free to drop by one of our chat servers (links in the [README](https://github.com/zellij-org/zellij)) or ask for help in the issue directly.

Happy terminal multiplexing!
12 changes: 12 additions & 0 deletions content/roadmap.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
title: "Zellij 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.

Each issue links to our repository where you can find further details about it.

{{< roadmap >}}
{{< /roadmap >}}
5 changes: 4 additions & 1 deletion docs/src/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,23 @@
- [Installation](./installation.md)
- [Overview](./overview.md)
- [Integration](./integration.md)
- [FAQ](./faq.md)
- [Commands](./commands.md)
- [Configuration](./configuration.md)
- [Options](./options.md)
- [Configuring Keybindings](./keybindings.md)
- [Modes](./keybindings-modes.md)
- [Keys](./keybindings-keys.md)
- [Actions](./keybindings-actions.md)
- [Examples](./keybindings-examples.md)
- [Themes](./themes.md)
- [Theme Gallery](./theme-gallery.md)
- [Actions](./actions.md)
- [Layouts](./layouts.md)
- [Templates](./layouts-templates.md)
- [Plugins](./plugins.md)
- [Overview](./plugin-overview.md)
- [Developing a Plugin](./plugin-writing.md)
- [Rust](./plugin-rust.md)
- [Zig](./plugin-zig.md)
- [Other Languages](./plugin-other.md)
- [Compatibility](./compatibility.md)
6 changes: 6 additions & 0 deletions docs/src/keybindings-actions.md → docs/src/actions.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# Actions
These are the actions that can be assigned to key sequences when [configuring keybindings](./keybindings.md).
Or that can be invoked by the `zellij action` command.

## `Quit`
Quit Zellij.
Expand Down Expand Up @@ -133,3 +134,8 @@ Write the specified bytes in the focused pane.
## `WriteChars: <characters>`
Write the specified characters in the focused pane.

## `DumpScreen: <path>`
Dump the scrollback of the currently selected pane inside of a selected file.

## `EditScrollback`
Edit the scrollback buffer inside of your specified $EDITOR, or $VISUAL.
2 changes: 2 additions & 0 deletions docs/src/compatibility.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ Some Options:
| apt |fonts-powerline |
| nix | nerdfonts |

Post installation the appropriate environment needs to be aware of the font.

## Alt button mapping on darwin systems:

This can be mitigated individually on a terminal emulator level,
Expand Down
39 changes: 39 additions & 0 deletions docs/src/faq.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# FAQ

## Zellij overrides certain key combinations that I use for other apps, what can I do?
As an "escape hatch" solution, you can lock the interface with `Ctrl + g` - at this point all keys will be sent to the focused pane.

You could also [remap keys](./keybindings.md) to work around this problem.

That being said, the maintainers are aware that this default set of keybindings is not an ideal solution. We tried to find a solution that would both be powerful, allowing few and memorable keypresses to be used for common actions, and also unobtrusive. Finding a solution that would do better in the latter while still maintaining the former is something we're actively thinking about and planning on changing in the future. If you have any thoughts, please do share them in an issue or in one of our chat servers.

## The UI takes up too much space, what can I do about it?

You can load the `compact` layout with `zellij --layout compact`.

Additionally, you can disable pane frames either at runtime with `Ctrl + <p> + <z>` or through the [config](./configuration.md) with `pane_frames: false`.

## I see broken characters in the default UI, how can I fix this?
This means your default terminal font doesn't include some special characters used by Zellij. A safe bet would be to install and use a font from [nerdfonts](https://www.nerdfonts.com).

If you don't want to install a new font, you can also load the simplified UI that doesn't use these characters, with:
```
zellij options --simplified-ui true
```

## How can I use floating panes?
You can toggle showing/hiding floating panes with `Ctrl + <p> + <w>` (if no floating panes are open, one will be opened when they are shown).

In this mode you can create additional windows as you would normally create panes (eg. with `Alt + <n>`). Move them with the mouse or the keyboard, and resize them as you would normally resize or move Zellij panes.

You can also embed a floating pane with `Ctrl + <p> + <e>`, and float an embedded pane in the same way.

## How can I sync input to multiple panes?
You can toggle sync input to all panes in a tab with `Ctrl + <t> + <s>`. Then everything you type will be sent to all panes in the tab.

## Editing the pane scrollbuffer with `ctrl + <s> + <e>` doesn't work, what's wrong?

By default, Zellij looks for an editor defined in the `EDITOR` or `VISUAL` environment variables (in this order).
Make sure one is set (eg. `export EDITOR=/usr/bin/vim`) before Zellij starts.
Alternatively, you can set one in the Zellij [config](./configuration.md) using `scrollback-editor`.

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion docs/src/integration.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ The following environment variables can also be used in the provided script.

## List current sessions
List current sessions, attach to a running session, or create a new one.
Depends on `sk` & `bash`
Depends on [`sk`](https://github.com/lotabout/skim) & `bash`

```
#!/usr/bin/env bash
Expand Down
2 changes: 1 addition & 1 deletion docs/src/keybindings-modes.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ It is intended to give users a workaround in case one of the default keybindings
## pane
This mode includes instructions that manipulate the different panes. Eg. adding new panes, closing panes and moving the focused pane.
## tab
This mode includes instructions that manipulate the different tabs. Eg. adding new tabs, closing tabs and moving the active tab.
This mode includes instructions that manipulate the different tabs. Eg. adding new tabs, closing tabs, moving the active tab, and toggling a "sync" mode that sends text to all panes in the current tab.
## resize
This mode allows the resizing of the focused pane.
## scroll
Expand Down
15 changes: 12 additions & 3 deletions docs/src/layouts.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,21 @@ These files can describe a layout of terminal panes and plugins that Zellij will
To load a layout with Zellij:

```
zellij --layout-path /path/to/your/layout_file.yaml
zellij --layout /path/to/your/layout_file.yaml
```

By default Zellij will load the `default.yaml` layout, that is found in the
`layouts` directory (by default a subdirectory of the `config`
directory [config/layouts]). Falling back to an internal default layout,
if not found.
Layouts residing in the default directory can be accessed as follows:

```
zellij --layout [layout_name]
```

The difference being: if a path (either absolute or relative) is supplied to `--layout`, it will load the layout from that path. If a bare name is supplied, it will load a built-in layout from the default directory.

## Example
This file:
```yaml
Expand Down Expand Up @@ -118,6 +121,14 @@ run:
command: {cmd: htop, args: ["-C"]}
```

This can be used to open a pane in a specified directory by making use of your shell's `command` flag and `cd path/to/directory && <shell>`. The following command is **only** for `zsh`. It may work for other shells, but it is not guaranteed. Check your shell's documentation for how to use the command flag.

Example:
```
run:
command: { cmd: zsh, args: ["-c", "cd ~/Documents/code/zellij && zsh"] }
```

### `name: <name-of-the-tab>`
This is an optional command that can be used to name the `tab` in the tab layout
section.
Expand Down Expand Up @@ -209,7 +220,5 @@ default_shell: fish
```



## Further examples
Please take a look at the [default](https://github.com/zellij-org/zellij/tree/main/zellij-utils/assets/layouts) layouts that come with Zellij, or the layouts that reside in the [example](https://github.com/zellij-org/zellij/tree/main/example) directory for more complete layouts.

5 changes: 5 additions & 0 deletions docs/src/options.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ Eg. `zellij options --simplified-ui true` is equivalent to `simplified_ui: true`
|---------------|-------------------|:--------------:|------------|
| default-mode | default_mode | normal | The first mode on startup. |
| default-shell | default_shell | $SHELL | The default shell. |
| default-layout | default_layout | default | The name of the default layout. |
| mouse-mode | mouse_mode | true | Enable mouse mode. |
| disable-mouse-mode | - | false | Disable mouse mode. |
| simplified-ui | simplified_ui | false | Request the Plugins to use a more compatible ui. |
Expand All @@ -18,6 +19,10 @@ Eg. `zellij options --simplified-ui true` is equivalent to `simplified_ui: true`
| theme | theme | default | Switch to a theme configured under the `themes` section. |
| scroll-buffer-size| scroll_buffer_size | 10000 | The number of lines zellij stores for each pane in the scroll back buffer.|
| _ | env | empty | A map of key value pairs for environment variables. |
| copy-command | copy_command | _ | Command to execute when copying text, instead of using OSC52 (for example wl-copy, xclip, pbcopy). |
| copy-clipboard | copy_clipboard | system | Destination selection buffer (x11/linux) for OSC52 copy, can be system or primary. |
| copy-on-select | copy_on_select | true | Automatically copy when selecting text. |
| scrollback-editor | scrollback_editor | - | Path to the editor to use to edit scrollback (eg. `/usr/bin/vim`) |



Expand Down
2 changes: 1 addition & 1 deletion docs/src/plugin-writing.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# Developing a Plugin

Currently we have a complete guide for developing plugins in [Rust](./plugin-rust.md) and plan to add more guides for other languages in the future. If you are feeling particularly brave, you can try to write plugins in another language today! The [Other Languages](./plugin-other.md) section will get you started.
Currently we have a complete guide for developing plugins in [Rust](./plugin-rust.md) and in [Zig](./plugin-zig.md). We plan to add more guides for other languages in the future. If you are feeling particularly brave, you can try to write plugins in another language today! The [Other Languages](./plugin-other.md) section will get you started.
Loading