Coder Social home page Coder Social logo

tmux-continuum's Introduction

tmux-continuum

Features:

  • continuous saving of tmux environment
  • automatic tmux start when computer/server is turned on
  • automatic restore when tmux is started

Together, these features enable uninterrupted tmux usage. No matter the computer or server restarts, if the machine is on, tmux will be there how you left it off the last time it was used.

Tested and working on Linux, OSX and Cygwin.

Continuous saving

Tmux environment will be saved at an interval of 15 minutes. All the saving happens in the background without impact to your workflow.

This action starts automatically when the plugin is installed. Note it requires the status line to be on to run (since it uses a hook in status-right to run).

Automatic tmux start

Tmux is automatically started after the computer/server is turned on.

See the instructions on how to enable this for your system.

Automatic restore

Last saved environment is automatically restored when tmux is started.

Put set -g @continuum-restore 'on' in .tmux.conf to enable this.

Note: automatic restore happens exclusively on tmux server start. No other action (e.g. sourcing .tmux.conf) triggers this.

Dependencies

tmux 1.9 or higher, bash, tmux-resurrect plugin.

Installation with Tmux Plugin Manager (recommended)

Please make sure you have tmux-resurrect installed.

Add plugin to the list of TPM plugins in .tmux.conf:

set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'

Hit prefix + I to fetch the plugin and source it. The plugin will automatically start "working" in the background, no action required.

Manual Installation

Please make sure you have tmux-resurrect installed.

Clone the repo:

$ git clone https://github.com/tmux-plugins/tmux-continuum ~/clone/path

Add this line to the bottom of .tmux.conf:

run-shell ~/clone/path/continuum.tmux

Reload TMUX environment with: $ tmux source-file ~/.tmux.conf

The plugin will automatically start "working" in the background, no action required.

Docs

Other goodies

  • tmux-copycat - a plugin for regex searches in tmux and fast match selection
  • tmux-yank - enables copying highlighted text to system clipboard
  • tmux-open - a plugin for quickly opening highlighted file or a url

Known Issues

  • In order to be executed periodically, the plugin updates the status-right tmux variable. In case some plugin (usually themes) overwrites the status-right variable, the autosave feature stops working. To fix this issue, place the plugin last in the TPM plugins list.

Reporting bugs and contributing

Both contributing and bug reports are welcome. Please check out contributing guidelines.

License

MIT

tmux-continuum's People

Contributors

ahaasler avatar alfredbez avatar bruno- avatar diegoximenes avatar dotysan avatar dsedivec avatar evandrocoan avatar jakobgm avatar jarosser06 avatar knopki avatar kqwyf avatar lexjacobs avatar mattkatz avatar neynt avatar nivnadler avatar primeapple avatar revolter avatar rmartine-ias avatar studgeek avatar ubiquitousphoton avatar yevgenykuz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tmux-continuum's Issues

Tmux resurrect file not found!

I get this error when running tmux.

Running on OSX Sierra 10.12.2
Tmux 2.3

Here is my tmux.conf file:

# TMUX Ressurect plugin
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'

set -g @continuum-save-interval '5'
set -g @continuum-restore 'on'

run '~/.tmux/plugins/tpm/tpm'

can I only save the last tmux environment file?

It's good to save all tmux environment files in ~/.tmux/resurrect/ directory.
but for people like me who only need the last one file, saving other files maybe not useful.

Can you tmux hero add a switch or other method to only save the last tmux environment file?
such as:
set -g @continuum-save-only-one-file 'on'

many thanks. ^_^

Systemd service assumes tmux path

The path assumed by the systemd service template can be wrong on certain distributions. In particular, NixOS does not put the executable anywhere you'd expect it. For my user profile, it's at /etc/profiles/per-user/mkaito/bin/tmux. As you can see, there's no way for you to know in advance.

If at all possible, the template should run $(which tmux), instead of assuming it knows the path.

Automatic tmux start and automatic restore not working in OSX

Automatic tmux start and automatic restore does not work in OSX

Here's the .tmux.conf

unbind C-b
set-option -g prefix C-a
bind C-a send-prefix

set -g mouse-utf8 on
set -g mouse on

set-option -g default-command "reattach-to-user-namespace -l zsh"

set -g terminal-overrides 'xterm*:smcup@:rmcup@'

set -g default-command "reattach-to-user-namespace -l /bin/zsh"

# List of plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'

# Other examples:
# set -g @plugin 'github_username/plugin_name'
# set -g @plugin '[email protected]/user/plugin'
# set -g @plugin '[email protected]/user/plugin'

# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.tmux/plugins/tpm/tpm'

set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'

set -g @continuum-restore 'on'
set -g @continuum-boot 'on'
set -g @continuum-boot-options 'iterm'

tmux 2.1
iTerm2 2.9.20160313
OSX 10.11.4

Automatic saving is working fine.

Autosave not working macOS Sierra 10.12

Not sure if this is related to macOS Sierra update or not, I never had it working before I updated.

When tmux is started, 1 resurrect restore file is written to ~/.tmux/resurrect, but it never auto-saves afterward. I have my interval set to 1 and continuum status confirms it is 1. I have updated all of my plugins and made sure no other plugins are installed other than those listed in my tmux.conf. Below is my tmux.conf as well as an output of all my tmux global options. I haven't updated my tmux.conf in awhile and I initially started with this configuration: gpakosz/.tmux. I'd like to move away from such an extensive tmux.conf and handle most functionality through plugins.

# cat << ►_◄ > /dev/null


# -- general -------------------------------------------------------------------

set -g default-terminal "screen-256color" # colors!
setw -g xterm-keys on
set -s escape-time 0                      # fastest command sequences
set -sg repeat-time 600                   # increase repeat timeout
set -s quiet on                           # disable various messages

set -g prefix2 C-a                        # GNU-Screen compatible prefix
bind C-a send-prefix -2

set -g history-limit 5000                 # boost history

# edit configuration
bind e new-window -n '~/.tmux.conf.local' "sh -c '\${EDITOR:-vim} ~/.tmux.conf.local && tmux source ~/.tmux.conf && tmux display \"~/.tmux.conf sourced\"'"

# reload configuration
bind r source-file ~/.tmux.conf \; display '~/.tmux.conf sourced'


# -- display -------------------------------------------------------------------

set -g base-index 1         # start windows numbering at 1
setw -g pane-base-index 1   # make pane numbering consistent with windows

setw -g automatic-rename on # rename window to reflect current program
# renumber windows when a window is closed
set -g renumber-windows on

set -g set-titles on                        # set terminal title
set -g set-titles-string '#h ❐ #S ● #I #W'

set -g display-panes-time 800 # slightly longer pane indicators display time
set -g display-time 1000      # slightly longer status messages display time

set -g status-interval 10     # redraw status line every 10 seconds

#24 hour clock
setw -g clock-mode-style 24

# clear both screen and history
bind -n C-l send-keys C-l \; run 'tmux clear-history'

# activity
set -g monitor-activity on
set -g visual-activity off


# -- navigation ----------------------------------------------------------------

# find session
bind C-f command-prompt -p find-session 'switch-client -t %%'

# pane navigation
bind -r h select-pane -L  # move left
bind -r j select-pane -D  # move down
bind -r k select-pane -U  # move up
bind -r l select-pane -R  # move right
bind > swap-pane -D       # swap current pane with the next one
bind < swap-pane -U       # swap current pane with the previous one

# maximize current pane
bind + run 'cut -c3- ~/.tmux.conf | sh -s maximize_pane'

# pane resizing
bind -r H resize-pane -L 2
bind -r J resize-pane -D 2
bind -r K resize-pane -U 2
bind -r L resize-pane -R 2

# window navigation
unbind n
unbind p
bind -r C-h previous-window # select previous window
bind -r C-l next-window     # select next window
bind Tab last-window        # move to last active window

# toggle mouse
bind m run "cut -c3- ~/.tmux.conf | sh -s toggle_mouse"


# -- urlview -------------------------------------------------------------------

bind U run "cut -c3- ~/.tmux.conf | sh -s urlview #{pane_id}"


# -- facebook pathpicker -------------------------------------------------------

bind F run "cut -c3- ~/.tmux.conf | sh -s fpp #{pane_id}"


# -- list choice ---------------------------------------------------------------

bind -t vi-choice h tree-collapse
bind -t vi-choice l tree-expand
run -b 'tmux bind -t vi-choice K start-of-list 2> /dev/null'
run -b 'tmux bind -t vi-choice J end-of-list 2> /dev/null'
bind -t vi-choice H tree-collapse-all
bind -t vi-choice L tree-expand-all
bind -t vi-choice Escape cancel


# -- edit mode -----------------------------------------------------------------

# the following vi-copy bindings match my vim settings
#   see https://github.com/gpakosz/.vim.git
bind -ct vi-edit H start-of-line
bind -ct vi-edit L end-of-line
bind -ct vi-edit q cancel
bind -ct vi-edit Escape cancel


# -- copy mode -----------------------------------------------------------------

bind Enter copy-mode # enter copy mode
bind b list-buffers  # list paster buffers
bind p paste-buffer  # paste from the top pate buffer
bind P choose-buffer # choose which buffer to paste from

# the following vi-copy bindings match my vim settings
#   see https://github.com/gpakosz/.vim.git
bind -t vi-copy v begin-selection
bind -t vi-copy C-v rectangle-toggle
bind -t vi-copy y copy-selection
bind -t vi-copy Escape cancel
bind -t vi-copy H start-of-line
bind -t vi-copy L end-of-line

# copy to Mac OSX pasteboard
if -b 'which -s reattach-to-user-namespace' 'bind y run "tmux save-buffer - | reattach-to-user-namespace pbcopy"'


# -- user defined --------------------------------------------------------------

if '[ -f ~/.tmux.conf.local ]' 'source ~/.tmux.conf.local'



# -- plugins ------------------------------------------------------------------------
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'

# tmux-resurrect config
set -g @resurrect-strategy-vim 'session'
set -g @resurrect-strategy-nvim 'session'
set -g @resurrect-capture-pane-contents 'on'

# tmux-continuum config
set -g @continuum-save-interval '1'
set -g @continuum-restore 'on'
set -g @continuum-boot 'on'
set -g @continuum-boot-options 'iterm,fullscreen'
set -g status-right 'Continuum status: #{continuum_status}'
run-shell ~/.tmux/plugins/tmux-continuum/continuum.tmux

# initialize tmux plugin manager 
# NOTE: keep this line at (or near) the very bottom of tmux.conf
run '~/.tmux/plugins/tpm/tpm'

# -- 8< ------------------------------------------------------------------------

run 'cut -c3- ~/.tmux.conf | sh -s apply_configuration'


