5 ms·
I use a tool called tummy (https://github.com/minhajuddin/tummy https://github.com/minhajuddin/tummy full disclosure: built by me) which allows me to create a T
by minhajuddin 10y ago
I use a tool called tummy (https://github.com/minhajuddin/tummy https://github.com/minhajuddin/tummy full disclosure: built by me) which allows me to create a Tmuxfile per project. A typical file looks like this:
session "liveform"
directory "/home/minhajuddin/r/liveform/frontend"
window "src", [
pane("vim TODO"),
]
window "server-pry", [
pane("puma --port 3000 --config <(echo '')"),
pane("rails c", :horizontal),
]
window "play", [
pane("git status"),
]
window "misc", [
pane("sidekiq"),
#pane("httpdebug", :horizontal),
pane("cd ~/s/html; fs", :horizontal),
pane("guard", :horizontal),
]
# vim: filetype=ruby
- dxhdr 10y agoYour github seems to be missing the code! require "tummy/version" module Tummy # Your code goes here... end
- minhajuddin 10y agoAll of the code is actually in a executable script https://github.com/minhajuddin/tummy/blob/master/exe/tummy https://github.com/minhajuddin/tummy/blob/master/exe/tummy I am a bit biased, but it has been working very nicely for me. It also has ability to pass raw tmux arguments for things which aren't supported by it.
- positr0n 10y agoI used to use tools like that (tummy, teamocil, etc) but I've since discovered tmux-resurrect. It persists tmux sessions, windows, panes, and a whitelist of non-destructive commands like vim and top across reboots. Now my tmux sessions just organically grow and shrink as necessary and I never worry about having to recreate them. Of course I can see the case for combining both tools. If you have a lot of projects, and/or want REPLs loaded you might not want them sitting around in memory for months if you're not going to use them. It is trivial to get working. Just use tmux plugin manager to install tmux-resurrect and tmux-continuum. https://github.com/tmux-plugins/tpm https://github.com/tmux-plugins/tpm Example usage in my dotfiles: https://github.com/positron/dotfiles/blob/master/.tmux.conf#L72-L99 https://github.com/positron/dotfiles/blob/master/.tmux.conf#...
- minhajuddin 10y agoI've tried tmux resurrect. Wasn't for me. With a predefined script I can close and open many windows with abandon. Also, creating the initial script is simple enough. I guess different strokes for different folks :)
- nnutter 10y agoDoes it save environment variables too?
- funksta 10y agoI don't believe it does save env vars. However, as an owner of a crashy 2010 MBP, tmux-resurrect saves my bacon several times a week. I very highly recommend it.
- minhajuddin 10y agoIt doesn't save anything, it is just a startup script to get your tmux session set up the way you want. You can however, have env vars in the script or source from a particular file. e.g. session "grnc_hub" directory "/home/minhajuddin/a/grnc_hub" window "server", [ pane("RAILS_ENV=production rails s"), pane("source ./.env && rails s"), ] ...
- toddnni 10y agoNo, but add an autoenv script of your choice, like zsh-autoenv and the combination is nearly perfect.
- jitl 10y agoI've been working on a Tmux manipulation library in Ruby as part of another project of mine, called Appear. Appear can raise any process to the front of your GUI (if your GUI is macOS), even if that process is in a disconnected Tmux session. I'm also working on a little app that allows you to open files in Finder into console Tmux+Nvim. Project: https://github.com/airbnb/appear https://github.com/airbnb/appear Tmux library source: https://github.com/airbnb/appear/blob/master/lib/appear/tmux.rb https://github.com/airbnb/appear/blob/master/lib/appear/tmux... Tmux library docs: http://www.rubydoc.info/gems/appear/Appear/Tmux http://www.rubydoc.info/gems/appear/Appear/Tmux Example usage: https://github.com/airbnb/appear/blob/master/lib/appear/editor.rb#L110-L152 https://github.com/airbnb/appear/blob/master/lib/appear/edit... Nvim+Tmux file handler app: https://github.com/airbnb/appear/pull/11 https://github.com/airbnb/appear/pull/11
- highd 10y agoNice! I've hacked some shell scripts together to do something similar, but this is way better!