10 ms·
Zellij: A terminal workspace with batteries included
- fsniper 3y agoThis looks cool. I will check this in a system admin perspective.
- dizhn 3y agoCheck out wezterm too. It has mux capabilities among a ton of other things.
- fsniper 3y agoI am in love with the floating panes. It reminds me the DOS tsr software. A use case I found is keeping a k9s instance running while working on a jump host. Just jumping to the k9s floating pane on demand is priceless.
- ayoisaiah 3y agoI switched from Tmux to Zellij ~2 months ago. What I like most about it is the floating panes feature that makes it really easy to create terminals for running stuff in the background without taking up space in the main window.
- carlinm 3y agoExactly my experience. This is the killer feature for me. It helps to not break flow while working on a given task. Also, it’s great that the floating pane is per tab as well so those related background/interactive tasks can be context dependent.
- anileated 3y agoI don’t see what benefit floating windows bring to Tmux workflows. If I want to run something in background, I just Cmd+number to another window and run it there. Thanks to multiple panes & windows, I can have N things running “in background”, it takes a millisecond to switch to any of them, and I guess if I bother I could even have window tab title reflect the status of the process. I’ve seen floating windows in Neovim, but I see only one use for them: expanded LSP error messages. Otherwise, I use floaters when they come plugin’s config, but they are more of a nuisance and are tricky to manage without resorting to pointer device.
- ayoisaiah 3y agoI was using a similar workflow before switching to Zellij. The benefit is that you can only use one window for every project instead of 2 or more. What I usually do is have Vim take up the entire window and use floating terminals for background stuff which can be brought in and out of view with a hot key. The floating terminals are stacked by default, but they can also be arranged side by side if needed. I won't claim it to be a huge game-changer for productivity, but its definitely a nicer workflow for me.
- anileated 3y agoInteresting. Tmux also has pane zooming feature (where it will take the entire window until you switch it off) & window/pane browser (prefix + B, I think). They seem to achieve something similar, though I rarely see a need for it. I keep different Tmux instances for different projects so I get up to 9 windows per project with no overhead.
- ayoisaiah 3y agoZellij has that too. I rarely use that though. What I'm talking about is this: https://imgur.com/lUvhjJe https://imgur.com/lUvhjJe The 3 floating windows above a Vim instance
- anileated 3y agoThat is an anti-feature for me, as I don’t see immediately how to switch to the one I need through keyboard, without clicking it. There must be a quick switch of some sort?
- ayoisaiah 3y agoYes of course, you can use keyboard to do everything in Zellij. One thing that eased my transition was the addition of (customizable) Tmux keybindings so that muscle memory was retained.
- grep_name 3y agoHow is this different from tmux popups though? I think I have the exact same workflow in tmux
- imsnif 3y agotmux popups are not first class citizens (eg. at least in current versions they freeze the display behind them, opening a terminal inside one of them is a pain as well as opening multiple ones, not to mention resizing them or rearranging them intelligently)
- dist1ll 3y agoLast time me and a coworker tried out Zellij (a few weeks ago), there was noticeable input lag compared to tmux. Used the most recent macOS release, running in alacritty w/ zsh. Anyone else had an experience like that? I think for terminal-based tooling like multiplexers, low latency should be a hard requirement.
- chii 3y agoI've been consistently using zellij for about 6 months now, and i've not experienced any lag. Using iterm2, so not sure if you're seeing alacritty related issues?
- throwaway290 3y agoAlacritty is faster.
- sesm 3y agoAlacrity may be faster on average, but there might be some bug/edge case/etc that a specific application can hit.
- frankjr 3y agoNot input lag but scrolling an editor in fullscreen on a large monitor is kind of laggy for me sometimes. I hope these changes will make a difference (not yet in a stable release). https://github.com/zellij-org/zellij/pull/3045 https://github.com/zellij-org/zellij/pull/3045
- aidanhs 3y agoOf my series of PRs, I suspect the third (i.e. https://github.com/zellij-org/zellij/pull/3043 https://github.com/zellij-org/zellij/pull/3043) is most likely to have an effect. But if it does it'd only be as a side effect unfortunately - my focus was on fixing lag with splitting of extremely long lines. From what I saw while making my changes, that area of the code has a bunch more possible optimisations, but it's 'good enough' for me at this point so I'm not planning to continue pulling at the thread right now. If you wanted to look yourself, I left the script I used for benchmarking and profiling in https://github.com/zellij-org/zellij/issues/2622#issuecomment-1904595721 https://github.com/zellij-org/zellij/issues/2622#issuecommen...
- sesm 3y agoReminds me of TempleOS window manager.
- nablaone 3y agoReminds me Borland IDE.
- elashri 3y agoI like the name. It is related with one of the most beautiful art styles in my opinion [1] [1] https://en.m.wikipedia.org/wiki/Zellij https://en.m.wikipedia.org/wiki/Zellij
- gilleain 3y agoHaving just spent a large part of the weekend tracing and adjusting some zellij I tend to agree. Annoyingly, though the example I was reproducing (from an image of a tiling on a wall) had either been squashed in one dimension or the original was asymmetric in an unexpected way. Like an octagon that was 120 mm in one direction and 130 mm in the other. (Thanks for attending my TED talk lol).
- elashri 3y agoI envy you for doing that. Actually one of my bigger dreams is to build a house full of zellij tiles. Until then a smaller dream is to spend couple of days at Dar Seffarine hotel in Morocco [1]. https://www.darseffarine.com/index.php https://www.darseffarine.com/index.php
- eigenvalue 3y agoI’m always surprised to see that there are so many professional developers who never tried tmux and don’t really understand why a terminal multiplexer would be useful. I’m in tmux all day and it’s one of the first things I install on any box. I’ll check out Zellij, but it’s a high bar for me to switch.
- jerpint 3y agoSame here, my tmux bindings are hardwired in my brain at this point and switching over would incur a huge drop in productivity at first, not sure I have it in me to switch… floating pane does sound nice though
- jayknight 3y agoAre floating panes much different that tmux's pop up windows?
- jraph 3y agoraises a hand My terminal emulator (Konsole) has tabs. It also has tiling features I've never taken the habit to use. It has infinite history and allows me to easily select and copy paste many lines. It has a perfect scrolling behavior: it automatically scrolls, but stops auto scrolling if I scrolled a bit up. I'm used to its keyboard shortcuts to switch tabs. My window manager (KWin) also has tiling-like features when I need to see several terminal sessions at the same time. I use screen when I need to be able to leave and rejoin later. I almost never need to restore several remote terminal sessions at once, and when I do, I'm happy to just ssh several times. I feel like my use case is completely covered by the terminal emulator and the WM which are incredibly convenient and efficient. I would expect any layer between this efficient / optimized character display and the programs I run can only add latency. I also quickly feel overwhelmed by a screen full of characters. I think I would miss out on convenience by switching to tmux and it's unclear to me what I would gain. Happy to be convinced otherwise, though :-)
- buserror 3y agoSame here, I use tilix as my new favourite, it has panes & tabs that are just there without having me to remember a complex combo... If I'm remote well I do it the old school way with gnu screen! I tried a few times to see if I could get any advantage using tmux but always revert back to none at all. To me the scrollback that works 'as expected' without having to remember key combos, and also work with the mouse are a key feature!
- visysl 3y agoThe main drawback for me is that its UI is not so much compact.
- imsnif 3y agoYou can make it as compact as you like: https://zellij.dev/documentation/faq#the-ui-takes-up-too-much-space-what-can-i-do-about-it https://zellij.dev/documentation/faq#the-ui-takes-up-too-muc...
- novagameco 3y agoIt's always interesting to me to see CLI users who are so invested in their development environment that they end up recreating the GUI IDEs they so disdain. Like vim users who insist that Jetbrains or VS Code is unnecessary after they configure vim with syntax highlighting, code completion, and gdb support with breakpoints
- cracoucax 3y agoI've switched from tmux to zellij about 2 monthes, ago, it may have less features than tmux for now but it certainly does all i need, in most case better than tmux. It is much more user friendly and usable imo. Frankly i've spent too much time in the past fiddling with complex confs and tools which expect the user to spent days figuring out a conf which work for them. Then if you don't use the tool for 1 month, or simply don't edit the conf for a big while you've forgotten half of it. Zellij has a conf file, it took me a bit of time to tweak it at first, but i know I can understand it in a pinch. Same thing for actually using it, it's mostly discoverable. And most importantly, it is very clear that simplicity and predictability are big priorities. It shows everywhere in the project, I totally vouch this approach and tend to do the same thing on my work projects. I know from experience than understanding your user's needs and getting out of your way to make their life easy by not having to think about how the implementation is done is really much harder that just making a tool configurable and extensible... So, big kudos to you Zellij devs !
- VyseofArcadia 3y ago> It is much more user friendly and usable imo. I've never quite understood why TUIs on *nix systems seem so downright unfriendly compared to TUIs on ye olde MS-DOS systems. Some of them are excusable, sure. vi predates consumer TUIs, and vim clones it. Emacs at least has a menu bar, even if there's no on-screen indication that F10 activates it. But tmux was created in 2007. I can think of no reason for it to have such an obtuse UI other than "they're just like that on *nix". Would at be so much to ask to at least by default have a "press C-b ? for help" on screen?
- nequo 3y agotmux is not entirely dissimilar to GNU Screen which uses `C-a` rather than `C-b` as its prefix key. That conceptual lineage may explain some of the UI choices.
- jbverschoor 3y agoBecause of a fixed buffer/direct access to the buffer. Compared to line-based / control code streams
- mhd 3y agoLast time I tried it, it didn't add features I really felt would change my workflow, and the memory consumption was rather high. In general I notice a lot more resources used for terminal multiplexing, starting with GPU-focused terminal emulators (or even ones using Electron). Maybe I missed something, I probably could run screen + xterm and barely notice any difference. Almost getting a bit of FOMO here, but have yet to see e.g. a screencast that would make me envious.
- tmerse 3y agoI like how easy zellij was to set up and it's capabilities to define new layouts as well as the default way of displaying contextual shortcuts that one can disable after one memorized the most important shortcuts. What I would still like to see is support for kitty image protocol [1] so I could use e.g. image.nvim [2] which currently works in tmux (which I migrated away from in favor of zellij). [1] https://github.com/zellij-org/zellij/issues/2814 https://github.com/zellij-org/zellij/issues/2814 [2] https://github.com/3rd/image.nvim https://github.com/3rd/image.nvim
- imiric 3y agoThis looks very interesting! It's great to see innovation in the terminal multiplexer space. tmux has held the crown for too long, and it's worth revisiting this space with modern approaches. I really like the concept of quickly hiding and showing a pane, and spawning it for a single command that can be easily repeated with Enter. Quick scrollback editing is great as well. I often do this manually in tmux with copy/paste, or re-running the command with `tee`, which is a bit cumbersome. One nitpick would be to have an option to minimize or remove the borders around panes. It's nice to have extra metadata around a pane, such as the CWD, but space is precious in terminals, and showing borders around every pane feels wasteful. Maybe this is already possible, I haven't looked at the docs yet. Will definitely give this a try soon. EDIT: Ah, kudos for the nice roadmap[1]! It seems this might already be planned as part of [2]. [1]: https://zellij.dev/roadmap/ https://zellij.dev/roadmap/ [2]: https://github.com/zellij-org/zellij/issues/1400 https://github.com/zellij-org/zellij/issues/1400
- imsnif 3y agoHey, you can remove borders around a pane at runtime with (default) `Ctrl p` + `z` or from the config with `pane_frames false`.
- djaouen 3y agoThis looks cool, but it looks like it’s geared towards vim users as it overrides some Emacs/readline keybindings. If I ever switch to vim, I will give it a try.
- yewenjie 3y agoI have been using Zellij since pretty much when they announced it, but it still lacks good plugins and a stronger ecosystem.
- totetsu 3y agoAm I a dinosaur for still using gnuscreen?
- Aloha 3y agoNope! I still use screen - I dont really understand the compelling advantage of tmux and its replacements. Maybe better split screen support? Its not something I have ever felt a compelling need to use.
- Thoreandan 3y agoI've been using it since ’93 or thereabouts before it became a GNU project. Continues to work fine for me.
- INTPenis 3y agoHappy to see it, but unlike others in this thread I have no issue at all with Tmux. The way people are reacting to zellij is how I reacted going from screen to tmux. It was so much easier to understand and quickly get started doing advanced things in, compared to screen.
- victor_z 3y agoSounds like a good reason to check out zellij then.
- AzuraIsCool 3y agoMaybe, but nowhere was implied that zellij is better option.
- joshbaptiste 3y agoI tried it in Windows Terminal (under WSL2) and it exited out immediately.. while tmux works fine.. I'll wait for a fix to try again
- snapplebobapple 3y agoI switched and then went back to tmux after a week. It just worked. I will probably try again o six months, as it was def*nitely faster, it just takes me some time to get used to new paradigms
- snapplebobapple 3y agozjstatus plugin solves a bunch of my zellij problems, so giving it a go again after seeing that is new since last attempt.
- epage 3y agoI switched when I added hyperlink support to cargo so I could use the feature. I am not a tmux power user. - Much easer to discover and use features - The default bindings made vim unbearable so I make tmux-like bindings. - The default color scheme is not great in light mode - Session restore is helpful though still has issues to be worked out
- weinzierl 3y agoNo one said it so far: I find sandboxed plugins the killer feature. I trust the Debian maintainers and couple of teams and individuals (including Aram), but there is no way I can remotely build trust for the number of people needed to build a convenient tmux/nvim development environment. I really, really wish neovim would have a sandboxed plugin environment like this. [Goes without saying that the sandbox is not a replacement for trust and vice versa, but it would be a big step forward. What we are doing right now with plugins in this space is terribly dangerous.]
- jwr 3y agoI checked out Zellij a while ago, because it looked all shiny, but then realized that tmux (that I've been using for years) does everything that zellij does, except it is more widespread (runs on remote systems which are not the most recent versions) and better debugged. So I went back to using tmux. But at least I got motivated to learn more about tmux :-)
- dinkleberg 3y agoI had the same experience. Zellij is cool, but tmux is everywhere, so spending the time to learn tmux properly was well worth it.
- imsnif 3y agoNot accounting for tastes and preferences, but it is decidedly not true that tmux does everything Zellij does (just some very minor examples are: true floating panes, true multiplayer support, stacked panes, etc.) As for prevalence: this very often has to do with the distributions themselves and their ability to accept certain (rust) dependencies. Otherwise though, I always say Zellij is not competing with tmux. That tool choices should be more equivalent to clothing choices than to choosing a school for your kids. Choose what you like, there should not be religious disagreements here.
- jwr 3y agoYes, I should have been more precise (this is HN after all): tmux does everything I need. I don't use things like floating panes, nor do I intend to.
- frankjr 3y agoA killer feature for me is combining floating windows with "zellij run". It allows you to run a command but also re-run the command by pressing enter. zellij run --floating -- date This will open a new floating window with the result of the command (`date` in this case) and pressing enter will run it again. I use it for running tests (make some changes, show floating windows, press enter). Depending on your OS you might already have shell aliases such as zrf (run floating) or zr. https://zellij.dev/documentation/zellij-run https://zellij.dev/documentation/zellij-run
- hoherd 3y agoThat's neat and all, but [Up] [Enter] isn't much harder. Is there some other aspect of the Zellij experience I'm missing?
- frankjr 3y agoNot really but where do you press these? Say I have the editor full screen. Do I switch to a different tab/split/window? In Zellij I press <meta+f>+<enter>. Pressing <meta+f> again will hide the floating window and I'm right back in the editor. I don't use this all the time, sometimes I have a terminal open in a split, but it can be pretty convenient.
- ryneandal 3y agoI use iTerm in visor mode, so ctrl-~ (tilde) shows my terminal tabs and changes focus to them. Pushing it again hides them and returns focus to the previous app.
- 0x008 3y agoWhat is the benefit of having a terminal float on top of your existing window as opposed to just switching to another window and switching back?
- keiferski 3y agoIn case you were curious where the name comes from: Zellij (Arabic: الزليج, romanized: zillīj; also spelled zillij or zellige) is a style of mosaic tilework made from individually hand-chiseled tile pieces. https://en.wikipedia.org/wiki/Zellij https://en.wikipedia.org/wiki/Zellij
- csdvrx 3y agoAfter having spent too much time trying to get the simple https://github.com/csdvrx/sixel-tmux/ https://github.com/csdvrx/sixel-tmux/ features into mainline tmux (last November https://github.com/tmux/tmux/issues/3753 https://github.com/tmux/tmux/issues/3753), maybe it'd be easier to jump ship as use zellij? Could anyone offer recommendations on "riced" zellij configuations, or just a demo where it shows doing with (say charts of disk usage per folder), watching a movie with mpv + keeping a vim to type on?
- p3t3 3y agoIn my opinion tmux has two shortcomings. The built in session manager is very limited(so I am using my own script instead). And the ability to save and restore sessions is achieved using two plugins that can take some time to wrap your head around and make them work. Zellij on the other started with the goal to be as user friendly as possible and basic tmux features(such as detach) were implemented very recently. There are too many elements on the screen, and each actions requires you to go into a "mode" which feels like unnecessary overhead after getting used to the way the modifier/prefix approach works in tmux. And I am more then fine with modes(I use neovim and emacs with evil keybindings) but when it comes to terminal multiplexer or window manger I feel a modifier provides less friction. When its all said and done and tmux is configured I feel I am getting a more fluent experience. Unlike vim and emacs I don't see a lot of distinction between tmux and Zellij and I don't see a many reasons to switch at the moment.
- imsnif 3y agoSession detach was added 2+ years ago and tmux keybindings work out of the box. You can also remove any part of the UI you do not like and there are some pretty friendly built-in alternatives that take up less room. That being said - use whichever software makes you happy. I'm just a stickler for facts. :)
- p3t3 3y agoGood to know that Session detach was added 2+ years ago. Are tmux keybindings first class citizen in Zellij? and what would you say sets Zellij apart from tmux based on your experience?
- imsnif 3y agoYes they are. They work out of the box as I mentioned. This is what originally helped me move from screen to tmux, so it was important to me to provide the same experience. As for comparisons to tmux: I shy away from those. Just like I shy away from comparing chocolate cake to lemon cake. Both are awesome. Use what you like and decide for yourself.
- 0x1ceb00da 3y agoUnusable for me because of memory consumption. This ticket was closed but people on that thread are still complaining about memory leaks. https://github.com/zellij-org/zellij/issues/1625 https://github.com/zellij-org/zellij/issues/1625
- BSDobelix 3y agoI tested it for 10 minutes (newest release) and it literally eats 500mb and has to be killed.
- ahurmazda 3y agoI use terminal … a lot. Alas! These days it’s the terminal bundled with my IDE (intellij). I have multiple projects open and never really found a good workflow around terminals and IDE because I absolutely must use both.
- ax_0x01 3y agoDoes Zellij works for you in Intellij IDEs terminal ? Specificly mouse scroll. I found that sadly scrolling is not working in Zellij
- dmd 3y agoI want to love Zellij, but it eats up way too many keybindings. Yes, I know about mode lock, but then it's an extra two or four keypresses for everything I want to do. I'd love Zellij with true tmux style keybindings - a single prefix key followed by a non-modified letter. With zellij, you have to unlock, do your zellij command, then lock again.
- DevAbdul 3y ago[dead]
- daswerth 3y agoCan anyone compare Zellij with Byobu? Seems like it was the previous "new hotness".
- pxc 3y agoByobu is just some defaults for tmux/screen. So it compares Zellij compares to Byobu the same way it compares to tmux and screen.
- dcchambers 3y agoOkay, okay. I've been a diehard tmux user for a decade, but I'll finally give this a try.
- lchen_hn 3y agoI feel its memory leak issue should get more attention
- imsnif 3y agoWe actually looked into it and found it to be the Rust allocator after all (the memory is freed after a day or two and afaict should not cause oom issues). I'm sorry for not writing this up in the issue, this was heavily investigated by another maintainer and they have not yet found the time to write this up.
- 20after4 3y agoSo, I understand the value of tmux for detaching and restoring sessions. What I don't really understand is why I'd want to use something like this instead of tiling and managing sessions / windows / panes within my terminal emulator. Kitty has tremendous support for all kinds of features, including capturing and processing the output from commands, piping scrollback buffers to external commands, scrolling to previous command prompts, searching and highlighting output dynamically, and much more besides. The overlap is significant between tools like this and tools like kitty or iTerm. Am I missing some advantage in putting this functionality on the server rather than the client?
- 20after4 3y agoTaking it even one step further, I probably would really be better off managing the window tiling in my window manager, however, I still have yet to settle on a tiling window manager that works well enough under wayland and supports everything I need well enough to give up the Gnome shell. I did try https://github.com/YaLTeR/niri https://github.com/YaLTeR/niri this past weekend and it's pretty great. niri is inspired by PaperWM. I used PaperWM for a while and it was pretty awesome but suffers from the same issue as all of the tiling extensions for Gnome shell: they are never stable enough for for my daily use because Gnome is a moving target and the gnome shell extension API isn't really up to the task of radically transforming the window management paradigm. Projects like PaperWM have too many downsides that are really difficult to overcome, despite their significant innovation and appealing UX.
- francis36012 3y agoOne big use case is the ability to attach/re-attach to sessions running on some remote host. When connection is lost, you don't lose the session and can easily re-attach to it
- 20after4 3y agoYeah that's the one thing I do use tmux for.
- gloosx 3y agoNever in my life understood the people who invented terminal multiplexer to launch several copies of vim in different terminals. As much as you want, you can create tabs, terminals, floating windows, split panes and even recursively nested vims within a single instance of vim itself, like this: https://imgur.com/a/vUd9OOU https://imgur.com/a/vUd9OOU Can someone explain why this is needed and how it's better that of vim's splits tabs and panes?
- fileeditview 3y agoIf you e.g. use LSPs or similar tools it usually is better to separate different projects into different Vims. Most of these tools rely on some kind of project root and may get confused if you have different ones opened in the same Vim instance. I personally also like the separation and navigating my Tmux is very fast. To me Vim is the perfect editor but I don't want to use it as windowing or operating system replacement. Obviously I use tabs and windows in Vim but always only regarding the project I am working in. E.g. I use tabs for diffs a lot and reviewing.
- gloosx 3y agoThe solution is easy though, you can use :tcd to set the root dir per tab for the project tooling in this tab and I never had any issues with separate projects this way. I guess the way we operate terminal tabs and splits is just something we get used to once and never change, even if it tooling to do it starts to layer on top of each other :)
- fileeditview 3y agoYea you have a workflow and usually stick to it if it's good enough. For me I have many projects in different tmux windows and I name them to keep an overview. I am convinced that having all of this in vim would make it harder for me to find things :) But you are right.. I use splits inside Vim and with Tmux and sometimes I get confused when switching.