Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I think tmux is overrated, at least when running locally. Tiling WM gets you the same efficient screen layout and keybind driven navigation, and it'll manage also graphical windows that you'll inevitably end up having (like browser). Also you'll avoid any tmux-in-tmux issues if you do connect to remote hosts, and all the terminal features (copypaste, urlgrab, scrolling, search etc) actually will work properly.


> I think tmux is overrated, at least when running locally. Tiling WM gets you the same efficient screen layout and keybind driven navigation

Funnily, I have made the opposite path, moving from a tiling WM to tmux into a simple xterm. Tiling wm are overrated, since tmux gives you the same functionality, and you can detach your session easily.

What I'm sorely missing is a way to "freeze" all my tmux processes so that they can be recovered in the case of a system reboot.


Seems like a great idea. Lack of persistence bugs me about my i3 / tmux / emacs setup.

Google brings [1] but I haven't tried it yet.

1: https://github.com/tmux-plugins/tmux-resurrect


yes, but this is a mock-up of a real freeze. What I want is independent of tmux: a way to freeze a process and all its children and save it into a file. The file is then opened when rebooting, or even on a different computer. There was this:

    https://github.com/maaziz/cryopid


Have you looked at CRIU?


Yes, but does it really work? The documentation is written in the future tense.


It works for most things. You can always try it for your usecase and see how it goes.


> since tmux gives you the same functionality

Unless you're browsing HN on Lynx I suspect you'll have at least a graphical browser running, which means you still need some way to manage graphical windows, because that is simply something that tmux does not do.

Also proper WM is unsurprisingly more capable/flexible for window management because it's not limited by a fixed character cell grid and other idiosyncrasies of terminals


> Unless you're browsing HN on Lynx

I actually use elinks to read HN and many sites, but I also use regularly a web browser.

However, I try to keep web-browsing usage as sparse as possible. I launch firefox from the terminal, browse tho wherever I need, and then close the browser window. I abhor to have a browser "always open".


Rather than freeze them I have a tmuxinator[0] config per project that opens all of the panes and tools I tend to use. Usually something like: editor, extra (often my rails console or database prompt), git, tests, server, logs.

I know the numbers off by heart so can switch without looking.

[0] https://github.com/tmuxinator/tmuxinator


Tmux Resurrect works pretty well:

https://github.com/tmux-plugins/tmux-resurrect


tmux offers a level of abstraction that's missing from a tiling WM alone.

You can have 1 tmux server running locally with many sessions (let's say 1 session per project).

Then each session can have many windows (separate terminals that are full screen).

And then each window can have many panes (splitting that window however you see fit).

But if you went with a tiling WM alone without tmux, the WM's workspaces become sessions and your terminal becomes a window. So now you're stuck having to lean on your terminal emulator for tabs and splitting windows, but you're also on the hook for it having buffer searching, copying URLs, scrolling and other things. Most terminals are really bad at those tasks but tmux is great with them when combined with something like xterm (a low input latency terminal).

Plus with tmux you have the option to easily save and restore everything with tmux-resurrect, and you can take your whole set up and replicate it on Linux, MacOS and even Windows with WSL and it all works the same as long as you find a good light weight terminal on each platform.

I think there's a lot of value in using both a tiling WM and tmux together. tmux basically super charges any terminal into having world class support for everything a terminal needs to do. Even if it didn't persist sessions, it would still be really valuable. IMO it's severely underrated. People's eyes widen and still get impressed when terminal emulators add basic tab support. If they only knew what was lurking around the corner with tmux!


> So now you're stuck having to lean on your terminal emulator for tabs and splitting windows

If you have tiling wm, why would you want tabs or especially splitting in terminal emulator?

> Most terminals are really bad at those tasks

Just don't use bad terminal emulators? And good terminal emulators are better at those tasks than tmux


> If you have tiling wm, why would you want tabs or especially splitting in terminal emulator?

Splitting is useful so you can see more than 1 thing at a time. You know, tiling. :D

This is especially true if you have a high resolution display such as 2560x1440 or 4k. You can fit a ton of info at once across multiple panes.

> Just don't use bad terminal emulators? And good terminal emulators are better at those tasks than tmux

I've tested dozens across multiple operating systems and haven't found one that that has as low input latency as xterm along with having a better implementation of tabs, splits, searching, being able to name windows, zoom toggle into windows, and everything else tmux does. None of them were even in the same ballpark.


I honestly just use tmux as a tabbed terminal with saveable state. For someone who works remotely from multiple locations, attach/detatch is life changing.


I'm glad I'm not the only one.

I love tmux, but I prefer vscode to vim, and I'd rather just keep tmux as the place where I keep all my terminal panes/windows. A lot of people look at my tmux screen and assume that I'm using vim or emacs.


I would stop using tmux entirely and switch to this, but the cluster I work on has 2 factor authentication which is absolutely annoying.


You may wish to investigate the ControlMaster directive in your SSH configuration. Depending on how the two factor authentication system works, you may be able to authenticate just once for many concurrent SSH sessions.


Here's what I use to keep SSH connections open for 4 hours: https://blag.felixhummel.de/apps/ssh.html#config

It took a while to find out that `Host *` should be at the end of the file if you want to override things.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: