summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordenis <denismaximov98@gmail.com>2021-05-01 13:45:01 +0300
committerdenis <denismaximov98@gmail.com>2021-05-01 13:45:01 +0300
commiteabecde90b1617ce4c29be9d5af3f52ccb67e45f (patch)
tree0d0dafa594269045f084383a9719f2a4995fe7ea
parenta8adfdfd60c73109c5febf470f639862b331ed94 (diff)
parent325fc5620f07412381dd47dcf7cf9e141a3d66bf (diff)
chore: painless merge this time
-rw-r--r--.github/ISSUE_TEMPLATE/bug_report.md25
-rw-r--r--.github/workflows/release.yml118
-rw-r--r--.gitignore1
-rw-r--r--CHANGELOG.md13
-rw-r--r--Cargo.lock4
-rw-r--r--Cargo.toml6
-rw-r--r--Makefile.toml11
-rw-r--r--assets/completions/_zellij90
-rw-r--r--assets/completions/zellij.bash117
-rw-r--r--assets/completions/zellij.fish17
-rw-r--r--assets/config/default.yaml217
-rw-r--r--assets/plugins/status-bar.wasmbin415630 -> 437703 bytes
-rw-r--r--assets/plugins/strider.wasmbin518238 -> 547437 bytes
-rw-r--r--assets/plugins/tab-bar.wasmbin407203 -> 430772 bytes
-rw-r--r--build.rs23
-rw-r--r--default-plugins/tab-bar/src/main.rs8
-rw-r--r--default-plugins/tab-bar/src/tab.rs13
-rw-r--r--example/default.yaml68
-rw-r--r--example/screen-overview.yaml353
-rw-r--r--example/screen.nonfunctional170
-rw-r--r--example/tmux-overview.yaml386
-rw-r--r--example/tmux.nonfunctional203
-rw-r--r--rust-toolchain2
-rw-r--r--src/cli.rs23
-rw-r--r--src/client/layout.rs12
-rw-r--r--src/client/panes/grid.rs133
-rw-r--r--src/client/panes/plugin_pane.rs3
-rw-r--r--src/client/panes/terminal_character.rs12
-rw-r--r--src/client/panes/terminal_pane.rs22
-rw-r--r--src/client/panes/unit/grid_tests.rs85
-rw-r--r--src/client/panes/unit/snapshots/zellij__client__panes__grid__grid_tests__vttest1_0.snap47
-rw-r--r--src/client/panes/unit/snapshots/zellij__client__panes__grid__grid_tests__vttest1_1.snap47
-rw-r--r--src/client/panes/unit/snapshots/zellij__client__panes__grid__grid_tests__vttest1_2.snap47
-rw-r--r--src/client/panes/unit/snapshots/zellij__client__panes__grid__grid_tests__vttest1_3.snap47
-rw-r--r--src/client/panes/unit/snapshots/zellij__client__panes__grid__grid_tests__vttest1_4.snap47
-rw-r--r--src/client/panes/unit/snapshots/zellij__client__panes__grid__grid_tests__vttest1_5.snap47
-rw-r--r--src/client/tab.rs39
-rw-r--r--src/common/errors.rs2
-rw-r--r--src/common/input/actions.rs2
-rw-r--r--src/common/input/config.rs58
-rw-r--r--src/common/input/handler.rs16
-rw-r--r--src/common/input/keybinds.rs286
-rw-r--r--src/common/install.rs46
-rw-r--r--src/common/mod.rs40
-rw-r--r--src/common/screen.rs18
-rw-r--r--src/common/utils/consts.rs6
-rw-r--r--src/common/wasm_vm.rs106
-rw-r--r--src/main.rs19
-rw-r--r--src/tests/fixtures/vttest1-034
-rw-r--r--src/tests/fixtures/vttest1-148
-rw-r--r--src/tests/fixtures/vttest1-276
-rw-r--r--src/tests/fixtures/vttest1-3137
-rw-r--r--src/tests/fixtures/vttest1-4112
-rw-r--r--src/tests/fixtures/vttest1-5113
-rw-r--r--zellij-tile/Cargo.toml2
-rw-r--r--zellij-tile/src/data.rs15
-rw-r--r--zellij-tile/src/shim.rs31
57 files changed, 2921 insertions, 702 deletions
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
index 5e6553c91..b5098a54b 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -1,5 +1,26 @@
---
-name: Bug Report
-about: Create a bug report
+name: "\U0001F41B Bug Report"
+about: "If something isn't working as expected."
labels: bug
---
+Thank you for taking the time to file an issue!
+You can erase any parts of this template not applicable to your issue.
+
+## In Case of Graphical, or Performance Issues
+
+Please run `zellij --debug` and then recreate your issue.
+
+Please attach the files that were created in
+
+`/tmp/zellij/zellij-log/`
+
+To the extent you are comfortable with.
+
+Also please add the size in columns/lines of the terminal in which the bug happened. You can usually find these out with `tput lines` and `tput cols`.
+
+And the name and version of progams you interacted with as well as
+the operating system.
+
+## Information
+
+`zellij --version`:
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
new file mode 100644
index 000000000..d3733ddea
--- /dev/null
+++ b/.github/workflows/release.yml
@@ -0,0 +1,118 @@
+name: Release
+on:
+ push:
+ tags:
+ - 'v*.*.*'
+ workflow_dispatch:
+
+jobs:
+ build-release:
+ needs: create-release
+ name: build-release
+ runs-on: ${{ matrix.os }}
+ env:
+ RUST_BACKTRACE: 1
+ strategy:
+ matrix:
+ build:
+ - linux musl x64
+ - linux musl aarch64
+ - macos x64
+ - macos aarch64
+ include:
+ - build: linux musl x64
+ os: ubuntu-latest
+ rust: beta
+ target: x86_64-unknown-linux-musl
+ - build: linux musl aarch64
+ os: ubuntu-latest
+ rust: beta
+ target: aarch64-unknown-linux-musl
+ - build: macos x64
+ os: macos-latest
+ rust: beta
+ target: x86_64-apple-darwin
+ - build: macos aarch64
+ os: macos-latest
+ rust: beta
+ target: aarch64-apple-darwin
+ steps:
+ - name: Set release tag
+ run: |
+ if [ "$GITHUB_EVENT_NAME" == 'workflow_dispatch' ]; then
+ echo "RELEASE_TAG=main" >> $GITHUB_ENV
+ else
+ echo "RELEASE_TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
+ fi
+
+ - name: Checkout repository
+ uses: actions/checkout@v2
+
+ - name: Install Rust
+ uses: actions-rs/toolchain@v1
+ with:
+ toolchain: ${{ matrix.rust }}
+ profile: minimal
+ override: true
+ target: ${{ matrix.target }}
+
+ - name: Add WASM target
+ run: rustup target add wasm32-wasi
+
+ - name: Install cargo-make
+ run: cargo install --debug cargo-make
+
+ - name: Install musl-tools
+ if: matrix.os == 'ubuntu-latest'
+ run: sudo apt-get install -y --no-install-recommends musl-tools
+
+ - name: Install wasm-opt
+ run: brew install binaryen
+
+ # Workaround for <https://github.com/actions/virtual-environments/issues/2557>
+ - name: Switch Xcode SDK
+ if: runner.os == 'macos'
+ run: |
+ cat <<EOF >> "$GITHUB_ENV"
+ SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk
+ EOF
+
+ - name: Build release binary
+ run: cargo make ci-build-release ${{ matrix.target }}
+
+ - name: Strip release binary
+ run: strip "target/${{ matrix.target }}/release/zellij"
+
+ - name: Tar release
+ id: make-artifact
+ working-directory: ./target/${{ matrix.target }}/release
+ run: |
+ name="zellij-${{ matrix.target }}.tar.gz"
+ tar cvzf "${name}" "zellij"
+ echo "::set-output name=name::${name}"
+ - name: Upload release archive
+ uses: actions/upload-release-asset@v1.0.1
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ upload_url: ${{ needs.create-release.outputs.upload_url }}
+ asset_path: ./target/${{ matrix.target }}/release/${{ steps.make-artifact.outputs.name }}
+ asset_name: zellij-${{matrix.target}}.tar.gz
+ asset_content_type: application/octet-stream
+
+ create-release:
+ runs-on: ubuntu-latest
+ outputs:
+ upload_url: ${{ steps.create_release.outputs.upload_url }}
+ steps:
+ - name: create_release
+ id: create_release
+ uses: actions/create-release@v1
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ tag_name: ${{ github.event_name == 'workflow_dispatch' && '' || github.ref }}
+ release_name: Release ${{ github.event_name == 'workflow_dispatch' && 'main' || github.ref }}
+ draft: ${{ github.event_name == 'workflow_dispatch' }}
+ prerelease: false
+
diff --git a/.gitignore b/.gitignore
index a5d0f5fc4..f211f382b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,4 @@
*.new
.vscode
.vim
+.DS_Store \ No newline at end of file
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ed90c8a1d..76dd7497f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,7 +5,20 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
## [Unreleased]
+* Fix the tab '(Sync)' suffix in named tabs (https://github.com/zellij-org/zellij/pull/410)
+* Improve performance when multiple panes are open (https://github.com/zellij-org/zellij/pull/318)
+
+## [0.6.0] - 2021-04-29
* Doesn't quit anymore on single `q` press while in tab mode (https://github.com/zellij-org/zellij/pull/342)
+* Completions are not assets anymore, but commands `option --generate-completion [shell]` (https://github.com/zellij-org/zellij/pull/369)
+* Fixes in the default configuration `default.yaml` file. Adds initial tmux-compat keybindings `tmux.yaml` (https://github.com/zellij-org/zellij/pull/362)
+* Added the `get_plugin_ids()` query function to the plugin API (https://github.com/zellij-org/zellij/pull/392)
+* Implemented simple plugin timers via the `set_timeout()` call (https://github.com/zellij-org/zellij/pull/394)
+* Added more configuration locations, changed `ZELLIJ_CONFIG` to `ZELLIJ_CONFIG_FILE` (https://github.com/zellij-org/zellij/pull/391)
+* Improved keybind handling (https://github.com/zellij-org/zellij/pull/400)
+* Added initial screen-compat keybinds `screen.yaml` (https://github.com/zellij-org/zellij/pull/399)
+* Added the ability to synchronize input sent to panes (https://github.com/zellij-org/zellij/pull/395)
+* Terminal fix: pass vttest 1 (https://github.com/zellij-org/zellij/pull/408)
## [0.5.1] - 2021-04-23
* Change config to flag (https://github.com/zellij-org/zellij/pull/300)
diff --git a/Cargo.lock b/Cargo.lock
index 7c5efaa07..4058fad7d 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -2217,7 +2217,7 @@ dependencies = [
[[package]]
name = "zellij"
-version = "0.6.0"
+version = "0.7.0"
dependencies = [
"ansi_term 0.12.1",
"async-std",
@@ -2252,7 +2252,7 @@ dependencies = [
[[package]]
name = "zellij-tile"
-version = "1.0.0"
+version = "1.1.0"
dependencies = [
"serde",
"serde_json",
diff --git a/Cargo.toml b/Cargo.toml
index 618b49d9b..1988dffa3 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,13 +1,13 @@
[package]
name = "zellij"
-version = "0.6.0"
+version = "0.7.0"
authors = ["Aram Drevekenin <aram@poor.dev>"]
edition = "2018"
description = "A terminal workspace with batteries included"
license = "MIT"
repository = "https://github.com/zellij-org/zellij"
homepage = "https://zellij.dev"
-include = ["src/**/*", "assets/plugins/*", "assets/layouts/*", "LICENSE.md", "README.md", "!**/*_test.*", "!**/tests/**/*"]
+include = ["src/**/*", "assets/plugins/*", "assets/layouts/*", "assets/config/*", "LICENSE.md", "README.md", "!**/*_test.*", "!**/tests/**/*"]
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
@@ -38,7 +38,7 @@ wasmer-wasi = "1.0.0"
interprocess = "1.0.1"
xrdb = "0.1.1"
colors-transform = "0.2.5"
-zellij-tile = { path = "zellij-tile/", version = "1.0.0" }
+zellij-tile = { path = "zellij-tile/", version = "1.1.0" }
[dependencies.async-std]
version = "1.3.0"
diff --git a/Makefile.toml b/Makefile.toml
index 83cdcb854..628899f9d 100644
--- a/Makefile.toml
+++ b/Makefile.toml
@@ -84,9 +84,10 @@ script = '''
plugins = glob_array ${CARGO_TARGET_DIR}/wasm32-wasi/release/*.wasm
for plugin in ${plugins}
+ mkdir ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/assets/plugins/
plugin_name = basename ${plugin}
plugin_out = set ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/assets/plugins/${plugin_name}
- if is_path_newer ${plugin} ${plugin_out}
+ if not is_path_exists ${plugin_out} or is_path_newer ${plugin} ${plugin_out}
exec wasm-opt -O ${plugin} -o ${plugin_out}
end
end
@@ -95,10 +96,14 @@ end
# CI Releasing Zellij
[tasks.ci-build-release]
workspace = false
-dependencies = ["build-plugins-release", "wasm-opt-plugins", "build-release"]
-command = "cargo"
+dependencies = ["setup-cross-compilation", "build-plugins-release", "wasm-opt-plugins"]
+command = "cross"
args = ["build", "--verbose", "--release", "--target", "${CARGO_MAKE_TASK_ARGS}"]
+[tasks.setup-cross-compilation]
+command = "cargo"
+args = ["install", "cross"]
+
# Publishing Zellij
[tasks.publish]
clear = true
diff --git a/assets/completions/_zellij b/assets/completions/_zellij
deleted file mode 100644
index 774a28fa4..000000000
--- a/assets/completions/_zellij
+++ /dev/null
@@ -1,90 +0,0 @@
-#compdef zellij
-
-autoload -U is-at-least
-
-_zellij() {
- typeset -A opt_args
- typeset -a _arguments_options
- local ret=1
-
- if is-at-least 5.2; then
- _arguments_options=(-s -S -C)
- else
- _arguments_options=(-s -C)
- fi
-
- local context curcontext="$curcontext" state line
- _arguments "${_arguments_options[@]}" \
-'-s+[Send "split (direction h == horizontal / v == vertical)" to active zellij session]' \
-'--split=[Send "split (direction h == horizontal / v == vertical)" to active zellij session]' \
-'-o+[Send "open file in new pane" to active zellij session]' \
-'--open-file=[Send "open file in new pane" to active zellij session]' \
-'--max-panes=[Maximum panes on screen, caution: opening more panes will close old ones]' \
-'--data-dir=[Change where zellij looks for layouts and plugins]' \
-'-l+[Path to a layout yaml file]' \
-'--layout=[Path to a layout yaml file]' \
-'-c+[Change where zellij looks for the configuration]' \
-'--config=[Change where zellij looks for the configuration]' \
-'-m[Send "move focused pane" to active zellij session]' \
-'--move-focus[Send "move focused pane" to active zellij session]' \
-'-d[]' \
-'--debug[]' \
-'-h[Prints help information]' \
-'--help[Prints help information]' \
-'-V[Prints version information]' \
-'--version[Prints version information]' \
-":: :_zellij_commands" \
-"*::: :->zellij" \
-&& ret=0
- case $state in
- (zellij)
- words=($line[1] "${words[@]}")
- (( CURRENT += 1 ))
- curcontext="${curcontext%:*:*}:zellij-command-$line[1]:"
- case $line[1] in
- (option)
-_arguments "${_arguments_options[@]}" \
-'--clean[Disables loading of configuration file at default location]' \