8 comments

[ 2.5 ms ] story [ 24.9 ms ] thread
It says it's inspired by tmuxinator and tmuxp...as someone who uses tmux often but none of the above, what are the differences in the tools? What makes any one of these a better choice than the others?
There's a feature that I miss in tmuxinator: an ability to manually start windows from configuration. For example, at my daily job I often do:

  $ smug start project # when I start my day
  $ smug start project:chats-microservices # when I'm about to start working on chats-microservice
The last command just creates a window in current session with configuration you specified. Also, smug is dependency-free. You don't need ruby or python for it.
Semi-related question. I've never used tmux. I use i3 as my window manager. Is there any reason to use tmux and a tiling wm together, or are they redundant? The only benefit I can see from adding tmux to my setup is persistent terminal sessions, and I don't really see myself using them much.
I use i3 as well, I think it provides a lot of the advantages that tmux does but there are some features that tmux adds which can be useful. You mention persistence, which is sometimes handy (though you will need a plug-in like tmux-resurrect if you want sessions to persist after a reboot). The main advantage I’ve found with tmux (along with something like tmuxinator, tmuxp, and now Smug) is that you can set up complex layouts containing multiple windows and panes. Then you can launch that layout with a single command. For instance, I’ve setup a system monitoring layout that launches htop, glances, tcpdump, and so on with the setup, sizing, and configuration I want. This capability is often useful for project specific arrangements and any kind of complex setup that you might want to reuse at some point in the future.
Then you don't have to. tmux is cool, but if you don't _continue working from where you left_ you're fine re-opening 2-3 terminals, or use workspaces for that.

I like tmux because I can launch a tmux session inside a project with shell/vim/loaded-secrets/etc and then just attach to that session and keep working without reloads.

Another tool I use heavily is "direnv".

It's written in Go. That's a HUGE dependency.
Yes, but you don't need Go to run it. You can just download a pre-compiled binary from the releases page.