# ►_◄
#
# # exit the script if any statement returns a non-true return value
# set -e
#
# apply_theme() {
#   tmux_conf_theme=${tmux_conf_theme:-default}
#   case "${tmux_conf_theme}" in
#     powerline|powerline_patched_font)
#       left_separator=''
#       left_separator_black=''
#       right_separator=''
#       right_separator_black=''
#       session_symbol=''
#       ;;
#     ""|default)
#       left_separator='|'
#       left_separator_black=''
#       right_separator='|'
#       right_separator_black=''
#       ;;
#   esac
#
#   case "$tmux_conf_theme" in
#     ""|default|powerline)
#
#       # panes
#       tmux_conf_theme_pane_border_fg=${tmux_conf_theme_pane_border_fg:-colour238}               # light gray
#       tmux_conf_theme_pane_active_border_fg=${tmux_conf_theme_pane_active_border_fg:-colour39}  # light blue
#
#       tmux set -g pane-border-style fg=$tmux_conf_theme_pane_border_fg \; set -g pane-active-border-style fg=$tmux_conf_theme_pane_active_border_fg
#       #uncomment for fat borders
#       #tmux set -ga pane-border-style bg=$tmux_conf_theme_pane_border_fg \; set -ga pane-active-border-style bg=$tmux_conf_theme_pane_active_border_fg
#
#       tmux_conf_theme_display_panes_active_colour=${tmux_conf_theme_display_panes_active_colour:-colour39}  # light blue
#       tmux_conf_theme_display_panes_colour=${tmux_conf_theme_display_panes_colour:-colour39}                # light blue
#       tmux set -g display-panes-active-colour $tmux_conf_theme_display_panes_active_colour \; set -g display-panes-colour $tmux_conf_theme_display_panes_colour
#
#       tmux_conf_theme_highlight_focused_pane=${tmux_conf_theme_highlight_focused_pane:-disabled}
#       tmux_conf_theme_focused_pane_fg=${tmux_conf_theme_focused_pane_fg:-default}   # default
#       tmux_conf_theme_focused_pane_bg=${tmux_conf_theme_focused_pane_bg:-colour23}  # dark blue/green
#       highlight_focused_pane_enabled=$( ([ x"$tmux_conf_theme_highlight_focused_pane" = x"enabled" ] || [ -z "$tmux_conf_theme_highlight_focused_pane" ]) && echo "true" || echo "false" )
#       if [ x"$highlight_focused_pane_enabled" = x"true" ] ; then
#         tmux setw -g window-active-style "fg=$tmux_conf_theme_focused_pane_fg,bg=$tmux_conf_theme_focused_pane_bg"
#       else
#         tmux setw -g window-active-style default
#       fi
#
#       # messages
#       tmux_conf_theme_message_fg=${tmux_conf_theme_message_fg:-colour16}  # black
#       tmux_conf_theme_message_bg=${tmux_conf_theme_message_bg:-colour226} # yellow
#       tmux_conf_theme_message_attr=${tmux_conf_theme_message_attr:-bold}
#       tmux set -g message-style fg=$tmux_conf_theme_message_fg,bg=$tmux_conf_theme_message_bg,$tmux_conf_theme_message_attr
#
#       tmux_conf_theme_message_command_fg=${tmux_conf_theme_message_command_fg:-colour16}   # black
#       tmux_conf_theme_message_command_bg=${tmux_conf_theme_message_command_bg:-colour160}  # light yellow
#       tmux set -g message-command-style fg=$tmux_conf_theme_message_command_fg,bg=$tmux_conf_theme_message_command_bg,$tmux_conf_theme_message_attr
#
#       # windows mode
#       tmux_conf_theme_mode_fg=${tmux_conf_theme_mode_fg:-colour16}  # black
#       tmux_conf_theme_mode_bg=${tmux_conf_theme_mode_bg:-colour226} # yellow
#       tmux_conf_theme_mode_attr=${tmux_conf_theme_mode_attr:-bold}
#       tmux setw -g mode-style fg=$tmux_conf_theme_mode_fg,bg=$tmux_conf_theme_mode_bg,$tmux_conf_theme_mode_attr
#
#       # status line
#       tmux_conf_theme_status_fg=${tmux_conf_theme_status_fg:-colour253} # white
#       tmux_conf_theme_status_bg=${tmux_conf_theme_status_bg:-colour232} # dark gray
#       tmux set -g status-style fg=$tmux_conf_theme_status_fg,bg=$tmux_conf_theme_status_bg
#
#       tmux_conf_theme_session_fg=${tmux_conf_theme_session_fg:-colour16}  # black
#       tmux_conf_theme_session_bg=${tmux_conf_theme_session_bg:-colour226} # yellow
#       status_left="#[fg=$tmux_conf_theme_session_fg,bg=$tmux_conf_theme_session_bg,bold] ❐ #S #[fg=$tmux_conf_theme_session_bg,bg=$tmux_conf_theme_status_bg,nobold]$left_separator_black"
#       if [ x"`tmux -q -L tmux_theme_status_left_test -f /dev/null new-session -d \; show -g -v status-left \; kill-session`" = x"[#S] " ] ; then
#         status_left="$status_left "
#       fi
#       tmux set -g status-left-length 32 \; set -g status-left "$status_left"
#
#       tmux_conf_theme_window_status_fg=${tmux_conf_theme_window_status_fg:-colour245} # light gray
#       tmux_conf_theme_window_status_bg=${tmux_conf_theme_window_status_bg:-colour232} # dark gray
#       window_status_format="#I #W"
#       tmux setw -g window-status-style fg=$tmux_conf_theme_window_status_fg,bg=$tmux_conf_theme_window_status_bg \; setw -g window-status-format "$window_status_format"
#
#       tmux_conf_theme_window_status_current_fg=${tmux_conf_theme_window_status_current_fg:-colour16} # black
#       tmux_conf_theme_window_status_current_bg=${tmux_conf_theme_window_status_current_bg:-colour39} # light blue
#       window_status_current_format="#[fg=$tmux_conf_theme_window_status_bg,bg=$tmux_conf_theme_window_status_current_bg]$left_separator_black#[fg=$tmux_conf_theme_window_status_current_fg,bg=$tmux_conf_theme_window_status_current_bg,bold] #I $left_separator #W #[fg=$tmux_conf_theme_window_status_current_bg,bg=$tmux_conf_theme_status_bg,nobold]$left_separator_black"
#       tmux setw -g window-status-current-format "$window_status_current_format"
#       tmux set -g status-justify left
#
#       tmux_conf_theme_window_status_activity_fg=${tmux_conf_theme_window_status_activity_fg:-default}
#       tmux_conf_theme_window_status_activity_bg=${tmux_conf_theme_window_status_activity_bg:-default}
#       tmux_conf_theme_window_status_activity_attr=${tmux_conf_theme_window_status_activity_attr:-underscore}
#       tmux setw -g window-status-activity-style fg=$tmux_conf_theme_window_status_activity_fg,bg=$tmux_conf_theme_window_status_activity_bg,$tmux_conf_theme_window_status_activity_attr
#
#       tmux_conf_theme_window_status_bell_fg=${tmux_conf_theme_window_status_bell_fg:-colour226} # yellow
#       tmux_conf_theme_window_status_bell_bg=${tmux_conf_theme_window_status_bell_bg:-default}
#       tmux_conf_theme_window_status_bell_attr=${tmux_conf_theme_window_status_bell_attr:-blink,bold}
#       tmux setw -g window-status-bell-style fg=$tmux_conf_theme_window_status_bell_fg,bg=$tmux_conf_theme_window_status_bell_bg,$tmux_conf_theme_window_status_bell_attr
#
#       window_status_last_fg=colour39 # light blue
#       window_status_last_attr=default
#       tmux setw -g window-status-last-style $window_status_last_attr,fg=$window_status_last_fg
#
#       tmux_conf_theme_prefix=${tmux_conf_theme_prefix:-disabled}
#       tmux_conf_theme_battery=${tmux_conf_theme_battery:-enabled}
#       tmux_conf_theme_time=${tmux_conf_theme_time:-enabled}
#       tmux_conf_theme_date=${tmux_conf_theme_date:-enabled}
#       tmux_conf_theme_username=${tmux_conf_theme_username:-enabled}
#       tmux_conf_theme_hostname=${tmux_conf_theme_hostname:-enabled}
#
#       prefix_enabled=$( ([ x"$tmux_conf_theme_prefix" = x"enabled" ] || [ -z "$tmux_conf_theme_prefix" ]) && echo "true" || echo "false" )
#       battery_enabled=$( ([ x"$tmux_conf_theme_battery" = x"enabled" ] || [ -z "$tmux_conf_theme_battery" ]) && echo "true" || echo "false" )
#       time_enabled=$( ([ x"$tmux_conf_theme_time" = x"enabled" ] || [ -z "$tmux_conf_theme_time" ]) && echo "true" || echo "false" )
#       date_enabled=$( ([ x"$tmux_conf_theme_date" = x"enabled" ] || [ -z "$tmux_conf_theme_date" ]) && echo "true" || echo "false" )
#       username_enabled=$( ([ x"$tmux_conf_theme_username" = x"enabled" ] || [ -z "$tmux_conf_theme_username" ] || ([ x"$tmux_conf_theme_username" = x"ssh" ] && ([ -n "$SSH_CLIENT" ] || [ -n "$SSH_CONNECTION" ] || [ -n "$SSH_TTY" ]))) && echo "true" || echo "false" )
#       hostname_enabled=$( ([ x"$tmux_conf_theme_hostname" = x"enabled" ] || [ -z "$tmux_conf_theme_hostname" ] || ([ x"$tmux_conf_theme_hostname" = x"ssh" ] && ([ -n "$SSH_CLIENT" ] || [ -n "$SSH_CONNECTION" ] || [ -n "$SSH_TTY" ]))) && echo "true" || echo "false" )
#
#       tmux_conf_theme_prefix_fg=${tmux_conf_theme_prefix_fg:-colour253}       # white
#       tmux_conf_theme_prefix_bg=${tmux_conf_theme_prefix_bg:-colour16}        # black
#       tmux_conf_theme_time_date_fg=${tmux_conf_theme_time_date_fg:-colour247} # light gray
#       tmux_conf_theme_time_date_bg=${tmux_conf_theme_time_date_bg:-colour232} # dark gray
#       tmux_conf_theme_username_fg=colour254                                   # white
#       tmux_conf_theme_username_bg=colour160                                   # red
#       tmux_conf_theme_hostname_fg=colour16                                    # black
#       tmux_conf_theme_hostname_bg=colour254                                   # white
#
#       if [ x"$prefix_enabled" = x"true" ] ; then
#         status_right_prefix="#{?client_prefix,#[fg=$tmux_conf_theme_prefix_fg]#[bg=$tmux_conf_theme_prefix_bg]#[bold]⌨ #[fg=$tmux_conf_theme_prefix_fg]#[bg=$tmux_conf_theme_status_bg]#[nobold],}"
#       fi
#       if [ x"$battery_enabled" = x"true" ] ; then
#         status_right_battery="${tmux_conf_battery:-#(cut -c3- ~/.tmux.conf | sh -s battery ${tmux_conf_battery_symbol:-block} ${tmux_conf_battery_symbol_count:-auto} \"${tmux_conf_battery_palette:-colour160,colour254,colour16}\" ${tmux_conf_battery_status:-enabled})} "
#         has_battery=$(eval echo \$${status_right_battery#\#})
#         if [ -n "$has_battery" ] && ([ x"$time_enabled" = x"true" ] || [ x"$date_enabled" = x"true" ]) ; then
#           status_right_battery="${status_right_battery}#[fg=$tmux_conf_theme_time_date_fg,nobold]$right_separator"
#         fi
#       fi
#       if [ x"$time_enabled" = x"true" ] ; then
#         status_right_time="#[fg=$tmux_conf_theme_time_date_fg,nobold]${status_right_time} %R "
#         if [ x"$date_enabled" = x"true" ] ; then
#           status_right_time="${status_right_time}#[fg=$tmux_conf_theme_time_date_fg,nobold]$right_separator"
#         fi
#       fi
#       if [ x"$date_enabled" = x"true" ] ; then
#         status_right_date="#[fg=$tmux_conf_theme_time_date_fg,nobold] %d %b "
#       fi
#       if [ x"$username_enabled" = x"true" ] ; then
#         status_right_username="#[fg=$tmux_conf_theme_username_bg,bg=$tmux_conf_theme_time_date_bg,nobold]$right_separator_black#[fg=$tmux_conf_theme_username_fg,bg=$tmux_conf_theme_username_bg,nobold] #(whoami) "
#       fi
#       if [ x"$hostname_enabled" = x"true" ] ; then
#         if [ x"$username_enabled" = x"true" ] ; then
#           status_right_hostname="#[bg=$tmux_conf_theme_username_bg]"
#         else
#           status_right_hostname="#[bg=$tmux_conf_theme_time-data_bg]"
#         fi
#         status_right_hostname="#[fg=$tmux_conf_theme_hostname_bg,nobold]${status_right_hostname}$right_separator_black#[fg=$tmux_conf_theme_hostname_fg,bg=$tmux_conf_theme_hostname_bg,bold] #h "
#       fi
#
#       status_right="${status_right_prefix}${status_right_battery}${status_right_time}${status_right_date}${status_right_username}${status_right_hostname}"
#       tmux set -g status-right-length 64 \; set -g status-right "$status_right"
#
#       # clock
#       clock_mode_colour=colour39  # light blue
#       tmux setw -g clock-mode-colour $clock_mode_colour
#       ;;
#   esac
# }
#
# circled_digit() {
#   circled_digits='⓪①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳'
#   if [ $1 -lt 20 ] 2>/dev/null ; then
#     echo ${circled_digits:$1:1}
#   else
#     echo $1
#   fi
# }
#
# maximize_pane() {
#   tmux -q -L swap-pane-test -f /dev/null new-session -d \; new-window \; new-window \; swap-pane -t :1 \; kill-session || { tmux display 'your tmux version has a buggy swap-pane command - see ticket #108, fixed in upstream commit 78e783e'; exit; }
#   __current_pane=$(tmux display -p '#{pane_id}')
#
#   __dead_panes=$(tmux list-panes -s -F '#{pane_dead} #{pane_id} #{pane_start_command}' | grep -o '^1 %.\+maximized.\+$' || true)
#   __restore=$(echo "${__dead_panes}" | sed -n -E -e "s/^1 ${__current_pane} .+maximized.+(%[0-9]+)$/tmux swap-pane -s \1 -t ${__current_pane} \; kill-pane -t ${__current_pane}/p" -e "s/^1 (%[0-9]+) .+maximized.+${__current_pane}$/tmux swap-pane -s \1 -t ${__current_pane} \; kill-pane -t \1/p" )
#
#   if [ x"${__restore}" = x ] ; then
#     [ x"$(tmux list-panes | wc -l | sed 's/^ *//g')" = x1 ] && tmux display "Can't maximize with only one pane" && return
#     __window=$(tmux new-window -P "exec maximized...& tmux setw remain-on-exit on; clear; tmux clear-history; printf 'Pane has been maximized, press <prefix>+ to restore. %s' \\${__current_pane};")
#     __window=${__window%.*}
#
#     __guard=50
#     while ( [ x"$(tmux list-panes -t ${__window} -F '#{session_name}:#{window_index} #{pane_dead}')" != x"${__window} "1 ] && [ x"${__guard}" != x0 ] ) ; do sleep 0.01 ; __guard=$((__guard - 1)); done
#     if [ x"${__guard}" = 0 ] ; then
#       exit 1
#     fi
#
#     __new_pane=$(tmux display -p '#{pane_id}')
#     tmux setw remain-on-exit off \; swap-pane -s "${__current_pane}" -t "${__new_pane}"
#   else
#     ${__restore} || tmux kill-pane
#   fi
# }
#
# toggle_mouse() {
#   if (tmux show -g -w |grep -q mode-mouse); then
#     old=$(tmux show -g -w | grep mode-mouse | cut -d' ' -f2)
#     new=""
#
#     if [ "$old" = "on" ] ; then
#       new="off"
#     else
#       new="on"
#     fi
#
#     tmux set -g mode-mouse $new \;\
#          set -g mouse-resize-pane $new \;\
#          set -g mouse-select-pane $new \;\
#          set -g mouse-select-window $new \;\
#          display "mouse: $new"
#   else
#     old=$(tmux show -g | grep mouse | head -n 1 | cut -d' ' -f2)
#     new=""
#
#     if [ "$old" = "on" ] ; then
#       new="off"
#     else
#       new="on"
#     fi
#
#     tmux set -g mouse $new \;\
#          display "mouse: $new"
#   fi
# }
#
# battery() {
#   uname_s=$(uname -s)
#   if [ x"$uname_s" = x"Darwin" ]; then
#     batt=$(pmset -g batt)
#     percentage=$(echo $batt |egrep -o [0-9]+%) || return
#     discharging=$(echo $batt | grep -qi "discharging" && echo "true" || echo "false")
#     charge="${percentage%%%} / 100"
#   elif [ x"$uname_s" = x"Linux" ]; then
#     batpath=/sys/class/power_supply/BAT0
#     if [ ! -d $batpath ]; then
#       batpath=/sys/class/power_supply/BAT1
#     fi
#     discharging=$(grep -qi "discharging" $batpath/status && echo "true" || echo "false")
#     bat_capacity=$batpath/capacity
#     bat_energy_full=$batpath/energy_full
#     bat_energy_now=$batpath/energy_now
#     if [ -r "$bat_capacity" ] ; then
#       charge="$(cat $bat_capacity) / 100"
#     else
#       if [ ! -r "$bat_energy_full" -o ! -r "$bat_energy_now" ]; then
#         return
#       fi
#       charge="$(cat $bat_energy_now) / $(cat $bat_energy_full)" || return
#     fi
#   elif [ x"${uname_s:0:6}" = x"CYGWIN" ]; then
#     wmic path Win32_Battery 2>&1 | grep -q 'No Instance' && return
#     discharging=$(wmic path Win32_Battery Get BatteryStatus 2>/dev/null | grep -q 1 && echo "true" || echo "false")
#     percentage=$(wmic path Win32_Battery Get EstimatedChargeRemaining /format:list 2>/dev/null | grep '[^[:blank:]]' | cut -d= -f2)
#     charge="${percentage} / 100"
#   else
#     return
#   fi
#
#   battery_symbol=$1
#   battery_symbol_count=$2
#   battery_palette=$3
#   battery_status=$4
#   if [ x"$battery_symbol_count" = x"auto" ]; then
#     columns=$(tmux -q display -p '#{client_width}' 2> /dev/null || echo 80)
#     if [ $columns -ge 80 ]; then
#       battery_symbol_count=10
#     else
#       battery_symbol_count=5
#     fi
#   fi
#   battery_symbol_heart_full=♥
#   battery_symbol_heart_empty=♥
#   battery_symbol_block_full=◼
#   battery_symbol_block_empty=◻
#   eval battery_symbol_full='$battery_symbol_'"$battery_symbol"'_full'
#   eval battery_symbol_empty='$battery_symbol_'"$battery_symbol"'_empty'
#
#   if [ x"$battery_status" = x"1" ] || [ x"$battery_status" = x"true" ] || [ x"$battery_status" = x"enabled" ] ; then
#     if [ x"$discharging" = x"true" ]; then
#       echo "$uname_s" | grep -q -v "CYGWIN" && printf "%s " 🔋
#     else
#       printf "%s " ⚡
#     fi
#   fi
#
#   if echo $battery_palette | grep -q -E '^heat|gradient(,[a-z0-9]{7,9})?$'; then
#     battery_style=$(echo $battery_palette | cut -d, -f1)
#     battery_bg=$(echo $battery_palette | cut -s -d, -f2)
#     battery_bg=${battery_bg:-colour16}
#     gradient="196 202 208 214 220 226 190 154 118 82 46"
#     heat="233 234 235 237 239 241 243 245 247 144 143 142 184 214 208 202 196"
#     eval palette=$(echo \$$battery_style)
#     count=$(echo $(echo $palette | wc -w))
#
#     eval set -- "$palette"
#     palette=$(eval echo $(eval echo $(printf "\\$\{\$(expr %s \* $count / $battery_symbol_count)\} " $(seq 1 $battery_symbol_count))))
#
#     full=$(printf %.0f $(awk "BEGIN{print $charge * $battery_symbol_count}"))
#     printf '#[bg=%s]' $battery_bg
#     [ $full -gt 0 ] && \
#       printf "#[fg=colour%s]$battery_symbol_full" $(echo $palette | cut -d' ' -f1-$full)
#     empty=$(($battery_symbol_count - $full))
#     if [ x"$battery_symbol" = x"heart" ]; then
#       [ $empty -gt 0 ] && \
#         printf '#[fg=%s]' $battery_bg && \
#         printf "%0.s$battery_symbol_empty" $(seq 1 $empty)
#     else
#       [ $empty -gt 0 ] && \
#         printf "#[fg=colour%s]$battery_symbol_empty" $(echo $palette | cut -d' ' -f$((full+1))-$(($full + $empty)))
#     fi
#   elif echo $battery_palette | grep -q -E '^([#a-z0-9]{7,9},?){3}$'; then
#     battery_full_fg=$(echo $battery_palette | cut -d, -f1)
#     battery_empty_fg=$(echo $battery_palette | cut -d, -f2)
#     battery_bg=$(echo $battery_palette | cut -d, -f3)
#
#     full=$(printf %.0f $(awk "BEGIN{print $charge * $battery_symbol_count}"))
#     [ $full -gt 0 ] && \
#       printf '#[fg=%s,bg=%s]' $battery_full_fg $battery_bg && \
#       printf "%0.s$battery_symbol_full" $(seq 1 $full)
#     empty=$(($battery_symbol_count - $full))
#     [ $empty -gt 0 ] && \
#       printf '#[fg=%s,bg=%s]' $battery_empty_fg $battery_bg && \
#       printf "%0.s$battery_symbol_empty" $(seq 1 $empty)
#   fi
# }
#
# apply_configurable_bindings() {
#   tmux_conf_new_windows_retain_current_path=${tmux_conf_new_windows_retain_current_path:-false}
#   if [ x"$tmux_conf_new_windows_retain_current_path" = x"true" ] || [ x"$tmux_conf_new_windows_retain_current_path" = x"1" ] ; then
#     tmux bind c new-window -c '#{pane_current_path}'
#   else
#     tmux bind c new-window
#   fi
#
#   tmux_conf_new_panes_retain_current_path=${tmux_conf_new_panes_retain_current_path:-true}
#   if [ x"$tmux_conf_new_panes_retain_current_path" = x"true" ] || [ x"$tmux_conf_new_panes_retain_current_path" = x"1" ] ; then
#     tmux  bind '"' split-window -v -c "#{pane_current_path}"  \;\
#           bind % split-window -h -c "#{pane_current_path}"    \;\
#           bind - split-window -v -c "#{pane_current_path}"    \;\
#           bind _ split-window -h -c "#{pane_current_path}"
#   else
#     tmux  bind '"' split-window -v  \;\
#           bind % split-window -h    \;\
#           bind - split-window -v    \;\
#           bind _ split-window -h
#   fi
#
#   tmux_conf_new_session_prompt=${tmux_conf_new_session_prompt:-false}
#   if [ x"$tmux_conf_new_session_prompt" = x"true" ] || [ x"$tmux_conf_new_session_prompt" = x"1" ] ; then
#     tmux bind C-c command-prompt -p new-session 'new-session -s %%'
#   else
#     tmux bind C-c new-session
#   fi
# }
#
# apply_configuration() {
#  apply_theme
#  apply_configurable_bindings
#  for name in $(printenv | grep -Eo ^tmux_conf_[^=]+); do tmux setenv -gu $name; done;
# }
#
# urlview() {
#   tmux capture-pane -J -S - -E - -b urlview-$1 -t $1
#   tmux split-window "(tmux show-buffer -b urlview-$1 | urlview || true); tmux delete-buffer -b urlview-$1"
# }
#
# fpp() {
#   tmux capture-pane -J -S - -E - -b fpp-$1 -t $1
#   tmux split-window "(tmux show-buffer -b fpp-$1 | fpp || true); tmux delete-buffer -b fpp-$1"
# }
#
# $@

