From e542d66ec638ac81da1213e9748221f289372275 Mon Sep 17 00:00:00 2001 From: Aram Drevekenin Date: Wed, 10 Apr 2024 19:51:23 +0200 Subject: [PATCH] some more work on the blogpost and updated roadmap --- .../news/welcome-screen-pipes-filepicker.md | 44 +- static/old-documentation/404.html | 29 +- static/old-documentation/actions.html | 43 +- static/old-documentation/book.js | 47 +- static/old-documentation/commands.html | 33 +- static/old-documentation/compatibility.html | 31 +- static/old-documentation/configuration.html | 33 +- static/old-documentation/css/chrome.css | 137 +- static/old-documentation/css/general.css | 50 +- static/old-documentation/css/print.css | 8 +- static/old-documentation/css/variables.css | 14 + static/old-documentation/faq.html | 41 +- static/old-documentation/highlight.js | 49 +- static/old-documentation/index.html | 33 +- static/old-documentation/installation.html | 33 +- static/old-documentation/integration.html | 57 +- static/old-documentation/introduction.html | 33 +- .../keybindings-examples.html | 53 +- .../old-documentation/keybindings-keys.html | 37 +- .../old-documentation/keybindings-modes.html | 37 +- static/old-documentation/keybindings.html | 33 +- .../old-documentation/layouts-templates.html | 47 +- static/old-documentation/layouts.html | 49 +- static/old-documentation/options.html | 33 +- static/old-documentation/overview.html | 33 +- static/old-documentation/plugin-other.html | 33 +- static/old-documentation/plugin-overview.html | 33 +- static/old-documentation/plugin-rust.html | 87 +- static/old-documentation/plugin-writing.html | 33 +- static/old-documentation/plugin-zig.html | 73 +- static/old-documentation/plugins.html | 33 +- static/old-documentation/print.html | 251 +- static/old-documentation/searcher.js | 2 +- static/old-documentation/searchindex.js | 2 +- static/old-documentation/searchindex.json | 2 +- static/old-documentation/theme-gallery.html | 33 +- static/old-documentation/themes.html | 57 +- svg/roadmap.png | Bin 0 -> 268823 bytes svg/roadmap.svg | 4073 ++++++++++++++++- 39 files changed, 5098 insertions(+), 651 deletions(-) create mode 100644 svg/roadmap.png diff --git a/content/news/welcome-screen-pipes-filepicker.md b/content/news/welcome-screen-pipes-filepicker.md index cb972f6..7f73623 100644 --- a/content/news/welcome-screen-pipes-filepicker.md +++ b/content/news/welcome-screen-pipes-filepicker.md @@ -14,6 +14,20 @@ type: # alttext: "An image of the Zellij session manager, showing a list of sessions it would be possible to switch to, as well as information about their tabs, panes and connected users" weight: 10 --- +Zellij 0.40.0 has just been released! [Grab it while it's hot!](https://github.com/zellij-org/zellij/v0.40.0) + +Some highlights: +- [Welcome Screen](#welcome-screen) +- [New Filepicker](#new-strider--filepicker) +- [Pipes](#pipes) +- [Open Floating Panes at Specific Coordinates](#open-floating-panes-at-specific-coordinates) +- [Rearrange Tabs](#rearrange-tabs) +- [Disconnect other Clients](#disconnect-other-clients) +- [Plugin Aliases](#plugin-aliases) +- [New Possible Keys to Bind](#new-possible-keys-to-bind) +- [Performance Improvements](#performance-improvements) +- [Do you like Zellij?](#do-you-like-zellij-) ❤️ + ## Welcome Screen {{
}} This new release introduces the "welcome screen". The welcome screen is a friendly menu, intended to be run on terminal startup and allow users to either: @@ -21,25 +35,25 @@ This new release introduces the "welcome screen". The welcome screen is a friend 2. Attach to a running session 3. Resurrect an exited session -[Read more](TODO: LINK TO SCREENCAST) - -## Pipes -Zellij pipes are a new way to send messages to plugins and allow plugins to communicate with each other. - -Messages can be sent to plugins through the CLI: (eg. `zpipe my-plugin hi!`), from a keybinding or indeed from another plugin. A destination plugin that does not exist will be loaded on the first pipe message. - -Pipes also integrate seamlessly with existing shell pipes, providing flow control and giving plugin authors the ability to visualize data from the command line, allow users to pause a command line pipe mid-stream on certain messages or on a keystroke. We believe this functionality will help utilize the full 2 dimensions of the terminal window as never before, popping up floating panes in certain conditions and creating a many-to-many windowed pipeline. We look forward to seeing what plugin authors come up with! - -// TODO: filter demo +Learn more about [session management](/tutorials/session-management). ## New Strider / Filepicker {{
}} This release includes a complete rework of Zellij's built-in filepicker, Strider. The filepicker allows users to quickly browse through their filesystem, opening files in their default editor in new Zellij panes or opening a terminal in a specific location. -With the help of [pipes](#pipes), as seen in the above gif, one can use this filepicker to interactively choose a file or folder in the filesystem and print its path into `STDOUT`. For example: `zpipe filepicker | xargs -i cp {} my-chosen-file`. +With the help of [pipes](#pipes), one can use this filepicker to interactively choose a file or folder in the filesystem and pipe the result to another command through a traditional shell pipe. For example: `zpipe filepicker | xargs -i cp {} my-chosen-file`. The filepicker can also be used from within other plugins to offload filepicking functionality rather than have the plugin implement it on its own. In fact, this is exactly what the welcome screen does in the example at the top of this post. +Learn more about [the filepicker](/tutorials/filepicker). + +## Pipes +Zellij pipes are a new way to send messages to plugins and allow plugins to communicate with each other. + +Messages can be sent to plugins through the CLI: (eg. `zpipe my-plugin hi!`), from a keybinding or indeed from another plugin. A destination plugin that does not exist will be loaded on the first pipe message. + +Pipes also integrate seamlessly with existing shell pipes, providing flow control and giving plugin authors the ability to visualize data from the command line, allow users to pause a command line pipe mid-stream on certain messages or on a keystroke. We believe this functionality will help utilize the full 2 dimensions of the terminal window as never before, popping up floating panes in certain conditions and creating a many-to-many windowed pipeline. We look forward to seeing what plugin authors come up with! + ## Open Floating Panes at Specific Coordinates A much requested feature after the introduction of floating panes, was to be able to open floating panes at specific coordinates and at specific sizes. Ths is now possible from the CLI (either with fixed numbers or percentage of the viewport): `zellij run --width 50 --height 20% -x 10% -y 50%`, from other plugins or from a keybinding. @@ -50,9 +64,11 @@ Thanks to a community contribution, it's now possible to change the position of Zellij, as a true multiplayer application, allows more than one user to attach to a running session. When this happens, each user gets their own cursor and the UI indicates in which pane or tab they are focused. Since by necessity the smallest screen width/height is used in such cases, it is sometimes desirable to log out other users from the session. This is now possible through the `session-manager`: `Ctrl o` to open the session manager, and then `Ctrl x` to disconnect other users. ## Plugin Aliases -This version introduces "Plugin Aliases" which are a way to shorten the long plugin URLs (eg. `https://example.com/my-plugin.wasm`, or `file:/home/aram/code/plugin/my-plugin.wasm`) to something more memorable (eg. `filter` or `filepicker`). These aliases can be defined in the [configuration file](//TODO: LINK), and used wherever plugin URLs can be used: to launch plugins from the CLI, from layouts or from other plugins. +This version introduces "Plugin Aliases" which are a way to shorten the long plugin URLs (eg. `https://example.com/my-plugin.wasm`, or `file:/home/aram/code/plugin/my-plugin.wasm`) to something more memorable (eg. `filter` or `filepicker`). These aliases can be defined in the [configuration file](/documentation/configuration.html), and used wherever plugin URLs can be used: to launch plugins from the CLI, from layouts or from other plugins. + +Aliases can also be a convenient way to swap in the built-in plugins for a custom implementation (eg. using the excellent [zjstatus](https://github.com/dj95/zjstatus), instead of the built-in `compact` bar). Indeed, the `filepicker` described above is an internal alias for the built-in `Strider` plugin, and can be swapped out for a custom implementation of the filepicker using the same [contract](/documentation/filepicker-alias.html). -Aliases can also be a convenient way to swap in the built-in plugins for a custom implementation (eg. using the excellent [zjstatus](//TODO: LINK), instead of the built-in `compact` bar). Indeed, the `filepicker` described above is an internal alias for the built-in `Strider` plugin, and can be swapped out for a custom implementation of the filepicker using the same [contract](//TODO: LINK TO DOCUMENTATION). +Read more about [Plugin Aliases](/documentation/plugin-aliases.html). ## New Possible Keys to Bind Thanks to some community contributions, it is not possible to bind `Ctrl`/`Alt` + Function keys (eg. `Ctrl F1`), as well as `Ctrl Space`. We as Zellij maintainers are aware that colliding keybindings are a big problem for many users and intend to fully and finally address this issue in the next version. @@ -62,7 +78,7 @@ This version introduces two major performance improvements: * Line wrapping of extremely long (10M+) lines is now significantly faster thanks to a community contribution. * Rendering of full-screen terminal applications is now much smoother thanks to the implementation of CSI 2026 (synchronized renders) in those terminals that support it. -# Do you like Zellij? +## Do you like Zellij? ❤️ Me too! So much so that I spend 100% of my time developing and maintaining it and have no other income. Zellij will always be free and open-source. Zellij will never contain ads or collect your data. diff --git a/static/old-documentation/404.html b/static/old-documentation/404.html index ed1be6f..24fe7fa 100644 --- a/static/old-documentation/404.html +++ b/static/old-documentation/404.html @@ -1,5 +1,5 @@ - + @@ -11,7 +11,7 @@ - + @@ -32,7 +32,7 @@ - +
+ + @@ -117,9 +124,9 @@