tmux-resurrect/README.md

121 lines
3.6 KiB
Markdown
Raw Normal View History

2014-08-25 19:52:07 +00:00
# Tmux Session Saver
2014-08-27 19:31:10 +00:00
Persists `tmux` environment across system restarts.
2014-08-26 14:07:04 +00:00
2014-08-27 19:31:10 +00:00
Tmux is great, except when you have to restart your computer. You loose all the
running programs, working directories, pane layouts etc.
There are helpful management tools out there, but they require initial
configuration and continuous updates as your workflow evolves or you start new
projects.
Enter `tmux-session-saver`: tmux persistence without configuration so there are
no interruptions in your workflow.
2014-08-27 23:09:55 +00:00
It will even (optionally) [restore vim sessions](#restoring-vim-sessions)!
### Key bindings
- `prefix + Alt-s` - save
- `prefix + Alt-r` - restore
2014-08-27 19:31:10 +00:00
### About
This plugin goes to great lengths to save and restore all the details from your
`tmux` environment. Here's what's been taken care of:
- all sessions, windows, panes and their order
- current working directory for each pane
2014-08-27 23:09:55 +00:00
- **exact pane layouts** within windows
2014-08-27 19:31:10 +00:00
- active and alternative session
- active and alternative window for each session
- active pane for each window
- programs running within a pane! More details in the [configuration section](#configuration).
2014-08-27 23:09:55 +00:00
- restoring vim sessions (optional). More details in
[restoring vim sessions](#restoring-vim-sessions).
2014-08-27 19:31:10 +00:00
Requirements / dependencies: `tmux 1.9` or higher, `pgrep`
2014-08-26 22:11:13 +00:00
2014-08-26 14:07:04 +00:00
### Installation with [Tmux Plugin Manager](https://github.com/tmux-plugins/tpm) (recommended)
Add plugin to the list of TPM plugins in `.tmux.conf`:
set -g @tpm_plugins " \
tmux-plugins/tpm \
tmux-plugins/tmux-session-saver \
"
Hit `prefix + I` to fetch the plugin and source it. You should now be able to
use the plugin.
### Manual Installation
Clone the repo:
$ git clone https://github.com/tmux-plugins/tmux-session-saver ~/clone/path
Add this line to the bottom of `.tmux.conf`:
run-shell ~/clone/path/session_saver.tmux
Reload TMUX environment:
# type this in terminal
$ tmux source-file ~/.tmux.conf
You should now be able to use the plugin.
2014-08-27 19:31:10 +00:00
### Configuration
2014-08-28 12:35:49 +00:00
Only a conservative list of programs is restored by default:
`vi vim emacs man less more tail top htop irssi irb pry "~rails console"`.
2014-08-27 19:31:10 +00:00
Open a github issue if you think some other program should be on the default list.
- Restore additional programs with the setting in `.tmux.conf`:
2014-08-27 19:31:10 +00:00
2014-08-28 12:35:49 +00:00
set -g @session-saver-processes 'ssh psql mysql sqlite3'
2014-08-27 19:31:10 +00:00
- Programs with arguments should be double quoted:
set -g @session-saver-processes 'some_program "git log"'
- Start with tilde to restore a program whose process contains target name:
set -g @session-saver-processes 'some_program "~rails server"'
2014-08-27 19:31:10 +00:00
- Don't restore any programs:
set -g @session-saver-processes 'false'
- Restore **all** programs (be careful with this!):
set -g @session-saver-processes ':all:'
2014-08-27 23:09:55 +00:00
#### Restoring vim sessions
- save vim sessions - I recommend [tpope/vim-obsession](tpope/vim-obsession)
- in `.tmux.conf`:
set -g @session-saver-strategy-vim "session"
`tmux-session-saver` will now restore vim sessions if `Sessions.vim` file is
present.
2014-08-27 19:31:10 +00:00
### Reporting bugs and contributing
Code contributions are welcome!
If you find a bug please report it in the issues. When reporting a bug please
2014-08-28 14:43:32 +00:00
attach:
- a file symlinked to `~/.tmux/sessions/last`.
- your `.tmux.conf`
- if you're getting an error paste it to a [gist](https://gist.github.com/) and
link it in the issue
2014-08-27 19:31:10 +00:00
### Credits
2014-08-27 23:09:55 +00:00
[Mislav Marohnić](https://github.com/mislav) - the idea for the plugin came from his
2014-08-27 19:31:10 +00:00
[tmux-session script](https://github.com/mislav/dotfiles/blob/master/bin/tmux-session).
2014-08-25 19:52:07 +00:00
### License
[MIT](LICENSE.md)