23 comments

[ 7.1 ms ] story [ 81.8 ms ] thread
This is awesome.
They have similarities, but awesome is a graphical tiling window manager, whereas tmux is only for terminal sessions.

/s

I see what you did there. ;-)
I was about to make en emacs joke, but I don't feel the need anymore.
Tmux inside Awesome <3 <3 <3 <3 <3 <3 <3
This is awesome! I've been using tmux for years and didn't even know there were plugins.
Count me in that list! This is fantastic, and is likely to help push me over the edge to using tmux by default on my local workstation.
(comment deleted)
Been using it for a while now. Here is my plugin list:

    set -g @tpm_plugins '              \
        tmux-plugins/tpm                 \
        tmux-plugins/tmux-sensible       \
        tmux-plugins/tmux-open           \
        tmux-plugins/tmux-resurrect      \
        tmux-plugins/tmux-pain-control   \
        tmux-plugins/tmux-battery        \
        tmux-plugins/tmux-online-status  \
Off topic: How do most people on HN use tmux?

I was using it for a while but then realised I never used it over SSH and I rarely disconnected from sessions and opened them again. Are there other people in that camp?

You are a brave man. What if you run a long/important task on the server and you lose the connection (A/C in the building going away, Internet connection outage, etc...)?
I don't think I was clear, sorry. I meant I rarely use it on remote servers, I rarely have the need for that process.

I only have a need to do dev locally and was using tmux on my local machine. I know several other devs who only use tmux in this fashion.

I know many people use it when they are on a remote machine via ssh - what are the usual activities that require someone to be ssh'ed in doing complex tasks directly on a remote machine?

The most common thing that comes to mind is altering huge database tables. You may need from minutes to hours to perform heavy SQL operations and if you run your commands from a client you want it to survive the ssh session, no matter what. Another example is the import/export of large quantities of data (e.g. to clone/move a machine) or perform a long running task (e.g. you found a better way to compress images and want to run it once on every image). Of course these are not everyday tasks, but once in a while they may be required. That said, if you connect via ssh to a server you are rarely happy to "lose" whatever task you have run, there aren't major drawbacks in using screen/tmux everytime you connect to a remote server.
Where I work, most of our development (includes building, testing and packaging) is done on remote machines to which we ssh to. Few people prefer gui ide's so most ssh and then run vim or emacs. Having tmux on the server hub is pretty convenient. Especially nice if you want to run a set of tests over night.
What is the advantage to development being done on remote machines? Forgive me if I'm missing something obvious - it just seems quite different to the paradigms I've seen in 'the real world'.
I use it over SSH all the time. All our kit is in a data centre and once or twice a day my corp VPN client drops out. It's a godsend.
I use it for just about everything work-related, but given that my day job is literally "connect to sets of remote servers and bang out code" it'd be insane not to. Some of my coworkers still use screen, but tmux + wemux having the automatic "scale to the smallest attached screen" + "automatically follow the driver in pair mode" means there's a lot less "can you shrink your window"/"which window are you in now?" types of interruptions.

Apart from that, I've got a perpetual tmux running on my linode for irssi, and I've also got tmux running locally-- being able to set up multiple sessions connected to the same tmux server means that I can have a different tmux session per physical monitor, which means both a shared tmux copy/paste buffer and the ability to easily flip from window to window depending on what I want on which monitor. Ctrl+B for the local tmux, Ctrl+A for remote tmux means that there's no weird double-control-characters necessary. Add in some sneaky scripts to symlink login SSH agents to a known location that's exported to all tmux sessions for ease of git and you end up with a really clean overall workflow.

It's basically my window manager. I've one terminal that most stuff gets done in, which runs full screen.

I also use it remotely on a server, but it's just as important locally.

I work mostly locally, but I still use tmux. I've found it much easier to use than multiple tabs or windows of iterm, and it's nice to have power line right there on the screen at all times. As others have said, the clipboard functionality is nice as well.
I read that and realized I had a few tmux session that were running for like 4 months on two servers
(comment deleted)