11 ms·
Zellij: A terminal workspace with batteries included
- RockRobotRock 4y agoBut is it for humans?
- sreevisakh 4y agoThe interface is very discoverable, unlike screen or tmux. You can start using it productively even before reading any documentation. The keybindings feel like a cross between vim (modal) bindings and CUA bindings.
- lillecarl 4y agoOne thing that is a bit weird still is that the displayed keybindings doesn't reflect your configuration, so if you use an alternative config you'll see the wrong bindings for some thing all the time.
- slang800 4y agoPlease do not pipe scripts downloaded through curl into bash. Use a package manager. That way the downloaded binary can be verified against a checksum and/or GPG signing.
- da39a3ee 4y agoPlease don't contribute worthless and irrelevant comments like this. As you doubtless well know, piping from curl into bash is something that a large subset of respected programmers think is reasonable, and another rather tedious subset do not. For example, the entire Rust community clearly has a consensus that it's reasonable: https://rustup.rs/ https://rustup.rs/ As does homebrew https://brew.sh/ https://brew.sh/ and pyenv https://github.com/pyenv/pyenv-installer#install https://github.com/pyenv/pyenv-installer#install to name whatever came to my mind in 30s thought. Since the debate has such large numbers on both sides, your individual opinion on it is neither interesting nor germane.
- aspaceman 4y ago"a bunch of folks do something insecure" does not speak argument. The argument is that it is insecure. Most easily because I can inject, "cat ~/.ssh/*_rsa | curl ..." and get your company ssh keys. There's no reason rust, brew and all the rest can't provide a Download page with a checksum. They choose not to, like this project chose not to, because it doesn't look as sexy. It's really silly.
- yunohn 4y agoWhy can’t the downloaded binary package do the exact same thing? Or do you decompile and go through those as well?
- aspaceman 4y agoIt could, but I can trust that no individual stepped in the middle of that process. I trust Rust to not put such a thing in their binary. I do not trust an arbitrary man in the middle, and it's trivial to modify a shell script. Without a checksum, I can't ensure the binary im piping through the shell is the binary they posted and built. Anyone can step in, modify a few lines, and get access to a large part of my system. The barrier to entry to add such capability to arbitrary binaries is outrageously high.
- maximilianroos 4y agoI've been using Zellij on both Linux & Mac for around six months. It's great! For someone who wants a terminal multiplexer but a) doesn't feel like learning all the idiosyncracies of tmux and b) is OK with adding some configs in toml — it's ideal. The downsides are that it's not perfectly stable — maybe once a month I get a panic — and some terminal cobwebs aren't encapsulated — e.g. it's not possible to use "[" in key mappings.
- CoolCold 4y agolet's skip the part on idio-something of `tmux`, but the very much selling point of screen and tmux, among multiplexing, as support of detached state and being able to reattach later on. Zellij seems to be targeted on local machine of end user (desktop, laptop) vs being used on server through ssh. Nothing bad about that of course, just this product is not for me.
- imsnif 4y agoZellij can attach/detach sessions just like tmux.
- forrestthewoods 4y ago<cries in Windows>
- bentcorner 4y agoI imagine this would work in wsl+terminal? Or maybe it doesn't?
- bsnnkv 4y agoNot a terminal multiplexer, but https://github.com/LGUG2Z/komorebi https://github.com/LGUG2Z/komorebi might cheer you up!
- jcpst 4y agoI kinda fell in love when I started using zellij. I say this as a vim user, but it reminds me of what nano is compared to vim. With zellij, you can jump in blind and learn how it works. Compared to tmux, which is great, but like vim, requires more upfront learning. And the configuration is awesome. I’ve defined workspaces that look like a sophisticated IDE with little effort. It always seemed to be more effort doing the same in tmux.
- abrax3141 4y agoSerious Q: Has a serious emacs user checked this out? It looks exciting, but I’m a full time, long time, emacs -nw multi-buffer M-xshell user. Am I going to be disappointed bcs either it’s not going to let me run emacs on its sub windows, or it will have unresolveable key binding incompatibilities?
- imsnif 4y agoHey, Zellij dev here. You should have no issue running emacs inside a Zellij pane. There might be some keybindings collisions, but you can always configure your way out of it if you like. In general the problem of colliding keybindings is a hard one, and one we plan to address in the near future as we chip away at some technical debt that stands in our way.
- abrax3141 4y agoThanks (both) for the guidance!
- cmrdporcupine 4y agoI see no reason to run something like this if you're already in emacs -nw running shells? Too much overlap in functionality. And windows in windows in windows in ...and another set of keybindings to memorize. To get a persistent session, just run Emacs in screen.
- Ferret7446 4y agoAs a serious emacs user, this looks like a stripped down version of emacs. There's no reason to use this if you're already using emacs. Its UI even looks like emacs, with the modeline and minibuffer.
- herewulf 4y agoI had similar thoughts when seeing that it uses Web Assembly to provide plugins. It they rewrite the core functionality with that and add an editor then they've basically reinvented emacs (though with less flexibility because the plugin code is compiled). As an emacs user I find the plugin sandboxing idea interesting because security is basically missing from emacs packages. You just have to trust or review what you're installing. Terminal support in emacs isn't super great so there's definitely room for improvement there. Maybe there's even room for Zillij and emacs to integrate via plugins. That could be quite interesting. I still use emacs and tmux side by side without any integration.
- rgoulter 4y agoAs a tmux user, I take a look at zellij every now and then. I love that it's more discoverable, with the keybindings displayed more readily. I think one feature I use from Tmux frequently enough is switching between sessions. It's not currently something the zellij client can do.
- speed_spread 4y agoI wish there was a CLI editor with a zellij-like UI. I'm a nano guy, but I think the menu bar could be made much richer. Discoverability is #1 on my list of any new app. I don't want to spend weeks learning commands or referring to the manual to use functionality that I know is there. Over time, recurring patterns I'll memorize the shortcuts for. The rarer stuff I can go through the menu, explore my options and get tentative result using my own data.
- sp33der89 4y agoHelix(https://helix-editor.com/ https://helix-editor.com/) and Kakoune(https://kakoune.org/ https://kakoune.org/) both have a keybindings that are discoverable through their UI. Helix has this small pop up that shows you the keys that you can chord and what command they perform. And kakoune has a Clippy like thing. You could also use a thing like a neovim distribution that has which-key support.
- rgoulter 4y agoI'd only recommend Helix (or kakoune) to someone willing to spend time learning keybindings. -- I do put helix in the same bucket as zellij as "exciting upcoming tools which are nice out of the box". which-key (from emacs) is excellent, and I wish more programs adopted the idiom. I'd say in Helix's case, it's good for helping discover the long tail of features you don't use often. It'd be a struggle to use without learning some set of navigation/editing. Without having used it, micro https://github.com/zyedidia/micro https://github.com/zyedidia/micro seems like it's a nano alternative to take a look at, too.
- CoolCold 4y ago
- pathompong 4y agoThis looks similar to byobu. It’s built on top of screen and tmux but pre-configured with more user friendly keyboard shortcuts. https://www.byobu.org https://www.byobu.org
- cassepipe 4y agoUser friendly shortcuts ? It uses Ctrl/Shift + functions keys all around... Not user friendly for me, on my laptop I would have either to hit Ctrl/Shift + Fn + plus one of the top row keys, or go into the BIOS, reverse the the top row so that I can press directly a function key but give up on the possibility of hitting volume/brightness up/down... I am sure it works for some though.
- tpoacher 4y agoByobu is great.
- memorable 4y agoUse this thing for a few times. Really like it!
- uwagar 4y agoso this project isnt about Moroccan tile art :(
- foolinaround 4y agoI loved the way the roadmap was presented... excellent design skills https://zellij.dev/roadmap/ https://zellij.dev/roadmap/
- telagraphic 4y agoYeah, that is the best part of the site/features
- donio 4y ago...except for perhaps the most important and basic thing you want from a roadmap: being searchable.
- cercatrova 4y agoThat's true, if they wanted to keep the look of the design, they should have used something like CSS or SVG with searchable text rather than a raw image.
- sooheon 4y agoIt is an svg (which allows for the links to gh issues), but the text isn't text.
- imsnif 4y agohttps://github.com/zellij-org/zellij/issues?q=is%3Aopen+is%3Aissue+milestone%3ARoadmap https://github.com/zellij-org/zellij/issues?q=is%3Aopen+is%3...
- Kaze404 4y agoFor desktop, I guess. On mobile I have to zoom and pan, which isn't a great experience.
- lenkite 4y agoI assume Neovim users don't need to care about this thanks to in-built terminal and ability to split, resize and switch between them using standard vim key bindings.
- jcpst 4y agoOr Vim users, they have those features too. But for the Neovim users (including myself), this is handy if they would like to use other applications besides neovim while keeping their neovim session open.
- joshbode 4y agovmux [1] might be of interest to you. It uses the (n)vim remote API with tmux to maintain a global (n)vim session and redirects files opened via `vmux` back to the global session and switches to the window in tmux that session is visible in. Hints: - use `pipx` [2] to install `vmux` to make it available globally so you don't need to mess around with virtual environments. - just `alias nvim=vmux`, and use `command nvim` if you need the real thing. - I set the following in my profile file: export VMUX_EDITOR="nvim" export VMUX_GLOBAL="true" alias nvim=vmux [1] https://github.com/jceb/vmux/ https://github.com/jceb/vmux/ [2] https://github.com/pypa/pipx/ https://github.com/pypa/pipx/
- w0m 4y agoas a heavy split Vim user; they do different things unless you run vim/neovim purely in server mode and remote connect. The ability to close terminal and reconnect to it later is a key defining reason I run ~90% of my neovim sessions inside of tmux.
- imsnif 4y agoI'm the original Zellij creator. I am and have long been a vim user. I created this tool originally for people like us. It has lots and lots of extra features and functionality (eg. opening the current pane scrollback inside your default editor in-place). Check it out if you like.
- 4y ago
- yewenjie 4y agoI love Zellij - have been using it for the last eight months. However, I wish it had a real programming language for configuration (since a program like this can be so versatile) instead of TOML. I also miss a few tmux plugins.
- CGamesPlay 4y agoNot to be dismissive, but I have no idea why I should want to install this. I actually just spent a few hours setting up a tmux configuration yesterday, so I feel like I'm in the target audience for this, but... I can configure panels with YAML, it looks like. Why would I want to change my resizable panes for a set of static ones? It supports arbitrary plugins, is says. But can't I just run any program in tux, so what is the point? The screenshots seem to mostly show how loud and colorful the chrome is, which seems distracting. And then the roadmap seems to be the only feature list, does that mean the software is actually "batteries-will-eventually-be-included"?
- imsnif 4y agoHey, Zellij dev here. I'll try to answer your questions: - regarding layouts/panes: the panes you configure in the layouts are still resizable a runtime. It just saves you the initial setup. In Zellij you also have a generic non-directional "do what I want" resize, btw. - regarding plugins: the plugin system is indeed very much a work in progress, mostly because we're an OSS volunteer project and the person in charge of it had to AFK for a while. That being said, I think it's not very difficult to imagine how plugins will be different from normal apps? Think about interaction with panes/layouts, easy distribution, interaction with the terminal assets themselves (imagine custom expandable folds depending on content, notifications depending on content, etc.) and more along those lines.
- CGamesPlay 4y agoThanks for the response. > regarding layouts/panes: the panes you configure in the layouts are still resizable a runtime. It just saves you the initial setup. I might use a "save current layout as a template" command, I guess. But I don't think I'd ever bother to learn the custom configuration format for building these myself. If you already have such a command, I'd suggest highlighting that on the site instead of a screenshot of YAML. > imagine custom expandable folds depending on content, notifications depending on content OK, this seems like it might be interesting to play with. Is there any "killer plugin" for it yet?
- 4y ago
- kzrdude 4y agoThey just merged sixel support (the oldest images in terminals protocol). Which shows that they are going places gnu screen and tmux have never wanted to. In zellij you can scroll through and flip between different terminals that show sixel images, it's quite neat, knowing that such leaps are being made. Meanwhile as a longtime GNU Screen user, I've been using workarounds to pass through hyperlink markup (ls --hyperlink) and thinking about what I could do if there was sixel or other image protocol support - Zellij already supports hyperlinks just fine, and now images so it is very promising.
- taviso 4y agoYou've got my attention with the sixel support. I use screen quite heavily, but I'm open to switching for something like that. I think I use screen in an unusual way, I know a few keyboard shortcuts but 99% of the time I use the command line. If you press Ctrl-A :, you get a command line with tab completion to access all the screen commands. I have no idea what the shortcut is to split a window, because I just use :split. Same with :resize, :focus, :remove, :paste, :title, etc, etc. I'm quite happy with one less application I need to memorize bindings for, and I'm reluctant to give that up! Does Zellij do something similar?
- mastax 4y agoI don't think it does. The default layout makes it easy to get around without learning keyboard shortcuts because it shows you what the options are per mode. It would be pretty easy to create a plug-in that let you run different actions by name with fuzzy matching.
- mark_l_watson 4y agoSorry for a tangent, but I am curious: I used screen forever, but maybe ten years ago I switched to tmux. Why screen over tmux?
- kzrdude 4y agoDon't see the upside to tmux. Also, all my muscle memory?
- obiwanpallav1 4y agoJust like the CSS Grid template layout, chaakoo[1] can break the tmux windows into panes based on a 2D layout. Screenshots in the README! 1. https://github.com/pallavJha/chaakoo https://github.com/pallavJha/chaakoo
- avinassh 4y agoI use iTerm2 on macOS. I don’t know why one uses tmux or this. What I am missing?
- himujjal 4y agoExactly my point. I just am happy with iTerm2. On windows it was Windows terminal. On Linux, I was using Konsole (KDE). Just more than enough
- d3ckard 4y agoMultiplexers are useful when logging to a remote server. You can open a bunch of things without separate ssh session for each and you avoid issues with breaking connections cancelling your long time jobs (got me a couple of times when migrating data).
- maratc 4y agoiTerm2 has tmux support where a tmux session on a remote server would be rendered with native iTerm2 panes. https://iterm2.com/documentation-tmux-integration.html https://iterm2.com/documentation-tmux-integration.html
- Myrmornis 4y agoI also use iTerm2 on macOS, with tmux. Here are the main reasons why I do that: - I can create window splits running multiple shell sessions in each pane, and then "zoom" in to an individual pane to focus on what I'm doing in that shell session. - I can organize my work into named sessions, with multiple windows within each session, and panes within each window, and navigate between these using the keyboard. - I can persist that session/window/pane structure across machine reboots (tmux-resurrect). The result is that I always have the same set of tmux shell sessions running, corresponding to the different projects that I work on. - The same keybindings for session/window/pane management work whether I'm on MacOS or on a remote linux machine running tmux. But I'm not a very advanced tmux user and there's a lot more I could do. If you look through the tmux feature set it will give you an idea of what you can do beyond what you can do with iTerm2. iTerm2 does have its own "tmux integration mode" but that's never quite appealed to me: I use tmux specifically because I want the tmux style of window splits etc, and because I want the familiar keybindings to be the same when I'm on a linux machine. So placing tmux behind the iTerm2 UI isn't what I'm personally looking for. I think! Or maybe I've misunderstood the iTerm2 feature.
- SuperSandro2000 4y agoAre the key bindings still clunky and very slow to use?
- Bolkan 4y agoI'll pass. Tmux shortcuts are in my muscle memory, unless they add native windows support.
- dominotw 4y agoI guess you can add the same keybindings to zellij and you are good to go.
- stavros 4y agoThis looks great! Does anyone know how to make it use the pane title with git info shown here? https://zellij.dev/documentation/img/layout-template-example-pane-1.png https://zellij.dev/documentation/img/layout-template-example...
- cptnapalm 4y agoHadn't heard of this one before. Tried it out. I think I found a keeper.
- lucidphreak 4y agoI don't post here often - but this is freaking BEAUTIFUL.. Thank you for sharing this HN!
- deleted 4y ago[deleted]