9 ms·
See also rant[1] of sixel-tmux author. > It's 2021, and we should be able to do litterate programming in the console, with full graphical support. Yeah. We ar
by TeddyDD 3y ago
See also rant[1] of sixel-tmux author.
> It's 2021, and we should be able to do litterate programming in the console, with full graphical support.
Yeah. We are stuck cosplaying computers from the sixties.
What's even funnier, even if you find a modern terminal emulator that supports features like ligatures, graphics, emoji etc. you still will be blocked by tmux. Sure - not everyone needs tmux. If you never work on remote machines, you can live without it.
But I work on remote machines all the time. I also use Kakoune text editor that defers window management to external tools (WM or tmux, but to be honest, tmux is much better). Zellij is more of r/unixporn bait than usable tool for now. So I'm stuck with text only interface.
[1]: https://github.com/csdvrx/sixel-tmux/blob/main/RANTS.md https://github.com/csdvrx/sixel-tmux/blob/main/RANTS.md
- Per_Bothner 3y agoI think DomTerm (in addition handling sixels and extended emoji) does multi-plexing and remoting quite well. Remote access (https://domterm.org/Remoting-over-ssh.html https://domterm.org/Remoting-over-ssh.html) is done with a simple wrapper over ssh. Mosh-style predictive echo. No special priviliges needed: Just drop a domterm executable somewhere on the remote machine. Multiplexing with tabs and tiles that can be dragged between windows. Builtin attach/detach.
- opan 3y ago>Sure - not everyone needs tmux. If you never work on remote machines, you can live without it. I'd rather not live without it even on local stuff. It's way too good. Yes, I already use a tiling wm, and no it's not the same.
- 3np 3y agohttps://github.com/topcat001/tmux/tree/sixel https://github.com/topcat001/tmux/tree/sixel This is a more promising and updated sixel branch of tmux, which is slowly getting updates propagated to mainline.
- sgt 3y agoNever got into tmux, still using screen after all these years. Is tmux still claimed to be superior?
- pengaru 3y agoscreen is gpl, tmux isn't
- sgt 3y agoAs an end-user though, it doesn't usually matter.
- pengaru 3y agoAs an end-user, what software you choose to use is a form of advocacy for that software and its license. So it does matter, but you can choose to not care.
- remram 3y agoNote for others: tmux is under the ISC license, a permissive non-copyleft opensource license.
- tambourine_man 3y agoDoes screen offer vertical splitting now? That was the killer feature for me a decade ago. And the more Vimlike keybindings.
- teddyh 3y ago> Does screen offer vertical splitting now? Yes, for nine years now; bound to “Ctrl-a |” by default: <https://www.gnu.org/software/screen/manual/screen.html#Split https://www.gnu.org/software/screen/manual/screen.html#Split>
- tambourine_man 3y agoNice, thanks. I knew there was a patch, didn’t know it was on shipping on standard distros
- shrimp_emoji 3y agoI use emojis on tmux. I don't think it conflicts with them. :o You just have to have an emoji font installed (Twemoji, of course). And I use Alacritty, a Rust-based, GPU-accelerated terminal editor. How's that for "modern"? :sunglasses:
- vanderZwan 3y agoEh, Terminology has more features, and on my machine if I run tree from the home folder it's finished quicker than anything else I've tried. https://www.enlightenment.org/about-terminology.md https://www.enlightenment.org/about-terminology.md
- kragen 3y agowhile it is indeed useful for a terminal emulator to be efficient at discarding characters you will never see, it probably isn't the main criterion to judge it by
- vanderZwan 3y agoI presume you're talking about Alacritty? Because Terminology doesn't do this AFAIK (and there's a mini-map next to the scrollbar showing everything that came by)
- kragen 3y agowell, processing characters you'll never see, then
- syrrim 3y agoYou need to configure it properly or pass the -u flag for it to support unicode I believe.
- kps 3y agoFor those like me with the opposite inclinations, try dtach. It is only a session handler. It does not pretend to be a terminal, or do splits or tabs or anything but I/O. That's left to your actual terminal.
- mananaysiempre 3y agoHow does that work? I mean, you could avoid knowing anything about the terminal state machine if you dumped the entirety of the session’s bytestream from the very beginning on each attach event, but unless you are willing to do that it seems to me that you’re going to have to track enough state to basically amount to maintaining a screen buffer (and then you do have to care about sixels). For example, suppose the user fills the screen (maybe even with an image), then spends a lot of bytes overwriting the last line over and over (think progress bar). Either you’re tracking the first byte to have affected the current screen (and need to store the entirety of the “a lot” and dump it onto a newly attached client) or you’re trying to discard all the stale updates while keeping the last one and the initial screen contents (and that’s just a screen buffer with extra steps). (Incidentally, I suspect Muratori’s Refterm fails this test to the point of requiring a redesign, though I haven’t checked.)
- kragen 3y agodtach sends control-l or sigwinch or one of a few other things when you reattach, at your option, so if you're running a fullscreen program that cares about the terminal state machine, it will redraw itself
- mananaysiempre 3y agoI see, yeah, that’s neat. I can still imagine situations where it’ll fail, but they’re reasonably limited. (If you detach and attach in the middle of a large sixel image being transmitted, you’ll have the tail of it dumped on you in text form; if you detach from a session with the terminal set to red text, it’ll be back to default when you return; and so on.)
- diarrhea 3y agoI simply open multiple ssh sessions if that’s what’s needed. My terminal can then natively do tabs, panes, ligatures, emojis etc. There’s no middleman. So after all these years I still managed to not need tmux. Am I missing out? Everyone seems to be using it.
- jimbobimbo 3y agoThe best use case of tmux for me is Azure Cloud Console, where there is no good way/cumbersome to open multiple sessions at once.
- bombcar 3y agotmux is one of those things that is nice if you take the time to learn and actually USE it for awhile. But it doesn’t have amazing uses that immediately make you say “wow”. The biggest I’ve found is setting up something on a remote server and being able to disconnect it. For example it can be much nicer for running a Minecraft server than daemonizing.
- __MatrixMan__ 3y agoI felt the same way, but ended up learning tmux because you can't make asciinema span multiple tabs or panes, and sometimes you want to make an asciicast with more than one shell. It's handy to know sometimes, but if I have a sane window manager at hand then I don't use tmux. They're not common, sane window managers, so I use it occasionally.
- 3np 3y agoIf you just want a super simple tiling WM for demos and such, ratpoison is as minimal as it gets. StumpWM similar concept but more powerful.
- sickill 3y ago> because you can't make asciinema span multiple tabs or panes Of course you can: 1. create tmux session, create splits/panes 2. detach 3. asciinema rec 4. attach (inside asciinema rec) This way asciinema records your whole terminal, and tmux running inside of it. In other words, if you have it like this: terminal -> tmux -> pane -> asciinema rec asciinema can't see outside of the pane its running in. However, if you have it like this: terminal -> asciinema rec -> tmux attach asciinema sees all of it because its parent is your terminal, not tmux pane.
- ingenieroariel 3y agoI have been trying out a kakoune arcan frontend [1] with the intention to use it over the network along with cat9 [2]. [1] https://github.com/cipharius/kakoune-arcan https://github.com/cipharius/kakoune-arcan [2] https://github.com/letoram/cat9 https://github.com/letoram/cat9
- dbdoskey 3y agoHave a look at zellij, just as good if not better than tmux (imho obviously), and has support for sixels and much more.
- daliusd 3y agoI have tried zellij and it is not yet for me: * Can't move tabs (fixed position) * sixel support with iterm2 is meh. Yes, it shows image, but it does not look good. * Support for undercurl seems to be missing. * I need to sacrifice some other functionality I have in tmux. Yes, I get some extras but it is not ready yet for me personally.
- sundarurfriend 3y agozellij is amazing in terms of UI/UX, but in my experience not as stable as the older options. Which is understandable, screen and tmux have had decades to sort things out, but it does mean that given the general messiness and complexity of remote network connections (which is the most common use case), running into these rough edges is not difficult at all. I feel like zellij is the future of terminal multiplexers, and I like using it in my personal machines, but I stopped using it for work after a while.
- kragen 3y agonot sure how cosplaying as a vt340+ or a late 90s japanese cellphone is supposed to be an improvement? loose coupling via byte streams is great, and so is text, but we can do better than character cell terminals if you sacrifice textuality, xpra does reattachment, multiwindow, and lowish bandwidth pretty well
- csdvrx 3y agoAuthor of sixel-tmux (and of the matching rant) here. Your description of sixels using words like 'cosplaying' or 'late 90s japanese cellphone' is not very technical. It seems biased. In any case, it would be better than being stuck with the 60s "text only" VT100 like protocols. We can talk about technicalities, as some people do not like how sixels work under the hood, but... they work fine: I can play video in my terminals. I use gnuplot everyday. Could it be done better by a protocol that would use compression and other features? Maybe. But does it have to be? Why should we waste time reinventing the wheel when locally there's plenty of bandwidth, and remotely too often enough? Personally, I like sixels because prefer a standard that is well defined, and can't change on someone whim: I like stable interfaces. I think users are unfairly held back due to biases like the one you demonstrated, and that seem very common in the free software world, which was the point of my rant: there is no logical reason sixels couldn't be offered today in gnome terminal if the key people making sure that doesn't happen changed their mind.
- deleted 3y ago[deleted]
- kragen 3y agoa couple of minor corrections emoji support, not sixel support, is "cosplaying as a 90s japanese cellphone" the vt100 is from 01978 my 'cosplaying' comment was a specific response to teddydd's 'cosplaying computers from the sixties' --- i've been playing video and plotting functions from remote machines on terminals since 01993, but using x11, not sixel i think h.264 (cosplaying as an mp4 player from 02005) is probably a better approach for graphical applications; that's what xpra uses
- mnky9800n 3y agoI just use screens but I guess tmux is better in every way
- derekzhouzhen 3y agoFor working on remote machines, I need 3 things: * show multiple terminals on screen. The best solution is to use a tiling window manager. Both MacOS and Windows have limited windows tiling capabilities. * run long term TUI applications (like editors). The best solution is mosh. * run long term CLI applications (like shells). The best solution is dtach. tmux helps all 3, but not particular good at either.
- slim 3y agoit's good at the first point. if you use a tiling wm you are not multiplexing the remote connection, or am I missing something?
- messe 3y ago> tmux helps all 3, but not particular good at either. iTerm2 on macOS has some nice tmux integration[1]. Basically, you run a tmux session (using tmux -CC), but the actual window management on the client side is handled by iTerm2. This works pretty nicely with the tiling WM (Amethyst[2]) I use on macOS. If anybody is aware of Wayland compositors that integrate similarly, please let me know. I'd love to be able to do the same on my linux machines. [1]: https://iterm2.com/documentation-tmux-integration.html https://iterm2.com/documentation-tmux-integration.html [2]: https://github.com/ianyh/Amethyst https://github.com/ianyh/Amethyst