:show-options -g

@continuum-boot "on"                                                                                                                                                          [10/10]
@continuum-boot-options "iterm,fullscreen"
@continuum-restore "on"
@continuum-save-interval "1"
@continuum-save-last-timestamp "1476734430"
@plugin "tmux-plugins/tmux-continuum"
@resurrect-capture-pane-contents "on"
@resurrect-restore-script-path "/Users/jamis/.tmux/plugins/tmux-resurrect/scripts/restore.sh"
@resurrect-save-script-path "/Users/jamis/.tmux/plugins/tmux-resurrect/scripts/save.sh"
@resurrect-strategy-irb "default_strategy"
@resurrect-strategy-nvim "session"
@resurrect-strategy-vim "session"
assume-paste-time 1
base-index 1
bell-action any
bell-on-alert off
default-command ""
default-shell "/bin/bash"
destroy-unattached off
detach-on-destroy on
display-panes-active-colour colour39
display-panes-colour colour39
display-panes-time 800
display-time 1000
history-limit 5000
key-table "root"
lock-after-time 0
lock-command "lock -np"
message-command-style fg=colour16,bg=colour160,bright
message-style fg=colour16,bg=colour226,bright
mouse off
prefix C-b
prefix2 C-a
renumber-windows on
repeat-time 600
set-titles on
set-titles-string "#h ❐ #S ● #I #W"
status on
status-interval 10
status-justify left
status-keys emacs
status-left "#[fg=colour16,bg=colour226,bold] ❐ #S #[fg=colour226,bg=colour232,nobold] "
status-left-length 32
status-left-style default
status-position bottom
status-right "#(cut -c3- ~/.tmux.conf | sh -s battery block auto "colour160,colour254,colour16" enabled) #[fg=colour247,nobold]|#[fg=colour247,nobold] %R #[fg=colour247,nobold]|#[fg
=colour247,nobold] %d %b #[fg=colour160,bg=colour232,nobold]#[fg=colour254,bg=colour160,nobold] #(whoami) #[fg=colour254,nobold]#[bg=colour160]#[fg=colour16,bg=colour254,bold] #h "
status-right-length 64
status-right-style default
status-style fg=colour253,bg=colour232
update-environment "DISPLAY SSH_ASKPASS SSH_AUTH_SOCK SSH_AGENT_PID SSH_CONNECTION WINDOWID XAUTHORITY"
visual-activity off
visual-bell off
visual-silence off
word-separators " -_@"

[Docs] What is the default behavior?

The docs show

Automatic tmux start
Tmux is automatically started after the computer/server is turned on.
See the instructions how to enable this for your system.

and

Automatic restore
Last saved environment is automatically restored when tmux is started.
Put set -g @continuum-restore 'on' in .tmux.conf to enable this.

I don't understand - are these features enabled as written in the first lines, or should I manually enable them as written in the second lines?

continuum doesn't appear to work after restart on MacOS Sierra 10.12.6 and iTerm 2

So, bear with me as I'm not 100% sure I'm doing this right anyway but I have the following in my ~/.tmux.conf file:

# List of plugins
new-session
set-window-option -g mode-mouse on  
set -g history-limit 30000  


set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'

set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'

set -g @continuum-restore 'on'
set -g @continuum-boot 'on'
set -g @continuum-boot-options 'iterm'
set -g @continuum-save-interval '5'
set -g status-right 'Continuum status: #{continuum_status}'
set -g @resurrect-capture-pane-contents 'on'

# Other examples:
# set -g @plugin 'github_username/plugin_name'
# set -g @plugin '[email protected]/user/plugin'
# set -g @plugin '[email protected]/user/plugin'

# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.tmux/plugins/tpm/tpm'

and after startup, I open iTerm2 (which is set to run tmux ls immediately on load) and I get:

[~/Dev] $ tmux ls
error connecting to /private/tmp/tmux-503/default (No such file or directory)

which makes me think:

  • tmux is not running
  • continuum didn't start on boot

Now, if I start tmux manuallly tmux, I see:

image

and if I do a <tmux_binding>, <ctrl> r it successfully restores some version of my tmux settings but that feels more like resurrect than continuum.

Should I be expecting different behavior on restart? I read over this wiki article and any other docu I could find so I apologize if I missed something.

Thanks!

Restore not working on Linux / tmux 1.9-6

Hi there,
I've just discovered your work, last week and seriously thank you it is awesome !

I find the idea great, and most of the plugin where most wanted features in tmux for long time,
specially, a way of make tmux, survive reboot, so I ended installing continuum.

But even if I add the auto restore the session didn't come back, here some details:

I use tmuxinator to design the session content, (https://github.com/tmuxinator/tmuxinator)
and it is also used to launch tmux itself, by .Xsessionrc:

urxvtcd -e bash -c 'echo "--> Get Screen session central" &&
tmuxinator start central ' &

After that my revelant part of my ~/.tmux.conf

# List of plugins
# Supports `github_username/repo` or full git repo URLs
set -g @tpm_plugins '              \
  tmux-plugins/tpm                 \
  tmux-plugins/tmux-sensible       \
  tmux-plugins/tmux-copycat        \
  tmux-plugins/tmux-resurrect      \
  tmux-plugins/tmux-continuum      \
  tmux-plugins/tmux-yank           \

# Plugin conf
set -g @continuum-restore 'on'

# Other examples:
# github_username/plugin_name    \
# [email protected]/user/plugin     \
# [email protected]/user/plugin  \

# Initializes TMUX plugin manager.
# Keep this line at the very bottom of tmux.conf.
run-shell '~/.tmux/plugins/tpm/tpm'

Any idea / test to make it work ?

Guillaume.

tmux-continuum is overwriting the systemd user service

Re: https://github.com/tmux-plugins/tmux-continuum/blob/master/docs/systemd_details.md

This doc says that:

The first time tmux starts when @continuum-boot is set to 'on' tmux-continuum will generate a user level systemd unit file which it will save to ${HOME}/.config/systemd/user/tmux.service and enable it.

However, in practice, it appears to be doing this every time tmux starts. I go in and edit that file because I want to make it static (so that I can start tmux with my own script and make sure the env vars I want pass through, but still have things saved when I shut down [the ExecStop, etc.])...but my changes are reverted. I'm not sure if they are reverted on shutdown, startup, or daemon-reload, to be honest.

I will put in an override instead of tweaking the file directly for now.

problem in the documentation - interval is measured in seconds and not minutes

Hi,
the interval specified for the continuous saving under this url.
https://github.com/tmux-plugins/tmux-continuum/blob/master/docs/faq.md

is probably incorrect.
from testing i did it looks like the interval is running based on seconds and not minutes, which means that if save this configuation in your .tmux.conf file:
set -g @continuum-save-interval '1'
it will save every 1 second and not every 1 minute. causing an excessive use of CPU as your tmux sessions grow larger.

this can easily be identified by running top\htop and seeing that the contniuum_save.sh is running each X seconds that are specified in the configuration file.

you should either fix the code or fix the documentation.

this was happening on WSL v1 with debian, but I guess it would make no difference.

Roy

Autosave not working with zsh

Is there a known issue as of why the autosave mode might not work with zsh? The auto restore f.e. does work flawlessly though. Maybe I just miss a setting. Thanks for any hints! Attached my .tmux.conf.

# Copy-paste integration
set-option -g default-command "reattach-to-user-namespace -l zsh"

# Set default terminal color
set -g default-terminal "screen-256color"

# Use vim keybindings in copy mode
setw -g mode-keys vi
set -g status-keys vi

bind-key -t vi-edit Up   history-up
bind-key -t vi-edit Down history-down

# Setup 'v' to begin selection as in Vim
bind-key -t vi-copy v begin-selection
bind-key -t vi-copy y copy-pipe "reattach-to-user-namespace pbcopy"

# Update default binding of `Enter` to also use copy-pipe
unbind -t vi-copy Enter
bind-key -t vi-copy Enter copy-pipe "reattach-to-user-namespace pbcopy"

# Bind '<' to use pbpaste
bind < run "reattach-to-user-namespace pbpaste | tmux load-buffer - && tmux paste-buffer"

# Pane handling keybindings
bind-key j command-prompt -p "join pane from:"  "join-pane -s '%%'"
bind-key s command-prompt -p "send pane to:"  "join-pane -t '%%'"

# Clear screen
bind-key -n C-l send-keys C-z \; send-keys " reset && fg > /dev/null" \; send-keys "Enter"

# Add mouse support
setw -g mode-mouse on
set-option -g mouse-resize-pane on
set-option -g mouse-select-pane on
set-option -g mouse-select-window on

# Set window and pane index
set -g base-index 1
set -g pane-base-index 1

# continuum settings
set -g @continuum-restore 'on'
set -g @continuum-save-interval '1'

# tmux Plugins

set -g @tpm_plugins '          \
  tmux-plugins/tpm             \
  tmux-plugins/tmux-resurrect  \
  tmux-plugins/tmux-continuum  \
  tmux-plugins/tmux-yank       \
  tmux-plugins/tmux-copycat    \
' 

run-shell '~/.tmux/plugins/tpm/tpm'

# Load powerline
run-shell "powerline-daemon -q"
source "/Library/Python/2.7/site-packages/powerline/bindings/tmux/powerline.conf"

BTW thanks for this nice helpful plugin.

Autosave interrupts when I'm typing commands in bash

I've got continuum & resurrect installed in my tmux (version 1.9) and it's great (thanks!).

I've encountered an issue that if I'm typing a command and the save interval rolls around, my command is interrupted; with the history -w ... command being injected into the terminal. What I was typing is thus cut off, and I'm presented with an empty prompt.

My settings are:

set -g @continuum-restore 'on'
set -g @continuum-save-interval '60'

which I suppose means there's a chance every hour for this to happen, if I'm typing or have left a command waiting to be run on the terminal.

I'm using the latest version of the plugin from Git at time of writing and stock Bash on Ubuntu 15.04 as my shell.

Does continuum with with iTerm2 and it's native tmux integration and `-CC` mode

This is more of a question than an issue but does anyone know if continuum works with iTerm2's tmux integration? Basically, if I don't see the continuum status on the bottom right when I open tmux windows with tmux -CC does that mean continuum is not working? Or is it just that the status stuff doesn't work with iTerm2's native tmux stuff?

Is there any way to check that on the filesystem or in processes that continuum is running assuming I can't see the status?

Plugins don't work

Hi,

I try to use this plugin with tmux but auto-save, auto restore or the timer inside the powerline bar never show.
The other plugin work great and tmux-resurrect work great to but i can't use this one.

This is my tmux.conf


# Set the prefix to ^A.
unbind C-b
set -g prefix ^A
bind a send-prefix

# reduce escapge time
# Principalement pour pas avoir d'interference avec VIM
set -sg escape-time 0

# Bind appropriate commands similar to screen.
# lockscreen ^X x
unbind ^X
bind ^X lock-server
unbind x
bind x lock-server

# screen ^C c
unbind ^C
bind ^C new-window -c "#{pane_current_path}"
unbind c
bind c new-window -c "#{pane_current_path}"

# detach ^D d
unbind ^D
bind ^D detach

# displays *
unbind *
bind * list-clients

# next ^@ ^N sp n
unbind ^@
bind ^@ next-window
unbind ^N
bind ^N next-window
unbind " "
bind " " next-window
unbind n
bind n next-window

# title A
unbind A
bind A command-prompt "rename-window %%"

# other ^A
unbind ^A
bind ^A last-window

# prev ^H ^P p ^?
unbind ^H
bind ^H previous-window
unbind ^P
bind ^P previous-window
unbind p
bind p previous-window
unbind BSpace
bind BSpace previous-window



# vim copy selection
bind ESCAPE copy-mode -e
#bind-key -t vi-copy 'v' begin-selection
#bind-key -t vi-copy 'y' copy-selection

# paste CTRL+A ]

# Use Alt-arrow keys without prefix key to switch panes
bind -n M-Left previous-window
bind -n M-Right next-window

# scroll buffer (mouse option)
#set -g mouse on
#bind -n WheelUpPane   select-pane -t= \; copy-mode -e \; send-keys -M
#bind -n WheelDownPane select-pane -t= \; send-keys -M

#setw -g mode-mouse off

# windows ^W w
unbind ^W
bind ^W list-windows
unbind w
bind w list-windows

# quit \
unbind '\'
bind K confirm-before "kill-server"

# kill K k
#unbind K
#bind K confirm-before "kill-window"
#unbind k
#bind k confirm-before "kill-window"

# redisplay ^L l
unbind ^L
bind ^L refresh-client
unbind l
bind l refresh-client

# split
bind-key v split-window -h
bind-key s split-window -v
bind S setw synchronize-panes

# :kB: focus up
unbind Tab
bind Tab select-pane -t:.+
unbind BTab
bind BTab select-pane -t:.-

# " windowlist -b
unbind '"'
bind '"' choose-window

# enable mouse
bind m set -g mouse on
bind M set -g mouse off

# reload config file (change file location to your the tmux.conf you want to use)
bind r source-file ~/.tmux.conf

# Automatically set window title
set-window-option -g automatic-rename on
set-option -g set-titles on

set -g @resurrect-capture-pane-contents 'on'
set -g @continuum-restore 'on'
set -g @continuum-save-interval '20'
run-shell ~/.tmux/plugins/tmux-continuum/continuum.tmux

# THEME
set -g status-bg black
set -g status-fg white
set -g window-status-current-bg white
set -g window-status-current-fg black
set -g window-status-current-attr bold
set -g status-interval 60
#set -g status-left-length 30
#set -g status-left '#[fg=green](#S) #(whoami)'
#set -g status-right '#[fg=yellow]#(cut -d " " -f 1-3 /proc/loadavg)#[default] #[fg=white]%H:%M#[default]'

# List of plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-battery'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'
set -g @plugin 'jimeh/tmux-themepack'
set -g @themepack 'double/green'
#set -g status-right '#{battery_status_bg} Batt: #{battery_icon} #{battery_percentage} #{battery_remain} | %a %h-%d %H:%M '
#set -g status-right-length 60
#set -g status-right "#[fg=yellow] %d %b %Y #[fg=green]:: %l:%M %p "

#
# # Other examples:
# set -g @plugin 'github_username/plugin_name'
# set -g @plugin '[email protected]/user/plugin'
# set -g @plugin '[email protected]/user/plugin'
#
# # Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.tmux/plugins/tpm/tpm'

I am on manjaro linux last build.

How to restores tmux session automatically on WSL Ubuntu?

Hello
The tmux doesn't continues and doesn't restores my previous session when I run $ tmux in Ubuntu bush.

tmux version:
2.6-3ubuntu0.1

.tmux.config:

# List of plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'

set -g @continuum-restore 'on'
set -g @resurrect-capture-pane-contents 'on'

# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run -b '~/.tmux/plugins/tpm/tpm'

Question
How to make it work?

My issue was here
run -b '~/.tmux/plugins/tpm/tpm'
It works for me without -b
run '~/.tmux/plugins/tpm/tpm'

Two instances of tmux using tmux-continuum on the same machine

Hi,

thanks for resurrect/continuum, the are really needed functionality for tmux. After reading https://github.com/tmux-plugins/tmux-continuum/blob/master/docs/multiple_tmux_servers.md, I think this might be the reason for this behaviour: If two different users on the same machine use tmux with resurrect/continuum enabled, only the first to start tmux gets the autosave feature enabled. So maybe you use some per machine locking mechanism. Is there a way to do this per user? On a multuser system this would be perfectly reasonable and safe as well.

@continuum-boot 'on' and @continuum-restore 'on' work separately but not together

I have the following tmux config
https://gist.github.com/arithran/a4ba6f4f70ac71d3e37db1fbb12954a5#file-tmux-conf

and the following systemd service
https://gist.github.com/arithran/a4ba6f4f70ac71d3e37db1fbb12954a5#file-tmux-service

When i comment out set -g @continuum-boot 'on' the @continuum-restore 'on' works and vice versa. I can't seem to get both working at the same time. I am running Fedora 24 stable.

Currently, I have opted to keep set -g @continuum-boot 'on' and restore my sessions when I am inside tmux using the keyboard binding. But it would be nice if everything just happens on boot.

Here is the failed output of systemd when both settings are turned on


● tmux.service - tmux default session (detached)
   Loaded: loaded (/home/ari/.config/systemd/user/tmux.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Wed 2017-06-21 17:23:28 PDT; 15s ago
     Docs: man:tmux(1)
  Process: 2431 ExecStop=/home/ari/.tmux/plugins/tmux-resurrect/scripts/save.sh (code=exited, status=1/FAILURE)
  Process: 1883 ExecStart=/usr/bin/tmux new -d -s Master (code=exited, status=0/SUCCESS)

Jun 21 17:23:28 glados save.sh[2431]: no server running on /tmp/tmux-1000/default
Jun 21 17:23:28 glados save.sh[2431]: rm: missing operand
Jun 21 17:23:28 glados save.sh[2431]: Try 'rm --help' for more information.
Jun 21 17:23:28 glados save.sh[2431]: no server running on /tmp/tmux-1000/default
Jun 21 17:23:28 glados save.sh[2431]: no server running on /tmp/tmux-1000/default
Jun 21 17:23:28 glados save.sh[2431]: no server running on /tmp/tmux-1000/default
Jun 21 17:23:28 glados save.sh[2431]: no server running on /tmp/tmux-1000/default
Jun 21 17:23:28 glados systemd[1873]: tmux.service: Control process exited, code=exited status=1
Jun 21 17:23:28 glados systemd[1873]: tmux.service: Unit entered failed state.
Jun 21 17:23:28 glados systemd[1873]: tmux.service: Failed with result 'exit-code'.

Any help would be appreciated.
Thanks

seeing noisy messages every 15 mins

Am seeing in each pane, there is a message like
history -r '/Users/abc/.tmux/resurrect/bash_history-work:0.1'
popping up.

How can I disable this? This is very noisy and annoying. Thanks folks.

tmux-continuum showing as off

I've installed tmux-ressurect and tmux-continuum via plugins. In my .tmux.conf I have the following:

set -g @plugin 'tmux-plugins/tmux-continuum'
set -g @plugin 'tmux-plugins/tmux-ressurect'

set -g @continuum-restore 'on'
set -g status-right 'Continuum: #{continuum_status}'

set -g @resurrect-strategy-vim 'session'
set -g @resurrect-capture-pane-contents 'on'

Normal ressurection works via explicit keybindings for it. However, continuum seems to never turn on - After I added the status to the tmux line, I can see that its only ever set to 'Off' :/ Any hints?

I'm running Linux Mint, and Tmux v. 2.2.

keep several pane contents' checkpoints

It would be nice if capture pane contents feature stored several checkpoints and not just the last one.

I am using tmux-continuum with

set -g @continuum-restore 'on'  
set -g @continuum-boot 'on'  

and for some reason after booting up my PC tmux server had started with single empty window and no restoration of previous session took place.
After 15 minutes tmux-continuum saved new session (with single empty window) and rewrote all pane contents' saved data.
I was able to restore my windows from previous checkpoints using faq but pane contents were lost.

Auto saves mess double saving panes and so restore is messed up?!

I'm not really sure where the bug lies :( Since I use tmux-continuum with conjunction of tmux-resurrect my apps not restored. What I see is that there are panes more than one time after a continuum save, probably this is the error for not restoring apps anymore.

Here is an example. Saved lines for a session with manual resurrect save:

pane    mopidy  0   :ncmpcpp    1   :*  0   :/home/hoschi   1   ncmpcpp :ncmpcpp
pane    mopidy  1   :zsh    0   :-  0   :/home/hoschi   1   zsh :

And here the lines after continuum save:

pane    mopidy  0   :ncmpcpp    1   :*  0   :/home/hoschi   1   ncmpcpp :ncmpcpp
pane    issues_work 1   :bash   1   :*  0   :/home/hoschi/repos/sweetp-code/services/github-issues  1   zsh :
pane    mopidy  0   :ncmpcpp    1   :*  0   :/home/hoschi   1   ncmpcpp :ncmpcpp
pane    mopidy  1   :zsh    0   :-  0   :/home/hoschi   1   zsh :
pane    mopidy  0   :ncmpcpp    1   :*  0   :/home/hoschi   1   ncmpcpp :ncmpcpp
pane    mopidy  1   :zsh    0   :-  0   :/home/hoschi   1   zsh :
pane    notes   0   :mkd    1   :*  0   :/home/hoschi/Dropbox/notes 1   vim :vim blog.md breeze-js.md 
pane    mopidy  1   :zsh    0   :-  0   :/home/hoschi   1   zsh :

Here are the attatched files:

manual save:

pane    1   0   :zsh    1   :*  0   :/home/hoschi   1   zsh :
pane    activity    0   :zsh    1   :*  0   :/home/hoschi   1   zsh :
pane    atom    0   :zsh    0   :-  0   :/home/hoschi/repos/html-tab    1   zsh :
pane    atom    1   :zsh    1   :*  0   :/home/hoschi/repos/html-view-test  1   zsh :
pane    base-node-service   0   :vim    1   :*  0   :/home/hoschi/repos/sweetp-code/services/base-nodejs    1   zsh :
pane    base-node-service   1   :zsh    0   :-  0   :/home/hoschi/repos/sweetp-code/services/base-nodejs    1   zsh :
pane    data    0   :badblocks  1   :*  0   :   1   badblocks   :sudo zsh
pane    git-sevice  0   :zsh    0   :-  0   :/home/hoschi/repos/sweetp-code/services/git    1   zsh :
pane    git-sevice  1   :build  1   :*  0   :/home/hoschi/repos/sweetp-code/services/git    1   zsh :
pane    git-sevice  2   :test   0   :   0   :/home/hoschi/repos/sweetp-code/sandbox/testgit 1   zsh :
pane    github-service  0   :vim    0   :-  0   :/home/hoschi/repos/sweetp-code/services/github-issues  1   zsh :
pane    github-service  1   :git    1   :*  0   :/home/hoschi/repos/sweetp-code/services/github-issues  1   zsh :
pane    github-service2 0   :bash   1   :*  0   :/home/hoschi/repos/sweetp-code/services/github-issues  1   zsh :
pane    grf 0   :mc 0   :   0   :/home/hoschi/repos/grf 1   zsh :
pane    grf 0   :mc 0   :   1   :/home/hoschi/repos/grf 0   zsh :
pane    grf 1   :vim    0   :   0   :/home/hoschi/repos/grf/plugin-grf/web-app/frontend 1   zsh :
pane    grf 1   :vim    0   :   1   :/home/hoschi/repos/grf/plugin-grf/web-app/frontend/resources   0   zsh :
pane    grf 2   :work   1   :*  0   :/home/hoschi/repos/grf 0   zsh :
pane    grf 2   :work   1   :*  1   :/home/hoschi/repos/grf 1   zsh :
pane    grf 2   :work   1   :*  2   :/home/hoschi/repos/grf 0   zsh :
pane    grf 3   :et-vim 0   :   0   :/home/hoschi/repos/et-core 1   zsh :
pane    grf 3   :et-vim 0   :   1   :/home/hoschi/repos/et-core 0   zsh :
pane    grf 4   :et-work    0   :   0   :/home/hoschi/repos/et-core 1   zsh :
pane    grf 5   :sass   0   :   0   :/home/hoschi/repos/grf/plugin-multichannel/web-app 1   zsh :
pane    grf 6   :stuff  0   :-  0   :/home/hoschi/repos/grf 0   zsh :
pane    grf 6   :stuff  0   :-  1   :/home/hoschi/repos/grf 1   zsh :
pane    issues_vim  0   :vim    1   :*  0   :/home/hoschi/repos/sweetp-code/services/github-issues  1   zsh :
pane    issues_vim  0   :vim    1   :*  1   :/home/hoschi/repos/sweetp-code/services/github-issues  0   zsh :
pane    issues_vim  1   :zsh    0   :-  0   :/home/hoschi/repos/sweetp-code/services/github-issues  1   zsh :
pane    issues_work 0   :zsh    0   :-  0   :/home/hoschi/repos/sweetp-code/services/github-issues/sweetptest   1   zsh :
pane    issues_work 1   :bash   1   :*  0   :/home/hoschi/repos/sweetp-code/services/github-issues  1   zsh :
pane    mopidy  0   :ncmpcpp    1   :*  0   :/home/hoschi   1   ncmpcpp :ncmpcpp
pane    mopidy  1   :zsh    0   :-  0   :/home/hoschi   1   zsh :
pane    notes   0   :mkd    1   :*  0   :/home/hoschi/Dropbox/notes 1   vim :vim blog.md breeze-js.md
pane    notes   1   :AA 0   :-  0   :/home/hoschi/Dropbox/notes 1   vim :vim /home/hoschi/foo.md
pane    password-mngr   0   :vim    0   :-  0   :/home/hoschi/repos/sweetp-code/services/password-manager   1   zsh :
pane    password-mngr   1   :git    1   :*  0   :/home/hoschi/bin/sweetp-project/server 1   zsh :
pane    project-context-manager_second  0   :grunt  1   :*  0   :/home/hoschi/repos/sweetp-code/services/project-context-manager    1   zsh :
pane    project-context-manager_second  1   :zsh    0   :-  0   :/home/hoschi/repos/sweetp-code/services/project-context-manager    1   zsh :
pane    project-context-manager_vim 0   :vim    1   :*  0   :/home/hoschi/repos/sweetp-code/services/project-context-manager    1   zsh :
pane    project-context-manager_vim 1   :git    0   :-  0   :/home/hoschi/repos/sweetp-code/services/project-context-manager    1   zsh :
pane    serien  0   :desktop    1   :*  0   :/home/hoschi   1   zsh :
pane    serien  0   :desktop    1   :*  1   :/home/hoschi   0   zsh :
pane    startup 0   :zsh    1   :*  0   :/home/hoschi   1   zsh :
pane    sw-dashboard    0   :vim    0   :   0   :/home/hoschi/repos/sweetp-code/dashboard   1   zsh :
pane    sw-dashboard    0   :vim    0   :   1   :/home/hoschi/repos/sweetp-code/dashboard   0   zsh :
pane    sw-dashboard    1   :work   1   :*  0   :/home/hoschi/repos/sweetp-code/dashboard   0   zsh :
pane    sw-dashboard    1   :work   1   :*  1   :/home/hoschi/repos/sweetp-code/dashboard   1   zsh :
pane    sw-dashboard    1   :work   1   :*  2   :/home/hoschi/repos/sweetp-code/dashboard   0   zsh :
pane    sw-dashboard    2   :stable 0   :-  0   :/home/hoschi/repos/sweetp-code/dashboard-stable    1   zsh :
pane    sw-main 0   :git    0   :   0   :/home/hoschi/repos/sweetp-code/main    1   zsh :
pane    sw-main 1   :build  0   :   0   :/home/hoschi/repos/sweetp-code/main    0   zsh :
pane    sw-main 1   :build  0   :   1   :/home/hoschi/repos/sweetp-code/main    1   zsh :
pane    sw-main 2   :dev-server 1   :*  0   :/home/hoschi/repos/sweetp-code/dev-server/server   1   zsh :
pane    sw-main 2   :dev-server 1   :*  1   :/home/hoschi/repos/sweetp-code/dev-server/server   0   zsh :
pane    sw-main 3   :test   0   :-  0   :/home/hoschi/repos/sweetp-code/dashboard   1   zsh :
pane    sys-update  0   :zsh    1   :*  0   :/home/hoschi   1   zsh :
pane    test-sw-dashboard   0   :zsh    1   :*  0   :/home/hoschi/repos/sweetp-code/dashboard   0   zsh :
pane    test-sw-dashboard   0   :zsh    1   :*  1   :/home/hoschi/repos/sweetp-code/dashboard   0   zsh :
pane    test-sw-dashboard   0   :zsh    1   :*  2   :/home/hoschi/repos/sweetp-code/dashboard   1   zsh :
pane    tmux-conf   0   :vim    0   :   0   :/home/hoschi   1   zsh :
pane    tmux-conf   1   :man    0   :   0   :/usr/share/man 1   zsh :
pane    tmux-conf   2   :git    0   :-  0   :/home/hoschi/dotfiles  1   zsh :
pane    tmux-conf   3   :zsh    1   :*  0   :/home/hoschi/.tmux/resurrect   1   zsh :
pane    vim_config  0   :vimrc  0   :   0   :/home/hoschi/dotfiles/.vim 1   zsh :
pane    vim_config  1   :plugins    0   :-  0   :/home/hoschi/dotfiles/.vim/bundle  1   zsh :
pane    vim_config  2   :my-snippets    1   :*  0   :/home/hoschi/dotfiles/.vim/mysnippets  1   zsh :
pane    weechat 0   :WeeChat 1.1.1  1   :*  0   :/home/hoschi   1   weechat :weechat
pane    workflow-service    0   :vim    1   :*  0   :/home/hoschi/repos/sweetp-code/services/project-workflow   1   zsh :
pane    workflow-service    1   :zsh    0   :-  0   :/home/hoschi/repos/sweetp-code/services/project-workflow   1   zsh :
pane    workflow-service2   0   :bash   1   :*  0   :/home/hoschi/repos/sweetp-code/services/project-workflow   1   zsh :
window  1   0   1   :*  c97e,376x75,0,0,1
window  activity    0   1   :*  c97f,376x75,0,0,2
window  atom    0   0   :-  c980,376x75,0,0,3
window  atom    1   1   :*  c981,376x75,0,0,4
window  base-node-service   0   1   :*  c982,376x75,0,0,5
window  base-node-service   1   0   :-  c983,376x75,0,0,6
window  data    0   1   :*  5b87,227x23,0,0,75
window  git-sevice  0   0   :-  c984,376x75,0,0,7
window  git-sevice  1   1   :*  c985,376x75,0,0,8
window  git-sevice  2   0   :   c986,376x75,0,0,9
window  github-service  0   0   :-  64ef,376x75,0,0,10
window  github-service  1   1   :*  64f0,376x75,0,0,11
window  github-service2 0   1   :*  64f1,376x75,0,0,12
window  grf 0   0   :   5612,376x75,0,0[376x28,0,0,13,376x46,0,29,14]
window  grf 1   0   :   5ed5,376x75,0,0[376x38,0,0,15,376x36,0,39,16]
window  grf 2   1   :*  0c97,376x75,0,0[376x39,0,0,17,376x35,0,40{188x35,0,40,18,187x35,189,40,19}]
window  grf 3   0   :   7bce,376x75,0,0[376x36,0,0,20,376x38,0,37,21]
window  grf 4   0   :   e4f1,376x75,0,0,22
window  grf 5   0   :   e4f2,376x75,0,0,23
window  grf 6   0   :-  5cd4,376x75,0,0[376x44,0,0,24,376x30,0,45,25]
window  issues_vim  0   1   :*  9617,376x75,0,0[376x28,0,0,26,376x46,0,29,27]
window  issues_vim  1   0   :-  e4f7,376x75,0,0,28
window  issues_work 0   0   :-  e4f8,376x75,0,0,29
window  issues_work 1   1   :*  64f0,376x75,0,0,30
window  mopidy  0   1   :*  5cb8,181x62,0,0,38
window  mopidy  1   0   :-  5cb9,181x62,0,0,77
window  notes   0   1   :*  6479,146x75,0,0,39
window  notes   1   0   :-  e470,146x75,0,0,40
window  password-mngr   0   0   :-  e4f1,376x75,0,0,41
window  password-mngr   1   1   :*  e4f2,376x75,0,0,42
window  project-context-manager_second  0   1   :*  e4f3,376x75,0,0,43
window  project-context-manager_second  1   0   :-  e4f4,376x75,0,0,44
window  project-context-manager_vim 0   1   :*  e4f5,376x75,0,0,45
window  project-context-manager_vim 1   0   :-  e4f6,376x75,0,0,46
window  serien  0   1   :*  16da,376x75,0,0[376x40,0,0,47,376x34,0,41,48]
window  startup 0   1   :*  c97d,376x75,0,0,0
window  sw-dashboard    0   0   :   d618,376x75,0,0[376x28,0,0,49,376x46,0,29,50]
window  sw-dashboard    1   1   :*  d342,376x75,0,0{214x75,0,0,51,161x75,215,0[161x39,215,0,52,161x35,215,40,53]}
window  sw-dashboard    2   0   :-  64f5,376x75,0,0,54
window  sw-main 0   0   :   64f6,376x75,0,0,55
window  sw-main 1   0   :   ded1,376x75,0,0[376x38,0,0,56,376x36,0,39,57]
window  sw-main 2   1   :*  2777,376x75,0,0{209x75,0,0,58,166x75,210,0,59}
window  sw-main 3   0   :-  e4f1,376x75,0,0,60
window  sys-update  0   1   :*  e4f2,376x75,0,0,61
window  test-sw-dashboard   0   1   :*  357a,376x75,0,0[376x20,0,0,62,376x19,0,21,63,376x34,0,41,64]
window  tmux-conf   0   0   :   e636,145x76,0,0,65
window  tmux-conf   1   0   :   e637,145x76,0,0,66
window  tmux-conf   2   0   :-  e638,145x76,0,0,67
window  tmux-conf   3   1   :*  663b,145x76,0,0,79
window  vim_config  0   0   :   e4f9,376x75,0,0,68
window  vim_config  1   0   :-  e4fa,376x75,0,0,69
window  vim_config  2   1   :*  64f2,376x75,0,0,70
window  weechat 0   1   :*  64b3,109x75,0,0,71
window  workflow-service    0   1   :*  64f4,376x75,0,0,72
window  workflow-service    1   0   :-  64f5,376x75,0,0,73
window  workflow-service2   0   1   :*  64f6,376x75,0,0,74
state   tmux-conf

continuum save:

pane    1   0   :zsh    1   :*  0   :/home/hoschi   1   zsh :
pane    1   0   :zsh    1   :*  0   :/home/hoschi   1   zsh :
pane    1   0   :zsh    1   :*  0   :/home/hoschi   1   zsh :
pane    activity    0   :zsh    1   :*  0   :/home/hoschi   1   zsh :
pane    activity    0   :zsh    1   :*  0   :/home/hoschi   1   zsh :
pane    activity    0   :zsh    1   :*  0   :/home/hoschi   1   zsh :
pane    atom    0   :zsh    0   :-  0   :/home/hoschi/repos/html-tab    1   zsh :
pane    atom    0   :zsh    0   :-  0   :/home/hoschi/repos/html-tab    1   zsh :
pane    atom    0   :zsh    0   :-  0   :/home/hoschi/repos/html-tab    1   zsh :
pane    atom    1   :zsh    1   :*  0   :/home/hoschi/repos/html-view-test  1   zsh :
pane    atom    1   :zsh    1   :*  0   :/home/hoschi/repos/html-view-test  1   zsh :
pane    atom    1   :zsh    1   :*  0   :/home/hoschi/repos/html-view-test  1   zsh :
pane    base-node-service   0   :vim    1   :*  0   :/home/hoschi/repos/sweetp-code/services/base-nodejs    1   zsh :
pane    base-node-service   0   :vim    1   :*  0   :/home/hoschi/repos/sweetp-code/services/base-nodejs    1   zsh :
pane    base-node-service   0   :vim    1   :*  0   :/home/hoschi/repos/sweetp-code/services/base-nodejs    1   zsh :
pane    base-node-service   1   :zsh    0   :-  0   :/home/hoschi/repos/sweetp-code/services/base-nodejs    1   zsh :
pane    base-node-service   1   :zsh    0   :-  0   :/home/hoschi/repos/sweetp-code/services/base-nodejs    1   zsh :
pane    base-node-service   1   :zsh    0   :-  0   :/home/hoschi/repos/sweetp-code/services/base-nodejs    1   zsh :
pane    data    0   :badblocks  1   :*  0   :   1   badblocks   :sudo zsh
pane    data    0   :badblocks  1   :*  0   :   1   badblocks   :sudo zsh
pane    data    0   :badblocks  1   :*  0   :   1   badblocks   :sudo zsh
pane    git-sevice  0   :zsh    0   :-  0   :/home/hoschi/repos/sweetp-code/services/git    1   zsh :
pane    git-sevice  0   :zsh    0   :-  0   :/home/hoschi/repos/sweetp-code/services/git    1   zsh :
pane    git-sevice  0   :zsh    0   :-  0   :/home/hoschi/repos/sweetp-code/services/git    1   zsh :
pane    git-sevice  1   :build  1   :*  0   :/home/hoschi/repos/sweetp-code/services/git    1   zsh :
pane    git-sevice  1   :build  1   :*  0   :/home/hoschi/repos/sweetp-code/services/git    1   zsh :
pane    git-sevice  1   :build  1   :*  0   :/home/hoschi/repos/sweetp-code/services/git    1   zsh :
pane    git-sevice  2   :test   0   :   0   :/home/hoschi/repos/sweetp-code/sandbox/testgit 1   zsh :
pane    git-sevice  2   :test   0   :   0   :/home/hoschi/repos/sweetp-code/sandbox/testgit 1   zsh :
pane    github-service  0   :vim    0   :-  0   :/home/hoschi/repos/sweetp-code/services/github-issues  1   zsh :
pane    git-sevice  2   :test   0   :   0   :/home/hoschi/repos/sweetp-code/sandbox/testgit 1   zsh :
pane    github-service  0   :vim    0   :-  0   :/home/hoschi/repos/sweetp-code/services/github-issues  1   zsh :
pane    github-service  0   :vim    0   :-  0   :/home/hoschi/repos/sweetp-code/services/github-issues  1   zsh :
pane    github-service  1   :git    1   :*  0   :/home/hoschi/repos/sweetp-code/services/github-issues  1   zsh :
pane    github-service  1   :git    1   :*  0   :/home/hoschi/repos/sweetp-code/services/github-issues  1   zsh :
pane    github-service  1   :git    1   :*  0   :/home/hoschi/repos/sweetp-code/services/github-issues  1   zsh :
pane    github-service2 0   :bash   1   :*  0   :/home/hoschi/repos/sweetp-code/services/github-issues  1   zsh :
pane    github-service2 0   :bash   1   :*  0   :/home/hoschi/repos/sweetp-code/services/github-issues  1   zsh :
pane    grf 0   :mc 0   :   0   :/home/hoschi/repos/grf 1   zsh :
pane    github-service2 0   :bash   1   :*  0   :/home/hoschi/repos/sweetp-code/services/github-issues  1   zsh :
pane    grf 0   :mc 0   :   0   :/home/hoschi/repos/grf 1   zsh :
pane    grf 0   :mc 0   :   0   :/home/hoschi/repos/grf 1   zsh :
pane    grf 0   :mc 0   :   1   :/home/hoschi/repos/grf 0   zsh :
pane    grf 0   :mc 0   :   1   :/home/hoschi/repos/grf 0   zsh :
pane    grf 1   :vim    0   :   0   :/home/hoschi/repos/grf/plugin-grf/web-app/frontend 1   zsh :
pane    grf 0   :mc 0   :   1   :/home/hoschi/repos/grf 0   zsh :
pane    grf 1   :vim    0   :   0   :/home/hoschi/repos/grf/plugin-grf/web-app/frontend 1   zsh :
pane    grf 1   :vim    0   :   0   :/home/hoschi/repos/grf/plugin-grf/web-app/frontend 1   zsh :
pane    grf 1   :vim    0   :   1   :/home/hoschi/repos/grf/plugin-grf/web-app/frontend/resources   0   zsh :
pane    grf 1   :vim    0   :   1   :/home/hoschi/repos/grf/plugin-grf/web-app/frontend/resources   0   zsh :
pane    grf 1   :vim    0   :   1   :/home/hoschi/repos/grf/plugin-grf/web-app/frontend/resources   0   zsh :
pane    grf 2   :work   1   :*  0   :/home/hoschi/repos/grf 0   zsh :
pane    grf 2   :work   1   :*  0   :/home/hoschi/repos/grf 0   zsh :
pane    grf 2   :work   1   :*  0   :/home/hoschi/repos/grf 0   zsh :
pane    grf 2   :work   1   :*  1   :/home/hoschi/repos/grf 1   zsh :
pane    grf 2   :work   1   :*  1   :/home/hoschi/repos/grf 1   zsh :
pane    grf 2   :work   1   :*  2   :/home/hoschi/repos/grf 0   zsh :
pane    grf 2   :work   1   :*  1   :/home/hoschi/repos/grf 1   zsh :
pane    grf 2   :work   1   :*  2   :/home/hoschi/repos/grf 0   zsh :
pane    grf 2   :work   1   :*  2   :/home/hoschi/repos/grf 0   zsh :
pane    grf 3   :et-vim 0   :   0   :/home/hoschi/repos/et-core 1   zsh :
pane    grf 3   :et-vim 0   :   0   :/home/hoschi/repos/et-core 1   zsh :
pane    grf 3   :et-vim 0   :   1   :/home/hoschi/repos/et-core 0   zsh :
pane    grf 3   :et-vim 0   :   0   :/home/hoschi/repos/et-core 1   zsh :
pane    grf 3   :et-vim 0   :   1   :/home/hoschi/repos/et-core 0   zsh :
pane    grf 4   :et-work    0   :   0   :/home/hoschi/repos/et-core 1   zsh :
pane    grf 3   :et-vim 0   :   1   :/home/hoschi/repos/et-core 0   zsh :
pane    grf 4   :et-work    0   :   0   :/home/hoschi/repos/et-core 1   zsh :
pane    grf 4   :et-work    0   :   0   :/home/hoschi/repos/et-core 1   zsh :
pane    grf 5   :sass   0   :   0   :/home/hoschi/repos/grf/plugin-multichannel/web-app 1   zsh :
pane    grf 5   :sass   0   :   0   :/home/hoschi/repos/grf/plugin-multichannel/web-app 1   zsh :
pane    grf 5   :sass   0   :   0   :/home/hoschi/repos/grf/plugin-multichannel/web-app 1   zsh :
pane    grf 6   :stuff  0   :-  0   :/home/hoschi/repos/grf 0   zsh :
pane    grf 6   :stuff  0   :-  0   :/home/hoschi/repos/grf 0   zsh :
pane    grf 6   :stuff  0   :-  0   :/home/hoschi/repos/grf 0   zsh :
pane    grf 6   :stuff  0   :-  1   :/home/hoschi/repos/grf 1   zsh :
pane    grf 6   :stuff  0   :-  1   :/home/hoschi/repos/grf 1   zsh :
pane    issues_vim  0   :vim    1   :*  0   :/home/hoschi/repos/sweetp-code/services/github-issues  1   zsh :
pane    grf 6   :stuff  0   :-  1   :/home/hoschi/repos/grf 1   zsh :
pane    issues_vim  0   :vim    1   :*  0   :/home/hoschi/repos/sweetp-code/services/github-issues  1   zsh :
pane    issues_vim  0   :vim    1   :*  1   :/home/hoschi/repos/sweetp-code/services/github-issues  0   zsh :
pane    issues_vim  0   :vim    1   :*  0   :/home/hoschi/repos/sweetp-code/services/github-issues  1   zsh :
pane    issues_vim  0   :vim    1   :*  1   :/home/hoschi/repos/sweetp-code/services/github-issues  0   zsh :
pane    issues_vim  1   :zsh    0   :-  0   :/home/hoschi/repos/sweetp-code/services/github-issues  1   zsh :
pane    issues_vim  0   :vim    1   :*  1   :/home/hoschi/repos/sweetp-code/services/github-issues  0   zsh :
pane    issues_vim  1   :zsh    0   :-  0   :/home/hoschi/repos/sweetp-code/services/github-issues  1   zsh :
pane    issues_work 0   :zsh    0   :-  0   :/home/hoschi/repos/sweetp-code/services/github-issues/sweetptest   1   zsh :
pane    issues_vim  1   :zsh    0   :-  0   :/home/hoschi/repos/sweetp-code/services/github-issues  1   zsh :
pane    issues_work 0   :zsh    0   :-  0   :/home/hoschi/repos/sweetp-code/services/github-issues/sweetptest   1   zsh :
pane    issues_work 1   :bash   1   :*  0   :/home/hoschi/repos/sweetp-code/services/github-issues  1   zsh :
pane    issues_work 0   :zsh    0   :-  0   :/home/hoschi/repos/sweetp-code/services/github-issues/sweetptest   1   zsh :
pane    issues_work 1   :bash   1   :*  0   :/home/hoschi/repos/sweetp-code/services/github-issues  1   zsh :
pane    mopidy  0   :ncmpcpp    1   :*  0   :/home/hoschi   1   ncmpcpp :ncmpcpp
pane    issues_work 1   :bash   1   :*  0   :/home/hoschi/repos/sweetp-code/services/github-issues  1   zsh :
pane    mopidy  0   :ncmpcpp    1   :*  0   :/home/hoschi   1   ncmpcpp :ncmpcpp
pane    mopidy  1   :zsh    0   :-  0   :/home/hoschi   1   zsh :
pane    mopidy  0   :ncmpcpp    1   :*  0   :/home/hoschi   1   ncmpcpp :ncmpcpp
pane    mopidy  1   :zsh    0   :-  0   :/home/hoschi   1   zsh :
pane    notes   0   :mkd    1   :*  0   :/home/hoschi/Dropbox/notes 1   vim :vim blog.md
pane    mopidy  1   :zsh    0   :-  0   :/home/hoschi   1   zsh :
pane    notes   0   :mkd    1   :*  0   :/home/hoschi/Dropbox/notes 1   vim :vim blog.md
pane    notes   1   :AA 0   :-  0   :/home/hoschi/Dropbox/notes 1   vim :vim /home/hoschi/foo.md
pane    notes   1   :AA 0   :-  0   :/home/hoschi/Dropbox/notes 1   vim :vim /home/hoschi/foo.md
pane    notes   0   :mkd    1   :*  0   :/home/hoschi/Dropbox/notes 1   vim :vim blog.md
pane    password-mngr   0   :vim    0   :-  0   :/home/hoschi/repos/sweetp-code/services/password-manager   1   zsh :
pane    password-mngr   0   :vim    0   :-  0   :/home/hoschi/repos/sweetp-code/services/password-manager   1   zsh :
pane    notes   1   :AA 0   :-  0   :/home/hoschi/Dropbox/notes 1   vim :vim /home/hoschi/Dropbox/foo.md
pane    password-mngr   1   :git    1   :*  0   :/home/hoschi/bin/sweetp-project/server 1   zsh :
pane    password-mngr   1   :git    1   :*  0   :/home/hoschi/bin/sweetp-project/server 1   zsh :
pane    password-mngr   0   :vim    0   :-  0   :/home/hoschi/repos/sweetp-code/services/password-manager   1   zsh :
pane    project-context-manager_second  0   :grunt  1   :*  0   :/home/hoschi/repos/sweetp-code/services/project-context-manager    1   zsh :
pane    project-context-manager_second  0   :grunt  1   :*  0   :/home/hoschi/repos/sweetp-code/services/project-context-manager    1   zsh :
pane    password-mngr   1   :git    1   :*  0   :/home/hoschi/bin/sweetp-project/server 1   zsh :
pane    project-context-manager_second  1   :zsh    0   :-  0   :/home/hoschi/repos/sweetp-code/services/project-context-manager    1   zsh :
pane    project-context-manager_second  1   :zsh    0   :-  0   :/home/hoschi/repos/sweetp-code/services/project-context-manager    1   zsh :
pane    project-context-manager_second  0   :grunt  1   :*  0   :/home/hoschi/repos/sweetp-code/services/project-context-manager    1   zsh :
pane    project-context-manager_vim 0   :vim    1   :*  0   :/home/hoschi/repos/sweetp-code/services/project-context-manager    1   zsh :
pane    project-context-manager_vim 0   :vim    1   :*  0   :/home/hoschi/repos/sweetp-code/services/project-context-manager    1   zsh :
pane    project-context-manager_second  1   :zsh    0   :-  0   :/home/hoschi/repos/sweetp-code/services/project-context-manager    1   zsh :
pane    project-context-manager_vim 1   :git    0   :-  0   :/home/hoschi/repos/sweetp-code/services/project-context-manager    1   zsh :
pane    project-context-manager_vim 1   :git    0   :-  0   :/home/hoschi/repos/sweetp-code/services/project-context-manager    1   zsh :
pane    project-context-manager_vim 0   :vim    1   :*  0   :/home/hoschi/repos/sweetp-code/services/project-context-manager    1   zsh :
pane    project-context-manager_vim 1   :git    0   :-  0   :/home/hoschi/repos/sweetp-code/services/project-context-manager    1   zsh :
pane    serien  0   :desktop    1   :*  0   :/home/hoschi   1   zsh :
pane    serien  0   :desktop    1   :*  0   :/home/hoschi   1   zsh :
pane    serien  0   :desktop    1   :*  1   :/home/hoschi   0   zsh :
pane    serien  0   :desktop    1   :*  0   :/home/hoschi   1   zsh :
pane    serien  0   :desktop    1   :*  1   :/home/hoschi   0   zsh :
pane    startup 0   :zsh    1   :*  0   :/home/hoschi   1   zsh :
pane    startup 0   :zsh    1   :*  0   :/home/hoschi   1   zsh :
pane    serien  0   :desktop    1   :*  1   :/home/hoschi   0   zsh :
pane    startup 0   :zsh    1   :*  0   :/home/hoschi   1   zsh :
pane    sw-dashboard    0   :vim    0   :   0   :/home/hoschi/repos/sweetp-code/dashboard   1   zsh :
pane    sw-dashboard    0   :vim    0   :   0   :/home/hoschi/repos/sweetp-code/dashboard   1   zsh :
pane    sw-dashboard    0   :vim    0   :   0   :/home/hoschi/repos/sweetp-code/dashboard   1   zsh :
pane    sw-dashboard    0   :vim    0   :   1   :/home/hoschi/repos/sweetp-code/dashboard   0   zsh :
pane    sw-dashboard    0   :vim    0   :   1   :/home/hoschi/repos/sweetp-code/dashboard   0   zsh :
pane    sw-dashboard    0   :vim    0   :   1   :/home/hoschi/repos/sweetp-code/dashboard   0   zsh :
pane    sw-dashboard    1   :work   1   :*  0   :/home/hoschi/repos/sweetp-code/dashboard   0   zsh :
pane    sw-dashboard    1   :work   1   :*  0   :/home/hoschi/repos/sweetp-code/dashboard   0   zsh :
pane    sw-dashboard    1   :work   1   :*  0   :/home/hoschi/repos/sweetp-code/dashboard   0   zsh :
pane    sw-dashboard    1   :work   1   :*  1   :/home/hoschi/repos/sweetp-code/dashboard   1   zsh :
pane    sw-dashboard    1   :work   1   :*  1   :/home/hoschi/repos/sweetp-code/dashboard   1   zsh :
pane    sw-dashboard    1   :work   1   :*  1   :/home/hoschi/repos/sweetp-code/dashboard   1   zsh :
pane    sw-dashboard    1   :work   1   :*  2   :/home/hoschi/repos/sweetp-code/dashboard   0   zsh :
pane    sw-dashboard    1   :work   1   :*  2   :/home/hoschi/repos/sweetp-code/dashboard   0   zsh :
pane    sw-dashboard    1   :work   1   :*  2   :/home/hoschi/repos/sweetp-code/dashboard   0   zsh :
pane    sw-dashboard    2   :stable 0   :-  0   :/home/hoschi/repos/sweetp-code/dashboard-stable    1   zsh :
pane    sw-dashboard    2   :stable 0   :-  0   :/home/hoschi/repos/sweetp-code/dashboard-stable    1   zsh :
pane    sw-dashboard    2   :stable 0   :-  0   :/home/hoschi/repos/sweetp-code/dashboard-stable    1   zsh :
pane    sw-main 0   :git    0   :   0   :/home/hoschi/repos/sweetp-code/main    1   zsh :
pane    sw-main 0   :git    0   :   0   :/home/hoschi/repos/sweetp-code/main    1   zsh :
pane    sw-main 0   :git    0   :   0   :/home/hoschi/repos/sweetp-code/main    1   zsh :
pane    sw-main 1   :build  0   :   0   :/home/hoschi/repos/sweetp-code/main    0   zsh :
pane    sw-main 1   :build  0   :   0   :/home/hoschi/repos/sweetp-code/main    0   zsh :
pane    sw-main 1   :build  0   :   0   :/home/hoschi/repos/sweetp-code/main    0   zsh :
pane    sw-main 1   :build  0   :   1   :/home/hoschi/repos/sweetp-code/main    1   zsh :
pane    sw-main 1   :build  0   :   1   :/home/hoschi/repos/sweetp-code/main    1   zsh :
pane    sw-main 1   :build  0   :   1   :/home/hoschi/repos/sweetp-code/main    1   zsh :
pane    sw-main 2   :dev-server 1   :*  0   :/home/hoschi/repos/sweetp-code/dev-server/server   1   zsh :
pane    sw-main 2   :dev-server 1   :*  0   :/home/hoschi/repos/sweetp-code/dev-server/server   1   zsh :
pane    sw-main 2   :dev-server 1   :*  0   :/home/hoschi/repos/sweetp-code/dev-server/server   1   zsh :
pane    sw-main 2   :dev-server 1   :*  1   :/home/hoschi/repos/sweetp-code/dev-server/server   0   zsh :
pane    sw-main 2   :dev-server 1   :*  1   :/home/hoschi/repos/sweetp-code/dev-server/server   0   zsh :
pane    sw-main 2   :dev-server 1   :*  1   :/home/hoschi/repos/sweetp-code/dev-server/server   0   zsh :
pane    sw-main 3   :test   0   :-  0   :/home/hoschi/repos/sweetp-code/dashboard   1   zsh :
pane    sw-main 3   :test   0   :-  0   :/home/hoschi/repos/sweetp-code/dashboard   1   zsh :
pane    sw-main 3   :test   0   :-  0   :/home/hoschi/repos/sweetp-code/dashboard   1   zsh :
pane    sys-update  0   :zsh    1   :*  0   :/home/hoschi   1   zsh :
pane    sys-update  0   :zsh    1   :*  0   :/home/hoschi   1   zsh :
pane    sys-update  0   :zsh    1   :*  0   :/home/hoschi   1   zsh :
pane    test-sw-dashboard   0   :zsh    1   :*  0   :/home/hoschi/repos/sweetp-code/dashboard   0   zsh :
pane    test-sw-dashboard   0   :zsh    1   :*  0   :/home/hoschi/repos/sweetp-code/dashboard   0   zsh :
pane    test-sw-dashboard   0   :zsh    1   :*  0   :/home/hoschi/repos/sweetp-code/dashboard   0   zsh :
pane    test-sw-dashboard   0   :zsh    1   :*  1   :/home/hoschi/repos/sweetp-code/dashboard   0   zsh :
pane    test-sw-dashboard   0   :zsh    1   :*  1   :/home/hoschi/repos/sweetp-code/dashboard   0   zsh :
pane    test-sw-dashboard   0   :zsh    1   :*  1   :/home/hoschi/repos/sweetp-code/dashboard   0   zsh :
pane    test-sw-dashboard   0   :zsh    1   :*  2   :/home/hoschi/repos/sweetp-code/dashboard   1   zsh :
pane    test-sw-dashboard   0   :zsh    1   :*  2   :/home/hoschi/repos/sweetp-code/dashboard   1   zsh :
pane    tmux-conf   0   :vim    0   :   0   :/home/hoschi   1   zsh :
pane    test-sw-dashboard   0   :zsh    1   :*  2   :/home/hoschi/repos/sweetp-code/dashboard   1   zsh :
pane    tmux-conf   0   :vim    0   :   0   :/home/hoschi   1   zsh :
pane    tmux-conf   0   :vim    0   :   0   :/home/hoschi   1   zsh :
pane    tmux-conf   1   :man    0   :   0   :/usr/share/man 1   zsh :
pane    tmux-conf   1   :man    0   :   0   :/usr/share/man 1   zsh :
pane    tmux-conf   1   :man    0   :   0   :/usr/share/man 1   zsh :
pane    tmux-conf   2   :git    0   :-  0   :/home/hoschi/dotfiles  1   zsh :
pane    tmux-conf   2   :git    0   :-  0   :/home/hoschi/dotfiles  1   zsh :
pane    tmux-conf   2   :git    0   :-  0   :/home/hoschi/dotfiles  1   zsh :
pane    tmux-conf   3   :zsh    1   :*  0   :/home/hoschi/.tmux/resurrect   1   zsh :
pane    tmux-conf   3   :zsh    1   :*  0   :/home/hoschi/.tmux/resurrect   1   zsh :
pane    tmux-conf   3   :zsh    1   :*  0   :/home/hoschi/.tmux/resurrect   1   zsh :
pane    vim_config  0   :vimrc  0   :   0   :/home/hoschi/dotfiles/.vim 1   zsh :
pane    vim_config  0   :vimrc  0   :   0   :/home/hoschi/dotfiles/.vim 1   zsh :
pane    vim_config  0   :vimrc  0   :   0   :/home/hoschi/dotfiles/.vim 1   zsh :
pane    vim_config  1   :plugins    0   :-  0   :/home/hoschi/dotfiles/.vim/bundle  1   zsh :
pane    vim_config  1   :plugins    0   :-  0   :/home/hoschi/dotfiles/.vim/bundle  1   zsh :
pane    vim_config  1   :plugins    0   :-  0   :/home/hoschi/dotfiles/.vim/bundle  1   zsh :
pane    vim_config  2   :my-snippets    1   :*  0   :/home/hoschi/dotfiles/.vim/mysnippets  1   zsh :
pane    vim_config  2   :my-snippets    1   :*  0   :/home/hoschi/dotfiles/.vim/mysnippets  1   zsh :
pane    weechat 0   :WeeChat 1.1.1  1   :*  0   :/home/hoschi   1   weechat :weechat
pane    vim_config  2   :my-snippets    1   :*  0   :/home/hoschi/dotfiles/.vim/mysnippets  1   zsh :
pane    weechat 0   :WeeChat 1.1.1  1   :*  0   :/home/hoschi   1   weechat :weechat
pane    weechat 0   :WeeChat 1.1.1  1   :*  0   :/home/hoschi   1   weechat :weechat
pane    workflow-service    0   :vim    1   :*  0   :/home/hoschi/repos/sweetp-code/services/project-workflow   1   zsh :
pane    workflow-service    0   :vim    1   :*  0   :/home/hoschi/repos/sweetp-code/services/project-workflow   1   zsh :
pane    workflow-service    0   :vim    1   :*  0   :/home/hoschi/repos/sweetp-code/services/project-workflow   1   zsh :
pane    workflow-service    1   :zsh    0   :-  0   :/home/hoschi/repos/sweetp-code/services/project-workflow   1   zsh :
pane    workflow-service2   0   :bash   1   :*  0   :/home/hoschi/repos/sweetp-code/services/project-workflow   1   zsh :
pane    workflow-service    1   :zsh    0   :-  0   :/home/hoschi/repos/sweetp-code/services/project-workflow   1   zsh :
pane    workflow-service    1   :zsh    0   :-  0   :/home/hoschi/repos/sweetp-code/services/project-workflow   1   zsh :
window  1   0   1   :*  c97e,376x75,0,0,1
window  activity    0   1   :*  c97f,376x75,0,0,2
window  atom    0   0   :-  c980,376x75,0,0,3
window  atom    1   1   :*  c981,376x75,0,0,4
window  base-node-service   0   1   :*  c982,376x75,0,0,5
window  base-node-service   1   0   :-  c983,376x75,0,0,6
window  data    0   1   :*  5b87,227x23,0,0,75
window  git-sevice  0   0   :-  c984,376x75,0,0,7
window  git-sevice  1   1   :*  c985,376x75,0,0,8
window  git-sevice  2   0   :   c986,376x75,0,0,9
window  github-service  0   0   :-  64ef,376x75,0,0,10
window  github-service  1   1   :*  64f0,376x75,0,0,11
window  github-service2 0   1   :*  64f1,376x75,0,0,12
window  grf 0   0   :   5612,376x75,0,0[376x28,0,0,13,376x46,0,29,14]
window  grf 1   0   :   5ed5,376x75,0,0[376x38,0,0,15,376x36,0,39,16]
window  grf 2   1   :*  0c97,376x75,0,0[376x39,0,0,17,376x35,0,40{188x35,0,40,18,187x35,189,40,19}]
window  grf 3   0   :   7bce,376x75,0,0[376x36,0,0,20,376x38,0,37,21]
window  grf 4   0   :   e4f1,376x75,0,0,22
window  grf 5   0   :   e4f2,376x75,0,0,23
window  grf 6   0   :-  5cd4,376x75,0,0[376x44,0,0,24,376x30,0,45,25]
window  issues_vim  0   1   :*  9617,376x75,0,0[376x28,0,0,26,376x46,0,29,27]
window  issues_vim  1   0   :-  e4f7,376x75,0,0,28
window  issues_work 0   0   :-  e4f8,376x75,0,0,29
window  issues_work 1   1   :*  64f0,376x75,0,0,30
window  mopidy  0   1   :*  5cb8,181x62,0,0,38
window  mopidy  1   0   :-  5cb9,181x62,0,0,77
window  notes   0   1   :*  6479,146x75,0,0,39
window  notes   1   0   :-  e470,146x75,0,0,40
window  password-mngr   0   0   :-  e4f1,376x75,0,0,41
window  password-mngr   1   1   :*  e4f2,376x75,0,0,42
window  project-context-manager_second  0   1   :*  e4f3,376x75,0,0,43
window  project-context-manager_second  1   0   :-  e4f4,376x75,0,0,44
window  project-context-manager_vim 0   1   :*  e4f5,376x75,0,0,45
window  project-context-manager_vim 1   0   :-  e4f6,376x75,0,0,46
window  serien  0   1   :*  16da,376x75,0,0[376x40,0,0,47,376x34,0,41,48]
window  startup 0   1   :*  c97d,376x75,0,0,0
window  sw-dashboard    0   0   :   d618,376x75,0,0[376x28,0,0,49,376x46,0,29,50]
window  sw-dashboard    1   1   :*  d342,376x75,0,0{214x75,0,0,51,161x75,215,0[161x39,215,0,52,161x35,215,40,53]}
window  sw-dashboard    2   0   :-  64f5,376x75,0,0,54
window  sw-main 0   0   :   64f6,376x75,0,0,55
window  sw-main 1   0   :   ded1,376x75,0,0[376x38,0,0,56,376x36,0,39,57]
window  sw-main 2   1   :*  2777,376x75,0,0{209x75,0,0,58,166x75,210,0,59}
window  sw-main 3   0   :-  e4f1,376x75,0,0,60
window  sys-update  0   1   :*  e4f2,376x75,0,0,61
window  test-sw-dashboard   0   1   :*  357a,376x75,0,0[376x20,0,0,62,376x19,0,21,63,376x34,0,41,64]
window  tmux-conf   0   0   :   e4b6,109x75,0,0,65
window  tmux-conf   1   0   :   e4b7,109x75,0,0,66
window  tmux-conf   2   0   :-  e4b8,109x75,0,0,67
window  tmux-conf   3   1   :*  e4b3,109x75,0,0,81
window  vim_config  0   0   :   e4f9,376x75,0,0,68
window  vim_config  1   0   :-  e4fa,376x75,0,0,69
window  vim_config  2   1   :*  64f2,376x75,0,0,70
window  weechat 0   1   :*  6103,35x75,0,0,71
window  workflow-service    0   1   :*  64f4,376x75,0,0,72
window  workflow-service    1   0   :-  64f5,376x75,0,0,73
window  workflow-service2   0   1   :*  64f6,376x75,0,0,74
state   tmux-conf
pane    workflow-service2   0   :bash   1   :*  0   :/home/hoschi/repos/sweetp-code/services/project-workflow   1   zsh :
pane    workflow-service2   0   :bash   1   :*  0   :/home/hoschi/repos/sweetp-code/services/project-workflow   1   zsh :
window  1   0   1   :*  c97e,376x75,0,0,1
window  activity    0   1   :*  c97f,376x75,0,0,2
window  atom    0   0   :-  c980,376x75,0,0,3
window  atom    1   1   :*  c981,376x75,0,0,4
window  1   0   1   :*  c97e,376x75,0,0,1
window  base-node-service   0   1   :*  c982,376x75,0,0,5
window  base-node-service   1   0   :-  c983,376x75,0,0,6
window  activity    0   1   :*  c97f,376x75,0,0,2
window  data    0   1   :*  5b87,227x23,0,0,75
window  atom    0   0   :-  c980,376x75,0,0,3
window  git-sevice  0   0   :-  c984,376x75,0,0,7
window  git-sevice  1   1   :*  c985,376x75,0,0,8
window  atom    1   1   :*  c981,376x75,0,0,4
window  git-sevice  2   0   :   c986,376x75,0,0,9
window  base-node-service   0   1   :*  c982,376x75,0,0,5
window  github-service  0   0   :-  64ef,376x75,0,0,10
window  base-node-service   1   0   :-  c983,376x75,0,0,6
window  github-service  1   1   :*  64f0,376x75,0,0,11
window  data    0   1   :*  5b87,227x23,0,0,75
window  github-service2 0   1   :*  64f1,376x75,0,0,12
window  git-sevice  0   0   :-  c984,376x75,0,0,7
window  grf 0   0   :   5612,376x75,0,0[376x28,0,0,13,376x46,0,29,14]
window  git-sevice  1   1   :*  c985,376x75,0,0,8
window  grf 1   0   :   5ed5,376x75,0,0[376x38,0,0,15,376x36,0,39,16]
window  git-sevice  2   0   :   c986,376x75,0,0,9
window  grf 2   1   :*  0c97,376x75,0,0[376x39,0,0,17,376x35,0,40{188x35,0,40,18,187x35,189,40,19}]
window  github-service  0   0   :-  64ef,376x75,0,0,10
window  github-service  1   1   :*  64f0,376x75,0,0,11
window  grf 3   0   :   7bce,376x75,0,0[376x36,0,0,20,376x38,0,37,21]
window  grf 4   0   :   e4f1,376x75,0,0,22
window  github-service2 0   1   :*  64f1,376x75,0,0,12
window  grf 5   0   :   e4f2,376x75,0,0,23
window  grf 0   0   :   5612,376x75,0,0[376x28,0,0,13,376x46,0,29,14]
window  grf 6   0   :-  5cd4,376x75,0,0[376x44,0,0,24,376x30,0,45,25]
window  grf 1   0   :   5ed5,376x75,0,0[376x38,0,0,15,376x36,0,39,16]
window  issues_vim  0   1   :*  9617,376x75,0,0[376x28,0,0,26,376x46,0,29,27]
window  grf 2   1   :*  0c97,376x75,0,0[376x39,0,0,17,376x35,0,40{188x35,0,40,18,187x35,189,40,19}]
window  issues_vim  1   0   :-  e4f7,376x75,0,0,28
window  grf 3   0   :   7bce,376x75,0,0[376x36,0,0,20,376x38,0,37,21]
window  issues_work 0   0   :-  e4f8,376x75,0,0,29
window  grf 4   0   :   e4f1,376x75,0,0,22
window  issues_work 1   1   :*  64f0,376x75,0,0,30
window  grf 5   0   :   e4f2,376x75,0,0,23
window  mopidy  0   1   :*  5cb8,181x62,0,0,38
window  grf 6   0   :-  5cd4,376x75,0,0[376x44,0,0,24,376x30,0,45,25]
window  mopidy  1   0   :-  5cb9,181x62,0,0,77
window  issues_vim  0   1   :*  9617,376x75,0,0[376x28,0,0,26,376x46,0,29,27]
window  notes   0   1   :*  6479,146x75,0,0,39
window  issues_vim  1   0   :-  e4f7,376x75,0,0,28
window  notes   1   0   :-  e470,146x75,0,0,40
window  issues_work 0   0   :-  e4f8,376x75,0,0,29
window  password-mngr   0   0   :-  e4f1,376x75,0,0,41
window  issues_work 1   1   :*  64f0,376x75,0,0,30
window  password-mngr   1   1   :*  e4f2,376x75,0,0,42
window  mopidy  0   1   :*  5cb8,181x62,0,0,38
window  project-context-manager_second  0   1   :*  e4f3,376x75,0,0,43
window  mopidy  1   0   :-  5cb9,181x62,0,0,77
window  project-context-manager_second  1   0   :-  e4f4,376x75,0,0,44
window  notes   0   1   :*  6479,146x75,0,0,39
window  project-context-manager_vim 0   1   :*  e4f5,376x75,0,0,45
window  notes   1   0   :-  e470,146x75,0,0,40
window  project-context-manager_vim 1   0   :-  e4f6,376x75,0,0,46
window  password-mngr   0   0   :-  e4f1,376x75,0,0,41
window  serien  0   1   :*  16da,376x75,0,0[376x40,0,0,47,376x34,0,41,48]
window  password-mngr   1   1   :*  e4f2,376x75,0,0,42
window  startup 0   1   :*  c97d,376x75,0,0,0
window  project-context-manager_second  0   1   :*  e4f3,376x75,0,0,43
window  sw-dashboard    0   0   :   d618,376x75,0,0[376x28,0,0,49,376x46,0,29,50]
window  project-context-manager_second  1   0   :-  e4f4,376x75,0,0,44
window  sw-dashboard    1   1   :*  d342,376x75,0,0{214x75,0,0,51,161x75,215,0[161x39,215,0,52,161x35,215,40,53]}
window  project-context-manager_vim 0   1   :*  e4f5,376x75,0,0,45
window  sw-dashboard    2   0   :-  64f5,376x75,0,0,54
window  project-context-manager_vim 1   0   :-  e4f6,376x75,0,0,46
window  sw-main 0   0   :   64f6,376x75,0,0,55
window  serien  0   1   :*  16da,376x75,0,0[376x40,0,0,47,376x34,0,41,48]
window  sw-main 1   0   :   ded1,376x75,0,0[376x38,0,0,56,376x36,0,39,57]
window  startup 0   1   :*  c97d,376x75,0,0,0
window  sw-main 2   1   :*  2777,376x75,0,0{209x75,0,0,58,166x75,210,0,59}
window  sw-dashboard    0   0   :   d618,376x75,0,0[376x28,0,0,49,376x46,0,29,50]
window  sw-main 3   0   :-  e4f1,376x75,0,0,60
window  sys-update  0   1   :*  e4f2,376x75,0,0,61
window  sw-dashboard    1   1   :*  d342,376x75,0,0{214x75,0,0,51,161x75,215,0[161x39,215,0,52,161x35,215,40,53]}
window  sw-dashboard    2   0   :-  64f5,376x75,0,0,54
window  test-sw-dashboard   0   1   :*  357a,376x75,0,0[376x20,0,0,62,376x19,0,21,63,376x34,0,41,64]
window  sw-main 0   0   :   64f6,376x75,0,0,55
window  tmux-conf   0   0   :   e4b6,109x75,0,0,65
window  sw-main 1   0   :   ded1,376x75,0,0[376x38,0,0,56,376x36,0,39,57]
window  tmux-conf   1   0   :   e4b7,109x75,0,0,66
window  tmux-conf   2   0   :-  e4b8,109x75,0,0,67
window  sw-main 2   1   :*  2777,376x75,0,0{209x75,0,0,58,166x75,210,0,59}
window  tmux-conf   3   1   :*  e4b3,109x75,0,0,81
window  sw-main 3   0   :-  e4f1,376x75,0,0,60
window  vim_config  0   0   :   e4f9,376x75,0,0,68
window  sys-update  0   1   :*  e4f2,376x75,0,0,61
window  vim_config  1   0   :-  e4fa,376x75,0,0,69
window  test-sw-dashboard   0   1   :*  357a,376x75,0,0[376x20,0,0,62,376x19,0,21,63,376x34,0,41,64]
window  vim_config  2   1   :*  64f2,376x75,0,0,70
window  tmux-conf   0   0   :   e4b6,109x75,0,0,65
window  weechat 0   1   :*  6103,35x75,0,0,71
window  tmux-conf   1   0   :   e4b7,109x75,0,0,66
window  workflow-service    0   1   :*  64f4,376x75,0,0,72
window  tmux-conf   2   0   :-  e4b8,109x75,0,0,67
window  workflow-service    1   0   :-  64f5,376x75,0,0,73
window  tmux-conf   3   1   :*  e4b3,109x75,0,0,81
window  workflow-service2   0   1   :*  64f6,376x75,0,0,74
window  vim_config  0   0   :   e4f9,376x75,0,0,68
window  vim_config  1   0   :-  e4fa,376x75,0,0,69
window  vim_config  2   1   :*  64f2,376x75,0,0,70
window  weechat 0   1   :*  6103,35x75,0,0,71
window  workflow-service    0   1   :*  64f4,376x75,0,0,72
window  workflow-service    1   0   :-  64f5,376x75,0,0,73
window  workflow-service2   0   1   :*  64f6,376x75,0,0,74
state   tmux-conf
state   tmux-conf

tmux conf:

# Activity monitoring
#setw -g monitor-activity on
#set -g visual-activity on

# Highlight active window
#set-window-option -g window-status-current-bg red

set -g default-terminal "screen-256color"

# utf8 is on
set -g utf8 on
set -g status-utf8 on

# address vim mode switching delay (http://superuser.com/a/252717/65504)
set -s escape-time 0

# tmux messages are displayed for 4 seconds
#set -g display-time 4000

# refresh 'status-left' and 'status-right' more often
#set -g status-interval 5

# Highlight active pane
#set-option -g pane-active-border-style bold
set-option -g pane-active-border-bg blue

# use powerline as status line
source '/home/hoschi/src/powerline/powerline/bindings/tmux/powerline.conf'

# create splits by | and -
unbind %
bind | split-window -h
bind - split-window -v

unbind p
# -n is for 'no prefix' !
bind-key -n F7 previous-window
bind-key a previous-window
bind-key -n F8 next-window
bind-key e next-window

bind-key C-b last-window

# renumber window so they have always continuing numbers
set -g renumber-windows on
# use relative indices for window movement with auto indices
bind-key A swap-window -t -1
bind-key E swap-window -t +1

# use vim motion keys while in copy mode
setw -g mode-keys vi

# use mouse!
set -g mode-mouse on
set -g mouse-resize-pane on
set -g mouse-select-pane on
set -g mouse-select-window on

# scroll with mouse wheel in pane, not in terminals scrollbuffer
set -g terminal-overrides 'xterm*:smcup@:rmcup@'

# set history size
set -g history-limit 10000

##CLIPBOARD selection integration
##Requires prefix key before the command key
#Copy tmux paste buffer to CLIPBOARD
#
#
# attention: install xclip!

# bind C-c run "tmux show-buffer | xclip -i -selection clipboard"
# replaced with tmux-yank plugin:
# Mouse Support
# When making a selection using tmux mode-mouse on or mode-mouse copy-mode, you
# cannot rely on the default 'release mouse after selection to copy' behavior.
# Instead, press y before releasing mouse.


#Copy CLIPBOARD to tmux paste buffer and paste tmux paste buffer
bind C-v run "tmux set-buffer -- \"$(xclip -o -selection clipboard)\"; tmux paste-buffer"



# List of plugins
set -g @tpm_plugins "              \
  tmux-plugins/tpm                 \
  tmux-plugins/tmux-resurrect   \
  tmux-plugins/tmux-continuum   \
  tmux-plugins/tmux-copycat   \
  tmux-plugins/tmux-yank   \
  tmux-plugins/tmux-open   \
  tmux-plugins/tmux-sessionist     \
"
# Other examples:
# github_username/plugin_name    \
# [email protected]/user/plugin     \
# [email protected]/user/plugin  \

# initializes TMUX plugin manager
# https://github.com/tmux-plugins/tpm
run-shell ~/.tmux/plugins/tpm/tpm

# https://github.com/tmux-plugins/tmux-resurrect
set -g @resurrect-processes 'ssh "git log" ~grunt-wrapper tail weechat vim ncmpcpp dmesg'

# https://github.com/tmux-plugins/tmux-continuum
set -g @continuum-restore 'on'

# https://github.com/tmux-plugins/tmux-open
# o      = open a highlighted selection with the system default program. open for OS X or xdg-open for Linux.
# Ctrl-o = open a highlighted selection with the $EDITOR

# https://github.com/tmux-plugins/tmux-copycat
# prefix + /        = regex search (strings work too)
# prefix + ctrl-f = simple file search
# prefix + ctrl-g = jumping over git status files (best used after git status command)
# prefix + ctrl-u = url search (http, ftp and git urls)
# prefix + ctrl-d = number search (mnemonic d, as digit)

auto-boot on systemd

Hello, just for you information @continuum-boot wouldn't create the correct service on my arch system until a manual mkdir -p systemd/user command.

How frequent is too frequent?

It seems like if I set -g @continuum-save-interval '1', that is too frequent, and my tmux sessions hang or crash (I am attached to multiple sessions in different physical terminal windows). I only have one server running. I saw the low interval from another tmux user, so I thought it was OK, but perhaps there is something weird about my usage triggering hangs while saving? It's usually just a hang, not a crash.

 ~/c/w/f/d/docroot   *  .ddev  cat ~/.tmux.conf                                                                      20.6s  17:16:42
#set -g default-terminal screen-256color
set -g history-limit 999999999

set -ga update-environment ' SSH_AUTH_SOCK'
#set-environment -g 'SSH_AUTH_SOCK' ~/.ssh/ssh_auth_sock
#set-environment -g 'SSH_AUTH_SOCK' /run/user/1000/keyring/ssh

#set-option -g default-command "reattach-to-user-namespace -l fish"

# # run bash first cuz fish is mean
# set-option -g default-shell /usr/bin/fish
# Just let bash set the environment, then drop to fish.
set-option -g default-command /usr/bin/fish

#bind '"' split-window -c "#{pane_current_path}"
#bind % split-window -h -c "#{pane_current_path}"
#bind c new-window -c "#{pane_current_path}"

set-option -g mouse on
set-option -g prefix C-a

bind -n M-PgDn select-window -n
bind -n M-PgUp select-window -p


# https://gist.github.com/spicycode/1229612
# Use Alt-arrow keys without prefix key to switch panes
#bind -n M-Left select-pane -L
#bind -n M-Right select-pane -R
#bind -n M-Up select-pane -U
#bind -n M-Down select-pane -D

# Use Alt-vim keys without prefix key to switch panes
bind -n M-h select-pane -L
bind -n M-j select-pane -D
bind -n M-k select-pane -U
bind -n M-l select-pane -R


set -g @resurrect-capture-pane-contents 'on'
set -g @resurrect-processes '~sshuttle'
set -g @continuum-boot 'on'
set -g @continuum-restore 'on'
set -g @continuum-save-interval '15'

# List of plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'

# Other examples:
# set -g @plugin 'github_username/plugin_name'
# set -g @plugin '[email protected]/user/plugin'
# set -g @plugin '[email protected]/user/plugin'

set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'
set -g @plugin 'tmux-plugins/tmux-copycat'
set -g @plugin 'tmux-plugins/tmux-yank'
set -g @plugin 'tmux-plugins/tmux-pain-control'


# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run -b '~/.tmux/plugins/tpm/tpm'

grive2 doesn't work because of tmux-continuum

root@DD-WRT:/opt/share# grive
Reading local directories
exception: /media/ware/Entware-ng.2016.07/build_dir/target-arm_cortex-a9_glibc-2.23_eabi/grive2-0.5-20160114/libgrive/src/util/OS.cc(57): Throw in function void gr::os::Stat(const string&, gr::DateTime_, off_t_, bool_)
Dynamic exception type: boost::exception_detail::clone_implgr::os::Error
[gr::expt::BacktraceTag_] = #0 0x9f3cc grive gr::os::Error::Error()
#1 0x9f1b0 grive gr::os::Stat(std::string const&, gr::DateTime_, long long_, bool*)
#2 0xa6bd0 grive gr::Resource::FromLocal(gr::Val&)
#3 0x52848 grive gr::State::FromLocal(boost::filesystem::path const&, gr::Resource*, gr::Val&)
#4 0x52890 grive gr::State::FromLocal(boost::filesystem::path const&, gr::Resource*, gr::Val&)
#5 0x52890 grive gr::State::FromLocal(boost::filesystem::path const&, gr::Resource*, gr::Val&)
#6 0x52890 grive gr::State::FromLocal(boost::filesystem::path const&, gr::Resource*, gr::Val&)
#7 0x52fd4 grive gr::State::FromLocal(boost::filesystem::path const&)
#8 0x50934 grive gr::Drive::DetectChanges()
#9 0x445e0 grive Main(int, char**)
#10 0x42d4c grive main
#11 0x767af1bc /opt/lib/libc.so.6 __libc_start_main

2, "No such file or directory"[boost::errinfo_file_name__] = ./tmux-continuum/scripts/handle_tmux_automatic_start/README.md
[boost::errinfo_api_function__] = stat

Needless to say, that Grive2 is working flawlessly if outside of Tmux.

Verify Continuum is working /w Byobu

Hello everyone.

I have successfully setup tmux-plugins using byobu and see that stuff are working. However, when I try to setup a custom notification, I get:

Notification Setup:

me@server:~/.byobu/bin$ ls -lah
total 4,0K
drwxr-x--- 1 me me  24 helmi  3 13:19 .
drwxr-x--- 1 me me 392 helmi  3 13:23 ..
-rwxr-x--- 1 me me  39 helmi  3 13:19 30_continuum
me@server:~/.byobu/bin$ cat 30_continuum
#!/bin/sh
echo "C#{continuum_status} "
me@server:~/.byobu/bin$

@ Debian GNU/Linux 8.7 x86_64 0:Window1* 1:Window1 2:Window2 ▴136kb ▾223kb C e910 1 2d0h 317rpm 39C 451& 0.60 4x1.6GHz 7.8G48% s5.6G0% 9,1G64% me@server 192.168.1.2 2017-02-03 14:05:15

byobu version 5.87 / tmux 1.9

# Mouse support - set to on if you want to use the mouse
# setw -g mode-mouse on
# set -g mouse-select-pane on
# set -g mouse-resize-pane on
# set -g mouse-select-window on

# enable activity alerts
setw -g monitor-activity on
set -g visual-activity on

# Center the window list
set -g status-justify centre

bind r source-file ${HOME}/.tmux.conf \; display-message "Source-file Reloaded"

# utf8 is on
set -g utf8 on
set -g status-utf8 on

# address vim mode switching delay (http://superuser.com/a/252717/65504)
set -s escape-time 0

# increase scrollback buffer size
set -g history-limit 50000

# tmux messages are displayed for 1.25 seconds
set -g display-time 1250

# refresh 'status-left' and 'status-right' more often
# set -g status-interval 1

# focus events enabled for terminals that support them
set -g focus-events on

# super useful when using "grouped sessions" and multi-monitor setup
setw -g aggressive-resize on

# ========== TMUX Plugin Manager ==========

if "test ! -d ~/.byobu/tmux_plugins/tpm" \
      "run 'git clone https://github.com/tmux-plugins/tpm ~/.byobu/tmux_plugins/tpm && ~/.byobu/tmux_plugins/tpm/bin/install_plugins'"

set-environment -g TMUX_PLUGIN_MANAGER_PATH '~/.byobu/tmux_plugins'

# List of plugins - https://github.com/tmux-plugins/tpm/blob/master/docs/tpm_not_working.md
# set -g @plugin 'tmux-plugins/tpm'
# set -g @plugin 'tmux-plugins/tmux-sensible'
# set -g @plugin 'tmux-plugins/tmux-resurrect'
# set -g @plugin 'tmux-plugins/tmux-continuum'

# Other examples:
# set -g @plugin 'github_username/plugin_name'
# set -g @plugin '[email protected]/user/plugin'
# set -g @plugin '[email protected]/user/plugin'

set -g @tpm_plugins 'tmux-plugins/tpm   \
        tmux-plugins/tmux-sensible                      \
        tmux-plugins/tmux-resurrect                     \
        tmux-plugins/tmux-continuum                     \
'
set -g @resurrect-dir '~/.byobu/tmux_resurrect'
set -g @resurrect-save-bash-history 'on'
set -g @continuum-save-interval '10'
set -g @continuum-boot 'on'

# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.byobu/tmux_plugins/tpm/tpm'

Save multiple sessions

My impression from the documentation is that continuum doesn't support multiple tmux sessions?
Can this be added?
What would it take?

[Feature Request] Prune old saves

Would be really nice to have a feature to keep saves in ~/.tmux/resurrect/ under control.

Config option could be, e.g., "prune last x saves" or "maximum number of saves" (default 20).

tmux now crashes after tmux update using `tmux-continuum` and `@continuum-restore` option

I recently updated my tmux to latest 2.2 released n April 2016 and now it crashes when I have tmux-continuum enabled in the config file. Commenting out tmux-continuum allows it to restart (but without my sessions!!).

$ tmux
lost server

Tmux version:

$ brew info tmux
tmux: stable 2.2 (bottled), HEAD
Terminal multiplexer
https://tmux.github.io/
/usr/local/Cellar/tmux/2.2 (9 files, 639.7K) *
  Poured from bottle on 2016-06-13 at 09:28:28
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/tmux.rb
==> Dependencies
Build: pkg-config ✔
Required: libevent ✔

I am on the latest revision:

$ cd ~/.tmux/plugins/tmux-continuum/
$ git log
commit 499b6a7e4e8d5a8dbfd15ebedacefa1c0a66ff2f
Merge: d21e477 438e50d
Author: Bruno Sutic <removed>
Date:   Sat Jan 23 16:57:14 2016 +0100

    Merge pull request #17 from jarosser06/rm_hardcoded_home

    Replaced hardcoded home directory in Systemd ExecStop with HOME variable

FYI: My Mabcook Pro's CPU also gets up to 35% CPU usage with OSX trying to report the crash in the background: /System/Library/CoreServices/ReportCrash. Until I exit the shell that attempted to run tmux, it continually heats up the CPU.

Per issue guidelines:

  • a file symlinked to ~/.tmux/resurrect/last.

This is what my last is symlinked to when I manually saved it:
tmux_resurrect_2016-06-11T23:21:24.txt

  • your .tmux.conf

https://github.com/eduncan911/dotfiles/blob/master/.tmux.conf

  • if you're getting an error paste it to a gist and link it in the issue

This is all I get since the Homebrew version doesn't have debug builds.

$ tmux
lost server

Continuum status brakes the moving around panes with hjkl

got this in my tmux.conf:

# move around panes with hjkl, as one would in vim after pressing ctrl-w
 bind h select-pane -L
 bind j select-pane -D
 bind k select-pane -U
 bind l select-pane -R

but it did not work. figured out that this line is the cause:
set -g status-right 'Continuum status: #{continuum_status}'
after commenting it out, it works fine.

Not working on OSX 10.10.1 with tmux 1.9a

Hey man!
The good news is that the following now works

~/.tmux/tmux-continuum/scripts/continuum_restore.sh

The bad news is that tmux is starting when I restart my computer but still isn't automatically doing the tmux resurrect.

On that note, I also noticed that with my autosaves didn't seem to be happening so I set my interval to 1 to confirm and no autosaves happen. That may give you a clue?

Below is my updated .tmux.conf.

# This allows copy and paste in vim, etc. to work with tmux
#if-shell "uname | grep -q Darwin" "set-option -g default-command 'reattach-to-user-namespace -l zsh'"


setw -g mode-mouse on
set -g mouse-select-pane on
set -g mouse-resize-pane on
set -g mouse-select-window on
set -g mode-keys vi

# force a reload of the config file
unbind r
bind r source-file ~/.tmux.conf

bind L resize-pane -L 5 
bind D resize-pane -D 5 
bind U resize-pane -U 5 
bind R resize-pane -R 5

#### COLOUR (Solarized 256)

# default statusbar colors
set-option -g status-bg colour235 #base02
set-option -g status-fg colour136 #yellow
set-option -g status-attr default

# default window title colors
set-window-option -g window-status-fg colour244 #base0
set-window-option -g window-status-bg default
#set-window-option -g window-status-attr dim

# active window title colors
set-window-option -g window-status-current-fg colour166 #orange
set-window-option -g window-status-current-bg default
#set-window-option -g window-status-current-attr bright

# pane border
set-option -g pane-border-fg colour235 #base02
set-option -g pane-active-border-fg colour240 #base01

# message text
set-option -g message-bg colour235 #base02
set-option -g message-fg colour166 #orange

# pane number display
set-option -g display-panes-active-colour colour33 #blue
set-option -g display-panes-colour colour166 #orange

# clock
set-window-option -g clock-mode-colour colour64 #green


# VIM COPY AND PASTE BINDINGS BELOW.
# To enter copy mode, press {prefix} esc
# Use vim keybindings in copy mode
setw -g mode-keys vi
# Setup 'v' or 'V' to begin selection as in Vim
unbind [
bind Escape copy-mode

bind -t vi-copy v begin-selection
bind -t vi-copy V rectangle-toggle # `V` changes between line- and columnwise selection

# Clear scrollback. {prefix} Cntrl K
bind -n C-k clear-history


#Allow tmux Resurrect - prefix then ctrl-s to save. prefix then ctrl-r to restore
run-shell ~/.tmux/tmux-resurrect/resurrect.tmux
# Allow tmux to select text, etc.
run-shell ~/.tmux/tmux-copycat/copycat.tmux
# tmux yank. Enable copy selected text to the clipboard. Needs the above with prefix + y.
run-shell ~/.tmux/tmux-yank/yank.tmux
# MUST BE LAST COMMAND RUN: Auto run tmux ressurect every 15 minutes and auto ressurect when opening a new window
set -g @continuum-boot 'on'
set -g @continuum-restore 'on'
set -g @continuum-save-interval '1'
run-shell ~/.tmux/tmux-continuum/continuum.tmux
#run-shell ~/.tmux/tmux-continuum/scripts/continuum_restore.sh

# Commands cheatsheet
# Within tmux
# prefix + ?: see all potential commands within tmux
# prefix + s: switch to a new session
# prefix + z: make the current pane take up the whole window. Toggleable.
# prefix + cntrl o: rotate window
# prefx + cntrl k: clear any text in the pane that is currently not visable.
# prefix + ctrl s: save all current sessions
# prefix + ctrl r: restore all current sessions from the last save point (eg. after a computer restart)
# prefix + Escape: enter copy mode
# - v: enter vim selection so you can copy.
# -- V: toggle back and fourth betmween block copy mode.
# - y: copy current selection to the clipboard.
# prefix + /: enter search mode for tmux pane
# prefix + :rename: allow you to rename the current session
# prefix + d: dettach the current session without ending it.
# prefix + x: close the current pane
# prefix + &: close the current window
# prefx + %: horizontal split
# prefix + ": vertical split
# In the terminal:
# man tmux: see all potential commands within tmux
# tmux a -t SESSIONNAMEORNUMEBR: re open that session
# tmux list-sessions: lists all the sessions available to be connected to
# tmux kill-server: kill all live sessions

Different tmux session lists from different machines?

Please see the setup below - this used to work fine until I enabled tmux-continuum - would it break this use case of connecting to tmux after ssh-ing?

From MachineA:

tmux new -s Session1
[detach from session]
tmux new -s Session2
[detach from session]
tmux ls # correctly shows Session1 and Session2

From MachineB:

ssh MachineA
tmux new -s Session3
[detach from session]
tmux ls # Only shows Session3, where I would expect to see Session1, Session2, and Session3

Any ideas?

Thanks,

David

Respect tmux's status-right option

I had issue that this plugin set status-right option to something like:

> tmux show -g status-right
status-right "#(/home/USER/.tmux/plugins/tmux-continuum/scripts/continuum_save.sh)"

That I disabled status-right before plugin call causing splashing at status-right: set -g status-right ''
I had to put all status options at the bottom of .tmux.conf to avoid it.

If possible don't set status-right.

How to start tmux so it restores automatically

I just installed the plugin and it doesn't restore when I run tmux in my terminal.

Relevant config (Full file)

tmux 2.8

## Plugins
set -g @plugin 'tmux-plugins/tmux-continuum'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tpm'

## Plugin config
set -g @continuum-restore 'on'
set -g @continuum-save-interval '10'
set -g @resurrect-capture-pane-contents 'on'
set -g @resurrect-strategy-nvim 'session'

run -b '~/.tmux/plugins/tpm/tpm'

Findings

Digging through the code I noticed my issue was in the following line:
https://github.com/tmux-plugins/tmux-continuum/blob/master/continuum.tmux#L54

When I run tmux without a server running it starts one session called 0. When changing that line to expect one session running ([ "$(number_of_sessions)" -eq 1 ]) it ran the restore without issues.

Question

Am I running the wrong command for starting tmux?

Autosave not working

Autosave is not working and I've narrowed it down to this piece of code:

# Advanced edge case handling: start auto-saving only if this is the
# only tmux server. We don't want saved files from more environments to
# overwrite each other.
if ! another_tmux_server_running; then
  # give user a chance to restore previously saved session
  delay_saving_environment_on_first_plugin_load
  add_resurrect_save_interpolation
fi

The problem is that I share my work environment with several co-workers. So, in total we may have > 3 tmux processes. This function grabs all of them:

all_tmux_processes() {
  # ignores `tmux source-file .tmux.conf` command used to reload tmux.conf
  ps -Ao "command pid" |
    \grep "^tmux" |
    \grep -v "^tmux source"
}

Long story short, it seems that add_resurrect_save_interpolation is never called because continuum thinks there are more than one TMUX servers running. Should it not consider only the running user's processes?

[Bug] Pane command history (bash history) is not saved/restored

I am not sure if this is a continuum or a resurrect issue)

Am I missing a configuration somewhere?

I have 5 panes set up in my session, and I have the following config:

# List of plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/resurrect'
set -g @plugin 'tmux-plugins/continuum'

# Enable autorestore
set -g @continuum-restore 'on'

# Save session every 5 minutes
set -g @continuum-save-interval '1'

# Save shell history (THIS IS BROKEN)
#set -g @resurrect-save-shell-history 'on'

# Save pane contents
set -g @resurrect-capture-pane-contents 'on'

# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run -b '~/.tmux/plugins/tpm/tpm'

When I reboot, then run tmux, my last session of 5 panes is restored. I even see the outputs in each pane as they appeared before reboot. However, when I navigate through each pane and use the up arrow key to re-run the most recently run command in said pane, the command is incorrect. In fact, they all show the same command (the last command I executed in any terminal session, anywhere, before reboot). So, if I rebooted from the command line with sudo reboot, the last command (hitting up arrow once) in each pane is sudo reboot.

I must be missing something, right? I've tried lots of googling and combing through issues here to no avail. Thanks in advance for the help.

Is there a way to check tmux continuum is running? It's not restoring my sessions

Do I need to grep or vim something to ensure its running?

 set -s escape-time 0
 set -g mouse on

 # Increase scroll-back limit
 set-option -g history-limit 5000

 # List of plugins
 set -g @plugin 'tmux-plugins/tpm'
 set -g @plugin 'tmux-plugins/tmux-sensible'
 set -g @plugin 'tmux-plugins/tmux-resurrect'
 set -g @plugin 'tmux-plugins/tmux-continuum'

 # Change to sane key bindings for pane-splitting.
 bind | split-window -h
 bind - split-window -v
 unbind '"'
 unbind %

 # Enable clicking on panes to select
 set -g mouse on

 # List of plugins
 set -g @plugin 'tmux-plugins/tpm'
 set -g @plugin 'nhdaly/tmux-scroll-copy-mode'

 # Other examples:
 # set -g @plugin 'github_username/plugin_name'
 # set -g @plugin '[email protected]/user/plugin'
 # set -g @plugin '[email protected]/user/plugin'

 # Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
 run '~/.tmux/plugins/tpm/tpm'

 set -g @continuum-restore 'on'
 set -g @continuum-boot 'on'
 set -g @continuum-boot-options 'iterm'
 set -g @continuum-save-interval '5'
 set -g status-right 'Continuum status: #{continuum_status}'
 set -g @resurrect-capture-pane-contents 'on'

 # Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
 run -b '~/.tmux/plugins/tpm/tpm'

Maximum number of snaphot files feature

Hi,
first thank you for the plugin.

It doesn't seem to an option to rotate files or to add max number of files in resurrect folder.
Current solution for dealing with the problem of too many snapshots is periodically cleaning the directory by hand or by writing cron jobs.

Do you have any plans of adding some kind of self management in the future?

Run at startup on Ubuntu

On Ubuntu 14.04, I'm starting Tmux with the following upstart script at /etc/init/start-tmux.conf:

description "Start Tmux"
start on runlevel [2345]

script
  su myuser -c "tmux new-session -d -s my-default-session-name"
end script

Not sure how you want to present this in your docs, but if someone else could verify that this works for them, as well, that'd be great. Now, I can ssh my-dev-box -t tmux attach and always attach to my Tmux session, even if the box has restarted.

Autosave doesn't work, #{continuum_status} is empty

I installed continuum by cloning it and then adding run-shell ~/.tmux/plugins/tmux-continuum/continuum.tmux to my config file. Resurrect works fine, but continuum doesn't seem to be doing anything. Also, the #{continuum_status} variable is empty. Is there any other thing I have to do?

Automatic restore not working

Howdy!

I see recently there was a fix for automatic restore not working in OSX (#52).

I'am actually finding that this has broken automatic restore for me on macOS (Mojave - 10.14.3). When i start tmux nothing is restored. Interestingly, if i reload my config, the restore then happens (which shouldn't happen according to this)

If i revert the changes made here everything seems to be working ok for me.

I'am using tmux 2.8 and the latest versions of tmux-continuum and tmux-resurrect

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.